From a30771d5f03e4b80b71bd9e1ff592f2184c262a5 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Thu, 12 May 2022 01:50:06 -0700 Subject: [PATCH 01/25] successful update to Vulkan version 1.3.211.0 -- builds but crashes on mac though. --- UPDATING.md | 142 + cgo_helpers.c | 6 +- cgo_helpers.go | 67466 +++++++++++++++++++++---------- cgo_helpers.h | 5 +- const.go | 4630 ++- const_go.patch | 37 + doc.go | 2 +- moltenVK/vk_mvk_moltenvk.h | 1390 +- moltenVK/vk_mvk_moltenvk_119.h | 1342 + types.go | 9495 +++-- vulkan.go | 1843 +- vulkan.yml | 7 +- vulkan/vk_enum_string_helper.h | 9789 +++++ vulkan/vk_icd.h | 245 + vulkan/vk_layer.h | 210 + vulkan/vk_platform.h | 20 +- vulkan/vk_sdk_platform.h | 69 + vulkan/vulkan.h | 43 +- vulkan/vulkan_android.h | 45 +- vulkan/vulkan_beta.h | 988 + vulkan/vulkan_core.h | 13588 +++++-- vulkan/vulkan_core_h.patch | 69 + vulkan/vulkan_directfb.h | 54 + vulkan/vulkan_fuchsia.h | 258 + vulkan/vulkan_ggp.h | 58 + vulkan/vulkan_ios.h | 29 +- vulkan/vulkan_macos.h | 29 +- vulkan/vulkan_metal.h | 54 + vulkan/vulkan_screen.h | 54 + vulkan/vulkan_vi.h | 47 + vulkan/vulkan_wayland.h | 27 +- vulkan/vulkan_win32.h | 99 +- vulkan/vulkan_xcb.h | 27 +- vulkan/vulkan_xlib.h | 27 +- vulkan/vulkan_xlib_xrandr.h | 25 +- vulkan_darwin.go | 1 + 36 files changed, 81116 insertions(+), 31104 deletions(-) create mode 100644 UPDATING.md create mode 100644 const_go.patch create mode 100644 moltenVK/vk_mvk_moltenvk_119.h create mode 100644 vulkan/vk_enum_string_helper.h create mode 100644 vulkan/vk_icd.h create mode 100644 vulkan/vk_layer.h create mode 100644 vulkan/vk_sdk_platform.h create mode 100644 vulkan/vulkan_beta.h create mode 100644 vulkan/vulkan_core_h.patch create mode 100644 vulkan/vulkan_directfb.h create mode 100644 vulkan/vulkan_fuchsia.h create mode 100644 vulkan/vulkan_ggp.h create mode 100644 vulkan/vulkan_metal.h create mode 100644 vulkan/vulkan_screen.h create mode 100644 vulkan/vulkan_vi.h diff --git a/UPDATING.md b/UPDATING.md new file mode 100644 index 0000000..7c08147 --- /dev/null +++ b/UPDATING.md @@ -0,0 +1,142 @@ +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) + +* 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 to fix a few things. + +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 +@@ -1,6 +1,6 @@ + // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. + +-// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. ++// WARNING: This file has automatically been generated on Thu, 12 May 2022 00:52:13 PDT. + // Code generated by https://git.io/c-for-go. DO NOT EDIT. + + package vulkan +@@ -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 + ) + +``` + diff --git a/cgo_helpers.c b/cgo_helpers.c index ee3da7a..38578df 100644 --- a/cgo_helpers.c +++ b/cgo_helpers.c @@ -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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "_cgo_export.h" @@ -10,3 +10,7 @@ unsigned int PFN_vkDebugReportCallbackEXT_c918aac4(unsigned int flags, VkDebugRe 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..c513bac 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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -15,6 +15,7 @@ package vulkan */ import "C" import ( + "fmt" "runtime" "sync" "unsafe" @@ -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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocExtent2DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent2DValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocExtent3DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent3DValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + 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,320 @@ 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocRect2DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRect2DValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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) - - var cfullDrawIndexUint32_allocs *cgoAllocMap - reff97e405d.fullDrawIndexUint32, cfullDrawIndexUint32_allocs = (C.VkBool32)(x.FullDrawIndexUint32), cgoAllocsUnknown - allocsf97e405d.Borrow(cfullDrawIndexUint32_allocs) + mem89e4256f := allocRect2DMemory(1) + ref89e4256f := (*C.VkRect2D)(mem89e4256f) + allocs89e4256f := new(cgoAllocMap) + allocs89e4256f.Add(mem89e4256f) - var cimageCubeArray_allocs *cgoAllocMap - reff97e405d.imageCubeArray, cimageCubeArray_allocs = (C.VkBool32)(x.ImageCubeArray), cgoAllocsUnknown - allocsf97e405d.Borrow(cimageCubeArray_allocs) + var coffset_allocs *cgoAllocMap + ref89e4256f.offset, coffset_allocs = x.Offset.PassValue() + allocs89e4256f.Borrow(coffset_allocs) - var cindependentBlend_allocs *cgoAllocMap - reff97e405d.independentBlend, cindependentBlend_allocs = (C.VkBool32)(x.IndependentBlend), cgoAllocsUnknown - allocsf97e405d.Borrow(cindependentBlend_allocs) + var cextent_allocs *cgoAllocMap + ref89e4256f.extent, cextent_allocs = x.Extent.PassValue() + allocs89e4256f.Borrow(cextent_allocs) - var cgeometryShader_allocs *cgoAllocMap - reff97e405d.geometryShader, cgeometryShader_allocs = (C.VkBool32)(x.GeometryShader), cgoAllocsUnknown - allocsf97e405d.Borrow(cgeometryShader_allocs) + x.ref89e4256f = ref89e4256f + x.allocs89e4256f = allocs89e4256f + return ref89e4256f, allocs89e4256f - 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) +// 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 + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cshaderFloat64_allocs *cgoAllocMap - reff97e405d.shaderFloat64, cshaderFloat64_allocs = (C.VkBool32)(x.ShaderFloat64), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderFloat64_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 *Rect2D) Deref() { + if x.ref89e4256f == nil { + return + } + x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.ref89e4256f.offset)) + x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.ref89e4256f.extent)) +} - var cshaderInt64_allocs *cgoAllocMap - reff97e405d.shaderInt64, cshaderInt64_allocs = (C.VkBool32)(x.ShaderInt64), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderInt64_allocs) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cshaderInt16_allocs *cgoAllocMap - reff97e405d.shaderInt16, cshaderInt16_allocs = (C.VkBool32)(x.ShaderInt16), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderInt16_allocs) +const sizeOfBaseInStructureValue = unsafe.Sizeof([1]C.VkBaseInStructure{}) - var cshaderResourceResidency_allocs *cgoAllocMap - reff97e405d.shaderResourceResidency, cshaderResourceResidency_allocs = (C.VkBool32)(x.ShaderResourceResidency), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderResourceResidency_allocs) +type sliceHeader struct { + Data unsafe.Pointer + Len int + Cap int +} - var cshaderResourceMinLod_allocs *cgoAllocMap - reff97e405d.shaderResourceMinLod, cshaderResourceMinLod_allocs = (C.VkBool32)(x.ShaderResourceMinLod), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderResourceMinLod_allocs) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var csparseBinding_allocs *cgoAllocMap - reff97e405d.sparseBinding, csparseBinding_allocs = (C.VkBool32)(x.SparseBinding), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseBinding_allocs) +const sizeOfStruct_VkBaseInStructureValue = unsafe.Sizeof([1]C.struct_VkBaseInStructure{}) - var csparseResidencyBuffer_allocs *cgoAllocMap - reff97e405d.sparseResidencyBuffer, csparseResidencyBuffer_allocs = (C.VkBool32)(x.SparseResidencyBuffer), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyBuffer_allocs) +const sizeOfPtr = unsafe.Sizeof(&struct{}{}) - var csparseResidencyImage2D_allocs *cgoAllocMap - reff97e405d.sparseResidencyImage2D, csparseResidencyImage2D_allocs = (C.VkBool32)(x.SparseResidencyImage2D), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyImage2D_allocs) +// 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(allocs, func(a *cgoAllocMap) { + go a.Free() + }) - var csparseResidencyImage3D_allocs *cgoAllocMap - reff97e405d.sparseResidencyImage3D, csparseResidencyImage3D_allocs = (C.VkBool32)(x.SparseResidencyImage3D), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyImage3D_allocs) + 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 +} - var csparseResidency2Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency2Samples, csparseResidency2Samples_allocs = (C.VkBool32)(x.SparseResidency2Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency2Samples_allocs) +// 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)) + } +} - var csparseResidency4Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency4Samples, csparseResidency4Samples_allocs = (C.VkBool32)(x.SparseResidency4Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency4Samples_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BaseInStructure) Ref() *C.VkBaseInStructure { + if x == nil { + return nil + } + return x.refeae401a9 +} - var csparseResidency8Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency8Samples, csparseResidency8Samples_allocs = (C.VkBool32)(x.SparseResidency8Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency8Samples_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 *BaseInStructure) Free() { + if x != nil && x.allocseae401a9 != nil { + x.allocseae401a9.(*cgoAllocMap).Free() + x.refeae401a9 = nil + } +} - var csparseResidency16Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency16Samples, csparseResidency16Samples_allocs = (C.VkBool32)(x.SparseResidency16Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency16Samples_allocs) +// 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 NewBaseInStructureRef(ref unsafe.Pointer) *BaseInStructure { + if ref == nil { + return nil + } + obj := new(BaseInStructure) + obj.refeae401a9 = (*C.VkBaseInStructure)(unsafe.Pointer(ref)) + return obj +} - var csparseResidencyAliased_allocs *cgoAllocMap - reff97e405d.sparseResidencyAliased, csparseResidencyAliased_allocs = (C.VkBool32)(x.SparseResidencyAliased), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyAliased_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 *BaseInStructure) PassRef() (*C.VkBaseInStructure, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refeae401a9 != nil { + return x.refeae401a9, nil + } + memeae401a9 := allocBaseInStructureMemory(1) + refeae401a9 := (*C.VkBaseInStructure)(memeae401a9) + allocseae401a9 := new(cgoAllocMap) + allocseae401a9.Add(memeae401a9) - var cvariableMultisampleRate_allocs *cgoAllocMap - reff97e405d.variableMultisampleRate, cvariableMultisampleRate_allocs = (C.VkBool32)(x.VariableMultisampleRate), cgoAllocsUnknown - allocsf97e405d.Borrow(cvariableMultisampleRate_allocs) + var csType_allocs *cgoAllocMap + refeae401a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseae401a9.Borrow(csType_allocs) - var cinheritedQueries_allocs *cgoAllocMap - reff97e405d.inheritedQueries, cinheritedQueries_allocs = (C.VkBool32)(x.InheritedQueries), cgoAllocsUnknown - allocsf97e405d.Borrow(cinheritedQueries_allocs) + var cpNext_allocs *cgoAllocMap + refeae401a9.pNext, cpNext_allocs = unpackSBaseInStructure(x.PNext) + allocseae401a9.Borrow(cpNext_allocs) - x.reff97e405d = reff97e405d - x.allocsf97e405d = allocsf97e405d - return reff97e405d, allocsf97e405d + 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 PhysicalDeviceFeatures) PassValue() (C.VkPhysicalDeviceFeatures, *cgoAllocMap) { - if x.reff97e405d != nil { - return *x.reff97e405d, nil +func (x BaseInStructure) PassValue() (C.VkBaseInStructure, *cgoAllocMap) { + if x.refeae401a9 != nil { + return *x.refeae401a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -725,142 +647,135 @@ 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 *BaseInStructure) Deref() { + if x.refeae401a9 == 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.SType = (StructureType)(x.refeae401a9.sType) + packSBaseInStructure(x.PNext, x.refeae401a9.pNext) } -// allocFormatPropertiesMemory allocates memory for type C.VkFormatProperties in C. +// allocBaseOutStructureMemory allocates memory for type C.VkBaseOutStructure 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()) +func allocBaseOutStructureMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBaseOutStructureValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfFormatPropertiesValue = unsafe.Sizeof([1]C.VkFormatProperties{}) +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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 *FormatProperties) Ref() *C.VkFormatProperties { +func (x *BaseOutStructure) Ref() *C.VkBaseOutStructure { if x == nil { return nil } - return x.refc4b9937b + 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 *FormatProperties) Free() { - if x != nil && x.allocsc4b9937b != nil { - x.allocsc4b9937b.(*cgoAllocMap).Free() - x.refc4b9937b = nil +func (x *BaseOutStructure) Free() { + if x != nil && x.allocsd536fcd0 != nil { + x.allocsd536fcd0.(*cgoAllocMap).Free() + x.refd536fcd0 = nil } } -// NewFormatPropertiesRef 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 NewFormatPropertiesRef(ref unsafe.Pointer) *FormatProperties { +func NewBaseOutStructureRef(ref unsafe.Pointer) *BaseOutStructure { if ref == nil { return nil } - obj := new(FormatProperties) - obj.refc4b9937b = (*C.VkFormatProperties)(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 *FormatProperties) PassRef() (*C.VkFormatProperties, *cgoAllocMap) { +func (x *BaseOutStructure) PassRef() (*C.VkBaseOutStructure, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc4b9937b != nil { - return x.refc4b9937b, nil + } else if x.refd536fcd0 != nil { + return x.refd536fcd0, 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) + memd536fcd0 := allocBaseOutStructureMemory(1) + refd536fcd0 := (*C.VkBaseOutStructure)(memd536fcd0) + allocsd536fcd0 := new(cgoAllocMap) + allocsd536fcd0.Add(memd536fcd0) - var coptimalTilingFeatures_allocs *cgoAllocMap - refc4b9937b.optimalTilingFeatures, coptimalTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.OptimalTilingFeatures), cgoAllocsUnknown - allocsc4b9937b.Borrow(coptimalTilingFeatures_allocs) + var csType_allocs *cgoAllocMap + refd536fcd0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd536fcd0.Borrow(csType_allocs) - var cbufferFeatures_allocs *cgoAllocMap - refc4b9937b.bufferFeatures, cbufferFeatures_allocs = (C.VkFormatFeatureFlags)(x.BufferFeatures), cgoAllocsUnknown - allocsc4b9937b.Borrow(cbufferFeatures_allocs) + var cpNext_allocs *cgoAllocMap + refd536fcd0.pNext, cpNext_allocs = unpackSBaseOutStructure(x.PNext) + allocsd536fcd0.Borrow(cpNext_allocs) - x.refc4b9937b = refc4b9937b - x.allocsc4b9937b = allocsc4b9937b - return refc4b9937b, allocsc4b9937b + 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 FormatProperties) PassValue() (C.VkFormatProperties, *cgoAllocMap) { - if x.refc4b9937b != nil { - return *x.refc4b9937b, nil +func (x BaseOutStructure) PassValue() (C.VkBaseOutStructure, *cgoAllocMap) { + if x.refd536fcd0 != nil { + return *x.refd536fcd0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -868,90 +783,113 @@ 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 *BaseOutStructure) Deref() { + if x.refd536fcd0 == nil { return } - x.LinearTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.linearTilingFeatures) - x.OptimalTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.optimalTilingFeatures) - x.BufferFeatures = (FormatFeatureFlags)(x.refc4b9937b.bufferFeatures) + x.SType = (StructureType)(x.refd536fcd0.sType) + packSBaseOutStructure(x.PNext, x.refd536fcd0.pNext) } -// allocExtent3DMemory allocates memory for type C.VkExtent3D in C. +// allocBufferMemoryBarrierMemory allocates memory for type C.VkBufferMemoryBarrier 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocBufferMemoryBarrierMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryBarrierValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExtent3DValue = unsafe.Sizeof([1]C.VkExtent3D{}) +const sizeOfBufferMemoryBarrierValue = unsafe.Sizeof([1]C.VkBufferMemoryBarrier{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Extent3D) Ref() *C.VkExtent3D { +func (x *BufferMemoryBarrier) Ref() *C.VkBufferMemoryBarrier { if x == nil { return nil } - return x.reffbf6c42a + 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 *Extent3D) Free() { - if x != nil && x.allocsfbf6c42a != nil { - x.allocsfbf6c42a.(*cgoAllocMap).Free() - x.reffbf6c42a = nil +func (x *BufferMemoryBarrier) Free() { + if x != nil && x.allocseaf4700b != nil { + x.allocseaf4700b.(*cgoAllocMap).Free() + x.refeaf4700b = nil } } -// NewExtent3DRef 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 NewExtent3DRef(ref unsafe.Pointer) *Extent3D { +func NewBufferMemoryBarrierRef(ref unsafe.Pointer) *BufferMemoryBarrier { if ref == nil { return nil } - obj := new(Extent3D) - obj.reffbf6c42a = (*C.VkExtent3D)(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 *Extent3D) PassRef() (*C.VkExtent3D, *cgoAllocMap) { +func (x *BufferMemoryBarrier) PassRef() (*C.VkBufferMemoryBarrier, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffbf6c42a != nil { - return x.reffbf6c42a, nil + } else if x.refeaf4700b != nil { + return x.refeaf4700b, nil } - memfbf6c42a := allocExtent3DMemory(1) - reffbf6c42a := (*C.VkExtent3D)(memfbf6c42a) - allocsfbf6c42a := new(cgoAllocMap) - allocsfbf6c42a.Add(memfbf6c42a) + memeaf4700b := allocBufferMemoryBarrierMemory(1) + refeaf4700b := (*C.VkBufferMemoryBarrier)(memeaf4700b) + allocseaf4700b := new(cgoAllocMap) + allocseaf4700b.Add(memeaf4700b) - var cwidth_allocs *cgoAllocMap - reffbf6c42a.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cwidth_allocs) + var csType_allocs *cgoAllocMap + refeaf4700b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseaf4700b.Borrow(csType_allocs) - var cheight_allocs *cgoAllocMap - reffbf6c42a.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cheight_allocs) + var cpNext_allocs *cgoAllocMap + refeaf4700b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseaf4700b.Borrow(cpNext_allocs) - var cdepth_allocs *cgoAllocMap - reffbf6c42a.depth, cdepth_allocs = (C.uint32_t)(x.Depth), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cdepth_allocs) + var csrcAccessMask_allocs *cgoAllocMap + refeaf4700b.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocseaf4700b.Borrow(csrcAccessMask_allocs) - x.reffbf6c42a = reffbf6c42a - x.allocsfbf6c42a = allocsfbf6c42a - return reffbf6c42a, allocsfbf6c42a + 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) + + 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 Extent3D) PassValue() (C.VkExtent3D, *cgoAllocMap) { - if x.reffbf6c42a != nil { - return *x.reffbf6c42a, nil +func (x BufferMemoryBarrier) PassValue() (C.VkBufferMemoryBarrier, *cgoAllocMap) { + if x.refeaf4700b != nil { + return *x.refeaf4700b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -959,98 +897,96 @@ 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 *BufferMemoryBarrier) Deref() { + if x.refeaf4700b == nil { return } - x.Width = (uint32)(x.reffbf6c42a.width) - x.Height = (uint32)(x.reffbf6c42a.height) - x.Depth = (uint32)(x.reffbf6c42a.depth) + 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) } -// allocImageFormatPropertiesMemory allocates memory for type C.VkImageFormatProperties in C. +// allocDispatchIndirectCommandMemory allocates memory for type C.VkDispatchIndirectCommand 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()) +func allocDispatchIndirectCommandMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDispatchIndirectCommandValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkImageFormatProperties{}) +const sizeOfDispatchIndirectCommandValue = unsafe.Sizeof([1]C.VkDispatchIndirectCommand{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatProperties) Ref() *C.VkImageFormatProperties { +func (x *DispatchIndirectCommand) Ref() *C.VkDispatchIndirectCommand { if x == nil { return nil } - return x.ref4cfb2ea2 + 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 *ImageFormatProperties) Free() { - if x != nil && x.allocs4cfb2ea2 != nil { - x.allocs4cfb2ea2.(*cgoAllocMap).Free() - x.ref4cfb2ea2 = nil +func (x *DispatchIndirectCommand) Free() { + if x != nil && x.allocsd298ba27 != nil { + x.allocsd298ba27.(*cgoAllocMap).Free() + x.refd298ba27 = nil } } -// NewImageFormatPropertiesRef 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 NewImageFormatPropertiesRef(ref unsafe.Pointer) *ImageFormatProperties { +func NewDispatchIndirectCommandRef(ref unsafe.Pointer) *DispatchIndirectCommand { if ref == nil { return nil } - obj := new(ImageFormatProperties) - obj.ref4cfb2ea2 = (*C.VkImageFormatProperties)(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 *ImageFormatProperties) PassRef() (*C.VkImageFormatProperties, *cgoAllocMap) { +func (x *DispatchIndirectCommand) PassRef() (*C.VkDispatchIndirectCommand, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4cfb2ea2 != nil { - return x.ref4cfb2ea2, nil + } else if x.refd298ba27 != nil { + return x.refd298ba27, 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) + memd298ba27 := allocDispatchIndirectCommandMemory(1) + refd298ba27 := (*C.VkDispatchIndirectCommand)(memd298ba27) + allocsd298ba27 := new(cgoAllocMap) + allocsd298ba27.Add(memd298ba27) - var cmaxArrayLayers_allocs *cgoAllocMap - ref4cfb2ea2.maxArrayLayers, cmaxArrayLayers_allocs = (C.uint32_t)(x.MaxArrayLayers), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(cmaxArrayLayers_allocs) + var cx_allocs *cgoAllocMap + refd298ba27.x, cx_allocs = (C.uint32_t)(x.X), cgoAllocsUnknown + allocsd298ba27.Borrow(cx_allocs) - var csampleCounts_allocs *cgoAllocMap - ref4cfb2ea2.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(csampleCounts_allocs) + var cy_allocs *cgoAllocMap + refd298ba27.y, cy_allocs = (C.uint32_t)(x.Y), cgoAllocsUnknown + allocsd298ba27.Borrow(cy_allocs) - var cmaxResourceSize_allocs *cgoAllocMap - ref4cfb2ea2.maxResourceSize, cmaxResourceSize_allocs = (C.VkDeviceSize)(x.MaxResourceSize), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(cmaxResourceSize_allocs) + var cz_allocs *cgoAllocMap + refd298ba27.z, cz_allocs = (C.uint32_t)(x.Z), cgoAllocsUnknown + allocsd298ba27.Borrow(cz_allocs) - x.ref4cfb2ea2 = ref4cfb2ea2 - x.allocs4cfb2ea2 = allocs4cfb2ea2 - return ref4cfb2ea2, allocs4cfb2ea2 + x.refd298ba27 = refd298ba27 + x.allocsd298ba27 = allocsd298ba27 + return refd298ba27, allocsd298ba27 } // 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 DispatchIndirectCommand) PassValue() (C.VkDispatchIndirectCommand, *cgoAllocMap) { + if x.refd298ba27 != nil { + return *x.refd298ba27, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1058,504 +994,25630 @@ 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 *DispatchIndirectCommand) Deref() { + if x.refd298ba27 == 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.X = (uint32)(x.refd298ba27.x) + x.Y = (uint32)(x.refd298ba27.y) + x.Z = (uint32)(x.refd298ba27.z) } -// allocPhysicalDeviceLimitsMemory allocates memory for type C.VkPhysicalDeviceLimits in C. +// allocDrawIndexedIndirectCommandMemory allocates memory for type C.VkDrawIndexedIndirectCommand 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()) +func allocDrawIndexedIndirectCommandMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawIndexedIndirectCommandValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceLimitsValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLimits{}) +const sizeOfDrawIndexedIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndexedIndirectCommand{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceLimits) Ref() *C.VkPhysicalDeviceLimits { +func (x *DrawIndexedIndirectCommand) Ref() *C.VkDrawIndexedIndirectCommand { if x == nil { return nil } - return x.ref7926795a + return x.ref4c78b5c3 } // Free invokes alloc map'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 *DrawIndexedIndirectCommand) Free() { + if x != nil && x.allocs4c78b5c3 != nil { + x.allocs4c78b5c3.(*cgoAllocMap).Free() + x.ref4c78b5c3 = nil } } -// NewPhysicalDeviceLimitsRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceLimitsRef(ref unsafe.Pointer) *PhysicalDeviceLimits { +func NewDrawIndexedIndirectCommandRef(ref unsafe.Pointer) *DrawIndexedIndirectCommand { if ref == nil { return nil } - obj := new(PhysicalDeviceLimits) - obj.ref7926795a = (*C.VkPhysicalDeviceLimits)(unsafe.Pointer(ref)) + obj := new(DrawIndexedIndirectCommand) + obj.ref4c78b5c3 = (*C.VkDrawIndexedIndirectCommand)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *DrawIndexedIndirectCommand) PassRef() (*C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7926795a != nil { - return x.ref7926795a, nil + } else if x.ref4c78b5c3 != nil { + return x.ref4c78b5c3, 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) + mem4c78b5c3 := allocDrawIndexedIndirectCommandMemory(1) + ref4c78b5c3 := (*C.VkDrawIndexedIndirectCommand)(mem4c78b5c3) + allocs4c78b5c3 := new(cgoAllocMap) + allocs4c78b5c3.Add(mem4c78b5c3) - var cmaxImageDimension2D_allocs *cgoAllocMap - ref7926795a.maxImageDimension2D, cmaxImageDimension2D_allocs = (C.uint32_t)(x.MaxImageDimension2D), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimension2D_allocs) + var cindexCount_allocs *cgoAllocMap + ref4c78b5c3.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cindexCount_allocs) - var cmaxImageDimension3D_allocs *cgoAllocMap - ref7926795a.maxImageDimension3D, cmaxImageDimension3D_allocs = (C.uint32_t)(x.MaxImageDimension3D), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimension3D_allocs) + var cinstanceCount_allocs *cgoAllocMap + ref4c78b5c3.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cinstanceCount_allocs) - var cmaxImageDimensionCube_allocs *cgoAllocMap - ref7926795a.maxImageDimensionCube, cmaxImageDimensionCube_allocs = (C.uint32_t)(x.MaxImageDimensionCube), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimensionCube_allocs) + var cfirstIndex_allocs *cgoAllocMap + ref4c78b5c3.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cfirstIndex_allocs) - var cmaxImageArrayLayers_allocs *cgoAllocMap - ref7926795a.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageArrayLayers_allocs) + var cvertexOffset_allocs *cgoAllocMap + ref4c78b5c3.vertexOffset, cvertexOffset_allocs = (C.int32_t)(x.VertexOffset), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cvertexOffset_allocs) - var cmaxTexelBufferElements_allocs *cgoAllocMap - ref7926795a.maxTexelBufferElements, cmaxTexelBufferElements_allocs = (C.uint32_t)(x.MaxTexelBufferElements), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelBufferElements_allocs) + var cfirstInstance_allocs *cgoAllocMap + ref4c78b5c3.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cfirstInstance_allocs) - var cmaxUniformBufferRange_allocs *cgoAllocMap - ref7926795a.maxUniformBufferRange, cmaxUniformBufferRange_allocs = (C.uint32_t)(x.MaxUniformBufferRange), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxUniformBufferRange_allocs) + x.ref4c78b5c3 = ref4c78b5c3 + x.allocs4c78b5c3 = allocs4c78b5c3 + return ref4c78b5c3, allocs4c78b5c3 - 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) +// 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 cmaxMemoryAllocationCount_allocs *cgoAllocMap - ref7926795a.maxMemoryAllocationCount, cmaxMemoryAllocationCount_allocs = (C.uint32_t)(x.MaxMemoryAllocationCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxMemoryAllocationCount_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 cmaxSamplerAllocationCount_allocs *cgoAllocMap - ref7926795a.maxSamplerAllocationCount, cmaxSamplerAllocationCount_allocs = (C.uint32_t)(x.MaxSamplerAllocationCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerAllocationCount_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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cbufferImageGranularity_allocs *cgoAllocMap - ref7926795a.bufferImageGranularity, cbufferImageGranularity_allocs = (C.VkDeviceSize)(x.BufferImageGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(cbufferImageGranularity_allocs) +const sizeOfDrawIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndirectCommand{}) - var csparseAddressSpaceSize_allocs *cgoAllocMap - ref7926795a.sparseAddressSpaceSize, csparseAddressSpaceSize_allocs = (C.VkDeviceSize)(x.SparseAddressSpaceSize), cgoAllocsUnknown - allocs7926795a.Borrow(csparseAddressSpaceSize_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 cmaxBoundDescriptorSets_allocs *cgoAllocMap - ref7926795a.maxBoundDescriptorSets, cmaxBoundDescriptorSets_allocs = (C.uint32_t)(x.MaxBoundDescriptorSets), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxBoundDescriptorSets_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 cmaxPerStageDescriptorSamplers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorSamplers, cmaxPerStageDescriptorSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSamplers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorSamplers_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 cmaxPerStageDescriptorUniformBuffers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorUniformBuffers, cmaxPerStageDescriptorUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUniformBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorUniformBuffers_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 cmaxPerStageDescriptorStorageBuffers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorStorageBuffers, cmaxPerStageDescriptorStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorStorageBuffers_allocs) + var cvertexCount_allocs *cgoAllocMap + ref2b5b67c4.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cvertexCount_allocs) - var cmaxPerStageDescriptorSampledImages_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorSampledImages, cmaxPerStageDescriptorSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSampledImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorSampledImages_allocs) + var cinstanceCount_allocs *cgoAllocMap + ref2b5b67c4.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cinstanceCount_allocs) - var cmaxPerStageDescriptorStorageImages_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorStorageImages, cmaxPerStageDescriptorStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorStorageImages_allocs) + var cfirstVertex_allocs *cgoAllocMap + ref2b5b67c4.firstVertex, cfirstVertex_allocs = (C.uint32_t)(x.FirstVertex), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cfirstVertex_allocs) - var cmaxPerStageDescriptorInputAttachments_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorInputAttachments, cmaxPerStageDescriptorInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorInputAttachments_allocs) + var cfirstInstance_allocs *cgoAllocMap + ref2b5b67c4.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cfirstInstance_allocs) - var cmaxPerStageResources_allocs *cgoAllocMap - ref7926795a.maxPerStageResources, cmaxPerStageResources_allocs = (C.uint32_t)(x.MaxPerStageResources), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageResources_allocs) + x.ref2b5b67c4 = ref2b5b67c4 + x.allocs2b5b67c4 = allocs2b5b67c4 + return ref2b5b67c4, allocs2b5b67c4 - 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 DrawIndirectCommand) PassValue() (C.VkDrawIndirectCommand, *cgoAllocMap) { + if x.ref2b5b67c4 != nil { + return *x.ref2b5b67c4, 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 *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 cmaxDescriptorSetStorageBuffers_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetStorageBuffers, cmaxDescriptorSetStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffers_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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cmaxDescriptorSetStorageBuffersDynamic_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetStorageBuffersDynamic, cmaxDescriptorSetStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffersDynamic), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffersDynamic_allocs) +const sizeOfImageSubresourceRangeValue = unsafe.Sizeof([1]C.VkImageSubresourceRange{}) - 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 *ImageSubresourceRange) Ref() *C.VkImageSubresourceRange { + if x == nil { + return nil + } + return x.ref5aa1126 +} - 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 *ImageSubresourceRange) Free() { + if x != nil && x.allocs5aa1126 != nil { + x.allocs5aa1126.(*cgoAllocMap).Free() + x.ref5aa1126 = nil + } +} - var cmaxDescriptorSetInputAttachments_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetInputAttachments, cmaxDescriptorSetInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetInputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetInputAttachments_allocs) +// 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 +} - 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 *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 cmaxVertexInputBindings_allocs *cgoAllocMap - ref7926795a.maxVertexInputBindings, cmaxVertexInputBindings_allocs = (C.uint32_t)(x.MaxVertexInputBindings), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputBindings_allocs) + var caspectMask_allocs *cgoAllocMap + ref5aa1126.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs5aa1126.Borrow(caspectMask_allocs) - var cmaxVertexInputAttributeOffset_allocs *cgoAllocMap - ref7926795a.maxVertexInputAttributeOffset, cmaxVertexInputAttributeOffset_allocs = (C.uint32_t)(x.MaxVertexInputAttributeOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputAttributeOffset_allocs) + var cbaseMipLevel_allocs *cgoAllocMap + ref5aa1126.baseMipLevel, cbaseMipLevel_allocs = (C.uint32_t)(x.BaseMipLevel), cgoAllocsUnknown + allocs5aa1126.Borrow(cbaseMipLevel_allocs) - var cmaxVertexInputBindingStride_allocs *cgoAllocMap - ref7926795a.maxVertexInputBindingStride, cmaxVertexInputBindingStride_allocs = (C.uint32_t)(x.MaxVertexInputBindingStride), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputBindingStride_allocs) + var clevelCount_allocs *cgoAllocMap + ref5aa1126.levelCount, clevelCount_allocs = (C.uint32_t)(x.LevelCount), cgoAllocsUnknown + allocs5aa1126.Borrow(clevelCount_allocs) - var cmaxVertexOutputComponents_allocs *cgoAllocMap - ref7926795a.maxVertexOutputComponents, cmaxVertexOutputComponents_allocs = (C.uint32_t)(x.MaxVertexOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexOutputComponents_allocs) + var cbaseArrayLayer_allocs *cgoAllocMap + ref5aa1126.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocs5aa1126.Borrow(cbaseArrayLayer_allocs) - var cmaxTessellationGenerationLevel_allocs *cgoAllocMap - ref7926795a.maxTessellationGenerationLevel, cmaxTessellationGenerationLevel_allocs = (C.uint32_t)(x.MaxTessellationGenerationLevel), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationGenerationLevel_allocs) + var clayerCount_allocs *cgoAllocMap + ref5aa1126.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocs5aa1126.Borrow(clayerCount_allocs) - var cmaxTessellationPatchSize_allocs *cgoAllocMap + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfApplicationInfoValue = unsafe.Sizeof([1]C.VkApplicationInfo{}) + +// unpackPCharString copies the data from Go string as *C.char. +func unpackPCharString(str string) (*C.char, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CString(str)) + allocs.Add(mem0) + return (*C.char)(mem0), allocs +} + +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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 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 = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDeviceQueueCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueCreateInfo{}) + +// copyPFloatBytes copies the data from Go slice as *C.float. +func copyPFloatBytes(slice *sliceHeader) (*C.float, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfFloatValue) * slice.Len, + Cap: int(sizeOfFloatValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.float)(mem0), allocs +} + +// allocFloatMemory allocates memory for type C.float in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFloatMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFloatValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfFloatValue = unsafe.Sizeof([1]C.float{}) + +// 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 = copyPFloatBytes((*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfSubmitInfoValue = unsafe.Sizeof([1]C.VkSubmitInfo{}) + +// copyPSemaphoreBytes copies the data from Go slice as *C.VkSemaphore. +func copyPSemaphoreBytes(slice *sliceHeader) (*C.VkSemaphore, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfSemaphoreValue) * slice.Len, + Cap: int(sizeOfSemaphoreValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkSemaphore)(mem0), allocs +} + +// allocSemaphoreMemory allocates memory for type C.VkSemaphore in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfSemaphoreValue = unsafe.Sizeof([1]C.VkSemaphore{}) + +// copyPPipelineStageFlagsBytes copies the data from Go slice as *C.VkPipelineStageFlags. +func copyPPipelineStageFlagsBytes(slice *sliceHeader) (*C.VkPipelineStageFlags, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfPipelineStageFlagsValue) * slice.Len, + Cap: int(sizeOfPipelineStageFlagsValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkPipelineStageFlags)(mem0), allocs +} + +// allocPipelineStageFlagsMemory allocates memory for type C.VkPipelineStageFlags in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineStageFlagsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineStageFlagsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineStageFlagsValue = unsafe.Sizeof([1]C.VkPipelineStageFlags{}) + +// copyPCommandBufferBytes copies the data from Go slice as *C.VkCommandBuffer. +func copyPCommandBufferBytes(slice *sliceHeader) (*C.VkCommandBuffer, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfCommandBufferValue) * slice.Len, + Cap: int(sizeOfCommandBufferValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkCommandBuffer)(mem0), allocs +} + +// allocCommandBufferMemory allocates memory for type C.VkCommandBuffer in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfCommandBufferValue = unsafe.Sizeof([1]C.VkCommandBuffer{}) + +// 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 = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + allocs22884025.Borrow(cpWaitSemaphores_allocs) + + var cpWaitDstStageMask_allocs *cgoAllocMap + ref22884025.pWaitDstStageMask, cpWaitDstStageMask_allocs = copyPPipelineStageFlagsBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask))) + 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 = copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers))) + 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 = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + 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 = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfBufferCreateInfoValue = unsafe.Sizeof([1]C.VkBufferCreateInfo{}) + +// copyPUint32_tBytes copies the data from Go slice as *C.uint32_t. +func copyPUint32_tBytes(slice *sliceHeader) (*C.uint32_t, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfUint32_tValue) * slice.Len, + Cap: int(sizeOfUint32_tValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.uint32_t)(mem0), allocs +} + +// allocUint32_tMemory allocates memory for type C.uint32_t in C. +// The caller is responsible for freeing the this memory via C.free. +func allocUint32_tMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfUint32_tValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfUint32_tValue = unsafe.Sizeof([1]C.uint32_t{}) + +// 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCode))) + 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 = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineMultisampleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineMultisampleStateCreateInfo{}) + +// copyPSampleMaskBytes copies the data from Go slice as *C.VkSampleMask. +func copyPSampleMaskBytes(slice *sliceHeader) (*C.VkSampleMask, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfSampleMaskValue) * slice.Len, + Cap: int(sizeOfSampleMaskValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkSampleMask)(mem0), allocs +} + +// allocSampleMaskMemory allocates memory for type C.VkSampleMask in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSampleMaskMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleMaskValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfSampleMaskValue = unsafe.Sizeof([1]C.VkSampleMask{}) + +// 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 = copyPSampleMaskBytes((*sliceHeader)(unsafe.Pointer(&x.PSampleMask))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineDynamicStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDynamicStateCreateInfo{}) + +// copyPDynamicStateBytes copies the data from Go slice as *C.VkDynamicState. +func copyPDynamicStateBytes(slice *sliceHeader) (*C.VkDynamicState, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDynamicStateValue) * slice.Len, + Cap: int(sizeOfDynamicStateValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDynamicState)(mem0), allocs +} + +// allocDynamicStateMemory allocates memory for type C.VkDynamicState in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDynamicStateMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDynamicStateValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDynamicStateValue = unsafe.Sizeof([1]C.VkDynamicState{}) + +// 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 = copyPDynamicStateBytes((*sliceHeader)(unsafe.Pointer(&x.PDynamicStates))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLayoutCreateInfo{}) + +// copyPDescriptorSetLayoutBytes copies the data from Go slice as *C.VkDescriptorSetLayout. +func copyPDescriptorSetLayoutBytes(slice *sliceHeader) (*C.VkDescriptorSetLayout, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDescriptorSetLayoutValue) * slice.Len, + Cap: int(sizeOfDescriptorSetLayoutValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDescriptorSetLayout)(mem0), allocs +} + +// allocDescriptorSetLayoutMemory allocates memory for type C.VkDescriptorSetLayout in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetLayoutMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDescriptorSetLayoutValue = unsafe.Sizeof([1]C.VkDescriptorSetLayout{}) + +// 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(allocs, func(a *cgoAllocMap) { + go a.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 = copyPDescriptorSetLayoutBytes((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPDescriptorSetLayoutBytes((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDescriptorSetLayoutBindingValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBinding{}) + +// copyPSamplerBytes copies the data from Go slice as *C.VkSampler. +func copyPSamplerBytes(slice *sliceHeader) (*C.VkSampler, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfSamplerValue) * slice.Len, + Cap: int(sizeOfSamplerValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkSampler)(mem0), allocs +} + +// allocSamplerMemory allocates memory for type C.VkSampler in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfSamplerValue = unsafe.Sizeof([1]C.VkSampler{}) + +// 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 = copyPSamplerBytes((*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 +} + +// copyPBufferViewBytes copies the data from Go slice as *C.VkBufferView. +func copyPBufferViewBytes(slice *sliceHeader) (*C.VkBufferView, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfBufferViewValue) * slice.Len, + Cap: int(sizeOfBufferViewValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkBufferView)(mem0), allocs +} + +// allocBufferViewMemory allocates memory for type C.VkBufferView in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferViewMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferViewValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfBufferViewValue = unsafe.Sizeof([1]C.VkBufferView{}) + +// 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 = copyPBufferViewBytes((*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfFramebufferCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferCreateInfo{}) + +// copyPImageViewBytes copies the data from Go slice as *C.VkImageView. +func copyPImageViewBytes(slice *sliceHeader) (*C.VkImageView, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfImageViewValue) * slice.Len, + Cap: int(sizeOfImageViewValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkImageView)(mem0), allocs +} + +// allocImageViewMemory allocates memory for type C.VkImageView in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageViewMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfImageViewValue = unsafe.Sizeof([1]C.VkImageView{}) + +// 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 = copyPImageViewBytes((*sliceHeader)(unsafe.Pointer(&x.PAttachments))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassBeginInfo{}) + +// copyPClearValueBytes copies the data from Go slice as *C.VkClearValue. +func copyPClearValueBytes(slice *sliceHeader) (*C.VkClearValue, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfClearValueValue) * slice.Len, + Cap: int(sizeOfClearValueValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkClearValue)(mem0), allocs +} + +// allocClearValueMemory allocates memory for type C.VkClearValue in C. +// The caller is responsible for freeing the this memory via C.free. +func allocClearValueMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearValueValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfClearValueValue = unsafe.Sizeof([1]C.VkClearValue{}) + +// 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 = copyPClearValueBytes((*sliceHeader)(unsafe.Pointer(&x.PClearValues))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices))) + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks))) + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDeviceGroupDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupDeviceCreateInfo{}) + +// copyPPhysicalDeviceBytes copies the data from Go slice as *C.VkPhysicalDevice. +func copyPPhysicalDeviceBytes(slice *sliceHeader) (*C.VkPhysicalDevice, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfPhysicalDeviceValue) * slice.Len, + Cap: int(sizeOfPhysicalDeviceValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkPhysicalDevice)(mem0), allocs +} + +// allocPhysicalDeviceMemory allocates memory for type C.VkPhysicalDevice in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPhysicalDeviceValue = unsafe.Sizeof([1]C.VkPhysicalDevice{}) + +// 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 = copyPPhysicalDeviceBytes((*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfRenderPassMultiviewCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassMultiviewCreateInfo{}) + +// copyPInt32_tBytes copies the data from Go slice as *C.int32_t. +func copyPInt32_tBytes(slice *sliceHeader) (*C.int32_t, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfInt32_tValue) * slice.Len, + Cap: int(sizeOfInt32_tValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.int32_t)(mem0), allocs +} + +// allocInt32_tMemory allocates memory for type C.int32_t in C. +// The caller is responsible for freeing the this memory via C.free. +func allocInt32_tMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInt32_tValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfInt32_tValue = unsafe.Sizeof([1]C.int32_t{}) + +// 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PViewMasks))) + 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 = copyPInt32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PViewOffsets))) + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = (uint32)(x.refabf78fb7.offset) + x.Stride = (uint32)(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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfImageFormatListCreateInfoValue = unsafe.Sizeof([1]C.VkImageFormatListCreateInfo{}) + +// copyPFormatBytes copies the data from Go slice as *C.VkFormat. +func copyPFormatBytes(slice *sliceHeader) (*C.VkFormat, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfFormatValue) * slice.Len, + Cap: int(sizeOfFormatValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkFormat)(mem0), allocs +} + +// allocFormatMemory allocates memory for type C.VkFormat in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFormatMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfFormatValue = unsafe.Sizeof([1]C.VkFormat{}) + +// 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 = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PViewFormats))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBindingFlagsCreateInfo{}) + +// copyPDescriptorBindingFlagsBytes copies the data from Go slice as *C.VkDescriptorBindingFlags. +func copyPDescriptorBindingFlagsBytes(slice *sliceHeader) (*C.VkDescriptorBindingFlags, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDescriptorBindingFlagsValue) * slice.Len, + Cap: int(sizeOfDescriptorBindingFlagsValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDescriptorBindingFlags)(mem0), allocs +} + +// allocDescriptorBindingFlagsMemory allocates memory for type C.VkDescriptorBindingFlags in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorBindingFlagsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBindingFlagsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDescriptorBindingFlagsValue = unsafe.Sizeof([1]C.VkDescriptorBindingFlags{}) + +// 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 = copyPDescriptorBindingFlagsBytes((*sliceHeader)(unsafe.Pointer(&x.PBindingFlags))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PViewFormats))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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(allocs, func(a *cgoAllocMap) { + go a.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 = copyPImageViewBytes((*sliceHeader)(unsafe.Pointer(&x.PAttachments))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cmaxTessellationControlPerVertexOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlPerVertexOutputComponents, cmaxTessellationControlPerVertexOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerVertexOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlPerVertexOutputComponents_allocs) +const sizeOfPhysicalDeviceShaderSubgroupExtendedTypesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures{}) - var cmaxTessellationControlPerPatchOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlPerPatchOutputComponents, cmaxTessellationControlPerPatchOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerPatchOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlPerPatchOutputComponents_allocs) +// 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 +} - var cmaxTessellationControlTotalOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlTotalOutputComponents, cmaxTessellationControlTotalOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlTotalOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlTotalOutputComponents_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 *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) Free() { + if x != nil && x.allocs3bdcd2a2 != nil { + x.allocs3bdcd2a2.(*cgoAllocMap).Free() + x.ref3bdcd2a2 = nil + } +} - var cmaxTessellationEvaluationInputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationEvaluationInputComponents, cmaxTessellationEvaluationInputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationEvaluationInputComponents_allocs) +// 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 +} - var cmaxTessellationEvaluationOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationEvaluationOutputComponents, cmaxTessellationEvaluationOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationEvaluationOutputComponents_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 *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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfTimelineSemaphoreSubmitInfoValue = unsafe.Sizeof([1]C.VkTimelineSemaphoreSubmitInfo{}) + +// copyPUint64_tBytes copies the data from Go slice as *C.uint64_t. +func copyPUint64_tBytes(slice *sliceHeader) (*C.uint64_t, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfUint64_tValue) * slice.Len, + Cap: int(sizeOfUint64_tValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.uint64_t)(mem0), allocs +} + +// allocUint64_tMemory allocates memory for type C.uint64_t in C. +// The caller is responsible for freeing the this memory via C.free. +func allocUint64_tMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfUint64_tValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfUint64_tValue = unsafe.Sizeof([1]C.uint64_t{}) + +// 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 = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreValues))) + 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 = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreValues))) + 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 +} - var cmaxGeometryShaderInvocations_allocs *cgoAllocMap - ref7926795a.maxGeometryShaderInvocations, cmaxGeometryShaderInvocations_allocs = (C.uint32_t)(x.MaxGeometryShaderInvocations), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryShaderInvocations_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 *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 cmaxGeometryInputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryInputComponents, cmaxGeometryInputComponents_allocs = (C.uint32_t)(x.MaxGeometryInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryInputComponents_allocs) + var csType_allocs *cgoAllocMap + ref5e4f71e8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e4f71e8.Borrow(csType_allocs) - var cmaxGeometryOutputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryOutputComponents, cmaxGeometryOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryOutputComponents_allocs) + var cpNext_allocs *cgoAllocMap + ref5e4f71e8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cpNext_allocs) - var cmaxGeometryOutputVertices_allocs *cgoAllocMap - ref7926795a.maxGeometryOutputVertices, cmaxGeometryOutputVertices_allocs = (C.uint32_t)(x.MaxGeometryOutputVertices), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryOutputVertices_allocs) + var cflags_allocs *cgoAllocMap + ref5e4f71e8.flags, cflags_allocs = (C.VkSemaphoreWaitFlags)(x.Flags), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cflags_allocs) - var cmaxGeometryTotalOutputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryTotalOutputComponents, cmaxGeometryTotalOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryTotalOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryTotalOutputComponents_allocs) + var csemaphoreCount_allocs *cgoAllocMap + ref5e4f71e8.semaphoreCount, csemaphoreCount_allocs = (C.uint32_t)(x.SemaphoreCount), cgoAllocsUnknown + allocs5e4f71e8.Borrow(csemaphoreCount_allocs) - var cmaxFragmentInputComponents_allocs *cgoAllocMap - ref7926795a.maxFragmentInputComponents, cmaxFragmentInputComponents_allocs = (C.uint32_t)(x.MaxFragmentInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentInputComponents_allocs) + var cpSemaphores_allocs *cgoAllocMap + ref5e4f71e8.pSemaphores, cpSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSemaphores))) + allocs5e4f71e8.Borrow(cpSemaphores_allocs) - var cmaxFragmentOutputAttachments_allocs *cgoAllocMap - ref7926795a.maxFragmentOutputAttachments, cmaxFragmentOutputAttachments_allocs = (C.uint32_t)(x.MaxFragmentOutputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentOutputAttachments_allocs) + var cpValues_allocs *cgoAllocMap + ref5e4f71e8.pValues, cpValues_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PValues))) + allocs5e4f71e8.Borrow(cpValues_allocs) - var cmaxFragmentDualSrcAttachments_allocs *cgoAllocMap - ref7926795a.maxFragmentDualSrcAttachments, cmaxFragmentDualSrcAttachments_allocs = (C.uint32_t)(x.MaxFragmentDualSrcAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentDualSrcAttachments_allocs) + x.ref5e4f71e8 = ref5e4f71e8 + x.allocs5e4f71e8 = allocs5e4f71e8 + return ref5e4f71e8, allocs5e4f71e8 - 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) +// 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 +} - var cmaxComputeWorkGroupCount_allocs *cgoAllocMap - ref7926795a.maxComputeWorkGroupCount, cmaxComputeWorkGroupCount_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxComputeWorkGroupCount)), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeWorkGroupCount_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 = ? - var cmaxComputeWorkGroupInvocations_allocs *cgoAllocMap - ref7926795a.maxComputeWorkGroupInvocations, cmaxComputeWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxComputeWorkGroupInvocations), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeWorkGroupInvocations_allocs) + hxf5d30cf := (*sliceHeader)(unsafe.Pointer(&x.PValues)) + hxf5d30cf.Data = unsafe.Pointer(x.ref5e4f71e8.pValues) + hxf5d30cf.Cap = 0x7fffffff + // hxf5d30cf.Len = ? - 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) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var csubTexelPrecisionBits_allocs *cgoAllocMap - ref7926795a.subTexelPrecisionBits, csubTexelPrecisionBits_allocs = (C.uint32_t)(x.SubTexelPrecisionBits), cgoAllocsUnknown - allocs7926795a.Borrow(csubTexelPrecisionBits_allocs) +const sizeOfSemaphoreSignalInfoValue = unsafe.Sizeof([1]C.VkSemaphoreSignalInfo{}) - var cmipmapPrecisionBits_allocs *cgoAllocMap - ref7926795a.mipmapPrecisionBits, cmipmapPrecisionBits_allocs = (C.uint32_t)(x.MipmapPrecisionBits), cgoAllocsUnknown - allocs7926795a.Borrow(cmipmapPrecisionBits_allocs) +// 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 +} - var cmaxDrawIndexedIndexValue_allocs *cgoAllocMap - ref7926795a.maxDrawIndexedIndexValue, cmaxDrawIndexedIndexValue_allocs = (C.uint32_t)(x.MaxDrawIndexedIndexValue), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDrawIndexedIndexValue_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 *SemaphoreSignalInfo) Free() { + if x != nil && x.allocs126d16a2 != nil { + x.allocs126d16a2.(*cgoAllocMap).Free() + x.ref126d16a2 = nil + } +} - var cmaxDrawIndirectCount_allocs *cgoAllocMap - ref7926795a.maxDrawIndirectCount, cmaxDrawIndirectCount_allocs = (C.uint32_t)(x.MaxDrawIndirectCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDrawIndirectCount_allocs) +// 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 +} - var cmaxSamplerLodBias_allocs *cgoAllocMap - ref7926795a.maxSamplerLodBias, cmaxSamplerLodBias_allocs = (C.float)(x.MaxSamplerLodBias), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerLodBias_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 *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 cmaxSamplerAnisotropy_allocs *cgoAllocMap - ref7926795a.maxSamplerAnisotropy, cmaxSamplerAnisotropy_allocs = (C.float)(x.MaxSamplerAnisotropy), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerAnisotropy_allocs) + var csType_allocs *cgoAllocMap + ref126d16a2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs126d16a2.Borrow(csType_allocs) - var cmaxViewports_allocs *cgoAllocMap - ref7926795a.maxViewports, cmaxViewports_allocs = (C.uint32_t)(x.MaxViewports), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxViewports_allocs) + var cpNext_allocs *cgoAllocMap + ref126d16a2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs126d16a2.Borrow(cpNext_allocs) - var cmaxViewportDimensions_allocs *cgoAllocMap - ref7926795a.maxViewportDimensions, cmaxViewportDimensions_allocs = *(*[2]C.uint32_t)(unsafe.Pointer(&x.MaxViewportDimensions)), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxViewportDimensions_allocs) + var csemaphore_allocs *cgoAllocMap + ref126d16a2.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs126d16a2.Borrow(csemaphore_allocs) - var cviewportBoundsRange_allocs *cgoAllocMap - ref7926795a.viewportBoundsRange, cviewportBoundsRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.ViewportBoundsRange)), cgoAllocsUnknown - allocs7926795a.Borrow(cviewportBoundsRange_allocs) + var cvalue_allocs *cgoAllocMap + ref126d16a2.value, cvalue_allocs = (C.uint64_t)(x.Value), cgoAllocsUnknown + allocs126d16a2.Borrow(cvalue_allocs) - var cviewportSubPixelBits_allocs *cgoAllocMap - ref7926795a.viewportSubPixelBits, cviewportSubPixelBits_allocs = (C.uint32_t)(x.ViewportSubPixelBits), cgoAllocsUnknown - allocs7926795a.Borrow(cviewportSubPixelBits_allocs) + x.ref126d16a2 = ref126d16a2 + x.allocs126d16a2 = allocs126d16a2 + return ref126d16a2, allocs126d16a2 - 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) +// 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 +} - var cminUniformBufferOffsetAlignment_allocs *cgoAllocMap - ref7926795a.minUniformBufferOffsetAlignment, cminUniformBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinUniformBufferOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminUniformBufferOffsetAlignment_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) +} - var cminStorageBufferOffsetAlignment_allocs *cgoAllocMap - ref7926795a.minStorageBufferOffsetAlignment, cminStorageBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinStorageBufferOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminStorageBufferOffsetAlignment_allocs) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cminTexelOffset_allocs *cgoAllocMap - ref7926795a.minTexelOffset, cminTexelOffset_allocs = (C.int32_t)(x.MinTexelOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminTexelOffset_allocs) +const sizeOfPhysicalDeviceBufferDeviceAddressFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBufferDeviceAddressFeatures{}) - var cmaxTexelOffset_allocs *cgoAllocMap - ref7926795a.maxTexelOffset, cmaxTexelOffset_allocs = (C.uint32_t)(x.MaxTexelOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelOffset_allocs) +// 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 +} - var cminTexelGatherOffset_allocs *cgoAllocMap - ref7926795a.minTexelGatherOffset, cminTexelGatherOffset_allocs = (C.int32_t)(x.MinTexelGatherOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminTexelGatherOffset_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 *PhysicalDeviceBufferDeviceAddressFeatures) Free() { + if x != nil && x.allocs13b242c3 != nil { + x.allocs13b242c3.(*cgoAllocMap).Free() + x.ref13b242c3 = nil + } +} - var cmaxTexelGatherOffset_allocs *cgoAllocMap - ref7926795a.maxTexelGatherOffset, cmaxTexelGatherOffset_allocs = (C.uint32_t)(x.MaxTexelGatherOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelGatherOffset_allocs) +// 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 +} - var cminInterpolationOffset_allocs *cgoAllocMap - ref7926795a.minInterpolationOffset, cminInterpolationOffset_allocs = (C.float)(x.MinInterpolationOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminInterpolationOffset_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 *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 cmaxInterpolationOffset_allocs *cgoAllocMap - ref7926795a.maxInterpolationOffset, cmaxInterpolationOffset_allocs = (C.float)(x.MaxInterpolationOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxInterpolationOffset_allocs) + var csType_allocs *cgoAllocMap + ref13b242c3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs13b242c3.Borrow(csType_allocs) - var csubPixelInterpolationOffsetBits_allocs *cgoAllocMap - ref7926795a.subPixelInterpolationOffsetBits, csubPixelInterpolationOffsetBits_allocs = (C.uint32_t)(x.SubPixelInterpolationOffsetBits), cgoAllocsUnknown - allocs7926795a.Borrow(csubPixelInterpolationOffsetBits_allocs) + var cpNext_allocs *cgoAllocMap + ref13b242c3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs13b242c3.Borrow(cpNext_allocs) - var cmaxFramebufferWidth_allocs *cgoAllocMap - ref7926795a.maxFramebufferWidth, cmaxFramebufferWidth_allocs = (C.uint32_t)(x.MaxFramebufferWidth), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferWidth_allocs) + var cbufferDeviceAddress_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddress_allocs) - var cmaxFramebufferHeight_allocs *cgoAllocMap - ref7926795a.maxFramebufferHeight, cmaxFramebufferHeight_allocs = (C.uint32_t)(x.MaxFramebufferHeight), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferHeight_allocs) + var cbufferDeviceAddressCaptureReplay_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddressCaptureReplay, cbufferDeviceAddressCaptureReplay_allocs = (C.VkBool32)(x.BufferDeviceAddressCaptureReplay), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddressCaptureReplay_allocs) - var cmaxFramebufferLayers_allocs *cgoAllocMap - ref7926795a.maxFramebufferLayers, cmaxFramebufferLayers_allocs = (C.uint32_t)(x.MaxFramebufferLayers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferLayers_allocs) + var cbufferDeviceAddressMultiDevice_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddressMultiDevice, cbufferDeviceAddressMultiDevice_allocs = (C.VkBool32)(x.BufferDeviceAddressMultiDevice), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddressMultiDevice_allocs) - var cframebufferColorSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferColorSampleCounts, cframebufferColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferColorSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferColorSampleCounts_allocs) + x.ref13b242c3 = ref13b242c3 + x.allocs13b242c3 = allocs13b242c3 + return ref13b242c3, allocs13b242c3 - 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) +// 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 +} - var cframebufferNoAttachmentsSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferNoAttachmentsSampleCounts, cframebufferNoAttachmentsSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferNoAttachmentsSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferNoAttachmentsSampleCounts_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) +} - var cmaxColorAttachments_allocs *cgoAllocMap - ref7926795a.maxColorAttachments, cmaxColorAttachments_allocs = (C.uint32_t)(x.MaxColorAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxColorAttachments_allocs) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var csampledImageColorSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageColorSampleCounts, csampledImageColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageColorSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageColorSampleCounts_allocs) +const sizeOfBufferDeviceAddressInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressInfo{}) - var csampledImageIntegerSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageIntegerSampleCounts, csampledImageIntegerSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageIntegerSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageIntegerSampleCounts_allocs) +// 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 +} - var csampledImageDepthSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageDepthSampleCounts, csampledImageDepthSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageDepthSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageDepthSampleCounts_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 *BufferDeviceAddressInfo) Free() { + if x != nil && x.allocs347b43e3 != nil { + x.allocs347b43e3.(*cgoAllocMap).Free() + x.ref347b43e3 = nil + } +} - var csampledImageStencilSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageStencilSampleCounts, csampledImageStencilSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageStencilSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageStencilSampleCounts_allocs) +// 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 +} - var cstorageImageSampleCounts_allocs *cgoAllocMap - ref7926795a.storageImageSampleCounts, cstorageImageSampleCounts_allocs = (C.VkSampleCountFlags)(x.StorageImageSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cstorageImageSampleCounts_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 *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 cmaxSampleMaskWords_allocs *cgoAllocMap - ref7926795a.maxSampleMaskWords, cmaxSampleMaskWords_allocs = (C.uint32_t)(x.MaxSampleMaskWords), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSampleMaskWords_allocs) + var csType_allocs *cgoAllocMap + ref347b43e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs347b43e3.Borrow(csType_allocs) - var ctimestampComputeAndGraphics_allocs *cgoAllocMap - ref7926795a.timestampComputeAndGraphics, ctimestampComputeAndGraphics_allocs = (C.VkBool32)(x.TimestampComputeAndGraphics), cgoAllocsUnknown - allocs7926795a.Borrow(ctimestampComputeAndGraphics_allocs) + var cpNext_allocs *cgoAllocMap + ref347b43e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs347b43e3.Borrow(cpNext_allocs) - var ctimestampPeriod_allocs *cgoAllocMap - ref7926795a.timestampPeriod, ctimestampPeriod_allocs = (C.float)(x.TimestampPeriod), cgoAllocsUnknown - allocs7926795a.Borrow(ctimestampPeriod_allocs) + var cbuffer_allocs *cgoAllocMap + ref347b43e3.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs347b43e3.Borrow(cbuffer_allocs) - var cmaxClipDistances_allocs *cgoAllocMap - ref7926795a.maxClipDistances, cmaxClipDistances_allocs = (C.uint32_t)(x.MaxClipDistances), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxClipDistances_allocs) + x.ref347b43e3 = ref347b43e3 + x.allocs347b43e3 = allocs347b43e3 + return ref347b43e3, allocs347b43e3 - 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) +// 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 +} - var cdiscreteQueuePriorities_allocs *cgoAllocMap - ref7926795a.discreteQueuePriorities, cdiscreteQueuePriorities_allocs = (C.uint32_t)(x.DiscreteQueuePriorities), cgoAllocsUnknown - allocs7926795a.Borrow(cdiscreteQueuePriorities_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)) +} - var cpointSizeRange_allocs *cgoAllocMap - ref7926795a.pointSizeRange, cpointSizeRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.PointSizeRange)), cgoAllocsUnknown - allocs7926795a.Borrow(cpointSizeRange_allocs) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var clineWidthRange_allocs *cgoAllocMap - ref7926795a.lineWidthRange, clineWidthRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.LineWidthRange)), cgoAllocsUnknown - allocs7926795a.Borrow(clineWidthRange_allocs) +const sizeOfBufferOpaqueCaptureAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferOpaqueCaptureAddressCreateInfo{}) - var cpointSizeGranularity_allocs *cgoAllocMap - ref7926795a.pointSizeGranularity, cpointSizeGranularity_allocs = (C.float)(x.PointSizeGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(cpointSizeGranularity_allocs) +// 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 +} - var clineWidthGranularity_allocs *cgoAllocMap - ref7926795a.lineWidthGranularity, clineWidthGranularity_allocs = (C.float)(x.LineWidthGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(clineWidthGranularity_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 *BufferOpaqueCaptureAddressCreateInfo) Free() { + if x != nil && x.allocsb0364ded != nil { + x.allocsb0364ded.(*cgoAllocMap).Free() + x.refb0364ded = nil + } +} - var cstrictLines_allocs *cgoAllocMap - ref7926795a.strictLines, cstrictLines_allocs = (C.VkBool32)(x.StrictLines), cgoAllocsUnknown - allocs7926795a.Borrow(cstrictLines_allocs) +// 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 +} - var cstandardSampleLocations_allocs *cgoAllocMap - ref7926795a.standardSampleLocations, cstandardSampleLocations_allocs = (C.VkBool32)(x.StandardSampleLocations), cgoAllocsUnknown - allocs7926795a.Borrow(cstandardSampleLocations_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 *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 coptimalBufferCopyOffsetAlignment_allocs *cgoAllocMap - ref7926795a.optimalBufferCopyOffsetAlignment, coptimalBufferCopyOffsetAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(coptimalBufferCopyOffsetAlignment_allocs) + var csType_allocs *cgoAllocMap + refb0364ded.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0364ded.Borrow(csType_allocs) - var coptimalBufferCopyRowPitchAlignment_allocs *cgoAllocMap - ref7926795a.optimalBufferCopyRowPitchAlignment, coptimalBufferCopyRowPitchAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyRowPitchAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(coptimalBufferCopyRowPitchAlignment_allocs) + var cpNext_allocs *cgoAllocMap + refb0364ded.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0364ded.Borrow(cpNext_allocs) - var cnonCoherentAtomSize_allocs *cgoAllocMap - ref7926795a.nonCoherentAtomSize, cnonCoherentAtomSize_allocs = (C.VkDeviceSize)(x.NonCoherentAtomSize), cgoAllocsUnknown - allocs7926795a.Borrow(cnonCoherentAtomSize_allocs) + var copaqueCaptureAddress_allocs *cgoAllocMap + refb0364ded.opaqueCaptureAddress, copaqueCaptureAddress_allocs = (C.uint64_t)(x.OpaqueCaptureAddress), cgoAllocsUnknown + allocsb0364ded.Borrow(copaqueCaptureAddress_allocs) - x.ref7926795a = ref7926795a - x.allocs7926795a = allocs7926795a - return ref7926795a, allocs7926795a + 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 PhysicalDeviceLimits) PassValue() (C.VkPhysicalDeviceLimits, *cgoAllocMap) { - if x.ref7926795a != nil { - return *x.ref7926795a, nil +func (x BufferOpaqueCaptureAddressCreateInfo) PassValue() (C.VkBufferOpaqueCaptureAddressCreateInfo, *cgoAllocMap) { + if x.refb0364ded != nil { + return *x.refb0364ded, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1563,201 +26625,181 @@ 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 *BufferOpaqueCaptureAddressCreateInfo) Deref() { + if x.refb0364ded == 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.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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + 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 } -// allocPhysicalDeviceSparsePropertiesMemory allocates memory for type C.VkPhysicalDeviceSparseProperties in 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 *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 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()) +func allocDeviceMemoryOpaqueCaptureAddressInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOpaqueCaptureAddressInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSparsePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseProperties{}) +const sizeOfDeviceMemoryOpaqueCaptureAddressInfoValue = unsafe.Sizeof([1]C.VkDeviceMemoryOpaqueCaptureAddressInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSparseProperties) Ref() *C.VkPhysicalDeviceSparseProperties { +func (x *DeviceMemoryOpaqueCaptureAddressInfo) Ref() *C.VkDeviceMemoryOpaqueCaptureAddressInfo { if x == nil { return nil } - return x.ref6d7c11e6 + 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 *PhysicalDeviceSparseProperties) Free() { - if x != nil && x.allocs6d7c11e6 != nil { - x.allocs6d7c11e6.(*cgoAllocMap).Free() - x.ref6d7c11e6 = nil +func (x *DeviceMemoryOpaqueCaptureAddressInfo) Free() { + if x != nil && x.allocsbbe30c6e != nil { + x.allocsbbe30c6e.(*cgoAllocMap).Free() + x.refbbe30c6e = nil } } -// NewPhysicalDeviceSparsePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceSparsePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSparseProperties { +func NewDeviceMemoryOpaqueCaptureAddressInfoRef(ref unsafe.Pointer) *DeviceMemoryOpaqueCaptureAddressInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceSparseProperties) - obj.ref6d7c11e6 = (*C.VkPhysicalDeviceSparseProperties)(unsafe.Pointer(ref)) + 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 *PhysicalDeviceSparseProperties) PassRef() (*C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { +func (x *DeviceMemoryOpaqueCaptureAddressInfo) PassRef() (*C.VkDeviceMemoryOpaqueCaptureAddressInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6d7c11e6 != nil { - return x.ref6d7c11e6, nil + } else if x.refbbe30c6e != nil { + return x.refbbe30c6e, 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) + membbe30c6e := allocDeviceMemoryOpaqueCaptureAddressInfoMemory(1) + refbbe30c6e := (*C.VkDeviceMemoryOpaqueCaptureAddressInfo)(membbe30c6e) + allocsbbe30c6e := new(cgoAllocMap) + allocsbbe30c6e.Add(membbe30c6e) - 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 csType_allocs *cgoAllocMap + refbbe30c6e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbe30c6e.Borrow(csType_allocs) - var cresidencyAlignedMipSize_allocs *cgoAllocMap - ref6d7c11e6.residencyAlignedMipSize, cresidencyAlignedMipSize_allocs = (C.VkBool32)(x.ResidencyAlignedMipSize), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyAlignedMipSize_allocs) + var cpNext_allocs *cgoAllocMap + refbbe30c6e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbe30c6e.Borrow(cpNext_allocs) - var cresidencyNonResidentStrict_allocs *cgoAllocMap - ref6d7c11e6.residencyNonResidentStrict, cresidencyNonResidentStrict_allocs = (C.VkBool32)(x.ResidencyNonResidentStrict), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyNonResidentStrict_allocs) + var cmemory_allocs *cgoAllocMap + refbbe30c6e.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocsbbe30c6e.Borrow(cmemory_allocs) - x.ref6d7c11e6 = ref6d7c11e6 - x.allocs6d7c11e6 = allocs6d7c11e6 - return ref6d7c11e6, allocs6d7c11e6 + 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 PhysicalDeviceSparseProperties) PassValue() (C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { - if x.ref6d7c11e6 != nil { - return *x.ref6d7c11e6, nil +func (x DeviceMemoryOpaqueCaptureAddressInfo) PassValue() (C.VkDeviceMemoryOpaqueCaptureAddressInfo, *cgoAllocMap) { + if x.refbbe30c6e != nil { + return *x.refbbe30c6e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1765,116 +26807,146 @@ 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 *DeviceMemoryOpaqueCaptureAddressInfo) Deref() { + if x.refbbe30c6e == 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.refbbe30c6e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbbe30c6e.pNext)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refbbe30c6e.memory)) } -// allocPhysicalDevicePropertiesMemory allocates memory for type C.VkPhysicalDeviceProperties in C. +// allocPhysicalDeviceVulkan13FeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkan13Features 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()) +func allocPhysicalDeviceVulkan13FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan13FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevicePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties{}) +const sizeOfPhysicalDeviceVulkan13FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan13Features{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProperties) Ref() *C.VkPhysicalDeviceProperties { +func (x *PhysicalDeviceVulkan13Features) Ref() *C.VkPhysicalDeviceVulkan13Features { if x == nil { return nil } - return x.ref1080ca9d + 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 *PhysicalDeviceProperties) Free() { - if x != nil && x.allocs1080ca9d != nil { - x.allocs1080ca9d.(*cgoAllocMap).Free() - x.ref1080ca9d = nil +func (x *PhysicalDeviceVulkan13Features) Free() { + if x != nil && x.allocsfbc57469 != nil { + x.allocsfbc57469.(*cgoAllocMap).Free() + x.reffbc57469 = nil } } -// NewPhysicalDevicePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDevicePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProperties { +func NewPhysicalDeviceVulkan13FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan13Features { if ref == nil { return nil } - obj := new(PhysicalDeviceProperties) - obj.ref1080ca9d = (*C.VkPhysicalDeviceProperties)(unsafe.Pointer(ref)) + 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 *PhysicalDeviceProperties) PassRef() (*C.VkPhysicalDeviceProperties, *cgoAllocMap) { +func (x *PhysicalDeviceVulkan13Features) PassRef() (*C.VkPhysicalDeviceVulkan13Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1080ca9d != nil { - return x.ref1080ca9d, nil + } else if x.reffbc57469 != nil { + return x.reffbc57469, nil } - mem1080ca9d := allocPhysicalDevicePropertiesMemory(1) - ref1080ca9d := (*C.VkPhysicalDeviceProperties)(mem1080ca9d) - allocs1080ca9d := new(cgoAllocMap) - allocs1080ca9d.Add(mem1080ca9d) + memfbc57469 := allocPhysicalDeviceVulkan13FeaturesMemory(1) + reffbc57469 := (*C.VkPhysicalDeviceVulkan13Features)(memfbc57469) + allocsfbc57469 := new(cgoAllocMap) + allocsfbc57469.Add(memfbc57469) - var capiVersion_allocs *cgoAllocMap - ref1080ca9d.apiVersion, capiVersion_allocs = (C.uint32_t)(x.ApiVersion), cgoAllocsUnknown - allocs1080ca9d.Borrow(capiVersion_allocs) + var csType_allocs *cgoAllocMap + reffbc57469.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfbc57469.Borrow(csType_allocs) - var cdriverVersion_allocs *cgoAllocMap - ref1080ca9d.driverVersion, cdriverVersion_allocs = (C.uint32_t)(x.DriverVersion), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdriverVersion_allocs) + var cpNext_allocs *cgoAllocMap + reffbc57469.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfbc57469.Borrow(cpNext_allocs) - var cvendorID_allocs *cgoAllocMap - ref1080ca9d.vendorID, cvendorID_allocs = (C.uint32_t)(x.VendorID), cgoAllocsUnknown - allocs1080ca9d.Borrow(cvendorID_allocs) + var crobustImageAccess_allocs *cgoAllocMap + reffbc57469.robustImageAccess, crobustImageAccess_allocs = (C.VkBool32)(x.RobustImageAccess), cgoAllocsUnknown + allocsfbc57469.Borrow(crobustImageAccess_allocs) - var cdeviceID_allocs *cgoAllocMap - ref1080ca9d.deviceID, cdeviceID_allocs = (C.uint32_t)(x.DeviceID), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceID_allocs) + var cinlineUniformBlock_allocs *cgoAllocMap + reffbc57469.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown + allocsfbc57469.Borrow(cinlineUniformBlock_allocs) - var cdeviceType_allocs *cgoAllocMap - ref1080ca9d.deviceType, cdeviceType_allocs = (C.VkPhysicalDeviceType)(x.DeviceType), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceType_allocs) + var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap + reffbc57469.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown + allocsfbc57469.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) - var cdeviceName_allocs *cgoAllocMap - ref1080ca9d.deviceName, cdeviceName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DeviceName)), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceName_allocs) + var cpipelineCreationCacheControl_allocs *cgoAllocMap + reffbc57469.pipelineCreationCacheControl, cpipelineCreationCacheControl_allocs = (C.VkBool32)(x.PipelineCreationCacheControl), cgoAllocsUnknown + allocsfbc57469.Borrow(cpipelineCreationCacheControl_allocs) - var cpipelineCacheUUID_allocs *cgoAllocMap - ref1080ca9d.pipelineCacheUUID, cpipelineCacheUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.PipelineCacheUUID)), cgoAllocsUnknown - allocs1080ca9d.Borrow(cpipelineCacheUUID_allocs) + var cprivateData_allocs *cgoAllocMap + reffbc57469.privateData, cprivateData_allocs = (C.VkBool32)(x.PrivateData), cgoAllocsUnknown + allocsfbc57469.Borrow(cprivateData_allocs) - var climits_allocs *cgoAllocMap - ref1080ca9d.limits, climits_allocs = x.Limits.PassValue() - allocs1080ca9d.Borrow(climits_allocs) + var cshaderDemoteToHelperInvocation_allocs *cgoAllocMap + reffbc57469.shaderDemoteToHelperInvocation, cshaderDemoteToHelperInvocation_allocs = (C.VkBool32)(x.ShaderDemoteToHelperInvocation), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderDemoteToHelperInvocation_allocs) - var csparseProperties_allocs *cgoAllocMap - ref1080ca9d.sparseProperties, csparseProperties_allocs = x.SparseProperties.PassValue() - allocs1080ca9d.Borrow(csparseProperties_allocs) + var cshaderTerminateInvocation_allocs *cgoAllocMap + reffbc57469.shaderTerminateInvocation, cshaderTerminateInvocation_allocs = (C.VkBool32)(x.ShaderTerminateInvocation), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderTerminateInvocation_allocs) - x.ref1080ca9d = ref1080ca9d - x.allocs1080ca9d = allocs1080ca9d - return ref1080ca9d, allocs1080ca9d + 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 PhysicalDeviceProperties) PassValue() (C.VkPhysicalDeviceProperties, *cgoAllocMap) { - if x.ref1080ca9d != nil { - return *x.ref1080ca9d, nil +func (x PhysicalDeviceVulkan13Features) PassValue() (C.VkPhysicalDeviceVulkan13Features, *cgoAllocMap) { + if x.reffbc57469 != nil { + return *x.reffbc57469, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1882,100 +26954,280 @@ 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 *PhysicalDeviceVulkan13Features) Deref() { + if x.reffbc57469 == 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. + 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 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()) +func allocPhysicalDeviceVulkan13PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan13PropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfQueueFamilyPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyProperties{}) +const sizeOfPhysicalDeviceVulkan13PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan13Properties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyProperties) Ref() *C.VkQueueFamilyProperties { +func (x *PhysicalDeviceVulkan13Properties) Ref() *C.VkPhysicalDeviceVulkan13Properties { if x == nil { return nil } - return x.refd538c446 + 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 *QueueFamilyProperties) Free() { - if x != nil && x.allocsd538c446 != nil { - x.allocsd538c446.(*cgoAllocMap).Free() - x.refd538c446 = nil +func (x *PhysicalDeviceVulkan13Properties) Free() { + if x != nil && x.allocs8a1ecf64 != nil { + x.allocs8a1ecf64.(*cgoAllocMap).Free() + x.ref8a1ecf64 = nil } } -// NewQueueFamilyPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewQueueFamilyPropertiesRef(ref unsafe.Pointer) *QueueFamilyProperties { +func NewPhysicalDeviceVulkan13PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan13Properties { if ref == nil { return nil } - obj := new(QueueFamilyProperties) - obj.refd538c446 = (*C.VkQueueFamilyProperties)(unsafe.Pointer(ref)) + 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 *QueueFamilyProperties) PassRef() (*C.VkQueueFamilyProperties, *cgoAllocMap) { +func (x *PhysicalDeviceVulkan13Properties) PassRef() (*C.VkPhysicalDeviceVulkan13Properties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd538c446 != nil { - return x.refd538c446, nil + } else if x.ref8a1ecf64 != nil { + return x.ref8a1ecf64, nil } - memd538c446 := allocQueueFamilyPropertiesMemory(1) - refd538c446 := (*C.VkQueueFamilyProperties)(memd538c446) - allocsd538c446 := new(cgoAllocMap) - allocsd538c446.Add(memd538c446) + mem8a1ecf64 := allocPhysicalDeviceVulkan13PropertiesMemory(1) + ref8a1ecf64 := (*C.VkPhysicalDeviceVulkan13Properties)(mem8a1ecf64) + allocs8a1ecf64 := new(cgoAllocMap) + allocs8a1ecf64.Add(mem8a1ecf64) - var cqueueFlags_allocs *cgoAllocMap - refd538c446.queueFlags, cqueueFlags_allocs = (C.VkQueueFlags)(x.QueueFlags), cgoAllocsUnknown - allocsd538c446.Borrow(cqueueFlags_allocs) + var csType_allocs *cgoAllocMap + ref8a1ecf64.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8a1ecf64.Borrow(csType_allocs) - var cqueueCount_allocs *cgoAllocMap - refd538c446.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown - allocsd538c446.Borrow(cqueueCount_allocs) + var cpNext_allocs *cgoAllocMap + ref8a1ecf64.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cpNext_allocs) - var ctimestampValidBits_allocs *cgoAllocMap - refd538c446.timestampValidBits, ctimestampValidBits_allocs = (C.uint32_t)(x.TimestampValidBits), cgoAllocsUnknown - allocsd538c446.Borrow(ctimestampValidBits_allocs) + var cminSubgroupSize_allocs *cgoAllocMap + ref8a1ecf64.minSubgroupSize, cminSubgroupSize_allocs = (C.uint32_t)(x.MinSubgroupSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cminSubgroupSize_allocs) - var cminImageTransferGranularity_allocs *cgoAllocMap - refd538c446.minImageTransferGranularity, cminImageTransferGranularity_allocs = x.MinImageTransferGranularity.PassValue() - allocsd538c446.Borrow(cminImageTransferGranularity_allocs) + var cmaxSubgroupSize_allocs *cgoAllocMap + ref8a1ecf64.maxSubgroupSize, cmaxSubgroupSize_allocs = (C.uint32_t)(x.MaxSubgroupSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxSubgroupSize_allocs) - x.refd538c446 = refd538c446 - x.allocsd538c446 = allocsd538c446 - return refd538c446, allocsd538c446 + 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 QueueFamilyProperties) PassValue() (C.VkQueueFamilyProperties, *cgoAllocMap) { - if x.refd538c446 != nil { - return *x.refd538c446, nil +func (x PhysicalDeviceVulkan13Properties) PassValue() (C.VkPhysicalDeviceVulkan13Properties, *cgoAllocMap) { + if x.ref8a1ecf64 != nil { + return *x.ref8a1ecf64, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1983,87 +27235,130 @@ 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 *PhysicalDeviceVulkan13Properties) Deref() { + if x.ref8a1ecf64 == 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)) -} - -// allocMemoryTypeMemory allocates memory for type C.VkMemoryType in C. + 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 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()) +func allocPipelineCreationFeedbackMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCreationFeedbackValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryTypeValue = unsafe.Sizeof([1]C.VkMemoryType{}) +const sizeOfPipelineCreationFeedbackValue = unsafe.Sizeof([1]C.VkPipelineCreationFeedback{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryType) Ref() *C.VkMemoryType { +func (x *PipelineCreationFeedback) Ref() *C.VkPipelineCreationFeedback { if x == nil { return nil } - return x.ref2f46e01d + 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 *MemoryType) Free() { - if x != nil && x.allocs2f46e01d != nil { - x.allocs2f46e01d.(*cgoAllocMap).Free() - x.ref2f46e01d = nil +func (x *PipelineCreationFeedback) Free() { + if x != nil && x.allocs98e30cfe != nil { + x.allocs98e30cfe.(*cgoAllocMap).Free() + x.ref98e30cfe = nil } } -// NewMemoryTypeRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewMemoryTypeRef(ref unsafe.Pointer) *MemoryType { +func NewPipelineCreationFeedbackRef(ref unsafe.Pointer) *PipelineCreationFeedback { if ref == nil { return nil } - obj := new(MemoryType) - obj.ref2f46e01d = (*C.VkMemoryType)(unsafe.Pointer(ref)) + 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 *MemoryType) PassRef() (*C.VkMemoryType, *cgoAllocMap) { +func (x *PipelineCreationFeedback) PassRef() (*C.VkPipelineCreationFeedback, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f46e01d != nil { - return x.ref2f46e01d, nil + } else if x.ref98e30cfe != nil { + return x.ref98e30cfe, nil } - mem2f46e01d := allocMemoryTypeMemory(1) - ref2f46e01d := (*C.VkMemoryType)(mem2f46e01d) - allocs2f46e01d := new(cgoAllocMap) - allocs2f46e01d.Add(mem2f46e01d) + mem98e30cfe := allocPipelineCreationFeedbackMemory(1) + ref98e30cfe := (*C.VkPipelineCreationFeedback)(mem98e30cfe) + allocs98e30cfe := new(cgoAllocMap) + allocs98e30cfe.Add(mem98e30cfe) - var cpropertyFlags_allocs *cgoAllocMap - ref2f46e01d.propertyFlags, cpropertyFlags_allocs = (C.VkMemoryPropertyFlags)(x.PropertyFlags), cgoAllocsUnknown - allocs2f46e01d.Borrow(cpropertyFlags_allocs) + var cflags_allocs *cgoAllocMap + ref98e30cfe.flags, cflags_allocs = (C.VkPipelineCreationFeedbackFlags)(x.Flags), cgoAllocsUnknown + allocs98e30cfe.Borrow(cflags_allocs) - var cheapIndex_allocs *cgoAllocMap - ref2f46e01d.heapIndex, cheapIndex_allocs = (C.uint32_t)(x.HeapIndex), cgoAllocsUnknown - allocs2f46e01d.Borrow(cheapIndex_allocs) + var cduration_allocs *cgoAllocMap + ref98e30cfe.duration, cduration_allocs = (C.uint64_t)(x.Duration), cgoAllocsUnknown + allocs98e30cfe.Borrow(cduration_allocs) - x.ref2f46e01d = ref2f46e01d - x.allocs2f46e01d = allocs2f46e01d - return ref2f46e01d, allocs2f46e01d + 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 MemoryType) PassValue() (C.VkMemoryType, *cgoAllocMap) { - if x.ref2f46e01d != nil { - return *x.ref2f46e01d, nil +func (x PipelineCreationFeedback) PassValue() (C.VkPipelineCreationFeedback, *cgoAllocMap) { + if x.ref98e30cfe != nil { + return *x.ref98e30cfe, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2071,85 +27366,135 @@ 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 *PipelineCreationFeedback) Deref() { + if x.ref98e30cfe == nil { return } - x.PropertyFlags = (MemoryPropertyFlags)(x.ref2f46e01d.propertyFlags) - x.HeapIndex = (uint32)(x.ref2f46e01d.heapIndex) + x.Flags = (PipelineCreationFeedbackFlags)(x.ref98e30cfe.flags) + x.Duration = (uint64)(x.ref98e30cfe.duration) } -// allocMemoryHeapMemory allocates memory for type C.VkMemoryHeap in C. +// allocPipelineCreationFeedbackCreateInfoMemory allocates memory for type C.VkPipelineCreationFeedbackCreateInfo 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()) +func allocPipelineCreationFeedbackCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCreationFeedbackCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryHeapValue = unsafe.Sizeof([1]C.VkMemoryHeap{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *MemoryHeap) Ref() *C.VkMemoryHeap { +func (x *PipelineCreationFeedbackCreateInfo) Ref() *C.VkPipelineCreationFeedbackCreateInfo { if x == nil { return nil } - return x.ref1eb195d5 + 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 *MemoryHeap) Free() { - if x != nil && x.allocs1eb195d5 != nil { - x.allocs1eb195d5.(*cgoAllocMap).Free() - x.ref1eb195d5 = nil +func (x *PipelineCreationFeedbackCreateInfo) Free() { + if x != nil && x.allocs4fcf7570 != nil { + x.allocs4fcf7570.(*cgoAllocMap).Free() + x.ref4fcf7570 = nil } } -// NewMemoryHeapRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewMemoryHeapRef(ref unsafe.Pointer) *MemoryHeap { +func NewPipelineCreationFeedbackCreateInfoRef(ref unsafe.Pointer) *PipelineCreationFeedbackCreateInfo { if ref == nil { return nil } - obj := new(MemoryHeap) - obj.ref1eb195d5 = (*C.VkMemoryHeap)(unsafe.Pointer(ref)) + 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 *MemoryHeap) PassRef() (*C.VkMemoryHeap, *cgoAllocMap) { +func (x *PipelineCreationFeedbackCreateInfo) PassRef() (*C.VkPipelineCreationFeedbackCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1eb195d5 != nil { - return x.ref1eb195d5, nil + } else if x.ref4fcf7570 != nil { + return x.ref4fcf7570, nil } - mem1eb195d5 := allocMemoryHeapMemory(1) - ref1eb195d5 := (*C.VkMemoryHeap)(mem1eb195d5) - allocs1eb195d5 := new(cgoAllocMap) - allocs1eb195d5.Add(mem1eb195d5) + mem4fcf7570 := allocPipelineCreationFeedbackCreateInfoMemory(1) + ref4fcf7570 := (*C.VkPipelineCreationFeedbackCreateInfo)(mem4fcf7570) + allocs4fcf7570 := new(cgoAllocMap) + allocs4fcf7570.Add(mem4fcf7570) - var csize_allocs *cgoAllocMap - ref1eb195d5.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs1eb195d5.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + ref4fcf7570.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4fcf7570.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref1eb195d5.flags, cflags_allocs = (C.VkMemoryHeapFlags)(x.Flags), cgoAllocsUnknown - allocs1eb195d5.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref4fcf7570.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4fcf7570.Borrow(cpNext_allocs) - x.ref1eb195d5 = ref1eb195d5 - x.allocs1eb195d5 = allocs1eb195d5 - return ref1eb195d5, allocs1eb195d5 + 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 MemoryHeap) PassValue() (C.VkMemoryHeap, *cgoAllocMap) { - if x.ref1eb195d5 != nil { - return *x.ref1eb195d5, nil +func (x PipelineCreationFeedbackCreateInfo) PassValue() (C.VkPipelineCreationFeedbackCreateInfo, *cgoAllocMap) { + if x.ref4fcf7570 != nil { + return *x.ref4fcf7570, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2157,171 +27502,199 @@ 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 *PipelineCreationFeedbackCreateInfo) Deref() { + if x.ref4fcf7570 == nil { return } - x.Size = (DeviceSize)(x.ref1eb195d5.size) - x.Flags = (MemoryHeapFlags)(x.ref1eb195d5.flags) + 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) } -// allocPhysicalDeviceMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryProperties in C. +// allocPhysicalDeviceShaderTerminateInvocationFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderTerminateInvocationFeatures 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()) +func allocPhysicalDeviceShaderTerminateInvocationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderTerminateInvocationFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties{}) +const sizeOfPhysicalDeviceShaderTerminateInvocationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderTerminateInvocationFeatures{}) -// 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 *PhysicalDeviceShaderTerminateInvocationFeatures) Ref() *C.VkPhysicalDeviceShaderTerminateInvocationFeatures { + if x == nil { + return nil } - return mem + return x.ref49451fcb } -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) +// Free invokes alloc map'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 } - 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()) +// 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 } - return mem + obj := new(PhysicalDeviceShaderTerminateInvocationFeatures) + obj.ref49451fcb = (*C.VkPhysicalDeviceShaderTerminateInvocationFeatures)(unsafe.Pointer(ref)) + return obj } -const sizeOfA16MemoryHeapValue = unsafe.Sizeof([1][16]C.VkMemoryHeap{}) +// PassRef returns the 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) -// 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() - }) + var csType_allocs *cgoAllocMap + ref49451fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs49451fcb.Borrow(csType_allocs) - 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) + 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 } - unpacked = *(*[16]C.VkMemoryHeap)(mem0) - return + ref, allocs := x.PassRef() + return *ref, allocs } -// 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)) +// Deref uses the underlying reference to C object and fills the wrapping struct with 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) } -// 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)) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + 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 *PhysicalDeviceMemoryProperties) Ref() *C.VkPhysicalDeviceMemoryProperties { +func (x *PhysicalDeviceToolProperties) Ref() *C.VkPhysicalDeviceToolProperties { if x == nil { return nil } - return x.ref3aabb5fd + 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 *PhysicalDeviceMemoryProperties) Free() { - if x != nil && x.allocs3aabb5fd != nil { - x.allocs3aabb5fd.(*cgoAllocMap).Free() - x.ref3aabb5fd = nil +func (x *PhysicalDeviceToolProperties) Free() { + if x != nil && x.allocs88f98ec3 != nil { + x.allocs88f98ec3.(*cgoAllocMap).Free() + x.ref88f98ec3 = nil } } -// NewPhysicalDeviceMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties { +func NewPhysicalDeviceToolPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceToolProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryProperties) - obj.ref3aabb5fd = (*C.VkPhysicalDeviceMemoryProperties)(unsafe.Pointer(ref)) + 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 *PhysicalDeviceMemoryProperties) PassRef() (*C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { +func (x *PhysicalDeviceToolProperties) PassRef() (*C.VkPhysicalDeviceToolProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3aabb5fd != nil { - return x.ref3aabb5fd, nil + } else if x.ref88f98ec3 != nil { + return x.ref88f98ec3, nil } - mem3aabb5fd := allocPhysicalDeviceMemoryPropertiesMemory(1) - ref3aabb5fd := (*C.VkPhysicalDeviceMemoryProperties)(mem3aabb5fd) - allocs3aabb5fd := new(cgoAllocMap) - allocs3aabb5fd.Add(mem3aabb5fd) + mem88f98ec3 := allocPhysicalDeviceToolPropertiesMemory(1) + ref88f98ec3 := (*C.VkPhysicalDeviceToolProperties)(mem88f98ec3) + allocs88f98ec3 := new(cgoAllocMap) + allocs88f98ec3.Add(mem88f98ec3) - var cmemoryTypeCount_allocs *cgoAllocMap - ref3aabb5fd.memoryTypeCount, cmemoryTypeCount_allocs = (C.uint32_t)(x.MemoryTypeCount), cgoAllocsUnknown - allocs3aabb5fd.Borrow(cmemoryTypeCount_allocs) + var csType_allocs *cgoAllocMap + ref88f98ec3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs88f98ec3.Borrow(csType_allocs) - var cmemoryTypes_allocs *cgoAllocMap - ref3aabb5fd.memoryTypes, cmemoryTypes_allocs = unpackA32MemoryType(x.MemoryTypes) - allocs3aabb5fd.Borrow(cmemoryTypes_allocs) + var cpNext_allocs *cgoAllocMap + ref88f98ec3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cpNext_allocs) - var cmemoryHeapCount_allocs *cgoAllocMap - ref3aabb5fd.memoryHeapCount, cmemoryHeapCount_allocs = (C.uint32_t)(x.MemoryHeapCount), cgoAllocsUnknown - allocs3aabb5fd.Borrow(cmemoryHeapCount_allocs) + var cname_allocs *cgoAllocMap + ref88f98ec3.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cname_allocs) - var cmemoryHeaps_allocs *cgoAllocMap - ref3aabb5fd.memoryHeaps, cmemoryHeaps_allocs = unpackA16MemoryHeap(x.MemoryHeaps) - allocs3aabb5fd.Borrow(cmemoryHeaps_allocs) + var cversion_allocs *cgoAllocMap + ref88f98ec3.version, cversion_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Version)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cversion_allocs) - x.ref3aabb5fd = ref3aabb5fd - x.allocs3aabb5fd = allocs3aabb5fd - return ref3aabb5fd, allocs3aabb5fd + 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 PhysicalDeviceMemoryProperties) PassValue() (C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { - if x.ref3aabb5fd != nil { - return *x.ref3aabb5fd, nil +func (x PhysicalDeviceToolProperties) PassValue() (C.VkPhysicalDeviceToolProperties, *cgoAllocMap) { + if x.ref88f98ec3 != nil { + return *x.ref88f98ec3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2329,103 +27702,94 @@ 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 *PhysicalDeviceToolProperties) Deref() { + if x.ref88f98ec3 == 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.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)) } -// allocDeviceQueueCreateInfoMemory allocates memory for type C.VkDeviceQueueCreateInfo in C. +// allocPhysicalDeviceShaderDemoteToHelperInvocationFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures 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()) +func allocPhysicalDeviceShaderDemoteToHelperInvocationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderDemoteToHelperInvocationFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceQueueCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueCreateInfo{}) +const sizeOfPhysicalDeviceShaderDemoteToHelperInvocationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueCreateInfo) Ref() *C.VkDeviceQueueCreateInfo { +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Ref() *C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { if x == nil { return nil } - return x.ref6087b30d + 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 *DeviceQueueCreateInfo) Free() { - if x != nil && x.allocs6087b30d != nil { - x.allocs6087b30d.(*cgoAllocMap).Free() - x.ref6087b30d = nil +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Free() { + if x != nil && x.allocs5eeeae89 != nil { + x.allocs5eeeae89.(*cgoAllocMap).Free() + x.ref5eeeae89 = nil } } -// NewDeviceQueueCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewDeviceQueueCreateInfoRef(ref unsafe.Pointer) *DeviceQueueCreateInfo { +func NewPhysicalDeviceShaderDemoteToHelperInvocationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDemoteToHelperInvocationFeatures { if ref == nil { return nil } - obj := new(DeviceQueueCreateInfo) - obj.ref6087b30d = (*C.VkDeviceQueueCreateInfo)(unsafe.Pointer(ref)) + 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 *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) +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 cqueueFamilyIndex_allocs *cgoAllocMap - ref6087b30d.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs6087b30d.Borrow(cqueueFamilyIndex_allocs) + var csType_allocs *cgoAllocMap + ref5eeeae89.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5eeeae89.Borrow(csType_allocs) - var cqueueCount_allocs *cgoAllocMap - ref6087b30d.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown - allocs6087b30d.Borrow(cqueueCount_allocs) + var cpNext_allocs *cgoAllocMap + ref5eeeae89.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5eeeae89.Borrow(cpNext_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 cshaderDemoteToHelperInvocation_allocs *cgoAllocMap + ref5eeeae89.shaderDemoteToHelperInvocation, cshaderDemoteToHelperInvocation_allocs = (C.VkBool32)(x.ShaderDemoteToHelperInvocation), cgoAllocsUnknown + allocs5eeeae89.Borrow(cshaderDemoteToHelperInvocation_allocs) - x.ref6087b30d = ref6087b30d - x.allocs6087b30d = allocs6087b30d - return ref6087b30d, allocs6087b30d + 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 DeviceQueueCreateInfo) PassValue() (C.VkDeviceQueueCreateInfo, *cgoAllocMap) { - if x.ref6087b30d != nil { - return *x.ref6087b30d, nil +func (x PhysicalDeviceShaderDemoteToHelperInvocationFeatures) PassValue() (C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, *cgoAllocMap) { + if x.ref5eeeae89 != nil { + return *x.ref5eeeae89, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2433,201 +27797,181 @@ 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 *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Deref() { + if x.ref5eeeae89 == 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.ref5eeeae89.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5eeeae89.pNext)) + x.ShaderDemoteToHelperInvocation = (Bool32)(x.ref5eeeae89.shaderDemoteToHelperInvocation) } -// allocDeviceCreateInfoMemory allocates memory for type C.VkDeviceCreateInfo in C. +// allocPhysicalDevicePrivateDataFeaturesMemory allocates memory for type C.VkPhysicalDevicePrivateDataFeatures 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()) +func allocPhysicalDevicePrivateDataFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrivateDataFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceCreateInfo{}) +const sizeOfPhysicalDevicePrivateDataFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrivateDataFeatures{}) -// unpackSDeviceQueueCreateInfo transforms a sliced Go data structure into plain C format. -func unpackSDeviceQueueCreateInfo(x []DeviceQueueCreateInfo) (unpacked *C.VkDeviceQueueCreateInfo, allocs *cgoAllocMap) { +// 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, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDeviceQueueCreateInfo) { - go allocs.Free() - }) + return x.refeee8cb11 +} - len0 := len(x) - mem0 := allocDeviceQueueCreateInfoMemory(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 *PhysicalDevicePrivateDataFeatures) Free() { + if x != nil && x.allocseee8cb11 != nil { + x.allocseee8cb11.(*cgoAllocMap).Free() + x.refeee8cb11 = nil } - v0 := *(*[]C.VkDeviceQueueCreateInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// 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 } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDeviceQueueCreateInfo)(h.Data) - return + obj := new(PhysicalDevicePrivateDataFeatures) + obj.refeee8cb11 = (*C.VkPhysicalDevicePrivateDataFeatures)(unsafe.Pointer(ref)) + return obj } -// unpackSPhysicalDeviceFeatures transforms a sliced Go data structure into plain C format. -func unpackSPhysicalDeviceFeatures(x []PhysicalDeviceFeatures) (unpacked *C.VkPhysicalDeviceFeatures, 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 *PhysicalDevicePrivateDataFeatures) PassRef() (*C.VkPhysicalDevicePrivateDataFeatures, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.refeee8cb11 != nil { + return x.refeee8cb11, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPhysicalDeviceFeatures) { - go allocs.Free() - }) + memeee8cb11 := allocPhysicalDevicePrivateDataFeaturesMemory(1) + refeee8cb11 := (*C.VkPhysicalDevicePrivateDataFeatures)(memeee8cb11) + allocseee8cb11 := new(cgoAllocMap) + allocseee8cb11.Add(memeee8cb11) - 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) + 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 } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPhysicalDeviceFeatures)(h.Data) - return + ref, allocs := x.PassRef() + return *ref, allocs } -// 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)) +// Deref uses the underlying reference to C object and fills the wrapping struct with 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) } -// 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)) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + 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 *DeviceCreateInfo) Ref() *C.VkDeviceCreateInfo { +func (x *DevicePrivateDataCreateInfo) Ref() *C.VkDevicePrivateDataCreateInfo { if x == nil { return nil } - return x.refc0d8b997 + 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 *DeviceCreateInfo) Free() { - if x != nil && x.allocsc0d8b997 != nil { - x.allocsc0d8b997.(*cgoAllocMap).Free() - x.refc0d8b997 = nil +func (x *DevicePrivateDataCreateInfo) Free() { + if x != nil && x.allocs5e7326be != nil { + x.allocs5e7326be.(*cgoAllocMap).Free() + x.ref5e7326be = nil } } -// NewDeviceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceCreateInfo { +func NewDevicePrivateDataCreateInfoRef(ref unsafe.Pointer) *DevicePrivateDataCreateInfo { if ref == nil { return nil } - obj := new(DeviceCreateInfo) - obj.refc0d8b997 = (*C.VkDeviceCreateInfo)(unsafe.Pointer(ref)) + 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 *DeviceCreateInfo) PassRef() (*C.VkDeviceCreateInfo, *cgoAllocMap) { +func (x *DevicePrivateDataCreateInfo) PassRef() (*C.VkDevicePrivateDataCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc0d8b997 != nil { - return x.refc0d8b997, nil + } else if x.ref5e7326be != nil { + return x.ref5e7326be, nil } - memc0d8b997 := allocDeviceCreateInfoMemory(1) - refc0d8b997 := (*C.VkDeviceCreateInfo)(memc0d8b997) - allocsc0d8b997 := new(cgoAllocMap) - allocsc0d8b997.Add(memc0d8b997) + mem5e7326be := allocDevicePrivateDataCreateInfoMemory(1) + ref5e7326be := (*C.VkDevicePrivateDataCreateInfo)(mem5e7326be) + allocs5e7326be := new(cgoAllocMap) + allocs5e7326be.Add(mem5e7326be) var csType_allocs *cgoAllocMap - refc0d8b997.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc0d8b997.Borrow(csType_allocs) + ref5e7326be.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e7326be.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) + ref5e7326be.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e7326be.Borrow(cpNext_allocs) - var cpEnabledFeatures_allocs *cgoAllocMap - refc0d8b997.pEnabledFeatures, cpEnabledFeatures_allocs = unpackSPhysicalDeviceFeatures(x.PEnabledFeatures) - allocsc0d8b997.Borrow(cpEnabledFeatures_allocs) + var cprivateDataSlotRequestCount_allocs *cgoAllocMap + ref5e7326be.privateDataSlotRequestCount, cprivateDataSlotRequestCount_allocs = (C.uint32_t)(x.PrivateDataSlotRequestCount), cgoAllocsUnknown + allocs5e7326be.Borrow(cprivateDataSlotRequestCount_allocs) - x.refc0d8b997 = refc0d8b997 - x.allocsc0d8b997 = allocsc0d8b997 - return refc0d8b997, allocsc0d8b997 + 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 DeviceCreateInfo) PassValue() (C.VkDeviceCreateInfo, *cgoAllocMap) { - if x.refc0d8b997 != nil { - return *x.refc0d8b997, nil +func (x DevicePrivateDataCreateInfo) PassValue() (C.VkDevicePrivateDataCreateInfo, *cgoAllocMap) { + if x.ref5e7326be != nil { + return *x.ref5e7326be, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2635,93 +27979,90 @@ 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 *DevicePrivateDataCreateInfo) Deref() { + if x.ref5e7326be == 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.ref5e7326be.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e7326be.pNext)) + x.PrivateDataSlotRequestCount = (uint32)(x.ref5e7326be.privateDataSlotRequestCount) } -// allocExtensionPropertiesMemory allocates memory for type C.VkExtensionProperties in C. +// allocPrivateDataSlotCreateInfoMemory allocates memory for type C.VkPrivateDataSlotCreateInfo 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()) +func allocPrivateDataSlotCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPrivateDataSlotCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExtensionPropertiesValue = unsafe.Sizeof([1]C.VkExtensionProperties{}) +const sizeOfPrivateDataSlotCreateInfoValue = unsafe.Sizeof([1]C.VkPrivateDataSlotCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExtensionProperties) Ref() *C.VkExtensionProperties { +func (x *PrivateDataSlotCreateInfo) Ref() *C.VkPrivateDataSlotCreateInfo { if x == nil { return nil } - return x.ref2f001956 + 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 *ExtensionProperties) Free() { - if x != nil && x.allocs2f001956 != nil { - x.allocs2f001956.(*cgoAllocMap).Free() - x.ref2f001956 = nil +func (x *PrivateDataSlotCreateInfo) Free() { + if x != nil && x.allocsfd6b0ff3 != nil { + x.allocsfd6b0ff3.(*cgoAllocMap).Free() + x.reffd6b0ff3 = nil } } -// NewExtensionPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewExtensionPropertiesRef(ref unsafe.Pointer) *ExtensionProperties { +func NewPrivateDataSlotCreateInfoRef(ref unsafe.Pointer) *PrivateDataSlotCreateInfo { if ref == nil { return nil } - obj := new(ExtensionProperties) - obj.ref2f001956 = (*C.VkExtensionProperties)(unsafe.Pointer(ref)) + 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 *ExtensionProperties) PassRef() (*C.VkExtensionProperties, *cgoAllocMap) { +func (x *PrivateDataSlotCreateInfo) PassRef() (*C.VkPrivateDataSlotCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f001956 != nil { - return x.ref2f001956, nil + } else if x.reffd6b0ff3 != nil { + return x.reffd6b0ff3, nil } - mem2f001956 := allocExtensionPropertiesMemory(1) - ref2f001956 := (*C.VkExtensionProperties)(mem2f001956) - allocs2f001956 := new(cgoAllocMap) - allocs2f001956.Add(mem2f001956) + memfd6b0ff3 := allocPrivateDataSlotCreateInfoMemory(1) + reffd6b0ff3 := (*C.VkPrivateDataSlotCreateInfo)(memfd6b0ff3) + allocsfd6b0ff3 := new(cgoAllocMap) + allocsfd6b0ff3.Add(memfd6b0ff3) - var cextensionName_allocs *cgoAllocMap - ref2f001956.extensionName, cextensionName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.ExtensionName)), cgoAllocsUnknown - allocs2f001956.Borrow(cextensionName_allocs) + var csType_allocs *cgoAllocMap + reffd6b0ff3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfd6b0ff3.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 + reffd6b0ff3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfd6b0ff3.Borrow(cpNext_allocs) - x.ref2f001956 = ref2f001956 - x.allocs2f001956 = allocs2f001956 - return ref2f001956, allocs2f001956 + 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 ExtensionProperties) PassValue() (C.VkExtensionProperties, *cgoAllocMap) { - if x.ref2f001956 != nil { - return *x.ref2f001956, nil +func (x PrivateDataSlotCreateInfo) PassValue() (C.VkPrivateDataSlotCreateInfo, *cgoAllocMap) { + if x.reffd6b0ff3 != nil { + return *x.reffd6b0ff3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2729,93 +28070,90 @@ 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 *PrivateDataSlotCreateInfo) Deref() { + if x.reffd6b0ff3 == nil { return } - x.ExtensionName = *(*[256]byte)(unsafe.Pointer(&x.ref2f001956.extensionName)) - x.SpecVersion = (uint32)(x.ref2f001956.specVersion) + x.SType = (StructureType)(x.reffd6b0ff3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffd6b0ff3.pNext)) + x.Flags = (PrivateDataSlotCreateFlags)(x.reffd6b0ff3.flags) } -// allocLayerPropertiesMemory allocates memory for type C.VkLayerProperties in C. +// allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineCreationCacheControlFeatures 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()) +func allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineCreationCacheControlFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfLayerPropertiesValue = unsafe.Sizeof([1]C.VkLayerProperties{}) +const sizeOfPhysicalDevicePipelineCreationCacheControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineCreationCacheControlFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *LayerProperties) Ref() *C.VkLayerProperties { +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Ref() *C.VkPhysicalDevicePipelineCreationCacheControlFeatures { if x == nil { return nil } - return x.refd9407ce7 + 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 *LayerProperties) Free() { - if x != nil && x.allocsd9407ce7 != nil { - x.allocsd9407ce7.(*cgoAllocMap).Free() - x.refd9407ce7 = nil +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Free() { + if x != nil && x.allocs5e373d52 != nil { + x.allocs5e373d52.(*cgoAllocMap).Free() + x.ref5e373d52 = nil } } -// NewLayerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewLayerPropertiesRef(ref unsafe.Pointer) *LayerProperties { +func NewPhysicalDevicePipelineCreationCacheControlFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineCreationCacheControlFeatures { if ref == nil { return nil } - obj := new(LayerProperties) - obj.refd9407ce7 = (*C.VkLayerProperties)(unsafe.Pointer(ref)) + 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 *LayerProperties) PassRef() (*C.VkLayerProperties, *cgoAllocMap) { +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) PassRef() (*C.VkPhysicalDevicePipelineCreationCacheControlFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9407ce7 != nil { - return x.refd9407ce7, nil + } else if x.ref5e373d52 != nil { + return x.ref5e373d52, 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) + mem5e373d52 := allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory(1) + ref5e373d52 := (*C.VkPhysicalDevicePipelineCreationCacheControlFeatures)(mem5e373d52) + allocs5e373d52 := new(cgoAllocMap) + allocs5e373d52.Add(mem5e373d52) - var cspecVersion_allocs *cgoAllocMap - refd9407ce7.specVersion, cspecVersion_allocs = (C.uint32_t)(x.SpecVersion), cgoAllocsUnknown - allocsd9407ce7.Borrow(cspecVersion_allocs) + var csType_allocs *cgoAllocMap + ref5e373d52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e373d52.Borrow(csType_allocs) - var cimplementationVersion_allocs *cgoAllocMap - refd9407ce7.implementationVersion, cimplementationVersion_allocs = (C.uint32_t)(x.ImplementationVersion), cgoAllocsUnknown - allocsd9407ce7.Borrow(cimplementationVersion_allocs) + var cpNext_allocs *cgoAllocMap + ref5e373d52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e373d52.Borrow(cpNext_allocs) - var cdescription_allocs *cgoAllocMap - refd9407ce7.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown - allocsd9407ce7.Borrow(cdescription_allocs) + var cpipelineCreationCacheControl_allocs *cgoAllocMap + ref5e373d52.pipelineCreationCacheControl, cpipelineCreationCacheControl_allocs = (C.VkBool32)(x.PipelineCreationCacheControl), cgoAllocsUnknown + allocs5e373d52.Borrow(cpipelineCreationCacheControl_allocs) - x.refd9407ce7 = refd9407ce7 - x.allocsd9407ce7 = allocsd9407ce7 - return refd9407ce7, allocsd9407ce7 + 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 LayerProperties) PassValue() (C.VkLayerProperties, *cgoAllocMap) { - if x.refd9407ce7 != nil { - return *x.refd9407ce7, nil +func (x PhysicalDevicePipelineCreationCacheControlFeatures) PassValue() (C.VkPhysicalDevicePipelineCreationCacheControlFeatures, *cgoAllocMap) { + if x.ref5e373d52 != nil { + return *x.ref5e373d52, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2823,115 +28161,102 @@ 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 *PhysicalDevicePipelineCreationCacheControlFeatures) Deref() { + if x.ref5e373d52 == 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.ref5e373d52.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e373d52.pNext)) + x.PipelineCreationCacheControl = (Bool32)(x.ref5e373d52.pipelineCreationCacheControl) } -// allocSubmitInfoMemory allocates memory for type C.VkSubmitInfo in C. +// allocMemoryBarrier2Memory allocates memory for type C.VkMemoryBarrier2 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()) +func allocMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryBarrier2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubmitInfoValue = unsafe.Sizeof([1]C.VkSubmitInfo{}) +const sizeOfMemoryBarrier2Value = unsafe.Sizeof([1]C.VkMemoryBarrier2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubmitInfo) Ref() *C.VkSubmitInfo { +func (x *MemoryBarrier2) Ref() *C.VkMemoryBarrier2 { if x == nil { return nil } - return x.ref22884025 + 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 *SubmitInfo) Free() { - if x != nil && x.allocs22884025 != nil { - x.allocs22884025.(*cgoAllocMap).Free() - x.ref22884025 = nil +func (x *MemoryBarrier2) Free() { + if x != nil && x.allocs8b26ae0e != nil { + x.allocs8b26ae0e.(*cgoAllocMap).Free() + x.ref8b26ae0e = nil } } -// NewSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSubmitInfoRef(ref unsafe.Pointer) *SubmitInfo { +func NewMemoryBarrier2Ref(ref unsafe.Pointer) *MemoryBarrier2 { if ref == nil { return nil } - obj := new(SubmitInfo) - obj.ref22884025 = (*C.VkSubmitInfo)(unsafe.Pointer(ref)) + 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 *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { +func (x *MemoryBarrier2) PassRef() (*C.VkMemoryBarrier2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref22884025 != nil { - return x.ref22884025, nil + } else if x.ref8b26ae0e != nil { + return x.ref8b26ae0e, nil } - mem22884025 := allocSubmitInfoMemory(1) - ref22884025 := (*C.VkSubmitInfo)(mem22884025) - allocs22884025 := new(cgoAllocMap) - allocs22884025.Add(mem22884025) + mem8b26ae0e := allocMemoryBarrier2Memory(1) + ref8b26ae0e := (*C.VkMemoryBarrier2)(mem8b26ae0e) + allocs8b26ae0e := new(cgoAllocMap) + allocs8b26ae0e.Add(mem8b26ae0e) var csType_allocs *cgoAllocMap - ref22884025.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs22884025.Borrow(csType_allocs) + ref8b26ae0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8b26ae0e.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) + ref8b26ae0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cpNext_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 csrcStageMask_allocs *cgoAllocMap + ref8b26ae0e.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(csrcStageMask_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 csrcAccessMask_allocs *cgoAllocMap + ref8b26ae0e.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(csrcAccessMask_allocs) - var csignalSemaphoreCount_allocs *cgoAllocMap - ref22884025.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocs22884025.Borrow(csignalSemaphoreCount_allocs) + var cdstStageMask_allocs *cgoAllocMap + ref8b26ae0e.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags2)(x.DstStageMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cdstStageMask_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 cdstAccessMask_allocs *cgoAllocMap + ref8b26ae0e.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags2)(x.DstAccessMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cdstAccessMask_allocs) - x.ref22884025 = ref22884025 - x.allocs22884025 = allocs22884025 - return ref22884025, allocs22884025 + 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 SubmitInfo) PassValue() (C.VkSubmitInfo, *cgoAllocMap) { - if x.ref22884025 != nil { - return *x.ref22884025, nil +func (x MemoryBarrier2) PassValue() (C.VkMemoryBarrier2, *cgoAllocMap) { + if x.ref8b26ae0e != nil { + return *x.ref8b26ae0e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2939,116 +28264,125 @@ 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 *MemoryBarrier2) Deref() { + if x.ref8b26ae0e == 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.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) } -// allocMemoryAllocateInfoMemory allocates memory for type C.VkMemoryAllocateInfo in C. +// allocBufferMemoryBarrier2Memory allocates memory for type C.VkBufferMemoryBarrier2 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()) +func allocBufferMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryBarrier2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateInfo{}) +const sizeOfBufferMemoryBarrier2Value = unsafe.Sizeof([1]C.VkBufferMemoryBarrier2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryAllocateInfo) Ref() *C.VkMemoryAllocateInfo { +func (x *BufferMemoryBarrier2) Ref() *C.VkBufferMemoryBarrier2 { if x == nil { return nil } - return x.ref31032b + 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 *MemoryAllocateInfo) Free() { - if x != nil && x.allocs31032b != nil { - x.allocs31032b.(*cgoAllocMap).Free() - x.ref31032b = nil +func (x *BufferMemoryBarrier2) Free() { + if x != nil && x.allocs8ded93f5 != nil { + x.allocs8ded93f5.(*cgoAllocMap).Free() + x.ref8ded93f5 = nil } } -// NewMemoryAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewMemoryAllocateInfoRef(ref unsafe.Pointer) *MemoryAllocateInfo { +func NewBufferMemoryBarrier2Ref(ref unsafe.Pointer) *BufferMemoryBarrier2 { if ref == nil { return nil } - obj := new(MemoryAllocateInfo) - obj.ref31032b = (*C.VkMemoryAllocateInfo)(unsafe.Pointer(ref)) + 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 *MemoryAllocateInfo) PassRef() (*C.VkMemoryAllocateInfo, *cgoAllocMap) { +func (x *BufferMemoryBarrier2) PassRef() (*C.VkBufferMemoryBarrier2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref31032b != nil { - return x.ref31032b, nil + } else if x.ref8ded93f5 != nil { + return x.ref8ded93f5, nil } - mem31032b := allocMemoryAllocateInfoMemory(1) - ref31032b := (*C.VkMemoryAllocateInfo)(mem31032b) - allocs31032b := new(cgoAllocMap) - allocs31032b.Add(mem31032b) + mem8ded93f5 := allocBufferMemoryBarrier2Memory(1) + ref8ded93f5 := (*C.VkBufferMemoryBarrier2)(mem8ded93f5) + allocs8ded93f5 := new(cgoAllocMap) + allocs8ded93f5.Add(mem8ded93f5) var csType_allocs *cgoAllocMap - ref31032b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs31032b.Borrow(csType_allocs) + ref8ded93f5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8ded93f5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref31032b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs31032b.Borrow(cpNext_allocs) + ref8ded93f5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8ded93f5.Borrow(cpNext_allocs) - var callocationSize_allocs *cgoAllocMap - ref31032b.allocationSize, callocationSize_allocs = (C.VkDeviceSize)(x.AllocationSize), cgoAllocsUnknown - allocs31032b.Borrow(callocationSize_allocs) + var csrcStageMask_allocs *cgoAllocMap + ref8ded93f5.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(csrcStageMask_allocs) - var cmemoryTypeIndex_allocs *cgoAllocMap - ref31032b.memoryTypeIndex, cmemoryTypeIndex_allocs = (C.uint32_t)(x.MemoryTypeIndex), cgoAllocsUnknown - allocs31032b.Borrow(cmemoryTypeIndex_allocs) + var csrcAccessMask_allocs *cgoAllocMap + ref8ded93f5.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(csrcAccessMask_allocs) - x.ref31032b = ref31032b - x.allocs31032b = allocs31032b - return ref31032b, allocs31032b + 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 MemoryAllocateInfo) PassValue() (C.VkMemoryAllocateInfo, *cgoAllocMap) { - if x.ref31032b != nil { - return *x.ref31032b, nil +func (x BufferMemoryBarrier2) PassValue() (C.VkBufferMemoryBarrier2, *cgoAllocMap) { + if x.ref8ded93f5 != nil { + return *x.ref8ded93f5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3056,99 +28390,134 @@ 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 *BufferMemoryBarrier2) Deref() { + if x.ref8ded93f5 == 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.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) } -// allocMappedMemoryRangeMemory allocates memory for type C.VkMappedMemoryRange in C. +// allocImageMemoryBarrier2Memory allocates memory for type C.VkImageMemoryBarrier2 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()) +func allocImageMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryBarrier2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMappedMemoryRangeValue = unsafe.Sizeof([1]C.VkMappedMemoryRange{}) +const sizeOfImageMemoryBarrier2Value = unsafe.Sizeof([1]C.VkImageMemoryBarrier2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MappedMemoryRange) Ref() *C.VkMappedMemoryRange { +func (x *ImageMemoryBarrier2) Ref() *C.VkImageMemoryBarrier2 { if x == nil { return nil } - return x.ref42a37320 + 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 *MappedMemoryRange) Free() { - if x != nil && x.allocs42a37320 != nil { - x.allocs42a37320.(*cgoAllocMap).Free() - x.ref42a37320 = nil +func (x *ImageMemoryBarrier2) Free() { + if x != nil && x.allocsb3bc376a != nil { + x.allocsb3bc376a.(*cgoAllocMap).Free() + x.refb3bc376a = nil } } -// NewMappedMemoryRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewMappedMemoryRangeRef(ref unsafe.Pointer) *MappedMemoryRange { +func NewImageMemoryBarrier2Ref(ref unsafe.Pointer) *ImageMemoryBarrier2 { if ref == nil { return nil } - obj := new(MappedMemoryRange) - obj.ref42a37320 = (*C.VkMappedMemoryRange)(unsafe.Pointer(ref)) + 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 *MappedMemoryRange) PassRef() (*C.VkMappedMemoryRange, *cgoAllocMap) { +func (x *ImageMemoryBarrier2) PassRef() (*C.VkImageMemoryBarrier2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref42a37320 != nil { - return x.ref42a37320, nil + } else if x.refb3bc376a != nil { + return x.refb3bc376a, nil } - mem42a37320 := allocMappedMemoryRangeMemory(1) - ref42a37320 := (*C.VkMappedMemoryRange)(mem42a37320) - allocs42a37320 := new(cgoAllocMap) - allocs42a37320.Add(mem42a37320) + memb3bc376a := allocImageMemoryBarrier2Memory(1) + refb3bc376a := (*C.VkImageMemoryBarrier2)(memb3bc376a) + allocsb3bc376a := new(cgoAllocMap) + allocsb3bc376a.Add(memb3bc376a) var csType_allocs *cgoAllocMap - ref42a37320.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs42a37320.Borrow(csType_allocs) + refb3bc376a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb3bc376a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref42a37320.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs42a37320.Borrow(cpNext_allocs) + refb3bc376a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb3bc376a.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref42a37320.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs42a37320.Borrow(cmemory_allocs) + var csrcStageMask_allocs *cgoAllocMap + refb3bc376a.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcStageMask_allocs) - var coffset_allocs *cgoAllocMap - ref42a37320.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs42a37320.Borrow(coffset_allocs) + var csrcAccessMask_allocs *cgoAllocMap + refb3bc376a.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcAccessMask_allocs) - var csize_allocs *cgoAllocMap - ref42a37320.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs42a37320.Borrow(csize_allocs) + var cdstStageMask_allocs *cgoAllocMap + refb3bc376a.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags2)(x.DstStageMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstStageMask_allocs) - x.ref42a37320 = ref42a37320 - x.allocs42a37320 = allocs42a37320 - return ref42a37320, allocs42a37320 + var cdstAccessMask_allocs *cgoAllocMap + refb3bc376a.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags2)(x.DstAccessMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstAccessMask_allocs) + + var coldLayout_allocs *cgoAllocMap + refb3bc376a.oldLayout, coldLayout_allocs = (C.VkImageLayout)(x.OldLayout), cgoAllocsUnknown + allocsb3bc376a.Borrow(coldLayout_allocs) + + var cnewLayout_allocs *cgoAllocMap + refb3bc376a.newLayout, cnewLayout_allocs = (C.VkImageLayout)(x.NewLayout), cgoAllocsUnknown + allocsb3bc376a.Borrow(cnewLayout_allocs) + + var csrcQueueFamilyIndex_allocs *cgoAllocMap + refb3bc376a.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcQueueFamilyIndex_allocs) + + var cdstQueueFamilyIndex_allocs *cgoAllocMap + refb3bc376a.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstQueueFamilyIndex_allocs) + + var cimage_allocs *cgoAllocMap + refb3bc376a.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsb3bc376a.Borrow(cimage_allocs) + + var csubresourceRange_allocs *cgoAllocMap + refb3bc376a.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() + allocsb3bc376a.Borrow(csubresourceRange_allocs) + + x.refb3bc376a = refb3bc376a + x.allocsb3bc376a = allocsb3bc376a + return refb3bc376a, allocsb3bc376a } // 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 ImageMemoryBarrier2) PassValue() (C.VkImageMemoryBarrier2, *cgoAllocMap) { + if x.refb3bc376a != nil { + return *x.refb3bc376a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3156,183 +28525,237 @@ 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 *ImageMemoryBarrier2) Deref() { + if x.refb3bc376a == 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) -} - -// allocMemoryRequirementsMemory allocates memory for type C.VkMemoryRequirements in C. + 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 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()) +func allocDependencyInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDependencyInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryRequirementsValue = unsafe.Sizeof([1]C.VkMemoryRequirements{}) +const sizeOfDependencyInfoValue = unsafe.Sizeof([1]C.VkDependencyInfo{}) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryRequirements) Ref() *C.VkMemoryRequirements { +// 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 + return nil, nil } - return x.ref5259fc6b -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) -// Free invokes alloc map'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 + 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 } -// 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 +// 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 } - obj := new(MemoryRequirements) - obj.ref5259fc6b = (*C.VkMemoryRequirements)(unsafe.Pointer(ref)) - return obj + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + 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 } -// PassRef returns the 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) { +// 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 - } 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 + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + 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 } -// 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 +// 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)) } - 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 +// 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)) } - x.Size = (DeviceSize)(x.ref5259fc6b.size) - x.Alignment = (DeviceSize)(x.ref5259fc6b.alignment) - x.MemoryTypeBits = (uint32)(x.ref5259fc6b.memoryTypeBits) } -// 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()) +// 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)) } - 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 { +func (x *DependencyInfo) Ref() *C.VkDependencyInfo { if x == nil { return nil } - return x.ref2c12cf44 + return x.ref18c760d2 } // Free invokes alloc map'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 *DependencyInfo) Free() { + if x != nil && x.allocs18c760d2 != nil { + x.allocs18c760d2.(*cgoAllocMap).Free() + x.ref18c760d2 = nil } } -// NewSparseImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSparseImageFormatPropertiesRef(ref unsafe.Pointer) *SparseImageFormatProperties { +func NewDependencyInfoRef(ref unsafe.Pointer) *DependencyInfo { if ref == nil { return nil } - obj := new(SparseImageFormatProperties) - obj.ref2c12cf44 = (*C.VkSparseImageFormatProperties)(unsafe.Pointer(ref)) + obj := new(DependencyInfo) + obj.ref18c760d2 = (*C.VkDependencyInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *DependencyInfo) PassRef() (*C.VkDependencyInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2c12cf44 != nil { - return x.ref2c12cf44, nil + } else if x.ref18c760d2 != nil { + return x.ref18c760d2, nil } - mem2c12cf44 := allocSparseImageFormatPropertiesMemory(1) - ref2c12cf44 := (*C.VkSparseImageFormatProperties)(mem2c12cf44) - allocs2c12cf44 := new(cgoAllocMap) - allocs2c12cf44.Add(mem2c12cf44) + mem18c760d2 := allocDependencyInfoMemory(1) + ref18c760d2 := (*C.VkDependencyInfo)(mem18c760d2) + allocs18c760d2 := new(cgoAllocMap) + allocs18c760d2.Add(mem18c760d2) - var caspectMask_allocs *cgoAllocMap - ref2c12cf44.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs2c12cf44.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + ref18c760d2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs18c760d2.Borrow(csType_allocs) - var cimageGranularity_allocs *cgoAllocMap - ref2c12cf44.imageGranularity, cimageGranularity_allocs = x.ImageGranularity.PassValue() - allocs2c12cf44.Borrow(cimageGranularity_allocs) + var cpNext_allocs *cgoAllocMap + ref18c760d2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs18c760d2.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref2c12cf44.flags, cflags_allocs = (C.VkSparseImageFormatFlags)(x.Flags), cgoAllocsUnknown - allocs2c12cf44.Borrow(cflags_allocs) + var cdependencyFlags_allocs *cgoAllocMap + ref18c760d2.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown + allocs18c760d2.Borrow(cdependencyFlags_allocs) - x.ref2c12cf44 = ref2c12cf44 - x.allocs2c12cf44 = allocs2c12cf44 - return ref2c12cf44, allocs2c12cf44 + var cmemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.memoryBarrierCount, cmemoryBarrierCount_allocs = (C.uint32_t)(x.MemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cmemoryBarrierCount_allocs) + + var cpMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pMemoryBarriers, cpMemoryBarriers_allocs = unpackSMemoryBarrier2(x.PMemoryBarriers) + allocs18c760d2.Borrow(cpMemoryBarriers_allocs) + + var cbufferMemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.bufferMemoryBarrierCount, cbufferMemoryBarrierCount_allocs = (C.uint32_t)(x.BufferMemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cbufferMemoryBarrierCount_allocs) + + var cpBufferMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pBufferMemoryBarriers, cpBufferMemoryBarriers_allocs = unpackSBufferMemoryBarrier2(x.PBufferMemoryBarriers) + allocs18c760d2.Borrow(cpBufferMemoryBarriers_allocs) + + var cimageMemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.imageMemoryBarrierCount, cimageMemoryBarrierCount_allocs = (C.uint32_t)(x.ImageMemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cimageMemoryBarrierCount_allocs) + + var cpImageMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pImageMemoryBarriers, cpImageMemoryBarriers_allocs = unpackSImageMemoryBarrier2(x.PImageMemoryBarriers) + allocs18c760d2.Borrow(cpImageMemoryBarriers_allocs) + + x.ref18c760d2 = ref18c760d2 + x.allocs18c760d2 = allocs18c760d2 + return ref18c760d2, allocs18c760d2 } // 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 DependencyInfo) PassValue() (C.VkDependencyInfo, *cgoAllocMap) { + if x.ref18c760d2 != nil { + return *x.ref18c760d2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3340,98 +28763,108 @@ 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 *DependencyInfo) Deref() { + if x.ref18c760d2 == 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.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) } -// allocSparseImageMemoryRequirementsMemory allocates memory for type C.VkSparseImageMemoryRequirements in C. +// allocSemaphoreSubmitInfoMemory allocates memory for type C.VkSemaphoreSubmitInfo 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()) +func allocSemaphoreSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreSubmitInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageMemoryRequirementsValue = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements{}) +const sizeOfSemaphoreSubmitInfoValue = unsafe.Sizeof([1]C.VkSemaphoreSubmitInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryRequirements) Ref() *C.VkSparseImageMemoryRequirements { +func (x *SemaphoreSubmitInfo) Ref() *C.VkSemaphoreSubmitInfo { if x == nil { return nil } - return x.ref685a2323 + return x.ref9d52ed10 } // Free invokes alloc map'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 *SemaphoreSubmitInfo) Free() { + if x != nil && x.allocs9d52ed10 != nil { + x.allocs9d52ed10.(*cgoAllocMap).Free() + x.ref9d52ed10 = nil } } -// NewSparseImageMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSparseImageMemoryRequirementsRef(ref unsafe.Pointer) *SparseImageMemoryRequirements { +func NewSemaphoreSubmitInfoRef(ref unsafe.Pointer) *SemaphoreSubmitInfo { if ref == nil { return nil } - obj := new(SparseImageMemoryRequirements) - obj.ref685a2323 = (*C.VkSparseImageMemoryRequirements)(unsafe.Pointer(ref)) + obj := new(SemaphoreSubmitInfo) + obj.ref9d52ed10 = (*C.VkSemaphoreSubmitInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *SemaphoreSubmitInfo) PassRef() (*C.VkSemaphoreSubmitInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref685a2323 != nil { - return x.ref685a2323, nil + } else if x.ref9d52ed10 != nil { + return x.ref9d52ed10, nil } - mem685a2323 := allocSparseImageMemoryRequirementsMemory(1) - ref685a2323 := (*C.VkSparseImageMemoryRequirements)(mem685a2323) - allocs685a2323 := new(cgoAllocMap) - allocs685a2323.Add(mem685a2323) + mem9d52ed10 := allocSemaphoreSubmitInfoMemory(1) + ref9d52ed10 := (*C.VkSemaphoreSubmitInfo)(mem9d52ed10) + allocs9d52ed10 := new(cgoAllocMap) + allocs9d52ed10.Add(mem9d52ed10) - var cformatProperties_allocs *cgoAllocMap - ref685a2323.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() - allocs685a2323.Borrow(cformatProperties_allocs) + var csType_allocs *cgoAllocMap + ref9d52ed10.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9d52ed10.Borrow(csType_allocs) - var cimageMipTailFirstLod_allocs *cgoAllocMap - ref685a2323.imageMipTailFirstLod, cimageMipTailFirstLod_allocs = (C.uint32_t)(x.ImageMipTailFirstLod), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailFirstLod_allocs) + var cpNext_allocs *cgoAllocMap + ref9d52ed10.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9d52ed10.Borrow(cpNext_allocs) - var cimageMipTailSize_allocs *cgoAllocMap - ref685a2323.imageMipTailSize, cimageMipTailSize_allocs = (C.VkDeviceSize)(x.ImageMipTailSize), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailSize_allocs) + var csemaphore_allocs *cgoAllocMap + ref9d52ed10.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs9d52ed10.Borrow(csemaphore_allocs) - var cimageMipTailOffset_allocs *cgoAllocMap - ref685a2323.imageMipTailOffset, cimageMipTailOffset_allocs = (C.VkDeviceSize)(x.ImageMipTailOffset), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailOffset_allocs) + var cvalue_allocs *cgoAllocMap + ref9d52ed10.value, cvalue_allocs = (C.uint64_t)(x.Value), cgoAllocsUnknown + allocs9d52ed10.Borrow(cvalue_allocs) - var cimageMipTailStride_allocs *cgoAllocMap - ref685a2323.imageMipTailStride, cimageMipTailStride_allocs = (C.VkDeviceSize)(x.ImageMipTailStride), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailStride_allocs) + var cstageMask_allocs *cgoAllocMap + ref9d52ed10.stageMask, cstageMask_allocs = (C.VkPipelineStageFlags2)(x.StageMask), cgoAllocsUnknown + allocs9d52ed10.Borrow(cstageMask_allocs) - x.ref685a2323 = ref685a2323 - x.allocs685a2323 = allocs685a2323 - return ref685a2323, allocs685a2323 + var cdeviceIndex_allocs *cgoAllocMap + ref9d52ed10.deviceIndex, cdeviceIndex_allocs = (C.uint32_t)(x.DeviceIndex), cgoAllocsUnknown + allocs9d52ed10.Borrow(cdeviceIndex_allocs) + + x.ref9d52ed10 = ref9d52ed10 + x.allocs9d52ed10 = allocs9d52ed10 + return ref9d52ed10, allocs9d52ed10 } // 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 SemaphoreSubmitInfo) PassValue() (C.VkSemaphoreSubmitInfo, *cgoAllocMap) { + if x.ref9d52ed10 != nil { + return *x.ref9d52ed10, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3439,100 +28872,97 @@ 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 *SemaphoreSubmitInfo) Deref() { + if x.ref9d52ed10 == 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.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) } -// allocSparseMemoryBindMemory allocates memory for type C.VkSparseMemoryBind in C. +// allocCommandBufferSubmitInfoMemory allocates memory for type C.VkCommandBufferSubmitInfo 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()) +func allocCommandBufferSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferSubmitInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseMemoryBindValue = unsafe.Sizeof([1]C.VkSparseMemoryBind{}) +const sizeOfCommandBufferSubmitInfoValue = unsafe.Sizeof([1]C.VkCommandBufferSubmitInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseMemoryBind) Ref() *C.VkSparseMemoryBind { +func (x *CommandBufferSubmitInfo) Ref() *C.VkCommandBufferSubmitInfo { if x == nil { return nil } - return x.ref5bf418e8 + return x.ref67c6884a } // Free invokes alloc map'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 *CommandBufferSubmitInfo) Free() { + if x != nil && x.allocs67c6884a != nil { + x.allocs67c6884a.(*cgoAllocMap).Free() + x.ref67c6884a = nil } } -// NewSparseMemoryBindRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSparseMemoryBindRef(ref unsafe.Pointer) *SparseMemoryBind { +func NewCommandBufferSubmitInfoRef(ref unsafe.Pointer) *CommandBufferSubmitInfo { if ref == nil { return nil } - obj := new(SparseMemoryBind) - obj.ref5bf418e8 = (*C.VkSparseMemoryBind)(unsafe.Pointer(ref)) + obj := new(CommandBufferSubmitInfo) + obj.ref67c6884a = (*C.VkCommandBufferSubmitInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *CommandBufferSubmitInfo) PassRef() (*C.VkCommandBufferSubmitInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5bf418e8 != nil { - return x.ref5bf418e8, nil + } else if x.ref67c6884a != nil { + return x.ref67c6884a, 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) + mem67c6884a := allocCommandBufferSubmitInfoMemory(1) + ref67c6884a := (*C.VkCommandBufferSubmitInfo)(mem67c6884a) + allocs67c6884a := new(cgoAllocMap) + allocs67c6884a.Add(mem67c6884a) - var csize_allocs *cgoAllocMap - ref5bf418e8.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs5bf418e8.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + ref67c6884a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs67c6884a.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 + ref67c6884a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs67c6884a.Borrow(cpNext_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref5bf418e8.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs5bf418e8.Borrow(cmemoryOffset_allocs) + var ccommandBuffer_allocs *cgoAllocMap + ref67c6884a.commandBuffer, ccommandBuffer_allocs = *(*C.VkCommandBuffer)(unsafe.Pointer(&x.CommandBuffer)), cgoAllocsUnknown + allocs67c6884a.Borrow(ccommandBuffer_allocs) - var cflags_allocs *cgoAllocMap - ref5bf418e8.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown - allocs5bf418e8.Borrow(cflags_allocs) + var cdeviceMask_allocs *cgoAllocMap + ref67c6884a.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs67c6884a.Borrow(cdeviceMask_allocs) - x.ref5bf418e8 = ref5bf418e8 - x.allocs5bf418e8 = allocs5bf418e8 - return ref5bf418e8, allocs5bf418e8 + x.ref67c6884a = ref67c6884a + x.allocs67c6884a = allocs67c6884a + return ref67c6884a, allocs67c6884a } // 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 CommandBufferSubmitInfo) PassValue() (C.VkCommandBufferSubmitInfo, *cgoAllocMap) { + if x.ref67c6884a != nil { + return *x.ref67c6884a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3540,130 +28970,191 @@ 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 *CommandBufferSubmitInfo) Deref() { + if x.ref67c6884a == 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.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) } -// allocSparseBufferMemoryBindInfoMemory allocates memory for type C.VkSparseBufferMemoryBindInfo in C. +// allocSubmitInfo2Memory allocates memory for type C.VkSubmitInfo2 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()) +func allocSubmitInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubmitInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseBufferMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseBufferMemoryBindInfo{}) +const sizeOfSubmitInfo2Value = unsafe.Sizeof([1]C.VkSubmitInfo2{}) -// unpackSSparseMemoryBind transforms a sliced Go data structure into plain C format. -func unpackSSparseMemoryBind(x []SparseMemoryBind) (unpacked *C.VkSparseMemoryBind, allocs *cgoAllocMap) { +// 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.VkSparseMemoryBind) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocSparseMemoryBindMemory(len0) + mem0 := allocSemaphoreSubmitInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSparseMemoryBind)(unsafe.Pointer(h0)) + 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.VkSparseMemoryBind)(h.Data) + unpacked = (*C.VkSemaphoreSubmitInfo)(h.Data) return } -// packSSparseMemoryBind reads sliced Go data structure out from plain C format. -func packSSparseMemoryBind(v []SparseMemoryBind, ptr0 *C.VkSparseMemoryBind) { +// 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(allocs, func(a *cgoAllocMap) { + go a.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 / sizeOfSparseMemoryBindValue]C.VkSparseMemoryBind)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseMemoryBindRef(unsafe.Pointer(&ptr1)) + 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 *SparseBufferMemoryBindInfo) Ref() *C.VkSparseBufferMemoryBindInfo { +func (x *SubmitInfo2) Ref() *C.VkSubmitInfo2 { if x == nil { return nil } - return x.refebcaf40c + 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 *SparseBufferMemoryBindInfo) Free() { - if x != nil && x.allocsebcaf40c != nil { - x.allocsebcaf40c.(*cgoAllocMap).Free() - x.refebcaf40c = nil +func (x *SubmitInfo2) Free() { + if x != nil && x.allocs51f3e20a != nil { + x.allocs51f3e20a.(*cgoAllocMap).Free() + x.ref51f3e20a = nil } } -// NewSparseBufferMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSparseBufferMemoryBindInfoRef(ref unsafe.Pointer) *SparseBufferMemoryBindInfo { +func NewSubmitInfo2Ref(ref unsafe.Pointer) *SubmitInfo2 { if ref == nil { return nil } - obj := new(SparseBufferMemoryBindInfo) - obj.refebcaf40c = (*C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ref)) + 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 *SparseBufferMemoryBindInfo) PassRef() (*C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { +func (x *SubmitInfo2) PassRef() (*C.VkSubmitInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refebcaf40c != nil { - return x.refebcaf40c, nil + } else if x.ref51f3e20a != nil { + return x.ref51f3e20a, nil } - memebcaf40c := allocSparseBufferMemoryBindInfoMemory(1) - refebcaf40c := (*C.VkSparseBufferMemoryBindInfo)(memebcaf40c) - allocsebcaf40c := new(cgoAllocMap) - allocsebcaf40c.Add(memebcaf40c) + mem51f3e20a := allocSubmitInfo2Memory(1) + ref51f3e20a := (*C.VkSubmitInfo2)(mem51f3e20a) + allocs51f3e20a := new(cgoAllocMap) + allocs51f3e20a.Add(mem51f3e20a) - var cbuffer_allocs *cgoAllocMap - refebcaf40c.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsebcaf40c.Borrow(cbuffer_allocs) + var csType_allocs *cgoAllocMap + ref51f3e20a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51f3e20a.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 + ref51f3e20a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51f3e20a.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - refebcaf40c.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) - allocsebcaf40c.Borrow(cpBinds_allocs) + var cflags_allocs *cgoAllocMap + ref51f3e20a.flags, cflags_allocs = (C.VkSubmitFlags)(x.Flags), cgoAllocsUnknown + allocs51f3e20a.Borrow(cflags_allocs) - x.refebcaf40c = refebcaf40c - x.allocsebcaf40c = allocsebcaf40c - return refebcaf40c, allocsebcaf40c + 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 cpSignalSemaphoreInfos_allocs *cgoAllocMap + ref51f3e20a.pSignalSemaphoreInfos, cpSignalSemaphoreInfos_allocs = unpackSSemaphoreSubmitInfo(x.PSignalSemaphoreInfos) + allocs51f3e20a.Borrow(cpSignalSemaphoreInfos_allocs) + + 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 SparseBufferMemoryBindInfo) PassValue() (C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { - if x.refebcaf40c != nil { - return *x.refebcaf40c, nil +func (x SubmitInfo2) PassValue() (C.VkSubmitInfo2, *cgoAllocMap) { + if x.ref51f3e20a != nil { + return *x.ref51f3e20a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3671,90 +29162,96 @@ 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 *SubmitInfo2) Deref() { + if x.ref51f3e20a == 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.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) } -// allocSparseImageOpaqueMemoryBindInfoMemory allocates memory for type C.VkSparseImageOpaqueMemoryBindInfo in C. +// allocPhysicalDeviceSynchronization2FeaturesMemory allocates memory for type C.VkPhysicalDeviceSynchronization2Features 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()) +func allocPhysicalDeviceSynchronization2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSynchronization2FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageOpaqueMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageOpaqueMemoryBindInfo{}) +const sizeOfPhysicalDeviceSynchronization2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSynchronization2Features{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageOpaqueMemoryBindInfo) Ref() *C.VkSparseImageOpaqueMemoryBindInfo { +func (x *PhysicalDeviceSynchronization2Features) Ref() *C.VkPhysicalDeviceSynchronization2Features { if x == nil { return nil } - return x.reffb1b3d56 + 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 *SparseImageOpaqueMemoryBindInfo) Free() { - if x != nil && x.allocsfb1b3d56 != nil { - x.allocsfb1b3d56.(*cgoAllocMap).Free() - x.reffb1b3d56 = nil +func (x *PhysicalDeviceSynchronization2Features) Free() { + if x != nil && x.allocs64be4f9 != nil { + x.allocs64be4f9.(*cgoAllocMap).Free() + x.ref64be4f9 = nil } } -// NewSparseImageOpaqueMemoryBindInfoRef 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 NewSparseImageOpaqueMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageOpaqueMemoryBindInfo { +func NewPhysicalDeviceSynchronization2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSynchronization2Features { if ref == nil { return nil } - obj := new(SparseImageOpaqueMemoryBindInfo) - obj.reffb1b3d56 = (*C.VkSparseImageOpaqueMemoryBindInfo)(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 *SparseImageOpaqueMemoryBindInfo) PassRef() (*C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { +func (x *PhysicalDeviceSynchronization2Features) PassRef() (*C.VkPhysicalDeviceSynchronization2Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffb1b3d56 != nil { - return x.reffb1b3d56, nil + } else if x.ref64be4f9 != nil { + return x.ref64be4f9, nil } - memfb1b3d56 := allocSparseImageOpaqueMemoryBindInfoMemory(1) - reffb1b3d56 := (*C.VkSparseImageOpaqueMemoryBindInfo)(memfb1b3d56) - allocsfb1b3d56 := new(cgoAllocMap) - allocsfb1b3d56.Add(memfb1b3d56) + mem64be4f9 := allocPhysicalDeviceSynchronization2FeaturesMemory(1) + ref64be4f9 := (*C.VkPhysicalDeviceSynchronization2Features)(mem64be4f9) + allocs64be4f9 := new(cgoAllocMap) + allocs64be4f9.Add(mem64be4f9) - var cimage_allocs *cgoAllocMap - reffb1b3d56.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocsfb1b3d56.Borrow(cimage_allocs) + var csType_allocs *cgoAllocMap + ref64be4f9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64be4f9.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 + ref64be4f9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64be4f9.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - reffb1b3d56.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) - allocsfb1b3d56.Borrow(cpBinds_allocs) + var csynchronization2_allocs *cgoAllocMap + ref64be4f9.synchronization2, csynchronization2_allocs = (C.VkBool32)(x.Synchronization2), cgoAllocsUnknown + allocs64be4f9.Borrow(csynchronization2_allocs) - x.reffb1b3d56 = reffb1b3d56 - x.allocsfb1b3d56 = allocsfb1b3d56 - return reffb1b3d56, allocsfb1b3d56 + 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 SparseImageOpaqueMemoryBindInfo) PassValue() (C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { - if x.reffb1b3d56 != nil { - return *x.reffb1b3d56, nil +func (x PhysicalDeviceSynchronization2Features) PassValue() (C.VkPhysicalDeviceSynchronization2Features, *cgoAllocMap) { + if x.ref64be4f9 != nil { + return *x.ref64be4f9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3762,90 +29259,90 @@ 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 *PhysicalDeviceSynchronization2Features) Deref() { + if x.ref64be4f9 == 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.ref64be4f9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64be4f9.pNext)) + x.Synchronization2 = (Bool32)(x.ref64be4f9.synchronization2) } -// allocImageSubresourceMemory allocates memory for type C.VkImageSubresource in C. +// allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory allocates memory for type C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 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()) +func allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageSubresourceValue = unsafe.Sizeof([1]C.VkImageSubresource{}) +const sizeOfPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSubresource) Ref() *C.VkImageSubresource { +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Ref() *C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { if x == nil { return nil } - return x.reffeaa0d8a + 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 *ImageSubresource) Free() { - if x != nil && x.allocsfeaa0d8a != nil { - x.allocsfeaa0d8a.(*cgoAllocMap).Free() - x.reffeaa0d8a = nil +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Free() { + if x != nil && x.allocs971f8a0a != nil { + x.allocs971f8a0a.(*cgoAllocMap).Free() + x.ref971f8a0a = nil } } -// NewImageSubresourceRef 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 NewImageSubresourceRef(ref unsafe.Pointer) *ImageSubresource { +func NewPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { if ref == nil { return nil } - obj := new(ImageSubresource) - obj.reffeaa0d8a = (*C.VkImageSubresource)(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 *ImageSubresource) PassRef() (*C.VkImageSubresource, *cgoAllocMap) { +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) PassRef() (*C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffeaa0d8a != nil { - return x.reffeaa0d8a, nil + } else if x.ref971f8a0a != nil { + return x.ref971f8a0a, nil } - memfeaa0d8a := allocImageSubresourceMemory(1) - reffeaa0d8a := (*C.VkImageSubresource)(memfeaa0d8a) - allocsfeaa0d8a := new(cgoAllocMap) - allocsfeaa0d8a.Add(memfeaa0d8a) + mem971f8a0a := allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory(1) + ref971f8a0a := (*C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)(mem971f8a0a) + allocs971f8a0a := new(cgoAllocMap) + allocs971f8a0a.Add(mem971f8a0a) - var caspectMask_allocs *cgoAllocMap - reffeaa0d8a.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocsfeaa0d8a.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + ref971f8a0a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs971f8a0a.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 + ref971f8a0a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs971f8a0a.Borrow(cpNext_allocs) - var carrayLayer_allocs *cgoAllocMap - reffeaa0d8a.arrayLayer, carrayLayer_allocs = (C.uint32_t)(x.ArrayLayer), cgoAllocsUnknown - allocsfeaa0d8a.Borrow(carrayLayer_allocs) + var cshaderZeroInitializeWorkgroupMemory_allocs *cgoAllocMap + ref971f8a0a.shaderZeroInitializeWorkgroupMemory, cshaderZeroInitializeWorkgroupMemory_allocs = (C.VkBool32)(x.ShaderZeroInitializeWorkgroupMemory), cgoAllocsUnknown + allocs971f8a0a.Borrow(cshaderZeroInitializeWorkgroupMemory_allocs) - x.reffeaa0d8a = reffeaa0d8a - x.allocsfeaa0d8a = allocsfeaa0d8a - return reffeaa0d8a, allocsfeaa0d8a + 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 ImageSubresource) PassValue() (C.VkImageSubresource, *cgoAllocMap) { - if x.reffeaa0d8a != nil { - return *x.reffeaa0d8a, nil +func (x PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) PassValue() (C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, *cgoAllocMap) { + if x.ref971f8a0a != nil { + return *x.ref971f8a0a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3853,90 +29350,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 *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Deref() { + if x.ref971f8a0a == nil { return } - x.AspectMask = (ImageAspectFlags)(x.reffeaa0d8a.aspectMask) - x.MipLevel = (uint32)(x.reffeaa0d8a.mipLevel) - x.ArrayLayer = (uint32)(x.reffeaa0d8a.arrayLayer) + x.SType = (StructureType)(x.ref971f8a0a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref971f8a0a.pNext)) + x.ShaderZeroInitializeWorkgroupMemory = (Bool32)(x.ref971f8a0a.shaderZeroInitializeWorkgroupMemory) } -// allocOffset3DMemory allocates memory for type C.VkOffset3D in C. +// allocPhysicalDeviceImageRobustnessFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageRobustnessFeatures 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()) +func allocPhysicalDeviceImageRobustnessFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageRobustnessFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfOffset3DValue = unsafe.Sizeof([1]C.VkOffset3D{}) +const sizeOfPhysicalDeviceImageRobustnessFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageRobustnessFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Offset3D) Ref() *C.VkOffset3D { +func (x *PhysicalDeviceImageRobustnessFeatures) Ref() *C.VkPhysicalDeviceImageRobustnessFeatures { if x == nil { return nil } - return x.ref2b6879c2 + 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 *Offset3D) Free() { - if x != nil && x.allocs2b6879c2 != nil { - x.allocs2b6879c2.(*cgoAllocMap).Free() - x.ref2b6879c2 = nil +func (x *PhysicalDeviceImageRobustnessFeatures) Free() { + if x != nil && x.allocs73ceff2 != nil { + x.allocs73ceff2.(*cgoAllocMap).Free() + x.ref73ceff2 = nil } } -// NewOffset3DRef 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 NewOffset3DRef(ref unsafe.Pointer) *Offset3D { +func NewPhysicalDeviceImageRobustnessFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageRobustnessFeatures { if ref == nil { return nil } - obj := new(Offset3D) - obj.ref2b6879c2 = (*C.VkOffset3D)(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 *Offset3D) PassRef() (*C.VkOffset3D, *cgoAllocMap) { +func (x *PhysicalDeviceImageRobustnessFeatures) PassRef() (*C.VkPhysicalDeviceImageRobustnessFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b6879c2 != nil { - return x.ref2b6879c2, nil + } else if x.ref73ceff2 != nil { + return x.ref73ceff2, nil } - mem2b6879c2 := allocOffset3DMemory(1) - ref2b6879c2 := (*C.VkOffset3D)(mem2b6879c2) - allocs2b6879c2 := new(cgoAllocMap) - allocs2b6879c2.Add(mem2b6879c2) + mem73ceff2 := allocPhysicalDeviceImageRobustnessFeaturesMemory(1) + ref73ceff2 := (*C.VkPhysicalDeviceImageRobustnessFeatures)(mem73ceff2) + allocs73ceff2 := new(cgoAllocMap) + allocs73ceff2.Add(mem73ceff2) - var cx_allocs *cgoAllocMap - ref2b6879c2.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown - allocs2b6879c2.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref73ceff2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73ceff2.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 + ref73ceff2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73ceff2.Borrow(cpNext_allocs) - var cz_allocs *cgoAllocMap - ref2b6879c2.z, cz_allocs = (C.int32_t)(x.Z), cgoAllocsUnknown - allocs2b6879c2.Borrow(cz_allocs) + var crobustImageAccess_allocs *cgoAllocMap + ref73ceff2.robustImageAccess, crobustImageAccess_allocs = (C.VkBool32)(x.RobustImageAccess), cgoAllocsUnknown + allocs73ceff2.Borrow(crobustImageAccess_allocs) - x.ref2b6879c2 = ref2b6879c2 - x.allocs2b6879c2 = allocs2b6879c2 - return ref2b6879c2, allocs2b6879c2 + 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 Offset3D) PassValue() (C.VkOffset3D, *cgoAllocMap) { - if x.ref2b6879c2 != nil { - return *x.ref2b6879c2, nil +func (x PhysicalDeviceImageRobustnessFeatures) PassValue() (C.VkPhysicalDeviceImageRobustnessFeatures, *cgoAllocMap) { + if x.ref73ceff2 != nil { + return *x.ref73ceff2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3944,102 +29441,98 @@ 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 *PhysicalDeviceImageRobustnessFeatures) Deref() { + if x.ref73ceff2 == nil { return } - x.X = (int32)(x.ref2b6879c2.x) - x.Y = (int32)(x.ref2b6879c2.y) - x.Z = (int32)(x.ref2b6879c2.z) + x.SType = (StructureType)(x.ref73ceff2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73ceff2.pNext)) + x.RobustImageAccess = (Bool32)(x.ref73ceff2.robustImageAccess) } -// allocSparseImageMemoryBindMemory allocates memory for type C.VkSparseImageMemoryBind in C. +// allocBufferCopy2Memory allocates memory for type C.VkBufferCopy2 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()) +func allocBufferCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCopy2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageMemoryBindValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBind{}) +const sizeOfBufferCopy2Value = unsafe.Sizeof([1]C.VkBufferCopy2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryBind) Ref() *C.VkSparseImageMemoryBind { +func (x *BufferCopy2) Ref() *C.VkBufferCopy2 { if x == nil { return nil } - return x.ref41b516d7 + 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 *SparseImageMemoryBind) Free() { - if x != nil && x.allocs41b516d7 != nil { - x.allocs41b516d7.(*cgoAllocMap).Free() - x.ref41b516d7 = nil +func (x *BufferCopy2) Free() { + if x != nil && x.allocsd9cb28e3 != nil { + x.allocsd9cb28e3.(*cgoAllocMap).Free() + x.refd9cb28e3 = nil } } -// NewSparseImageMemoryBindRef 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 NewSparseImageMemoryBindRef(ref unsafe.Pointer) *SparseImageMemoryBind { +func NewBufferCopy2Ref(ref unsafe.Pointer) *BufferCopy2 { if ref == nil { return nil } - obj := new(SparseImageMemoryBind) - obj.ref41b516d7 = (*C.VkSparseImageMemoryBind)(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 *SparseImageMemoryBind) PassRef() (*C.VkSparseImageMemoryBind, *cgoAllocMap) { +func (x *BufferCopy2) PassRef() (*C.VkBufferCopy2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref41b516d7 != nil { - return x.ref41b516d7, nil + } else if x.refd9cb28e3 != nil { + return x.refd9cb28e3, 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) + memd9cb28e3 := allocBufferCopy2Memory(1) + refd9cb28e3 := (*C.VkBufferCopy2)(memd9cb28e3) + allocsd9cb28e3 := new(cgoAllocMap) + allocsd9cb28e3.Add(memd9cb28e3) - var coffset_allocs *cgoAllocMap - ref41b516d7.offset, coffset_allocs = x.Offset.PassValue() - allocs41b516d7.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + refd9cb28e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - ref41b516d7.extent, cextent_allocs = x.Extent.PassValue() - allocs41b516d7.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + refd9cb28e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9cb28e3.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref41b516d7.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs41b516d7.Borrow(cmemory_allocs) + var csrcOffset_allocs *cgoAllocMap + refd9cb28e3.srcOffset, csrcOffset_allocs = (C.VkDeviceSize)(x.SrcOffset), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csrcOffset_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref41b516d7.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs41b516d7.Borrow(cmemoryOffset_allocs) + var cdstOffset_allocs *cgoAllocMap + refd9cb28e3.dstOffset, cdstOffset_allocs = (C.VkDeviceSize)(x.DstOffset), cgoAllocsUnknown + allocsd9cb28e3.Borrow(cdstOffset_allocs) - var cflags_allocs *cgoAllocMap - ref41b516d7.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown - allocs41b516d7.Borrow(cflags_allocs) + var csize_allocs *cgoAllocMap + refd9cb28e3.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csize_allocs) - x.ref41b516d7 = ref41b516d7 - x.allocs41b516d7 = allocs41b516d7 - return ref41b516d7, allocs41b516d7 + 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 SparseImageMemoryBind) PassValue() (C.VkSparseImageMemoryBind, *cgoAllocMap) { - if x.ref41b516d7 != nil { - return *x.ref41b516d7, nil +func (x BufferCopy2) PassValue() (C.VkBufferCopy2, *cgoAllocMap) { + if x.refd9cb28e3 != nil { + return *x.refd9cb28e3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4047,131 +29540,142 @@ 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 *BufferCopy2) Deref() { + if x.refd9cb28e3 == 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.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) } -// allocSparseImageMemoryBindInfoMemory allocates memory for type C.VkSparseImageMemoryBindInfo in C. +// allocCopyBufferInfo2Memory allocates memory for type C.VkCopyBufferInfo2 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()) +func allocCopyBufferInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBindInfo{}) +const sizeOfCopyBufferInfo2Value = unsafe.Sizeof([1]C.VkCopyBufferInfo2{}) -// unpackSSparseImageMemoryBind transforms a sliced Go data structure into plain C format. -func unpackSSparseImageMemoryBind(x []SparseImageMemoryBind) (unpacked *C.VkSparseImageMemoryBind, allocs *cgoAllocMap) { +// 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.VkSparseImageMemoryBind) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocSparseImageMemoryBindMemory(len0) + mem0 := allocBufferCopy2Memory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSparseImageMemoryBind)(unsafe.Pointer(h0)) + 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.VkSparseImageMemoryBind)(h.Data) + unpacked = (*C.VkBufferCopy2)(h.Data) return } -// packSSparseImageMemoryBind reads sliced Go data structure out from plain C format. -func packSSparseImageMemoryBind(v []SparseImageMemoryBind, ptr0 *C.VkSparseImageMemoryBind) { +// 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 / sizeOfSparseImageMemoryBindValue]C.VkSparseImageMemoryBind)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseImageMemoryBindRef(unsafe.Pointer(&ptr1)) + 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 *SparseImageMemoryBindInfo) Ref() *C.VkSparseImageMemoryBindInfo { +func (x *CopyBufferInfo2) Ref() *C.VkCopyBufferInfo2 { if x == nil { return nil } - return x.ref50faeb70 + 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 *SparseImageMemoryBindInfo) Free() { - if x != nil && x.allocs50faeb70 != nil { - x.allocs50faeb70.(*cgoAllocMap).Free() - x.ref50faeb70 = nil +func (x *CopyBufferInfo2) Free() { + if x != nil && x.allocs95a1aa26 != nil { + x.allocs95a1aa26.(*cgoAllocMap).Free() + x.ref95a1aa26 = nil } } -// NewSparseImageMemoryBindInfoRef 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 NewSparseImageMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageMemoryBindInfo { +func NewCopyBufferInfo2Ref(ref unsafe.Pointer) *CopyBufferInfo2 { if ref == nil { return nil } - obj := new(SparseImageMemoryBindInfo) - obj.ref50faeb70 = (*C.VkSparseImageMemoryBindInfo)(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 *SparseImageMemoryBindInfo) PassRef() (*C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { +func (x *CopyBufferInfo2) PassRef() (*C.VkCopyBufferInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref50faeb70 != nil { - return x.ref50faeb70, nil + } else if x.ref95a1aa26 != nil { + return x.ref95a1aa26, nil } - mem50faeb70 := allocSparseImageMemoryBindInfoMemory(1) - ref50faeb70 := (*C.VkSparseImageMemoryBindInfo)(mem50faeb70) - allocs50faeb70 := new(cgoAllocMap) - allocs50faeb70.Add(mem50faeb70) + mem95a1aa26 := allocCopyBufferInfo2Memory(1) + ref95a1aa26 := (*C.VkCopyBufferInfo2)(mem95a1aa26) + allocs95a1aa26 := new(cgoAllocMap) + allocs95a1aa26.Add(mem95a1aa26) - var cimage_allocs *cgoAllocMap - ref50faeb70.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs50faeb70.Borrow(cimage_allocs) + var csType_allocs *cgoAllocMap + ref95a1aa26.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95a1aa26.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 + ref95a1aa26.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95a1aa26.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - ref50faeb70.pBinds, cpBinds_allocs = unpackSSparseImageMemoryBind(x.PBinds) - allocs50faeb70.Borrow(cpBinds_allocs) + var csrcBuffer_allocs *cgoAllocMap + ref95a1aa26.srcBuffer, csrcBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SrcBuffer)), cgoAllocsUnknown + allocs95a1aa26.Borrow(csrcBuffer_allocs) - x.ref50faeb70 = ref50faeb70 - x.allocs50faeb70 = allocs50faeb70 - return ref50faeb70, allocs50faeb70 + 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 SparseImageMemoryBindInfo) PassValue() (C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { - if x.ref50faeb70 != nil { - return *x.ref50faeb70, nil +func (x CopyBufferInfo2) PassValue() (C.VkCopyBufferInfo2, *cgoAllocMap) { + if x.ref95a1aa26 != nil { + return *x.ref95a1aa26, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4179,240 +29683,378 @@ 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 *CopyBufferInfo2) Deref() { + if x.ref95a1aa26 == 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.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) } -// allocBindSparseInfoMemory allocates memory for type C.VkBindSparseInfo in C. +// allocImageCopy2Memory allocates memory for type C.VkImageCopy2 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()) +func allocImageCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCopy2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindSparseInfoValue = unsafe.Sizeof([1]C.VkBindSparseInfo{}) +const sizeOfImageCopy2Value = unsafe.Sizeof([1]C.VkImageCopy2{}) -// 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 *ImageCopy2) Ref() *C.VkImageCopy2 { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseBufferMemoryBindInfo) { - go allocs.Free() - }) + return x.ref411062 +} - 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 *ImageCopy2) Free() { + if x != nil && x.allocs411062 != nil { + x.allocs411062.(*cgoAllocMap).Free() + x.ref411062 = nil } - v0 := *(*[]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// 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 } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseBufferMemoryBindInfo)(h.Data) - return + obj := new(ImageCopy2) + obj.ref411062 = (*C.VkImageCopy2)(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 *ImageCopy2) PassRef() (*C.VkImageCopy2, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.ref411062 != nil { + return x.ref411062, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageOpaqueMemoryBindInfo) { - go allocs.Free() - }) + mem411062 := allocImageCopy2Memory(1) + ref411062 := (*C.VkImageCopy2)(mem411062) + allocs411062 := new(cgoAllocMap) + allocs411062.Add(mem411062) - len0 := len(x) - mem0 := allocSparseImageOpaqueMemoryBindInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + 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 + +} + +// 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 } - 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 *ImageCopy2) Deref() { + if x.ref411062 == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseImageOpaqueMemoryBindInfo)(h.Data) - 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)) } -// unpackSSparseImageMemoryBindInfo transforms a sliced Go data structure into plain C format. -func unpackSSparseImageMemoryBindInfo(x []SparseImageMemoryBindInfo) (unpacked *C.VkSparseImageMemoryBindInfo, allocs *cgoAllocMap) { +// allocCopyImageInfo2Memory allocates memory for type C.VkCopyImageInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCopyImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfCopyImageInfo2Value = unsafe.Sizeof([1]C.VkCopyImageInfo2{}) + +// 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(**C.VkSparseImageMemoryBindInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocSparseImageMemoryBindInfoMemory(len0) + mem0 := allocImageCopy2Memory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkImageCopy2)(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) + unpacked = (*C.VkImageCopy2)(h.Data) return } -// packSSparseBufferMemoryBindInfo reads sliced Go data structure out from plain C format. -func packSSparseBufferMemoryBindInfo(v []SparseBufferMemoryBindInfo, ptr0 *C.VkSparseBufferMemoryBindInfo) { +// 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 := (*(*[m / sizeOfSparseBufferMemoryBindInfoValue]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseBufferMemoryBindInfoRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfImageCopy2Value]C.VkImageCopy2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageCopy2Ref(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)) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CopyImageInfo2) Ref() *C.VkCopyImageInfo2 { + if x == nil { + return nil } + return x.ref73df1447 } -// 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)) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CopyImageInfo2) Free() { + if x != nil && x.allocs73df1447 != nil { + x.allocs73df1447.(*cgoAllocMap).Free() + x.ref73df1447 = nil + } +} + +// 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 NewCopyImageInfo2Ref(ref unsafe.Pointer) *CopyImageInfo2 { + if ref == nil { + return nil + } + 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 *CopyImageInfo2) PassRef() (*C.VkCopyImageInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref73df1447 != nil { + return x.ref73df1447, nil + } + mem73df1447 := allocCopyImageInfo2Memory(1) + ref73df1447 := (*C.VkCopyImageInfo2)(mem73df1447) + allocs73df1447 := new(cgoAllocMap) + allocs73df1447.Add(mem73df1447) + + var csType_allocs *cgoAllocMap + ref73df1447.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73df1447.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref73df1447.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73df1447.Borrow(cpNext_allocs) + + var csrcImage_allocs *cgoAllocMap + ref73df1447.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs73df1447.Borrow(csrcImage_allocs) + + var csrcImageLayout_allocs *cgoAllocMap + ref73df1447.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs73df1447.Borrow(csrcImageLayout_allocs) + + 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 CopyImageInfo2) PassValue() (C.VkCopyImageInfo2, *cgoAllocMap) { + if x.ref73df1447 != nil { + return *x.ref73df1447, 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 *CopyImageInfo2) Deref() { + if x.ref73df1447 == nil { + return + } + 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) +} + +// allocBufferImageCopy2Memory allocates memory for type C.VkBufferImageCopy2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferImageCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferImageCopy2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfBufferImageCopy2Value = unsafe.Sizeof([1]C.VkBufferImageCopy2{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindSparseInfo) Ref() *C.VkBindSparseInfo { +func (x *BufferImageCopy2) Ref() *C.VkBufferImageCopy2 { if x == nil { return nil } - return x.refb0cbe910 + 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 *BindSparseInfo) Free() { - if x != nil && x.allocsb0cbe910 != nil { - x.allocsb0cbe910.(*cgoAllocMap).Free() - x.refb0cbe910 = nil +func (x *BufferImageCopy2) Free() { + if x != nil && x.allocsb0b2a2b1 != nil { + x.allocsb0b2a2b1.(*cgoAllocMap).Free() + x.refb0b2a2b1 = nil } } -// NewBindSparseInfoRef 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 NewBindSparseInfoRef(ref unsafe.Pointer) *BindSparseInfo { +func NewBufferImageCopy2Ref(ref unsafe.Pointer) *BufferImageCopy2 { if ref == nil { return nil } - obj := new(BindSparseInfo) - obj.refb0cbe910 = (*C.VkBindSparseInfo)(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 *BindSparseInfo) PassRef() (*C.VkBindSparseInfo, *cgoAllocMap) { +func (x *BufferImageCopy2) PassRef() (*C.VkBufferImageCopy2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb0cbe910 != nil { - return x.refb0cbe910, nil + } else if x.refb0b2a2b1 != nil { + return x.refb0b2a2b1, nil } - memb0cbe910 := allocBindSparseInfoMemory(1) - refb0cbe910 := (*C.VkBindSparseInfo)(memb0cbe910) - allocsb0cbe910 := new(cgoAllocMap) - allocsb0cbe910.Add(memb0cbe910) + memb0b2a2b1 := allocBufferImageCopy2Memory(1) + refb0b2a2b1 := (*C.VkBufferImageCopy2)(memb0b2a2b1) + allocsb0b2a2b1 := new(cgoAllocMap) + allocsb0b2a2b1.Add(memb0b2a2b1) var csType_allocs *cgoAllocMap - refb0cbe910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb0cbe910.Borrow(csType_allocs) + refb0b2a2b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0b2a2b1.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) + refb0b2a2b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cpNext_allocs) - var cimageOpaqueBindCount_allocs *cgoAllocMap - refb0cbe910.imageOpaqueBindCount, cimageOpaqueBindCount_allocs = (C.uint32_t)(x.ImageOpaqueBindCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cimageOpaqueBindCount_allocs) + var cbufferOffset_allocs *cgoAllocMap + refb0b2a2b1.bufferOffset, cbufferOffset_allocs = (C.VkDeviceSize)(x.BufferOffset), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferOffset_allocs) - var cpImageOpaqueBinds_allocs *cgoAllocMap - refb0cbe910.pImageOpaqueBinds, cpImageOpaqueBinds_allocs = unpackSSparseImageOpaqueMemoryBindInfo(x.PImageOpaqueBinds) - allocsb0cbe910.Borrow(cpImageOpaqueBinds_allocs) + var cbufferRowLength_allocs *cgoAllocMap + refb0b2a2b1.bufferRowLength, cbufferRowLength_allocs = (C.uint32_t)(x.BufferRowLength), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferRowLength_allocs) - var cimageBindCount_allocs *cgoAllocMap - refb0cbe910.imageBindCount, cimageBindCount_allocs = (C.uint32_t)(x.ImageBindCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cimageBindCount_allocs) + var cbufferImageHeight_allocs *cgoAllocMap + refb0b2a2b1.bufferImageHeight, cbufferImageHeight_allocs = (C.uint32_t)(x.BufferImageHeight), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferImageHeight_allocs) - var cpImageBinds_allocs *cgoAllocMap - refb0cbe910.pImageBinds, cpImageBinds_allocs = unpackSSparseImageMemoryBindInfo(x.PImageBinds) - allocsb0cbe910.Borrow(cpImageBinds_allocs) + var cimageSubresource_allocs *cgoAllocMap + refb0b2a2b1.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() + allocsb0b2a2b1.Borrow(cimageSubresource_allocs) - var csignalSemaphoreCount_allocs *cgoAllocMap - refb0cbe910.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(csignalSemaphoreCount_allocs) + var cimageOffset_allocs *cgoAllocMap + refb0b2a2b1.imageOffset, cimageOffset_allocs = x.ImageOffset.PassValue() + allocsb0b2a2b1.Borrow(cimageOffset_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 cimageExtent_allocs *cgoAllocMap + refb0b2a2b1.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocsb0b2a2b1.Borrow(cimageExtent_allocs) - x.refb0cbe910 = refb0cbe910 - x.allocsb0cbe910 = allocsb0cbe910 - return refb0cbe910, allocsb0cbe910 + 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 BindSparseInfo) PassValue() (C.VkBindSparseInfo, *cgoAllocMap) { - if x.refb0cbe910 != nil { - return *x.refb0cbe910, nil +func (x BufferImageCopy2) PassValue() (C.VkBufferImageCopy2, *cgoAllocMap) { + if x.refb0b2a2b1 != nil { + return *x.refb0b2a2b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4420,107 +30062,149 @@ 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 *BufferImageCopy2) Deref() { + if x.refb0b2a2b1 == 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.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)) } -// allocFenceCreateInfoMemory allocates memory for type C.VkFenceCreateInfo in C. +// allocCopyBufferToImageInfo2Memory allocates memory for type C.VkCopyBufferToImageInfo2 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()) +func allocCopyBufferToImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferToImageInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfFenceCreateInfoValue = unsafe.Sizeof([1]C.VkFenceCreateInfo{}) +const sizeOfCopyBufferToImageInfo2Value = unsafe.Sizeof([1]C.VkCopyBufferToImageInfo2{}) + +// 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(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + len0 := len(x) + mem0 := allocBufferImageCopy2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkBufferImageCopy2)(h.Data) + return +} + +// 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 / 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 *FenceCreateInfo) Ref() *C.VkFenceCreateInfo { +func (x *CopyBufferToImageInfo2) Ref() *C.VkCopyBufferToImageInfo2 { if x == nil { return nil } - return x.refb8ff4840 + 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 *FenceCreateInfo) Free() { - if x != nil && x.allocsb8ff4840 != nil { - x.allocsb8ff4840.(*cgoAllocMap).Free() - x.refb8ff4840 = nil +func (x *CopyBufferToImageInfo2) Free() { + if x != nil && x.allocsa8b5363c != nil { + x.allocsa8b5363c.(*cgoAllocMap).Free() + x.refa8b5363c = nil } } -// NewFenceCreateInfoRef 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 NewFenceCreateInfoRef(ref unsafe.Pointer) *FenceCreateInfo { +func NewCopyBufferToImageInfo2Ref(ref unsafe.Pointer) *CopyBufferToImageInfo2 { if ref == nil { return nil } - obj := new(FenceCreateInfo) - obj.refb8ff4840 = (*C.VkFenceCreateInfo)(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 *FenceCreateInfo) PassRef() (*C.VkFenceCreateInfo, *cgoAllocMap) { +func (x *CopyBufferToImageInfo2) PassRef() (*C.VkCopyBufferToImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8ff4840 != nil { - return x.refb8ff4840, nil + } else if x.refa8b5363c != nil { + return x.refa8b5363c, nil } - memb8ff4840 := allocFenceCreateInfoMemory(1) - refb8ff4840 := (*C.VkFenceCreateInfo)(memb8ff4840) - allocsb8ff4840 := new(cgoAllocMap) - allocsb8ff4840.Add(memb8ff4840) + mema8b5363c := allocCopyBufferToImageInfo2Memory(1) + refa8b5363c := (*C.VkCopyBufferToImageInfo2)(mema8b5363c) + allocsa8b5363c := new(cgoAllocMap) + allocsa8b5363c.Add(mema8b5363c) var csType_allocs *cgoAllocMap - refb8ff4840.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8ff4840.Borrow(csType_allocs) + refa8b5363c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8b5363c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8ff4840.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8ff4840.Borrow(cpNext_allocs) + refa8b5363c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8b5363c.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refb8ff4840.flags, cflags_allocs = (C.VkFenceCreateFlags)(x.Flags), cgoAllocsUnknown - allocsb8ff4840.Borrow(cflags_allocs) + var csrcBuffer_allocs *cgoAllocMap + refa8b5363c.srcBuffer, csrcBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SrcBuffer)), cgoAllocsUnknown + allocsa8b5363c.Borrow(csrcBuffer_allocs) - x.refb8ff4840 = refb8ff4840 - x.allocsb8ff4840 = allocsb8ff4840 - return refb8ff4840, allocsb8ff4840 + var cdstImage_allocs *cgoAllocMap + refa8b5363c.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocsa8b5363c.Borrow(cdstImage_allocs) + + var cdstImageLayout_allocs *cgoAllocMap + refa8b5363c.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocsa8b5363c.Borrow(cdstImageLayout_allocs) + + var cregionCount_allocs *cgoAllocMap + refa8b5363c.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocsa8b5363c.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + refa8b5363c.pRegions, cpRegions_allocs = unpackSBufferImageCopy2(x.PRegions) + allocsa8b5363c.Borrow(cpRegions_allocs) + + 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 FenceCreateInfo) PassValue() (C.VkFenceCreateInfo, *cgoAllocMap) { - if x.refb8ff4840 != nil { - return *x.refb8ff4840, nil +func (x CopyBufferToImageInfo2) PassValue() (C.VkCopyBufferToImageInfo2, *cgoAllocMap) { + if x.refa8b5363c != nil { + return *x.refa8b5363c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4528,90 +30212,110 @@ 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 *CopyBufferToImageInfo2) Deref() { + if x.refa8b5363c == 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.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) } -// allocSemaphoreCreateInfoMemory allocates memory for type C.VkSemaphoreCreateInfo in C. +// allocCopyImageToBufferInfo2Memory allocates memory for type C.VkCopyImageToBufferInfo2 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()) +func allocCopyImageToBufferInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageToBufferInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkSemaphoreCreateInfo{}) +const sizeOfCopyImageToBufferInfo2Value = unsafe.Sizeof([1]C.VkCopyImageToBufferInfo2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SemaphoreCreateInfo) Ref() *C.VkSemaphoreCreateInfo { +func (x *CopyImageToBufferInfo2) Ref() *C.VkCopyImageToBufferInfo2 { if x == nil { return nil } - return x.reff130cd2b + 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 *SemaphoreCreateInfo) Free() { - if x != nil && x.allocsf130cd2b != nil { - x.allocsf130cd2b.(*cgoAllocMap).Free() - x.reff130cd2b = nil +func (x *CopyImageToBufferInfo2) Free() { + if x != nil && x.allocsa81aa2a6 != nil { + x.allocsa81aa2a6.(*cgoAllocMap).Free() + x.refa81aa2a6 = nil } } -// NewSemaphoreCreateInfoRef 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 NewSemaphoreCreateInfoRef(ref unsafe.Pointer) *SemaphoreCreateInfo { +func NewCopyImageToBufferInfo2Ref(ref unsafe.Pointer) *CopyImageToBufferInfo2 { if ref == nil { return nil } - obj := new(SemaphoreCreateInfo) - obj.reff130cd2b = (*C.VkSemaphoreCreateInfo)(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 *SemaphoreCreateInfo) PassRef() (*C.VkSemaphoreCreateInfo, *cgoAllocMap) { +func (x *CopyImageToBufferInfo2) PassRef() (*C.VkCopyImageToBufferInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff130cd2b != nil { - return x.reff130cd2b, nil + } else if x.refa81aa2a6 != nil { + return x.refa81aa2a6, nil } - memf130cd2b := allocSemaphoreCreateInfoMemory(1) - reff130cd2b := (*C.VkSemaphoreCreateInfo)(memf130cd2b) - allocsf130cd2b := new(cgoAllocMap) - allocsf130cd2b.Add(memf130cd2b) + mema81aa2a6 := allocCopyImageToBufferInfo2Memory(1) + refa81aa2a6 := (*C.VkCopyImageToBufferInfo2)(mema81aa2a6) + allocsa81aa2a6 := new(cgoAllocMap) + allocsa81aa2a6.Add(mema81aa2a6) var csType_allocs *cgoAllocMap - reff130cd2b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf130cd2b.Borrow(csType_allocs) + refa81aa2a6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa81aa2a6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff130cd2b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf130cd2b.Borrow(cpNext_allocs) + refa81aa2a6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa81aa2a6.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - reff130cd2b.flags, cflags_allocs = (C.VkSemaphoreCreateFlags)(x.Flags), cgoAllocsUnknown - allocsf130cd2b.Borrow(cflags_allocs) + var csrcImage_allocs *cgoAllocMap + refa81aa2a6.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocsa81aa2a6.Borrow(csrcImage_allocs) - x.reff130cd2b = reff130cd2b - x.allocsf130cd2b = allocsf130cd2b - return reff130cd2b, allocsf130cd2b + 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 SemaphoreCreateInfo) PassValue() (C.VkSemaphoreCreateInfo, *cgoAllocMap) { - if x.reff130cd2b != nil { - return *x.reff130cd2b, nil +func (x CopyImageToBufferInfo2) PassValue() (C.VkCopyImageToBufferInfo2, *cgoAllocMap) { + if x.refa81aa2a6 != nil { + return *x.refa81aa2a6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4619,90 +30323,106 @@ 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 *CopyImageToBufferInfo2) Deref() { + if x.refa81aa2a6 == nil { return } - x.SType = (StructureType)(x.reff130cd2b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff130cd2b.pNext)) - x.Flags = (SemaphoreCreateFlags)(x.reff130cd2b.flags) + 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) } -// allocEventCreateInfoMemory allocates memory for type C.VkEventCreateInfo in C. +// allocImageBlit2Memory allocates memory for type C.VkImageBlit2 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()) +func allocImageBlit2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageBlit2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfEventCreateInfoValue = unsafe.Sizeof([1]C.VkEventCreateInfo{}) +const sizeOfImageBlit2Value = unsafe.Sizeof([1]C.VkImageBlit2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *EventCreateInfo) Ref() *C.VkEventCreateInfo { +func (x *ImageBlit2) Ref() *C.VkImageBlit2 { if x == nil { return nil } - return x.refa54f9ec8 + 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 *EventCreateInfo) Free() { - if x != nil && x.allocsa54f9ec8 != nil { - x.allocsa54f9ec8.(*cgoAllocMap).Free() - x.refa54f9ec8 = nil +func (x *ImageBlit2) Free() { + if x != nil && x.allocs89cd708e != nil { + x.allocs89cd708e.(*cgoAllocMap).Free() + x.ref89cd708e = nil } } -// NewEventCreateInfoRef 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 NewEventCreateInfoRef(ref unsafe.Pointer) *EventCreateInfo { +func NewImageBlit2Ref(ref unsafe.Pointer) *ImageBlit2 { if ref == nil { return nil } - obj := new(EventCreateInfo) - obj.refa54f9ec8 = (*C.VkEventCreateInfo)(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 *EventCreateInfo) PassRef() (*C.VkEventCreateInfo, *cgoAllocMap) { +func (x *ImageBlit2) PassRef() (*C.VkImageBlit2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa54f9ec8 != nil { - return x.refa54f9ec8, nil + } else if x.ref89cd708e != nil { + return x.ref89cd708e, nil } - mema54f9ec8 := allocEventCreateInfoMemory(1) - refa54f9ec8 := (*C.VkEventCreateInfo)(mema54f9ec8) - allocsa54f9ec8 := new(cgoAllocMap) - allocsa54f9ec8.Add(mema54f9ec8) + mem89cd708e := allocImageBlit2Memory(1) + ref89cd708e := (*C.VkImageBlit2)(mem89cd708e) + allocs89cd708e := new(cgoAllocMap) + allocs89cd708e.Add(mem89cd708e) var csType_allocs *cgoAllocMap - refa54f9ec8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa54f9ec8.Borrow(csType_allocs) + ref89cd708e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs89cd708e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa54f9ec8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa54f9ec8.Borrow(cpNext_allocs) + ref89cd708e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs89cd708e.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refa54f9ec8.flags, cflags_allocs = (C.VkEventCreateFlags)(x.Flags), cgoAllocsUnknown - allocsa54f9ec8.Borrow(cflags_allocs) + var csrcSubresource_allocs *cgoAllocMap + ref89cd708e.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs89cd708e.Borrow(csrcSubresource_allocs) - x.refa54f9ec8 = refa54f9ec8 - x.allocsa54f9ec8 = allocsa54f9ec8 - return refa54f9ec8, allocsa54f9ec8 + var csrcOffsets_allocs *cgoAllocMap + ref89cd708e.srcOffsets, csrcOffsets_allocs = unpackA2Offset3D(x.SrcOffsets) + allocs89cd708e.Borrow(csrcOffsets_allocs) + + 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 EventCreateInfo) PassValue() (C.VkEventCreateInfo, *cgoAllocMap) { - if x.refa54f9ec8 != nil { - return *x.refa54f9ec8, nil +func (x ImageBlit2) PassValue() (C.VkImageBlit2, *cgoAllocMap) { + if x.ref89cd708e != nil { + return *x.ref89cd708e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4710,102 +30430,155 @@ 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 *ImageBlit2) Deref() { + if x.ref89cd708e == 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.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))) } -// allocQueryPoolCreateInfoMemory allocates memory for type C.VkQueryPoolCreateInfo in C. +// allocBlitImageInfo2Memory allocates memory for type C.VkBlitImageInfo2 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()) +func allocBlitImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBlitImageInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfQueryPoolCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolCreateInfo{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *QueryPoolCreateInfo) Ref() *C.VkQueryPoolCreateInfo { +func (x *BlitImageInfo2) Ref() *C.VkBlitImageInfo2 { if x == nil { return nil } - return x.ref85dfcd4a + 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 *QueryPoolCreateInfo) Free() { - if x != nil && x.allocs85dfcd4a != nil { - x.allocs85dfcd4a.(*cgoAllocMap).Free() - x.ref85dfcd4a = nil +func (x *BlitImageInfo2) Free() { + if x != nil && x.allocs93f0395 != nil { + x.allocs93f0395.(*cgoAllocMap).Free() + x.ref93f0395 = nil } } -// NewQueryPoolCreateInfoRef 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 NewQueryPoolCreateInfoRef(ref unsafe.Pointer) *QueryPoolCreateInfo { +func NewBlitImageInfo2Ref(ref unsafe.Pointer) *BlitImageInfo2 { if ref == nil { return nil } - obj := new(QueryPoolCreateInfo) - obj.ref85dfcd4a = (*C.VkQueryPoolCreateInfo)(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 *QueryPoolCreateInfo) PassRef() (*C.VkQueryPoolCreateInfo, *cgoAllocMap) { +func (x *BlitImageInfo2) PassRef() (*C.VkBlitImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref85dfcd4a != nil { - return x.ref85dfcd4a, nil + } else if x.ref93f0395 != nil { + return x.ref93f0395, nil } - mem85dfcd4a := allocQueryPoolCreateInfoMemory(1) - ref85dfcd4a := (*C.VkQueryPoolCreateInfo)(mem85dfcd4a) - allocs85dfcd4a := new(cgoAllocMap) - allocs85dfcd4a.Add(mem85dfcd4a) + mem93f0395 := allocBlitImageInfo2Memory(1) + ref93f0395 := (*C.VkBlitImageInfo2)(mem93f0395) + allocs93f0395 := new(cgoAllocMap) + allocs93f0395.Add(mem93f0395) var csType_allocs *cgoAllocMap - ref85dfcd4a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs85dfcd4a.Borrow(csType_allocs) + ref93f0395.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs93f0395.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref85dfcd4a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cpNext_allocs) + ref93f0395.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs93f0395.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref85dfcd4a.flags, cflags_allocs = (C.VkQueryPoolCreateFlags)(x.Flags), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cflags_allocs) + var csrcImage_allocs *cgoAllocMap + ref93f0395.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs93f0395.Borrow(csrcImage_allocs) - var cqueryType_allocs *cgoAllocMap - ref85dfcd4a.queryType, cqueryType_allocs = (C.VkQueryType)(x.QueryType), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cqueryType_allocs) + var csrcImageLayout_allocs *cgoAllocMap + ref93f0395.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs93f0395.Borrow(csrcImageLayout_allocs) - var cqueryCount_allocs *cgoAllocMap - ref85dfcd4a.queryCount, cqueryCount_allocs = (C.uint32_t)(x.QueryCount), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cqueryCount_allocs) + var cdstImage_allocs *cgoAllocMap + ref93f0395.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocs93f0395.Borrow(cdstImage_allocs) - var cpipelineStatistics_allocs *cgoAllocMap - ref85dfcd4a.pipelineStatistics, cpipelineStatistics_allocs = (C.VkQueryPipelineStatisticFlags)(x.PipelineStatistics), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cpipelineStatistics_allocs) + var cdstImageLayout_allocs *cgoAllocMap + ref93f0395.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocs93f0395.Borrow(cdstImageLayout_allocs) - x.ref85dfcd4a = ref85dfcd4a - x.allocs85dfcd4a = allocs85dfcd4a - return ref85dfcd4a, allocs85dfcd4a + var cregionCount_allocs *cgoAllocMap + ref93f0395.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs93f0395.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + ref93f0395.pRegions, cpRegions_allocs = unpackSImageBlit2(x.PRegions) + allocs93f0395.Borrow(cpRegions_allocs) + + var cfilter_allocs *cgoAllocMap + ref93f0395.filter, cfilter_allocs = (C.VkFilter)(x.Filter), cgoAllocsUnknown + allocs93f0395.Borrow(cfilter_allocs) + + 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 QueryPoolCreateInfo) PassValue() (C.VkQueryPoolCreateInfo, *cgoAllocMap) { - if x.ref85dfcd4a != nil { - return *x.ref85dfcd4a, nil +func (x BlitImageInfo2) PassValue() (C.VkBlitImageInfo2, *cgoAllocMap) { + if x.ref93f0395 != nil { + return *x.ref93f0395, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4813,113 +30586,112 @@ 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 *BlitImageInfo2) Deref() { + if x.ref93f0395 == 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.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) } -// allocBufferCreateInfoMemory allocates memory for type C.VkBufferCreateInfo in C. +// allocImageResolve2Memory allocates memory for type C.VkImageResolve2 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()) +func allocImageResolve2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageResolve2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBufferCreateInfoValue = unsafe.Sizeof([1]C.VkBufferCreateInfo{}) +const sizeOfImageResolve2Value = unsafe.Sizeof([1]C.VkImageResolve2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferCreateInfo) Ref() *C.VkBufferCreateInfo { +func (x *ImageResolve2) Ref() *C.VkImageResolve2 { if x == nil { return nil } - return x.reffe19d2cd + 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 *BufferCreateInfo) Free() { - if x != nil && x.allocsfe19d2cd != nil { - x.allocsfe19d2cd.(*cgoAllocMap).Free() - x.reffe19d2cd = nil +func (x *ImageResolve2) Free() { + if x != nil && x.allocs29ad796d != nil { + x.allocs29ad796d.(*cgoAllocMap).Free() + x.ref29ad796d = nil } } -// NewBufferCreateInfoRef 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 NewBufferCreateInfoRef(ref unsafe.Pointer) *BufferCreateInfo { +func NewImageResolve2Ref(ref unsafe.Pointer) *ImageResolve2 { if ref == nil { return nil } - obj := new(BufferCreateInfo) - obj.reffe19d2cd = (*C.VkBufferCreateInfo)(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 *BufferCreateInfo) PassRef() (*C.VkBufferCreateInfo, *cgoAllocMap) { +func (x *ImageResolve2) PassRef() (*C.VkImageResolve2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe19d2cd != nil { - return x.reffe19d2cd, nil + } else if x.ref29ad796d != nil { + return x.ref29ad796d, nil } - memfe19d2cd := allocBufferCreateInfoMemory(1) - reffe19d2cd := (*C.VkBufferCreateInfo)(memfe19d2cd) - allocsfe19d2cd := new(cgoAllocMap) - allocsfe19d2cd.Add(memfe19d2cd) + mem29ad796d := allocImageResolve2Memory(1) + ref29ad796d := (*C.VkImageResolve2)(mem29ad796d) + allocs29ad796d := new(cgoAllocMap) + allocs29ad796d.Add(mem29ad796d) var csType_allocs *cgoAllocMap - reffe19d2cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csType_allocs) + ref29ad796d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs29ad796d.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) + ref29ad796d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs29ad796d.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - reffe19d2cd.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csize_allocs) + var csrcSubresource_allocs *cgoAllocMap + ref29ad796d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs29ad796d.Borrow(csrcSubresource_allocs) - var cusage_allocs *cgoAllocMap - reffe19d2cd.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cusage_allocs) + var csrcOffset_allocs *cgoAllocMap + ref29ad796d.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() + allocs29ad796d.Borrow(csrcOffset_allocs) - var csharingMode_allocs *cgoAllocMap - reffe19d2cd.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csharingMode_allocs) + var cdstSubresource_allocs *cgoAllocMap + ref29ad796d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs29ad796d.Borrow(cdstSubresource_allocs) - var cqueueFamilyIndexCount_allocs *cgoAllocMap - reffe19d2cd.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cqueueFamilyIndexCount_allocs) + var cdstOffset_allocs *cgoAllocMap + ref29ad796d.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() + allocs29ad796d.Borrow(cdstOffset_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 cextent_allocs *cgoAllocMap + ref29ad796d.extent, cextent_allocs = x.Extent.PassValue() + allocs29ad796d.Borrow(cextent_allocs) - x.reffe19d2cd = reffe19d2cd - x.allocsfe19d2cd = allocsfe19d2cd - return reffe19d2cd, allocsfe19d2cd + 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 BufferCreateInfo) PassValue() (C.VkBufferCreateInfo, *cgoAllocMap) { - if x.reffe19d2cd != nil { - return *x.reffe19d2cd, nil +func (x ImageResolve2) PassValue() (C.VkImageResolve2, *cgoAllocMap) { + if x.ref29ad796d != nil { + return *x.ref29ad796d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4927,115 +30699,152 @@ 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 *ImageResolve2) Deref() { + if x.ref29ad796d == 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.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)) } -// allocBufferViewCreateInfoMemory allocates memory for type C.VkBufferViewCreateInfo in C. +// allocResolveImageInfo2Memory allocates memory for type C.VkResolveImageInfo2 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()) +func allocResolveImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfResolveImageInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBufferViewCreateInfoValue = unsafe.Sizeof([1]C.VkBufferViewCreateInfo{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 +} + +// 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)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferViewCreateInfo) Ref() *C.VkBufferViewCreateInfo { +func (x *ResolveImageInfo2) Ref() *C.VkResolveImageInfo2 { if x == nil { return nil } - return x.ref49b97027 + 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 *BufferViewCreateInfo) Free() { - if x != nil && x.allocs49b97027 != nil { - x.allocs49b97027.(*cgoAllocMap).Free() - x.ref49b97027 = nil +func (x *ResolveImageInfo2) Free() { + if x != nil && x.allocs407c4932 != nil { + x.allocs407c4932.(*cgoAllocMap).Free() + x.ref407c4932 = nil } } -// NewBufferViewCreateInfoRef 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 NewBufferViewCreateInfoRef(ref unsafe.Pointer) *BufferViewCreateInfo { +func NewResolveImageInfo2Ref(ref unsafe.Pointer) *ResolveImageInfo2 { if ref == nil { return nil } - obj := new(BufferViewCreateInfo) - obj.ref49b97027 = (*C.VkBufferViewCreateInfo)(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 *BufferViewCreateInfo) PassRef() (*C.VkBufferViewCreateInfo, *cgoAllocMap) { +func (x *ResolveImageInfo2) PassRef() (*C.VkResolveImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref49b97027 != nil { - return x.ref49b97027, nil + } else if x.ref407c4932 != nil { + return x.ref407c4932, nil } - mem49b97027 := allocBufferViewCreateInfoMemory(1) - ref49b97027 := (*C.VkBufferViewCreateInfo)(mem49b97027) - allocs49b97027 := new(cgoAllocMap) - allocs49b97027.Add(mem49b97027) + mem407c4932 := allocResolveImageInfo2Memory(1) + ref407c4932 := (*C.VkResolveImageInfo2)(mem407c4932) + allocs407c4932 := new(cgoAllocMap) + allocs407c4932.Add(mem407c4932) var csType_allocs *cgoAllocMap - ref49b97027.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs49b97027.Borrow(csType_allocs) + ref407c4932.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs407c4932.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref49b97027.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs49b97027.Borrow(cpNext_allocs) + ref407c4932.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs407c4932.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref49b97027.flags, cflags_allocs = (C.VkBufferViewCreateFlags)(x.Flags), cgoAllocsUnknown - allocs49b97027.Borrow(cflags_allocs) + var csrcImage_allocs *cgoAllocMap + ref407c4932.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs407c4932.Borrow(csrcImage_allocs) - var cbuffer_allocs *cgoAllocMap - ref49b97027.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs49b97027.Borrow(cbuffer_allocs) + var csrcImageLayout_allocs *cgoAllocMap + ref407c4932.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs407c4932.Borrow(csrcImageLayout_allocs) - var cformat_allocs *cgoAllocMap - ref49b97027.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs49b97027.Borrow(cformat_allocs) + var cdstImage_allocs *cgoAllocMap + ref407c4932.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocs407c4932.Borrow(cdstImage_allocs) - var coffset_allocs *cgoAllocMap - ref49b97027.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs49b97027.Borrow(coffset_allocs) + var cdstImageLayout_allocs *cgoAllocMap + ref407c4932.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocs407c4932.Borrow(cdstImageLayout_allocs) - var c_range_allocs *cgoAllocMap - ref49b97027._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown - allocs49b97027.Borrow(c_range_allocs) + var cregionCount_allocs *cgoAllocMap + ref407c4932.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs407c4932.Borrow(cregionCount_allocs) - x.ref49b97027 = ref49b97027 - x.allocs49b97027 = allocs49b97027 - return ref49b97027, allocs49b97027 + 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 BufferViewCreateInfo) PassValue() (C.VkBufferViewCreateInfo, *cgoAllocMap) { - if x.ref49b97027 != nil { - return *x.ref49b97027, nil +func (x ResolveImageInfo2) PassValue() (C.VkResolveImageInfo2, *cgoAllocMap) { + if x.ref407c4932 != nil { + return *x.ref407c4932, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5043,142 +30852,99 @@ 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 *ResolveImageInfo2) Deref() { + if x.ref407c4932 == 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.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) } -// allocImageCreateInfoMemory allocates memory for type C.VkImageCreateInfo in C. +// allocPhysicalDeviceSubgroupSizeControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceSubgroupSizeControlFeatures 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()) +func allocPhysicalDeviceSubgroupSizeControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageCreateInfoValue = unsafe.Sizeof([1]C.VkImageCreateInfo{}) +const sizeOfPhysicalDeviceSubgroupSizeControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupSizeControlFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageCreateInfo) Ref() *C.VkImageCreateInfo { +func (x *PhysicalDeviceSubgroupSizeControlFeatures) Ref() *C.VkPhysicalDeviceSubgroupSizeControlFeatures { if x == nil { return nil } - return x.reffb587ba1 + 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 *ImageCreateInfo) Free() { - if x != nil && x.allocsfb587ba1 != nil { - x.allocsfb587ba1.(*cgoAllocMap).Free() - x.reffb587ba1 = nil +func (x *PhysicalDeviceSubgroupSizeControlFeatures) Free() { + if x != nil && x.allocs688d05c2 != nil { + x.allocs688d05c2.(*cgoAllocMap).Free() + x.ref688d05c2 = nil } } -// NewImageCreateInfoRef 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 NewImageCreateInfoRef(ref unsafe.Pointer) *ImageCreateInfo { +func NewPhysicalDeviceSubgroupSizeControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupSizeControlFeatures { if ref == nil { return nil } - obj := new(ImageCreateInfo) - obj.reffb587ba1 = (*C.VkImageCreateInfo)(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 *ImageCreateInfo) PassRef() (*C.VkImageCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceSubgroupSizeControlFeatures) PassRef() (*C.VkPhysicalDeviceSubgroupSizeControlFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffb587ba1 != nil { - return x.reffb587ba1, nil + } else if x.ref688d05c2 != nil { + return x.ref688d05c2, nil } - memfb587ba1 := allocImageCreateInfoMemory(1) - reffb587ba1 := (*C.VkImageCreateInfo)(memfb587ba1) - allocsfb587ba1 := new(cgoAllocMap) - allocsfb587ba1.Add(memfb587ba1) + mem688d05c2 := allocPhysicalDeviceSubgroupSizeControlFeaturesMemory(1) + ref688d05c2 := (*C.VkPhysicalDeviceSubgroupSizeControlFeatures)(mem688d05c2) + allocs688d05c2 := new(cgoAllocMap) + allocs688d05c2.Add(mem688d05c2) var csType_allocs *cgoAllocMap - reffb587ba1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfb587ba1.Borrow(csType_allocs) + ref688d05c2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs688d05c2.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) + ref688d05c2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs688d05c2.Borrow(cpNext_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 csubgroupSizeControl_allocs *cgoAllocMap + ref688d05c2.subgroupSizeControl, csubgroupSizeControl_allocs = (C.VkBool32)(x.SubgroupSizeControl), cgoAllocsUnknown + allocs688d05c2.Borrow(csubgroupSizeControl_allocs) - var cinitialLayout_allocs *cgoAllocMap - reffb587ba1.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown - allocsfb587ba1.Borrow(cinitialLayout_allocs) + var ccomputeFullSubgroups_allocs *cgoAllocMap + ref688d05c2.computeFullSubgroups, ccomputeFullSubgroups_allocs = (C.VkBool32)(x.ComputeFullSubgroups), cgoAllocsUnknown + allocs688d05c2.Borrow(ccomputeFullSubgroups_allocs) - x.reffb587ba1 = reffb587ba1 - x.allocsfb587ba1 = allocsfb587ba1 - return reffb587ba1, allocsfb587ba1 + 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 ImageCreateInfo) PassValue() (C.VkImageCreateInfo, *cgoAllocMap) { - if x.reffb587ba1 != nil { - return *x.reffb587ba1, nil +func (x PhysicalDeviceSubgroupSizeControlFeatures) PassValue() (C.VkPhysicalDeviceSubgroupSizeControlFeatures, *cgoAllocMap) { + if x.ref688d05c2 != nil { + return *x.ref688d05c2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5186,114 +30952,103 @@ 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 *PhysicalDeviceSubgroupSizeControlFeatures) Deref() { + if x.ref688d05c2 == 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.ref688d05c2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref688d05c2.pNext)) + x.SubgroupSizeControl = (Bool32)(x.ref688d05c2.subgroupSizeControl) + x.ComputeFullSubgroups = (Bool32)(x.ref688d05c2.computeFullSubgroups) } -// allocSubresourceLayoutMemory allocates memory for type C.VkSubresourceLayout in C. +// allocPhysicalDeviceSubgroupSizeControlPropertiesMemory allocates memory for type C.VkPhysicalDeviceSubgroupSizeControlProperties 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()) +func allocPhysicalDeviceSubgroupSizeControlPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubresourceLayoutValue = unsafe.Sizeof([1]C.VkSubresourceLayout{}) +const sizeOfPhysicalDeviceSubgroupSizeControlPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupSizeControlProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubresourceLayout) Ref() *C.VkSubresourceLayout { +func (x *PhysicalDeviceSubgroupSizeControlProperties) Ref() *C.VkPhysicalDeviceSubgroupSizeControlProperties { if x == nil { return nil } - return x.ref182612ad + 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 *SubresourceLayout) Free() { - if x != nil && x.allocs182612ad != nil { - x.allocs182612ad.(*cgoAllocMap).Free() - x.ref182612ad = nil +func (x *PhysicalDeviceSubgroupSizeControlProperties) Free() { + if x != nil && x.allocse0ef78a4 != nil { + x.allocse0ef78a4.(*cgoAllocMap).Free() + x.refe0ef78a4 = nil } } -// NewSubresourceLayoutRef 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 NewSubresourceLayoutRef(ref unsafe.Pointer) *SubresourceLayout { +func NewPhysicalDeviceSubgroupSizeControlPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupSizeControlProperties { if ref == nil { return nil } - obj := new(SubresourceLayout) - obj.ref182612ad = (*C.VkSubresourceLayout)(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 *SubresourceLayout) PassRef() (*C.VkSubresourceLayout, *cgoAllocMap) { +func (x *PhysicalDeviceSubgroupSizeControlProperties) PassRef() (*C.VkPhysicalDeviceSubgroupSizeControlProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref182612ad != nil { - return x.ref182612ad, nil + } else if x.refe0ef78a4 != nil { + return x.refe0ef78a4, nil } - mem182612ad := allocSubresourceLayoutMemory(1) - ref182612ad := (*C.VkSubresourceLayout)(mem182612ad) - allocs182612ad := new(cgoAllocMap) - allocs182612ad.Add(mem182612ad) + meme0ef78a4 := allocPhysicalDeviceSubgroupSizeControlPropertiesMemory(1) + refe0ef78a4 := (*C.VkPhysicalDeviceSubgroupSizeControlProperties)(meme0ef78a4) + allocse0ef78a4 := new(cgoAllocMap) + allocse0ef78a4.Add(meme0ef78a4) - var coffset_allocs *cgoAllocMap - ref182612ad.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs182612ad.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + refe0ef78a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse0ef78a4.Borrow(csType_allocs) - var csize_allocs *cgoAllocMap - ref182612ad.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs182612ad.Borrow(csize_allocs) + var cpNext_allocs *cgoAllocMap + refe0ef78a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse0ef78a4.Borrow(cpNext_allocs) - var crowPitch_allocs *cgoAllocMap - ref182612ad.rowPitch, crowPitch_allocs = (C.VkDeviceSize)(x.RowPitch), cgoAllocsUnknown - allocs182612ad.Borrow(crowPitch_allocs) + var cminSubgroupSize_allocs *cgoAllocMap + refe0ef78a4.minSubgroupSize, cminSubgroupSize_allocs = (C.uint32_t)(x.MinSubgroupSize), cgoAllocsUnknown + allocse0ef78a4.Borrow(cminSubgroupSize_allocs) - var carrayPitch_allocs *cgoAllocMap - ref182612ad.arrayPitch, carrayPitch_allocs = (C.VkDeviceSize)(x.ArrayPitch), cgoAllocsUnknown - allocs182612ad.Borrow(carrayPitch_allocs) + var cmaxSubgroupSize_allocs *cgoAllocMap + refe0ef78a4.maxSubgroupSize, cmaxSubgroupSize_allocs = (C.uint32_t)(x.MaxSubgroupSize), cgoAllocsUnknown + allocse0ef78a4.Borrow(cmaxSubgroupSize_allocs) - var cdepthPitch_allocs *cgoAllocMap - ref182612ad.depthPitch, cdepthPitch_allocs = (C.VkDeviceSize)(x.DepthPitch), cgoAllocsUnknown - allocs182612ad.Borrow(cdepthPitch_allocs) + var cmaxComputeWorkgroupSubgroups_allocs *cgoAllocMap + refe0ef78a4.maxComputeWorkgroupSubgroups, cmaxComputeWorkgroupSubgroups_allocs = (C.uint32_t)(x.MaxComputeWorkgroupSubgroups), cgoAllocsUnknown + allocse0ef78a4.Borrow(cmaxComputeWorkgroupSubgroups_allocs) - x.ref182612ad = ref182612ad - x.allocs182612ad = allocs182612ad - return ref182612ad, allocs182612ad + 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 SubresourceLayout) PassValue() (C.VkSubresourceLayout, *cgoAllocMap) { - if x.ref182612ad != nil { - return *x.ref182612ad, nil +func (x PhysicalDeviceSubgroupSizeControlProperties) PassValue() (C.VkPhysicalDeviceSubgroupSizeControlProperties, *cgoAllocMap) { + if x.refe0ef78a4 != nil { + return *x.refe0ef78a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5301,96 +31056,93 @@ 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 *PhysicalDeviceSubgroupSizeControlProperties) Deref() { + if x.refe0ef78a4 == 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.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) } -// allocComponentMappingMemory allocates memory for type C.VkComponentMapping in C. +// allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory allocates memory for type C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo 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()) +func allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineShaderStageRequiredSubgroupSizeCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfComponentMappingValue = unsafe.Sizeof([1]C.VkComponentMapping{}) +const sizeOfPipelineShaderStageRequiredSubgroupSizeCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ComponentMapping) Ref() *C.VkComponentMapping { +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Ref() *C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { if x == nil { return nil } - return x.ref63d3d563 + 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 *ComponentMapping) Free() { - if x != nil && x.allocs63d3d563 != nil { - x.allocs63d3d563.(*cgoAllocMap).Free() - x.ref63d3d563 = nil +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Free() { + if x != nil && x.allocsd57e5454 != nil { + x.allocsd57e5454.(*cgoAllocMap).Free() + x.refd57e5454 = nil } } -// NewComponentMappingRef 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 NewComponentMappingRef(ref unsafe.Pointer) *ComponentMapping { +func NewPipelineShaderStageRequiredSubgroupSizeCreateInfoRef(ref unsafe.Pointer) *PipelineShaderStageRequiredSubgroupSizeCreateInfo { if ref == nil { return nil } - obj := new(ComponentMapping) - obj.ref63d3d563 = (*C.VkComponentMapping)(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 *ComponentMapping) PassRef() (*C.VkComponentMapping, *cgoAllocMap) { +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) PassRef() (*C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref63d3d563 != nil { - return x.ref63d3d563, nil + } else if x.refd57e5454 != nil { + return x.refd57e5454, 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) + memd57e5454 := allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory(1) + refd57e5454 := (*C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)(memd57e5454) + allocsd57e5454 := new(cgoAllocMap) + allocsd57e5454.Add(memd57e5454) - var cg_allocs *cgoAllocMap - ref63d3d563.g, cg_allocs = (C.VkComponentSwizzle)(x.G), cgoAllocsUnknown - allocs63d3d563.Borrow(cg_allocs) + var csType_allocs *cgoAllocMap + refd57e5454.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd57e5454.Borrow(csType_allocs) - var cb_allocs *cgoAllocMap - ref63d3d563.b, cb_allocs = (C.VkComponentSwizzle)(x.B), cgoAllocsUnknown - allocs63d3d563.Borrow(cb_allocs) + var cpNext_allocs *cgoAllocMap + refd57e5454.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd57e5454.Borrow(cpNext_allocs) - var ca_allocs *cgoAllocMap - ref63d3d563.a, ca_allocs = (C.VkComponentSwizzle)(x.A), cgoAllocsUnknown - allocs63d3d563.Borrow(ca_allocs) + var crequiredSubgroupSize_allocs *cgoAllocMap + refd57e5454.requiredSubgroupSize, crequiredSubgroupSize_allocs = (C.uint32_t)(x.RequiredSubgroupSize), cgoAllocsUnknown + allocsd57e5454.Borrow(crequiredSubgroupSize_allocs) - x.ref63d3d563 = ref63d3d563 - x.allocs63d3d563 = allocs63d3d563 - return ref63d3d563, allocs63d3d563 + 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 ComponentMapping) PassValue() (C.VkComponentMapping, *cgoAllocMap) { - if x.ref63d3d563 != nil { - return *x.ref63d3d563, nil +func (x PipelineShaderStageRequiredSubgroupSizeCreateInfo) PassValue() (C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, *cgoAllocMap) { + if x.refd57e5454 != nil { + return *x.refd57e5454, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5398,99 +31150,94 @@ 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 *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Deref() { + if x.refd57e5454 == 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.SType = (StructureType)(x.refd57e5454.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd57e5454.pNext)) + x.RequiredSubgroupSize = (uint32)(x.refd57e5454.requiredSubgroupSize) } -// allocImageSubresourceRangeMemory allocates memory for type C.VkImageSubresourceRange in C. +// allocPhysicalDeviceInlineUniformBlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockFeatures 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()) +func allocPhysicalDeviceInlineUniformBlockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageSubresourceRangeValue = unsafe.Sizeof([1]C.VkImageSubresourceRange{}) +const sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSubresourceRange) Ref() *C.VkImageSubresourceRange { +func (x *PhysicalDeviceInlineUniformBlockFeatures) Ref() *C.VkPhysicalDeviceInlineUniformBlockFeatures { if x == nil { return nil } - return x.ref5aa1126 + 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 *ImageSubresourceRange) Free() { - if x != nil && x.allocs5aa1126 != nil { - x.allocs5aa1126.(*cgoAllocMap).Free() - x.ref5aa1126 = nil +func (x *PhysicalDeviceInlineUniformBlockFeatures) Free() { + if x != nil && x.allocs6057e623 != nil { + x.allocs6057e623.(*cgoAllocMap).Free() + x.ref6057e623 = nil } } -// NewImageSubresourceRangeRef 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 NewImageSubresourceRangeRef(ref unsafe.Pointer) *ImageSubresourceRange { +func NewPhysicalDeviceInlineUniformBlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockFeatures { if ref == nil { return nil } - obj := new(ImageSubresourceRange) - obj.ref5aa1126 = (*C.VkImageSubresourceRange)(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 *ImageSubresourceRange) PassRef() (*C.VkImageSubresourceRange, *cgoAllocMap) { +func (x *PhysicalDeviceInlineUniformBlockFeatures) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5aa1126 != nil { - return x.ref5aa1126, nil + } else if x.ref6057e623 != nil { + return x.ref6057e623, 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) + mem6057e623 := allocPhysicalDeviceInlineUniformBlockFeaturesMemory(1) + ref6057e623 := (*C.VkPhysicalDeviceInlineUniformBlockFeatures)(mem6057e623) + allocs6057e623 := new(cgoAllocMap) + allocs6057e623.Add(mem6057e623) - var cbaseMipLevel_allocs *cgoAllocMap - ref5aa1126.baseMipLevel, cbaseMipLevel_allocs = (C.uint32_t)(x.BaseMipLevel), cgoAllocsUnknown - allocs5aa1126.Borrow(cbaseMipLevel_allocs) + var csType_allocs *cgoAllocMap + ref6057e623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6057e623.Borrow(csType_allocs) - var clevelCount_allocs *cgoAllocMap - ref5aa1126.levelCount, clevelCount_allocs = (C.uint32_t)(x.LevelCount), cgoAllocsUnknown - allocs5aa1126.Borrow(clevelCount_allocs) + var cpNext_allocs *cgoAllocMap + ref6057e623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6057e623.Borrow(cpNext_allocs) - var cbaseArrayLayer_allocs *cgoAllocMap - ref5aa1126.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown - allocs5aa1126.Borrow(cbaseArrayLayer_allocs) + var cinlineUniformBlock_allocs *cgoAllocMap + ref6057e623.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown + allocs6057e623.Borrow(cinlineUniformBlock_allocs) - var clayerCount_allocs *cgoAllocMap - ref5aa1126.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs5aa1126.Borrow(clayerCount_allocs) + var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap + ref6057e623.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown + allocs6057e623.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) - x.ref5aa1126 = ref5aa1126 - x.allocs5aa1126 = allocs5aa1126 - return ref5aa1126, allocs5aa1126 + 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 ImageSubresourceRange) PassValue() (C.VkImageSubresourceRange, *cgoAllocMap) { - if x.ref5aa1126 != nil { - return *x.ref5aa1126, nil +func (x PhysicalDeviceInlineUniformBlockFeatures) PassValue() (C.VkPhysicalDeviceInlineUniformBlockFeatures, *cgoAllocMap) { + if x.ref6057e623 != nil { + return *x.ref6057e623, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5498,112 +31245,107 @@ 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 *PhysicalDeviceInlineUniformBlockFeatures) Deref() { + if x.ref6057e623 == 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.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) } -// allocImageViewCreateInfoMemory allocates memory for type C.VkImageViewCreateInfo in C. +// allocPhysicalDeviceInlineUniformBlockPropertiesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockProperties 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()) +func allocPhysicalDeviceInlineUniformBlockPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageViewCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewCreateInfo{}) +const sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewCreateInfo) Ref() *C.VkImageViewCreateInfo { +func (x *PhysicalDeviceInlineUniformBlockProperties) Ref() *C.VkPhysicalDeviceInlineUniformBlockProperties { if x == nil { return nil } - return x.ref77e8d4b8 + 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 *ImageViewCreateInfo) Free() { - if x != nil && x.allocs77e8d4b8 != nil { - x.allocs77e8d4b8.(*cgoAllocMap).Free() - x.ref77e8d4b8 = nil +func (x *PhysicalDeviceInlineUniformBlockProperties) Free() { + if x != nil && x.allocs9e890111 != nil { + x.allocs9e890111.(*cgoAllocMap).Free() + x.ref9e890111 = nil } } -// NewImageViewCreateInfoRef 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 NewImageViewCreateInfoRef(ref unsafe.Pointer) *ImageViewCreateInfo { +func NewPhysicalDeviceInlineUniformBlockPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockProperties { if ref == nil { return nil } - obj := new(ImageViewCreateInfo) - obj.ref77e8d4b8 = (*C.VkImageViewCreateInfo)(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 *ImageViewCreateInfo) PassRef() (*C.VkImageViewCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceInlineUniformBlockProperties) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref77e8d4b8 != nil { - return x.ref77e8d4b8, nil + } else if x.ref9e890111 != nil { + return x.ref9e890111, nil } - mem77e8d4b8 := allocImageViewCreateInfoMemory(1) - ref77e8d4b8 := (*C.VkImageViewCreateInfo)(mem77e8d4b8) - allocs77e8d4b8 := new(cgoAllocMap) - allocs77e8d4b8.Add(mem77e8d4b8) + mem9e890111 := allocPhysicalDeviceInlineUniformBlockPropertiesMemory(1) + ref9e890111 := (*C.VkPhysicalDeviceInlineUniformBlockProperties)(mem9e890111) + allocs9e890111 := new(cgoAllocMap) + allocs9e890111.Add(mem9e890111) var csType_allocs *cgoAllocMap - ref77e8d4b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs77e8d4b8.Borrow(csType_allocs) + ref9e890111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9e890111.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref77e8d4b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cpNext_allocs) + ref9e890111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9e890111.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 cmaxInlineUniformBlockSize_allocs *cgoAllocMap + ref9e890111.maxInlineUniformBlockSize, cmaxInlineUniformBlockSize_allocs = (C.uint32_t)(x.MaxInlineUniformBlockSize), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxInlineUniformBlockSize_allocs) - var cviewType_allocs *cgoAllocMap - ref77e8d4b8.viewType, cviewType_allocs = (C.VkImageViewType)(x.ViewType), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cviewType_allocs) + var cmaxPerStageDescriptorInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxPerStageDescriptorInlineUniformBlocks, cmaxPerStageDescriptorInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxPerStageDescriptorInlineUniformBlocks_allocs) - var cformat_allocs *cgoAllocMap - ref77e8d4b8.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cformat_allocs) + var cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs) - var ccomponents_allocs *cgoAllocMap - ref77e8d4b8.components, ccomponents_allocs = x.Components.PassValue() - allocs77e8d4b8.Borrow(ccomponents_allocs) + var cmaxDescriptorSetInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxDescriptorSetInlineUniformBlocks, cmaxDescriptorSetInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxDescriptorSetInlineUniformBlocks_allocs) - var csubresourceRange_allocs *cgoAllocMap - ref77e8d4b8.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() - allocs77e8d4b8.Borrow(csubresourceRange_allocs) + var cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxDescriptorSetUpdateAfterBindInlineUniformBlocks, cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs) - x.ref77e8d4b8 = ref77e8d4b8 - x.allocs77e8d4b8 = allocs77e8d4b8 - return ref77e8d4b8, allocs77e8d4b8 + 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 ImageViewCreateInfo) PassValue() (C.VkImageViewCreateInfo, *cgoAllocMap) { - if x.ref77e8d4b8 != nil { - return *x.ref77e8d4b8, nil +func (x PhysicalDeviceInlineUniformBlockProperties) PassValue() (C.VkPhysicalDeviceInlineUniformBlockProperties, *cgoAllocMap) { + if x.ref9e890111 != nil { + return *x.ref9e890111, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5611,103 +31353,98 @@ 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 *PhysicalDeviceInlineUniformBlockProperties) Deref() { + if x.ref9e890111 == 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.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) } -// allocShaderModuleCreateInfoMemory allocates memory for type C.VkShaderModuleCreateInfo in C. +// allocWriteDescriptorSetInlineUniformBlockMemory allocates memory for type C.VkWriteDescriptorSetInlineUniformBlock 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()) +func allocWriteDescriptorSetInlineUniformBlockMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfWriteDescriptorSetInlineUniformBlockValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfShaderModuleCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleCreateInfo{}) +const sizeOfWriteDescriptorSetInlineUniformBlockValue = unsafe.Sizeof([1]C.VkWriteDescriptorSetInlineUniformBlock{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderModuleCreateInfo) Ref() *C.VkShaderModuleCreateInfo { +func (x *WriteDescriptorSetInlineUniformBlock) Ref() *C.VkWriteDescriptorSetInlineUniformBlock { if x == nil { return nil } - return x.refc663d23e + 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 *ShaderModuleCreateInfo) Free() { - if x != nil && x.allocsc663d23e != nil { - x.allocsc663d23e.(*cgoAllocMap).Free() - x.refc663d23e = nil +func (x *WriteDescriptorSetInlineUniformBlock) Free() { + if x != nil && x.allocs3e98b3ff != nil { + x.allocs3e98b3ff.(*cgoAllocMap).Free() + x.ref3e98b3ff = nil } } -// NewShaderModuleCreateInfoRef 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 NewShaderModuleCreateInfoRef(ref unsafe.Pointer) *ShaderModuleCreateInfo { +func NewWriteDescriptorSetInlineUniformBlockRef(ref unsafe.Pointer) *WriteDescriptorSetInlineUniformBlock { if ref == nil { return nil } - obj := new(ShaderModuleCreateInfo) - obj.refc663d23e = (*C.VkShaderModuleCreateInfo)(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 *ShaderModuleCreateInfo) PassRef() (*C.VkShaderModuleCreateInfo, *cgoAllocMap) { +func (x *WriteDescriptorSetInlineUniformBlock) PassRef() (*C.VkWriteDescriptorSetInlineUniformBlock, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc663d23e != nil { - return x.refc663d23e, nil + } else if x.ref3e98b3ff != nil { + return x.ref3e98b3ff, nil } - memc663d23e := allocShaderModuleCreateInfoMemory(1) - refc663d23e := (*C.VkShaderModuleCreateInfo)(memc663d23e) - allocsc663d23e := new(cgoAllocMap) - allocsc663d23e.Add(memc663d23e) + mem3e98b3ff := allocWriteDescriptorSetInlineUniformBlockMemory(1) + ref3e98b3ff := (*C.VkWriteDescriptorSetInlineUniformBlock)(mem3e98b3ff) + allocs3e98b3ff := new(cgoAllocMap) + allocs3e98b3ff.Add(mem3e98b3ff) var csType_allocs *cgoAllocMap - refc663d23e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc663d23e.Borrow(csType_allocs) + ref3e98b3ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e98b3ff.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc663d23e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc663d23e.Borrow(cpNext_allocs) + ref3e98b3ff.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e98b3ff.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 cdataSize_allocs *cgoAllocMap + ref3e98b3ff.dataSize, cdataSize_allocs = (C.uint32_t)(x.DataSize), cgoAllocsUnknown + allocs3e98b3ff.Borrow(cdataSize_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 cpData_allocs *cgoAllocMap + ref3e98b3ff.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown + allocs3e98b3ff.Borrow(cpData_allocs) - x.refc663d23e = refc663d23e - x.allocsc663d23e = allocsc663d23e - return refc663d23e, allocsc663d23e + 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 ShaderModuleCreateInfo) PassValue() (C.VkShaderModuleCreateInfo, *cgoAllocMap) { - if x.refc663d23e != nil { - return *x.refc663d23e, nil +func (x WriteDescriptorSetInlineUniformBlock) PassValue() (C.VkWriteDescriptorSetInlineUniformBlock, *cgoAllocMap) { + if x.ref3e98b3ff != nil { + return *x.ref3e98b3ff, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5715,104 +31452,91 @@ 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 *WriteDescriptorSetInlineUniformBlock) Deref() { + if x.ref3e98b3ff == 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.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)) } -// allocPipelineCacheCreateInfoMemory allocates memory for type C.VkPipelineCacheCreateInfo in C. +// allocDescriptorPoolInlineUniformBlockCreateInfoMemory allocates memory for type C.VkDescriptorPoolInlineUniformBlockCreateInfo 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()) +func allocDescriptorPoolInlineUniformBlockCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineCacheCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineCacheCreateInfo{}) +const sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolInlineUniformBlockCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCacheCreateInfo) Ref() *C.VkPipelineCacheCreateInfo { +func (x *DescriptorPoolInlineUniformBlockCreateInfo) Ref() *C.VkDescriptorPoolInlineUniformBlockCreateInfo { if x == nil { return nil } - return x.reff11e7dd1 + 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 *PipelineCacheCreateInfo) Free() { - if x != nil && x.allocsf11e7dd1 != nil { - x.allocsf11e7dd1.(*cgoAllocMap).Free() - x.reff11e7dd1 = nil +func (x *DescriptorPoolInlineUniformBlockCreateInfo) Free() { + if x != nil && x.allocsac227a39 != nil { + x.allocsac227a39.(*cgoAllocMap).Free() + x.refac227a39 = nil } } -// NewPipelineCacheCreateInfoRef 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 NewPipelineCacheCreateInfoRef(ref unsafe.Pointer) *PipelineCacheCreateInfo { +func NewDescriptorPoolInlineUniformBlockCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolInlineUniformBlockCreateInfo { if ref == nil { return nil } - obj := new(PipelineCacheCreateInfo) - obj.reff11e7dd1 = (*C.VkPipelineCacheCreateInfo)(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 *PipelineCacheCreateInfo) PassRef() (*C.VkPipelineCacheCreateInfo, *cgoAllocMap) { +func (x *DescriptorPoolInlineUniformBlockCreateInfo) PassRef() (*C.VkDescriptorPoolInlineUniformBlockCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff11e7dd1 != nil { - return x.reff11e7dd1, nil + } else if x.refac227a39 != nil { + return x.refac227a39, nil } - memf11e7dd1 := allocPipelineCacheCreateInfoMemory(1) - reff11e7dd1 := (*C.VkPipelineCacheCreateInfo)(memf11e7dd1) - allocsf11e7dd1 := new(cgoAllocMap) - allocsf11e7dd1.Add(memf11e7dd1) + memac227a39 := allocDescriptorPoolInlineUniformBlockCreateInfoMemory(1) + refac227a39 := (*C.VkDescriptorPoolInlineUniformBlockCreateInfo)(memac227a39) + allocsac227a39 := new(cgoAllocMap) + allocsac227a39.Add(memac227a39) var csType_allocs *cgoAllocMap - reff11e7dd1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf11e7dd1.Borrow(csType_allocs) + refac227a39.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsac227a39.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) + refac227a39.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsac227a39.Borrow(cpNext_allocs) - var cpInitialData_allocs *cgoAllocMap - reff11e7dd1.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown - allocsf11e7dd1.Borrow(cpInitialData_allocs) + var cmaxInlineUniformBlockBindings_allocs *cgoAllocMap + refac227a39.maxInlineUniformBlockBindings, cmaxInlineUniformBlockBindings_allocs = (C.uint32_t)(x.MaxInlineUniformBlockBindings), cgoAllocsUnknown + allocsac227a39.Borrow(cmaxInlineUniformBlockBindings_allocs) - x.reff11e7dd1 = reff11e7dd1 - x.allocsf11e7dd1 = allocsf11e7dd1 - return reff11e7dd1, allocsf11e7dd1 + 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 PipelineCacheCreateInfo) PassValue() (C.VkPipelineCacheCreateInfo, *cgoAllocMap) { - if x.reff11e7dd1 != nil { - return *x.reff11e7dd1, nil +func (x DescriptorPoolInlineUniformBlockCreateInfo) PassValue() (C.VkDescriptorPoolInlineUniformBlockCreateInfo, *cgoAllocMap) { + if x.refac227a39 != nil { + return *x.refac227a39, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5820,92 +31544,90 @@ 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 *DescriptorPoolInlineUniformBlockCreateInfo) Deref() { + if x.refac227a39 == 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.refac227a39.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac227a39.pNext)) + x.MaxInlineUniformBlockBindings = (uint32)(x.refac227a39.maxInlineUniformBlockBindings) } -// allocSpecializationMapEntryMemory allocates memory for type C.VkSpecializationMapEntry in C. +// allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory allocates memory for type C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures 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()) +func allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTextureCompressionASTCHDRFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSpecializationMapEntryValue = unsafe.Sizeof([1]C.VkSpecializationMapEntry{}) +const sizeOfPhysicalDeviceTextureCompressionASTCHDRFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SpecializationMapEntry) Ref() *C.VkSpecializationMapEntry { +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Ref() *C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures { if x == nil { return nil } - return x.ref2fd815d1 + 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 *SpecializationMapEntry) Free() { - if x != nil && x.allocs2fd815d1 != nil { - x.allocs2fd815d1.(*cgoAllocMap).Free() - x.ref2fd815d1 = nil +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Free() { + if x != nil && x.allocsb5195968 != nil { + x.allocsb5195968.(*cgoAllocMap).Free() + x.refb5195968 = nil } } -// NewSpecializationMapEntryRef 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 NewSpecializationMapEntryRef(ref unsafe.Pointer) *SpecializationMapEntry { +func NewPhysicalDeviceTextureCompressionASTCHDRFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTextureCompressionASTCHDRFeatures { if ref == nil { return nil } - obj := new(SpecializationMapEntry) - obj.ref2fd815d1 = (*C.VkSpecializationMapEntry)(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 *SpecializationMapEntry) PassRef() (*C.VkSpecializationMapEntry, *cgoAllocMap) { +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) PassRef() (*C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2fd815d1 != nil { - return x.ref2fd815d1, nil + } else if x.refb5195968 != nil { + return x.refb5195968, nil } - mem2fd815d1 := allocSpecializationMapEntryMemory(1) - ref2fd815d1 := (*C.VkSpecializationMapEntry)(mem2fd815d1) - allocs2fd815d1 := new(cgoAllocMap) - allocs2fd815d1.Add(mem2fd815d1) + memb5195968 := allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory(1) + refb5195968 := (*C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures)(memb5195968) + allocsb5195968 := new(cgoAllocMap) + allocsb5195968.Add(memb5195968) - var cconstantID_allocs *cgoAllocMap - ref2fd815d1.constantID, cconstantID_allocs = (C.uint32_t)(x.ConstantID), cgoAllocsUnknown - allocs2fd815d1.Borrow(cconstantID_allocs) + var csType_allocs *cgoAllocMap + refb5195968.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb5195968.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 + refb5195968.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb5195968.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - ref2fd815d1.size, csize_allocs = (C.size_t)(x.Size), cgoAllocsUnknown - allocs2fd815d1.Borrow(csize_allocs) + var ctextureCompressionASTC_HDR_allocs *cgoAllocMap + refb5195968.textureCompressionASTC_HDR, ctextureCompressionASTC_HDR_allocs = (C.VkBool32)(x.TextureCompressionASTC_HDR), cgoAllocsUnknown + allocsb5195968.Borrow(ctextureCompressionASTC_HDR_allocs) - x.ref2fd815d1 = ref2fd815d1 - x.allocs2fd815d1 = allocs2fd815d1 - return ref2fd815d1, allocs2fd815d1 + 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 SpecializationMapEntry) PassValue() (C.VkSpecializationMapEntry, *cgoAllocMap) { - if x.ref2fd815d1 != nil { - return *x.ref2fd815d1, nil +func (x PhysicalDeviceTextureCompressionASTCHDRFeatures) PassValue() (C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures, *cgoAllocMap) { + if x.refb5195968 != nil { + return *x.refb5195968, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5913,132 +31635,118 @@ 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 *PhysicalDeviceTextureCompressionASTCHDRFeatures) Deref() { + if x.refb5195968 == nil { return } - x.ConstantID = (uint32)(x.ref2fd815d1.constantID) - x.Offset = (uint32)(x.ref2fd815d1.offset) - x.Size = (uint)(x.ref2fd815d1.size) + x.SType = (StructureType)(x.refb5195968.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb5195968.pNext)) + x.TextureCompressionASTC_HDR = (Bool32)(x.refb5195968.textureCompressionASTC_HDR) } -// allocSpecializationInfoMemory allocates memory for type C.VkSpecializationInfo in C. +// allocRenderingAttachmentInfoMemory allocates memory for type C.VkRenderingAttachmentInfo 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()) +func allocRenderingAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingAttachmentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfRenderingAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingAttachmentInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SpecializationInfo) Ref() *C.VkSpecializationInfo { +func (x *RenderingAttachmentInfo) Ref() *C.VkRenderingAttachmentInfo { if x == nil { return nil } - return x.ref6bc395a3 + 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 *SpecializationInfo) Free() { - if x != nil && x.allocs6bc395a3 != nil { - x.allocs6bc395a3.(*cgoAllocMap).Free() - x.ref6bc395a3 = nil +func (x *RenderingAttachmentInfo) Free() { + if x != nil && x.allocs62eee071 != nil { + x.allocs62eee071.(*cgoAllocMap).Free() + x.ref62eee071 = nil } } -// NewSpecializationInfoRef 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 NewSpecializationInfoRef(ref unsafe.Pointer) *SpecializationInfo { +func NewRenderingAttachmentInfoRef(ref unsafe.Pointer) *RenderingAttachmentInfo { if ref == nil { return nil } - obj := new(SpecializationInfo) - obj.ref6bc395a3 = (*C.VkSpecializationInfo)(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 *SpecializationInfo) PassRef() (*C.VkSpecializationInfo, *cgoAllocMap) { +func (x *RenderingAttachmentInfo) PassRef() (*C.VkRenderingAttachmentInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bc395a3 != nil { - return x.ref6bc395a3, nil + } else if x.ref62eee071 != nil { + return x.ref62eee071, nil } - mem6bc395a3 := allocSpecializationInfoMemory(1) - ref6bc395a3 := (*C.VkSpecializationInfo)(mem6bc395a3) - allocs6bc395a3 := new(cgoAllocMap) - allocs6bc395a3.Add(mem6bc395a3) + mem62eee071 := allocRenderingAttachmentInfoMemory(1) + ref62eee071 := (*C.VkRenderingAttachmentInfo)(mem62eee071) + allocs62eee071 := new(cgoAllocMap) + allocs62eee071.Add(mem62eee071) - var cmapEntryCount_allocs *cgoAllocMap - ref6bc395a3.mapEntryCount, cmapEntryCount_allocs = (C.uint32_t)(x.MapEntryCount), cgoAllocsUnknown - allocs6bc395a3.Borrow(cmapEntryCount_allocs) + var csType_allocs *cgoAllocMap + ref62eee071.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62eee071.Borrow(csType_allocs) - var cpMapEntries_allocs *cgoAllocMap - ref6bc395a3.pMapEntries, cpMapEntries_allocs = unpackSSpecializationMapEntry(x.PMapEntries) - allocs6bc395a3.Borrow(cpMapEntries_allocs) + var cpNext_allocs *cgoAllocMap + ref62eee071.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62eee071.Borrow(cpNext_allocs) - var cdataSize_allocs *cgoAllocMap - ref6bc395a3.dataSize, cdataSize_allocs = (C.size_t)(x.DataSize), cgoAllocsUnknown - allocs6bc395a3.Borrow(cdataSize_allocs) + var cimageView_allocs *cgoAllocMap + ref62eee071.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs62eee071.Borrow(cimageView_allocs) - var cpData_allocs *cgoAllocMap - ref6bc395a3.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown - allocs6bc395a3.Borrow(cpData_allocs) + var cimageLayout_allocs *cgoAllocMap + ref62eee071.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs62eee071.Borrow(cimageLayout_allocs) - x.ref6bc395a3 = ref6bc395a3 - x.allocs6bc395a3 = allocs6bc395a3 - return ref6bc395a3, allocs6bc395a3 + var cresolveMode_allocs *cgoAllocMap + ref62eee071.resolveMode, cresolveMode_allocs = (C.VkResolveModeFlagBits)(x.ResolveMode), cgoAllocsUnknown + allocs62eee071.Borrow(cresolveMode_allocs) + + var cresolveImageView_allocs *cgoAllocMap + ref62eee071.resolveImageView, cresolveImageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ResolveImageView)), cgoAllocsUnknown + allocs62eee071.Borrow(cresolveImageView_allocs) + + 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 SpecializationInfo) PassValue() (C.VkSpecializationInfo, *cgoAllocMap) { - if x.ref6bc395a3 != nil { - return *x.ref6bc395a3, nil +func (x RenderingAttachmentInfo) PassValue() (C.VkRenderingAttachmentInfo, *cgoAllocMap) { + if x.ref62eee071 != nil { + return *x.ref62eee071, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6046,145 +31754,163 @@ 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 *RenderingAttachmentInfo) Deref() { + if x.ref62eee071 == 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.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)) } -// allocPipelineShaderStageCreateInfoMemory allocates memory for type C.VkPipelineShaderStageCreateInfo in C. +// allocRenderingInfoMemory allocates memory for type C.VkRenderingInfo 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()) +func allocRenderingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineShaderStageCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineShaderStageCreateInfo{}) +const sizeOfRenderingInfoValue = unsafe.Sizeof([1]C.VkRenderingInfo{}) -// unpackSSpecializationInfo transforms a sliced Go data structure into plain C format. -func unpackSSpecializationInfo(x []SpecializationInfo) (unpacked *C.VkSpecializationInfo, 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.VkSpecializationInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocSpecializationInfoMemory(len0) + mem0 := allocRenderingAttachmentInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSpecializationInfo)(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.VkSpecializationInfo)(h.Data) + unpacked = (*C.VkRenderingAttachmentInfo)(h.Data) return } -// packSSpecializationInfo reads sliced Go data structure out from plain C format. -func packSSpecializationInfo(v []SpecializationInfo, ptr0 *C.VkSpecializationInfo) { +// 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 / sizeOfSpecializationInfoValue]C.VkSpecializationInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSpecializationInfoRef(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 *PipelineShaderStageCreateInfo) Ref() *C.VkPipelineShaderStageCreateInfo { +func (x *RenderingInfo) Ref() *C.VkRenderingInfo { if x == nil { return nil } - return x.ref50ba8b60 + 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 *PipelineShaderStageCreateInfo) Free() { - if x != nil && x.allocs50ba8b60 != nil { - x.allocs50ba8b60.(*cgoAllocMap).Free() - x.ref50ba8b60 = nil +func (x *RenderingInfo) Free() { + if x != nil && x.allocse60d8c7 != nil { + x.allocse60d8c7.(*cgoAllocMap).Free() + x.refe60d8c7 = nil } } -// NewPipelineShaderStageCreateInfoRef 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 NewPipelineShaderStageCreateInfoRef(ref unsafe.Pointer) *PipelineShaderStageCreateInfo { +func NewRenderingInfoRef(ref unsafe.Pointer) *RenderingInfo { if ref == nil { return nil } - obj := new(PipelineShaderStageCreateInfo) - obj.ref50ba8b60 = (*C.VkPipelineShaderStageCreateInfo)(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 *PipelineShaderStageCreateInfo) PassRef() (*C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { +func (x *RenderingInfo) PassRef() (*C.VkRenderingInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref50ba8b60 != nil { - return x.ref50ba8b60, nil + } else if x.refe60d8c7 != nil { + return x.refe60d8c7, nil } - mem50ba8b60 := allocPipelineShaderStageCreateInfoMemory(1) - ref50ba8b60 := (*C.VkPipelineShaderStageCreateInfo)(mem50ba8b60) - allocs50ba8b60 := new(cgoAllocMap) - allocs50ba8b60.Add(mem50ba8b60) + meme60d8c7 := allocRenderingInfoMemory(1) + refe60d8c7 := (*C.VkRenderingInfo)(meme60d8c7) + allocse60d8c7 := new(cgoAllocMap) + allocse60d8c7.Add(meme60d8c7) var csType_allocs *cgoAllocMap - ref50ba8b60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs50ba8b60.Borrow(csType_allocs) + refe60d8c7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse60d8c7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref50ba8b60.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs50ba8b60.Borrow(cpNext_allocs) + refe60d8c7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse60d8c7.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref50ba8b60.flags, cflags_allocs = (C.VkPipelineShaderStageCreateFlags)(x.Flags), cgoAllocsUnknown - allocs50ba8b60.Borrow(cflags_allocs) + refe60d8c7.flags, cflags_allocs = (C.VkRenderingFlags)(x.Flags), cgoAllocsUnknown + allocse60d8c7.Borrow(cflags_allocs) - var cstage_allocs *cgoAllocMap - ref50ba8b60.stage, cstage_allocs = (C.VkShaderStageFlagBits)(x.Stage), cgoAllocsUnknown - allocs50ba8b60.Borrow(cstage_allocs) + var crenderArea_allocs *cgoAllocMap + refe60d8c7.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocse60d8c7.Borrow(crenderArea_allocs) - var cmodule_allocs *cgoAllocMap - ref50ba8b60.module, cmodule_allocs = *(*C.VkShaderModule)(unsafe.Pointer(&x.Module)), cgoAllocsUnknown - allocs50ba8b60.Borrow(cmodule_allocs) + var clayerCount_allocs *cgoAllocMap + refe60d8c7.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocse60d8c7.Borrow(clayerCount_allocs) - var cpName_allocs *cgoAllocMap - ref50ba8b60.pName, cpName_allocs = unpackPCharString(x.PName) - allocs50ba8b60.Borrow(cpName_allocs) + var cviewMask_allocs *cgoAllocMap + refe60d8c7.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocse60d8c7.Borrow(cviewMask_allocs) - var cpSpecializationInfo_allocs *cgoAllocMap - ref50ba8b60.pSpecializationInfo, cpSpecializationInfo_allocs = unpackSSpecializationInfo(x.PSpecializationInfo) - allocs50ba8b60.Borrow(cpSpecializationInfo_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refe60d8c7.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocse60d8c7.Borrow(ccolorAttachmentCount_allocs) - x.ref50ba8b60 = ref50ba8b60 - x.allocs50ba8b60 = allocs50ba8b60 - return ref50ba8b60, allocs50ba8b60 + 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 PipelineShaderStageCreateInfo) PassValue() (C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { - if x.ref50ba8b60 != nil { - return *x.ref50ba8b60, nil +func (x RenderingInfo) PassValue() (C.VkRenderingInfo, *cgoAllocMap) { + if x.refe60d8c7 != nil { + return *x.refe60d8c7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6192,94 +31918,113 @@ 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 *RenderingInfo) Deref() { + if x.refe60d8c7 == 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.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) } -// allocVertexInputBindingDescriptionMemory allocates memory for type C.VkVertexInputBindingDescription in C. +// allocPipelineRenderingCreateInfoMemory allocates memory for type C.VkPipelineRenderingCreateInfo 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()) +func allocPipelineRenderingCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRenderingCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfVertexInputBindingDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDescription{}) +const sizeOfPipelineRenderingCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRenderingCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDescription) Ref() *C.VkVertexInputBindingDescription { +func (x *PipelineRenderingCreateInfo) Ref() *C.VkPipelineRenderingCreateInfo { if x == nil { return nil } - return x.ref5c9d8c23 + return x.ref2f948283 } // Free invokes alloc map'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 *PipelineRenderingCreateInfo) Free() { + if x != nil && x.allocs2f948283 != nil { + x.allocs2f948283.(*cgoAllocMap).Free() + x.ref2f948283 = nil } } -// NewVertexInputBindingDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewVertexInputBindingDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDescription { +func NewPipelineRenderingCreateInfoRef(ref unsafe.Pointer) *PipelineRenderingCreateInfo { if ref == nil { return nil } - obj := new(VertexInputBindingDescription) - obj.ref5c9d8c23 = (*C.VkVertexInputBindingDescription)(unsafe.Pointer(ref)) + obj := new(PipelineRenderingCreateInfo) + obj.ref2f948283 = (*C.VkPipelineRenderingCreateInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PipelineRenderingCreateInfo) PassRef() (*C.VkPipelineRenderingCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5c9d8c23 != nil { - return x.ref5c9d8c23, nil + } else if x.ref2f948283 != nil { + return x.ref2f948283, nil } - mem5c9d8c23 := allocVertexInputBindingDescriptionMemory(1) - ref5c9d8c23 := (*C.VkVertexInputBindingDescription)(mem5c9d8c23) - allocs5c9d8c23 := new(cgoAllocMap) - allocs5c9d8c23.Add(mem5c9d8c23) + mem2f948283 := allocPipelineRenderingCreateInfoMemory(1) + ref2f948283 := (*C.VkPipelineRenderingCreateInfo)(mem2f948283) + allocs2f948283 := new(cgoAllocMap) + allocs2f948283.Add(mem2f948283) - var cbinding_allocs *cgoAllocMap - ref5c9d8c23.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocs5c9d8c23.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + ref2f948283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2f948283.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 + ref2f948283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2f948283.Borrow(cpNext_allocs) - var cinputRate_allocs *cgoAllocMap - ref5c9d8c23.inputRate, cinputRate_allocs = (C.VkVertexInputRate)(x.InputRate), cgoAllocsUnknown - allocs5c9d8c23.Borrow(cinputRate_allocs) + var cviewMask_allocs *cgoAllocMap + ref2f948283.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocs2f948283.Borrow(cviewMask_allocs) - x.ref5c9d8c23 = ref5c9d8c23 - x.allocs5c9d8c23 = allocs5c9d8c23 - return ref5c9d8c23, allocs5c9d8c23 + 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 = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats))) + 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 VertexInputBindingDescription) PassValue() (C.VkVertexInputBindingDescription, *cgoAllocMap) { - if x.ref5c9d8c23 != nil { - return *x.ref5c9d8c23, nil +func (x PipelineRenderingCreateInfo) PassValue() (C.VkPipelineRenderingCreateInfo, *cgoAllocMap) { + if x.ref2f948283 != nil { + return *x.ref2f948283, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6287,278 +32032,213 @@ 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 *PipelineRenderingCreateInfo) Deref() { + if x.ref2f948283 == nil { return } - x.Binding = (uint32)(x.ref5c9d8c23.binding) - x.Stride = (uint32)(x.ref5c9d8c23.stride) - x.InputRate = (VertexInputRate)(x.ref5c9d8c23.inputRate) + 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) } -// allocVertexInputAttributeDescriptionMemory allocates memory for type C.VkVertexInputAttributeDescription in C. +// allocPhysicalDeviceDynamicRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceDynamicRenderingFeatures 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()) +func allocPhysicalDeviceDynamicRenderingFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDynamicRenderingFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfVertexInputAttributeDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputAttributeDescription{}) +const sizeOfPhysicalDeviceDynamicRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDynamicRenderingFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputAttributeDescription) Ref() *C.VkVertexInputAttributeDescription { +func (x *PhysicalDeviceDynamicRenderingFeatures) Ref() *C.VkPhysicalDeviceDynamicRenderingFeatures { if x == nil { return nil } - return x.refdc4635ff + return x.refa724d875 } // Free invokes alloc map'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 *PhysicalDeviceDynamicRenderingFeatures) Free() { + if x != nil && x.allocsa724d875 != nil { + x.allocsa724d875.(*cgoAllocMap).Free() + x.refa724d875 = nil } } -// NewVertexInputAttributeDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewVertexInputAttributeDescriptionRef(ref unsafe.Pointer) *VertexInputAttributeDescription { +func NewPhysicalDeviceDynamicRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDynamicRenderingFeatures { if ref == nil { return nil } - obj := new(VertexInputAttributeDescription) - obj.refdc4635ff = (*C.VkVertexInputAttributeDescription)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDynamicRenderingFeatures) + obj.refa724d875 = (*C.VkPhysicalDeviceDynamicRenderingFeatures)(unsafe.Pointer(ref)) return obj } -// PassRef returns the 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, +// PassRef returns the 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 } - v0 := *(*[]C.VkVertexInputAttributeDescription)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + 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 + +} + +// 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 } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkVertexInputAttributeDescription)(h.Data) - return + ref, allocs := x.PassRef() + return *ref, allocs } -// 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)) +// Deref uses the underlying reference to C object and fills the wrapping struct with 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) } -// 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)) +// 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 mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + 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 *PipelineVertexInputStateCreateInfo) Ref() *C.VkPipelineVertexInputStateCreateInfo { +func (x *CommandBufferInheritanceRenderingInfo) Ref() *C.VkCommandBufferInheritanceRenderingInfo { if x == nil { return nil } - return x.ref5fe4aa50 + 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 *PipelineVertexInputStateCreateInfo) Free() { - if x != nil && x.allocs5fe4aa50 != nil { - x.allocs5fe4aa50.(*cgoAllocMap).Free() - x.ref5fe4aa50 = nil +func (x *CommandBufferInheritanceRenderingInfo) Free() { + if x != nil && x.allocsf704c204 != nil { + x.allocsf704c204.(*cgoAllocMap).Free() + x.reff704c204 = nil } } -// NewPipelineVertexInputStateCreateInfoRef 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 NewPipelineVertexInputStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputStateCreateInfo { +func NewCommandBufferInheritanceRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderingInfo { if ref == nil { return nil } - obj := new(PipelineVertexInputStateCreateInfo) - obj.ref5fe4aa50 = (*C.VkPipelineVertexInputStateCreateInfo)(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 *PipelineVertexInputStateCreateInfo) PassRef() (*C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { +func (x *CommandBufferInheritanceRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceRenderingInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fe4aa50 != nil { - return x.ref5fe4aa50, nil + } else if x.reff704c204 != nil { + return x.reff704c204, nil } - mem5fe4aa50 := allocPipelineVertexInputStateCreateInfoMemory(1) - ref5fe4aa50 := (*C.VkPipelineVertexInputStateCreateInfo)(mem5fe4aa50) - allocs5fe4aa50 := new(cgoAllocMap) - allocs5fe4aa50.Add(mem5fe4aa50) + memf704c204 := allocCommandBufferInheritanceRenderingInfoMemory(1) + reff704c204 := (*C.VkCommandBufferInheritanceRenderingInfo)(memf704c204) + allocsf704c204 := new(cgoAllocMap) + allocsf704c204.Add(memf704c204) var csType_allocs *cgoAllocMap - ref5fe4aa50.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fe4aa50.Borrow(csType_allocs) + reff704c204.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf704c204.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5fe4aa50.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cpNext_allocs) + reff704c204.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf704c204.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref5fe4aa50.flags, cflags_allocs = (C.VkPipelineVertexInputStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cflags_allocs) + reff704c204.flags, cflags_allocs = (C.VkRenderingFlags)(x.Flags), cgoAllocsUnknown + allocsf704c204.Borrow(cflags_allocs) - var cvertexBindingDescriptionCount_allocs *cgoAllocMap - ref5fe4aa50.vertexBindingDescriptionCount, cvertexBindingDescriptionCount_allocs = (C.uint32_t)(x.VertexBindingDescriptionCount), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cvertexBindingDescriptionCount_allocs) + var cviewMask_allocs *cgoAllocMap + reff704c204.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocsf704c204.Borrow(cviewMask_allocs) - var cpVertexBindingDescriptions_allocs *cgoAllocMap - ref5fe4aa50.pVertexBindingDescriptions, cpVertexBindingDescriptions_allocs = unpackSVertexInputBindingDescription(x.PVertexBindingDescriptions) - allocs5fe4aa50.Borrow(cpVertexBindingDescriptions_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + reff704c204.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocsf704c204.Borrow(ccolorAttachmentCount_allocs) - var cvertexAttributeDescriptionCount_allocs *cgoAllocMap - ref5fe4aa50.vertexAttributeDescriptionCount, cvertexAttributeDescriptionCount_allocs = (C.uint32_t)(x.VertexAttributeDescriptionCount), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cvertexAttributeDescriptionCount_allocs) + var cpColorAttachmentFormats_allocs *cgoAllocMap + reff704c204.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats))) + allocsf704c204.Borrow(cpColorAttachmentFormats_allocs) - var cpVertexAttributeDescriptions_allocs *cgoAllocMap - ref5fe4aa50.pVertexAttributeDescriptions, cpVertexAttributeDescriptions_allocs = unpackSVertexInputAttributeDescription(x.PVertexAttributeDescriptions) - allocs5fe4aa50.Borrow(cpVertexAttributeDescriptions_allocs) + var cdepthAttachmentFormat_allocs *cgoAllocMap + reff704c204.depthAttachmentFormat, cdepthAttachmentFormat_allocs = (C.VkFormat)(x.DepthAttachmentFormat), cgoAllocsUnknown + allocsf704c204.Borrow(cdepthAttachmentFormat_allocs) - x.ref5fe4aa50 = ref5fe4aa50 - x.allocs5fe4aa50 = allocs5fe4aa50 - return ref5fe4aa50, allocs5fe4aa50 + var cstencilAttachmentFormat_allocs *cgoAllocMap + reff704c204.stencilAttachmentFormat, cstencilAttachmentFormat_allocs = (C.VkFormat)(x.StencilAttachmentFormat), cgoAllocsUnknown + allocsf704c204.Borrow(cstencilAttachmentFormat_allocs) + + var crasterizationSamples_allocs *cgoAllocMap + reff704c204.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocsf704c204.Borrow(crasterizationSamples_allocs) + + 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 PipelineVertexInputStateCreateInfo) PassValue() (C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { - if x.ref5fe4aa50 != nil { - return *x.ref5fe4aa50, nil +func (x CommandBufferInheritanceRenderingInfo) PassValue() (C.VkCommandBufferInheritanceRenderingInfo, *cgoAllocMap) { + if x.reff704c204 != nil { + return *x.reff704c204, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6566,102 +32246,100 @@ 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 *CommandBufferInheritanceRenderingInfo) Deref() { + if x.reff704c204 == 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.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) } -// allocPipelineInputAssemblyStateCreateInfoMemory allocates memory for type C.VkPipelineInputAssemblyStateCreateInfo in C. +// allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerDotProductFeatures 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()) +func allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineInputAssemblyStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineInputAssemblyStateCreateInfo{}) +const sizeOfPhysicalDeviceShaderIntegerDotProductFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerDotProductFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineInputAssemblyStateCreateInfo) Ref() *C.VkPipelineInputAssemblyStateCreateInfo { +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Ref() *C.VkPhysicalDeviceShaderIntegerDotProductFeatures { if x == nil { return nil } - return x.ref22e1691d + 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 *PipelineInputAssemblyStateCreateInfo) Free() { - if x != nil && x.allocs22e1691d != nil { - x.allocs22e1691d.(*cgoAllocMap).Free() - x.ref22e1691d = nil +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Free() { + if x != nil && x.allocs776faa9c != nil { + x.allocs776faa9c.(*cgoAllocMap).Free() + x.ref776faa9c = nil } } -// NewPipelineInputAssemblyStateCreateInfoRef 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 NewPipelineInputAssemblyStateCreateInfoRef(ref unsafe.Pointer) *PipelineInputAssemblyStateCreateInfo { +func NewPhysicalDeviceShaderIntegerDotProductFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerDotProductFeatures { if ref == nil { return nil } - obj := new(PipelineInputAssemblyStateCreateInfo) - obj.ref22e1691d = (*C.VkPipelineInputAssemblyStateCreateInfo)(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 *PipelineInputAssemblyStateCreateInfo) PassRef() (*C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) PassRef() (*C.VkPhysicalDeviceShaderIntegerDotProductFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref22e1691d != nil { - return x.ref22e1691d, nil + } else if x.ref776faa9c != nil { + return x.ref776faa9c, nil } - mem22e1691d := allocPipelineInputAssemblyStateCreateInfoMemory(1) - ref22e1691d := (*C.VkPipelineInputAssemblyStateCreateInfo)(mem22e1691d) - allocs22e1691d := new(cgoAllocMap) - allocs22e1691d.Add(mem22e1691d) + mem776faa9c := allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory(1) + ref776faa9c := (*C.VkPhysicalDeviceShaderIntegerDotProductFeatures)(mem776faa9c) + allocs776faa9c := new(cgoAllocMap) + allocs776faa9c.Add(mem776faa9c) var csType_allocs *cgoAllocMap - ref22e1691d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs22e1691d.Borrow(csType_allocs) + ref776faa9c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs776faa9c.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) + ref776faa9c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs776faa9c.Borrow(cpNext_allocs) - var cprimitiveRestartEnable_allocs *cgoAllocMap - ref22e1691d.primitiveRestartEnable, cprimitiveRestartEnable_allocs = (C.VkBool32)(x.PrimitiveRestartEnable), cgoAllocsUnknown - allocs22e1691d.Borrow(cprimitiveRestartEnable_allocs) + var cshaderIntegerDotProduct_allocs *cgoAllocMap + ref776faa9c.shaderIntegerDotProduct, cshaderIntegerDotProduct_allocs = (C.VkBool32)(x.ShaderIntegerDotProduct), cgoAllocsUnknown + allocs776faa9c.Borrow(cshaderIntegerDotProduct_allocs) - x.ref22e1691d = ref22e1691d - x.allocs22e1691d = allocs22e1691d - return ref22e1691d, allocs22e1691d + 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 PipelineInputAssemblyStateCreateInfo) PassValue() (C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { - if x.ref22e1691d != nil { - return *x.ref22e1691d, nil +func (x PhysicalDeviceShaderIntegerDotProductFeatures) PassValue() (C.VkPhysicalDeviceShaderIntegerDotProductFeatures, *cgoAllocMap) { + if x.ref776faa9c != nil { + return *x.ref776faa9c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6669,96 +32347,206 @@ 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 *PhysicalDeviceShaderIntegerDotProductFeatures) Deref() { + if x.ref776faa9c == 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.ref776faa9c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref776faa9c.pNext)) + x.ShaderIntegerDotProduct = (Bool32)(x.ref776faa9c.shaderIntegerDotProduct) } -// allocPipelineTessellationStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationStateCreateInfo in C. +// allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerDotProductProperties 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()) +func allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineTessellationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationStateCreateInfo{}) +const sizeOfPhysicalDeviceShaderIntegerDotProductPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerDotProductProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineTessellationStateCreateInfo) Ref() *C.VkPipelineTessellationStateCreateInfo { +func (x *PhysicalDeviceShaderIntegerDotProductProperties) Ref() *C.VkPhysicalDeviceShaderIntegerDotProductProperties { if x == nil { return nil } - return x.ref4ef3997a + 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 *PipelineTessellationStateCreateInfo) Free() { - if x != nil && x.allocs4ef3997a != nil { - x.allocs4ef3997a.(*cgoAllocMap).Free() - x.ref4ef3997a = nil +func (x *PhysicalDeviceShaderIntegerDotProductProperties) Free() { + if x != nil && x.allocs82bea9e5 != nil { + x.allocs82bea9e5.(*cgoAllocMap).Free() + x.ref82bea9e5 = nil } } -// NewPipelineTessellationStateCreateInfoRef 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 NewPipelineTessellationStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationStateCreateInfo { +func NewPhysicalDeviceShaderIntegerDotProductPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerDotProductProperties { if ref == nil { return nil } - obj := new(PipelineTessellationStateCreateInfo) - obj.ref4ef3997a = (*C.VkPipelineTessellationStateCreateInfo)(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 *PipelineTessellationStateCreateInfo) PassRef() (*C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerDotProductProperties) PassRef() (*C.VkPhysicalDeviceShaderIntegerDotProductProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4ef3997a != nil { - return x.ref4ef3997a, nil + } else if x.ref82bea9e5 != nil { + return x.ref82bea9e5, nil } - mem4ef3997a := allocPipelineTessellationStateCreateInfoMemory(1) - ref4ef3997a := (*C.VkPipelineTessellationStateCreateInfo)(mem4ef3997a) - allocs4ef3997a := new(cgoAllocMap) - allocs4ef3997a.Add(mem4ef3997a) + mem82bea9e5 := allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory(1) + ref82bea9e5 := (*C.VkPhysicalDeviceShaderIntegerDotProductProperties)(mem82bea9e5) + allocs82bea9e5 := new(cgoAllocMap) + allocs82bea9e5.Add(mem82bea9e5) var csType_allocs *cgoAllocMap - ref4ef3997a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4ef3997a.Borrow(csType_allocs) + ref82bea9e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82bea9e5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4ef3997a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4ef3997a.Borrow(cpNext_allocs) + ref82bea9e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82bea9e5.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref4ef3997a.flags, cflags_allocs = (C.VkPipelineTessellationStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs4ef3997a.Borrow(cflags_allocs) + var cintegerDotProduct8BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct8BitUnsignedAccelerated, cintegerDotProduct8BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct8BitUnsignedAccelerated_allocs) - var cpatchControlPoints_allocs *cgoAllocMap - ref4ef3997a.patchControlPoints, cpatchControlPoints_allocs = (C.uint32_t)(x.PatchControlPoints), cgoAllocsUnknown - allocs4ef3997a.Borrow(cpatchControlPoints_allocs) + var cintegerDotProduct8BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct8BitSignedAccelerated, cintegerDotProduct8BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct8BitSignedAccelerated_allocs) - x.ref4ef3997a = ref4ef3997a - x.allocs4ef3997a = allocs4ef3997a - return ref4ef3997a, allocs4ef3997a + 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 PipelineTessellationStateCreateInfo) PassValue() (C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { - if x.ref4ef3997a != nil { - return *x.ref4ef3997a, nil +func (x PhysicalDeviceShaderIntegerDotProductProperties) PassValue() (C.VkPhysicalDeviceShaderIntegerDotProductProperties, *cgoAllocMap) { + if x.ref82bea9e5 != nil { + return *x.ref82bea9e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6766,103 +32554,131 @@ 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 *PhysicalDeviceShaderIntegerDotProductProperties) Deref() { + if x.ref82bea9e5 == 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. + 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 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()) +func allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfViewportValue = unsafe.Sizeof([1]C.VkViewport{}) +const sizeOfPhysicalDeviceTexelBufferAlignmentPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Viewport) Ref() *C.VkViewport { +func (x *PhysicalDeviceTexelBufferAlignmentProperties) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentProperties { if x == nil { return nil } - return x.ref75cf5291 + 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 *Viewport) Free() { - if x != nil && x.allocs75cf5291 != nil { - x.allocs75cf5291.(*cgoAllocMap).Free() - x.ref75cf5291 = nil +func (x *PhysicalDeviceTexelBufferAlignmentProperties) Free() { + if x != nil && x.allocs52cb68df != nil { + x.allocs52cb68df.(*cgoAllocMap).Free() + x.ref52cb68df = nil } } -// NewViewportRef 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 NewViewportRef(ref unsafe.Pointer) *Viewport { +func NewPhysicalDeviceTexelBufferAlignmentPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentProperties { if ref == nil { return nil } - obj := new(Viewport) - obj.ref75cf5291 = (*C.VkViewport)(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 *Viewport) PassRef() (*C.VkViewport, *cgoAllocMap) { +func (x *PhysicalDeviceTexelBufferAlignmentProperties) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75cf5291 != nil { - return x.ref75cf5291, nil + } else if x.ref52cb68df != nil { + return x.ref52cb68df, nil } - mem75cf5291 := allocViewportMemory(1) - ref75cf5291 := (*C.VkViewport)(mem75cf5291) - allocs75cf5291 := new(cgoAllocMap) - allocs75cf5291.Add(mem75cf5291) + mem52cb68df := allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory(1) + ref52cb68df := (*C.VkPhysicalDeviceTexelBufferAlignmentProperties)(mem52cb68df) + allocs52cb68df := new(cgoAllocMap) + allocs52cb68df.Add(mem52cb68df) - var cx_allocs *cgoAllocMap - ref75cf5291.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocs75cf5291.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref52cb68df.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs52cb68df.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - ref75cf5291.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocs75cf5291.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + ref52cb68df.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs52cb68df.Borrow(cpNext_allocs) - var cwidth_allocs *cgoAllocMap - ref75cf5291.width, cwidth_allocs = (C.float)(x.Width), cgoAllocsUnknown - allocs75cf5291.Borrow(cwidth_allocs) + var cstorageTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref52cb68df.storageTexelBufferOffsetAlignmentBytes, cstorageTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.StorageTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs52cb68df.Borrow(cstorageTexelBufferOffsetAlignmentBytes_allocs) - var cheight_allocs *cgoAllocMap - ref75cf5291.height, cheight_allocs = (C.float)(x.Height), cgoAllocsUnknown - allocs75cf5291.Borrow(cheight_allocs) + var cstorageTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref52cb68df.storageTexelBufferOffsetSingleTexelAlignment, cstorageTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.StorageTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs52cb68df.Borrow(cstorageTexelBufferOffsetSingleTexelAlignment_allocs) - var cminDepth_allocs *cgoAllocMap - ref75cf5291.minDepth, cminDepth_allocs = (C.float)(x.MinDepth), cgoAllocsUnknown - allocs75cf5291.Borrow(cminDepth_allocs) + var cuniformTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref52cb68df.uniformTexelBufferOffsetAlignmentBytes, cuniformTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.UniformTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs52cb68df.Borrow(cuniformTexelBufferOffsetAlignmentBytes_allocs) - var cmaxDepth_allocs *cgoAllocMap - ref75cf5291.maxDepth, cmaxDepth_allocs = (C.float)(x.MaxDepth), cgoAllocsUnknown - allocs75cf5291.Borrow(cmaxDepth_allocs) + var cuniformTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref52cb68df.uniformTexelBufferOffsetSingleTexelAlignment, cuniformTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.UniformTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs52cb68df.Borrow(cuniformTexelBufferOffsetSingleTexelAlignment_allocs) - x.ref75cf5291 = ref75cf5291 - x.allocs75cf5291 = allocs75cf5291 - return ref75cf5291, allocs75cf5291 + 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 Viewport) PassValue() (C.VkViewport, *cgoAllocMap) { - if x.ref75cf5291 != nil { - return *x.ref75cf5291, nil +func (x PhysicalDeviceTexelBufferAlignmentProperties) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentProperties, *cgoAllocMap) { + if x.ref52cb68df != nil { + return *x.ref52cb68df, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6870,89 +32686,101 @@ 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 *PhysicalDeviceTexelBufferAlignmentProperties) Deref() { + if x.ref52cb68df == 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.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) } -// allocOffset2DMemory allocates memory for type C.VkOffset2D in C. +// allocFormatProperties3Memory allocates memory for type C.VkFormatProperties3 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()) +func allocFormatProperties3Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatProperties3Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfOffset2DValue = unsafe.Sizeof([1]C.VkOffset2D{}) +const sizeOfFormatProperties3Value = unsafe.Sizeof([1]C.VkFormatProperties3{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Offset2D) Ref() *C.VkOffset2D { +func (x *FormatProperties3) Ref() *C.VkFormatProperties3 { if x == nil { return nil } - return x.ref32734883 + 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 *Offset2D) Free() { - if x != nil && x.allocs32734883 != nil { - x.allocs32734883.(*cgoAllocMap).Free() - x.ref32734883 = nil +func (x *FormatProperties3) Free() { + if x != nil && x.allocsaac19fbc != nil { + x.allocsaac19fbc.(*cgoAllocMap).Free() + x.refaac19fbc = nil } } -// NewOffset2DRef 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 NewOffset2DRef(ref unsafe.Pointer) *Offset2D { +func NewFormatProperties3Ref(ref unsafe.Pointer) *FormatProperties3 { if ref == nil { return nil } - obj := new(Offset2D) - obj.ref32734883 = (*C.VkOffset2D)(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 *Offset2D) PassRef() (*C.VkOffset2D, *cgoAllocMap) { +func (x *FormatProperties3) PassRef() (*C.VkFormatProperties3, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref32734883 != nil { - return x.ref32734883, nil + } else if x.refaac19fbc != nil { + return x.refaac19fbc, nil } - mem32734883 := allocOffset2DMemory(1) - ref32734883 := (*C.VkOffset2D)(mem32734883) - allocs32734883 := new(cgoAllocMap) - allocs32734883.Add(mem32734883) + memaac19fbc := allocFormatProperties3Memory(1) + refaac19fbc := (*C.VkFormatProperties3)(memaac19fbc) + allocsaac19fbc := new(cgoAllocMap) + allocsaac19fbc.Add(memaac19fbc) - var cx_allocs *cgoAllocMap - ref32734883.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown - allocs32734883.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + refaac19fbc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaac19fbc.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - ref32734883.y, cy_allocs = (C.int32_t)(x.Y), cgoAllocsUnknown - allocs32734883.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + refaac19fbc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaac19fbc.Borrow(cpNext_allocs) - x.ref32734883 = ref32734883 - x.allocs32734883 = allocs32734883 - return ref32734883, allocs32734883 + var clinearTilingFeatures_allocs *cgoAllocMap + refaac19fbc.linearTilingFeatures, clinearTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.LinearTilingFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(clinearTilingFeatures_allocs) + + var coptimalTilingFeatures_allocs *cgoAllocMap + refaac19fbc.optimalTilingFeatures, coptimalTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.OptimalTilingFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(coptimalTilingFeatures_allocs) + + var cbufferFeatures_allocs *cgoAllocMap + refaac19fbc.bufferFeatures, cbufferFeatures_allocs = (C.VkFormatFeatureFlags2)(x.BufferFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(cbufferFeatures_allocs) + + 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 Offset2D) PassValue() (C.VkOffset2D, *cgoAllocMap) { - if x.ref32734883 != nil { - return *x.ref32734883, nil +func (x FormatProperties3) PassValue() (C.VkFormatProperties3, *cgoAllocMap) { + if x.refaac19fbc != nil { + return *x.refaac19fbc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6960,85 +32788,92 @@ 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 *FormatProperties3) Deref() { + if x.refaac19fbc == nil { return } - x.X = (int32)(x.ref32734883.x) - x.Y = (int32)(x.ref32734883.y) + 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) } -// allocExtent2DMemory allocates memory for type C.VkExtent2D in C. +// allocPhysicalDeviceMaintenance4FeaturesMemory allocates memory for type C.VkPhysicalDeviceMaintenance4Features 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMaintenance4FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExtent2DValue = unsafe.Sizeof([1]C.VkExtent2D{}) +const sizeOfPhysicalDeviceMaintenance4FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance4Features{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Extent2D) Ref() *C.VkExtent2D { +func (x *PhysicalDeviceMaintenance4Features) Ref() *C.VkPhysicalDeviceMaintenance4Features { if x == nil { return nil } - return x.refe2edf56b + 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 *Extent2D) Free() { - if x != nil && x.allocse2edf56b != nil { - x.allocse2edf56b.(*cgoAllocMap).Free() - x.refe2edf56b = nil +func (x *PhysicalDeviceMaintenance4Features) Free() { + if x != nil && x.allocsb110636b != nil { + x.allocsb110636b.(*cgoAllocMap).Free() + x.refb110636b = nil } } -// NewExtent2DRef 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 NewExtent2DRef(ref unsafe.Pointer) *Extent2D { +func NewPhysicalDeviceMaintenance4FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance4Features { if ref == nil { return nil } - obj := new(Extent2D) - obj.refe2edf56b = (*C.VkExtent2D)(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 *Extent2D) PassRef() (*C.VkExtent2D, *cgoAllocMap) { +func (x *PhysicalDeviceMaintenance4Features) PassRef() (*C.VkPhysicalDeviceMaintenance4Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe2edf56b != nil { - return x.refe2edf56b, nil + } else if x.refb110636b != nil { + return x.refb110636b, nil } - meme2edf56b := allocExtent2DMemory(1) - refe2edf56b := (*C.VkExtent2D)(meme2edf56b) - allocse2edf56b := new(cgoAllocMap) - allocse2edf56b.Add(meme2edf56b) + memb110636b := allocPhysicalDeviceMaintenance4FeaturesMemory(1) + refb110636b := (*C.VkPhysicalDeviceMaintenance4Features)(memb110636b) + allocsb110636b := new(cgoAllocMap) + allocsb110636b.Add(memb110636b) - var cwidth_allocs *cgoAllocMap - refe2edf56b.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown - allocse2edf56b.Borrow(cwidth_allocs) + var csType_allocs *cgoAllocMap + refb110636b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb110636b.Borrow(csType_allocs) - var cheight_allocs *cgoAllocMap - refe2edf56b.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocse2edf56b.Borrow(cheight_allocs) + var cpNext_allocs *cgoAllocMap + refb110636b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb110636b.Borrow(cpNext_allocs) - x.refe2edf56b = refe2edf56b - x.allocse2edf56b = allocse2edf56b - return refe2edf56b, allocse2edf56b + var cmaintenance4_allocs *cgoAllocMap + refb110636b.maintenance4, cmaintenance4_allocs = (C.VkBool32)(x.Maintenance4), cgoAllocsUnknown + allocsb110636b.Borrow(cmaintenance4_allocs) + + 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 Extent2D) PassValue() (C.VkExtent2D, *cgoAllocMap) { - if x.refe2edf56b != nil { - return *x.refe2edf56b, nil +func (x PhysicalDeviceMaintenance4Features) PassValue() (C.VkPhysicalDeviceMaintenance4Features, *cgoAllocMap) { + if x.refb110636b != nil { + return *x.refb110636b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7046,85 +32881,90 @@ 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 *PhysicalDeviceMaintenance4Features) Deref() { + if x.refb110636b == nil { return } - x.Width = (uint32)(x.refe2edf56b.width) - x.Height = (uint32)(x.refe2edf56b.height) + x.SType = (StructureType)(x.refb110636b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb110636b.pNext)) + x.Maintenance4 = (Bool32)(x.refb110636b.maintenance4) } -// allocRect2DMemory allocates memory for type C.VkRect2D in C. +// allocPhysicalDeviceMaintenance4PropertiesMemory allocates memory for type C.VkPhysicalDeviceMaintenance4Properties 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMaintenance4PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4PropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRect2DValue = unsafe.Sizeof([1]C.VkRect2D{}) +const sizeOfPhysicalDeviceMaintenance4PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance4Properties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Rect2D) Ref() *C.VkRect2D { +func (x *PhysicalDeviceMaintenance4Properties) Ref() *C.VkPhysicalDeviceMaintenance4Properties { if x == nil { return nil } - return x.ref89e4256f + 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 *Rect2D) Free() { - if x != nil && x.allocs89e4256f != nil { - x.allocs89e4256f.(*cgoAllocMap).Free() - x.ref89e4256f = nil +func (x *PhysicalDeviceMaintenance4Properties) Free() { + if x != nil && x.allocs3bfb62f4 != nil { + x.allocs3bfb62f4.(*cgoAllocMap).Free() + x.ref3bfb62f4 = nil } } -// NewRect2DRef 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 NewRect2DRef(ref unsafe.Pointer) *Rect2D { +func NewPhysicalDeviceMaintenance4PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance4Properties { if ref == nil { return nil } - obj := new(Rect2D) - obj.ref89e4256f = (*C.VkRect2D)(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 *Rect2D) PassRef() (*C.VkRect2D, *cgoAllocMap) { +func (x *PhysicalDeviceMaintenance4Properties) PassRef() (*C.VkPhysicalDeviceMaintenance4Properties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89e4256f != nil { - return x.ref89e4256f, nil + } else if x.ref3bfb62f4 != nil { + return x.ref3bfb62f4, nil } - mem89e4256f := allocRect2DMemory(1) - ref89e4256f := (*C.VkRect2D)(mem89e4256f) - allocs89e4256f := new(cgoAllocMap) - allocs89e4256f.Add(mem89e4256f) + mem3bfb62f4 := allocPhysicalDeviceMaintenance4PropertiesMemory(1) + ref3bfb62f4 := (*C.VkPhysicalDeviceMaintenance4Properties)(mem3bfb62f4) + allocs3bfb62f4 := new(cgoAllocMap) + allocs3bfb62f4.Add(mem3bfb62f4) - var coffset_allocs *cgoAllocMap - ref89e4256f.offset, coffset_allocs = x.Offset.PassValue() - allocs89e4256f.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + ref3bfb62f4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3bfb62f4.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - ref89e4256f.extent, cextent_allocs = x.Extent.PassValue() - allocs89e4256f.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + ref3bfb62f4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3bfb62f4.Borrow(cpNext_allocs) - x.ref89e4256f = ref89e4256f - x.allocs89e4256f = allocs89e4256f - return ref89e4256f, allocs89e4256f + var cmaxBufferSize_allocs *cgoAllocMap + ref3bfb62f4.maxBufferSize, cmaxBufferSize_allocs = (C.VkDeviceSize)(x.MaxBufferSize), cgoAllocsUnknown + allocs3bfb62f4.Borrow(cmaxBufferSize_allocs) + + 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 Rect2D) PassValue() (C.VkRect2D, *cgoAllocMap) { - if x.ref89e4256f != nil { - return *x.ref89e4256f, nil +func (x PhysicalDeviceMaintenance4Properties) PassValue() (C.VkPhysicalDeviceMaintenance4Properties, *cgoAllocMap) { + if x.ref3bfb62f4 != nil { + return *x.ref3bfb62f4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7132,181 +32972,381 @@ 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 *PhysicalDeviceMaintenance4Properties) Deref() { + if x.ref3bfb62f4 == nil { return } - x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.ref89e4256f.offset)) - x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.ref89e4256f.extent)) + x.SType = (StructureType)(x.ref3bfb62f4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3bfb62f4.pNext)) + x.MaxBufferSize = (DeviceSize)(x.ref3bfb62f4.maxBufferSize) } -// allocPipelineViewportStateCreateInfoMemory allocates memory for type C.VkPipelineViewportStateCreateInfo in C. +// allocDeviceBufferMemoryRequirementsMemory allocates memory for type C.VkDeviceBufferMemoryRequirements 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()) +func allocDeviceBufferMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceBufferMemoryRequirementsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineViewportStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineViewportStateCreateInfo{}) +const sizeOfDeviceBufferMemoryRequirementsValue = unsafe.Sizeof([1]C.VkDeviceBufferMemoryRequirements{}) -// unpackSViewport transforms a sliced Go data structure into plain C format. -func unpackSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocMap) { +// 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.VkViewport) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocViewportMemory(len0) + mem0 := allocBufferCreateInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkViewport)(unsafe.Pointer(h0)) + 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.VkViewport)(h.Data) + unpacked = (*C.VkBufferCreateInfo)(h.Data) return } -// unpackSRect2D transforms a sliced Go data structure into plain C format. -func unpackSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { +// 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 *DeviceBufferMemoryRequirements) Ref() *C.VkDeviceBufferMemoryRequirements { + if x == nil { + return nil + } + 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 *DeviceBufferMemoryRequirements) Free() { + if x != nil && x.allocs30350e90 != nil { + x.allocs30350e90.(*cgoAllocMap).Free() + x.ref30350e90 = nil + } +} + +// 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 NewDeviceBufferMemoryRequirementsRef(ref unsafe.Pointer) *DeviceBufferMemoryRequirements { + if ref == nil { + return nil + } + 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 *DeviceBufferMemoryRequirements) PassRef() (*C.VkDeviceBufferMemoryRequirements, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref30350e90 != nil { + return x.ref30350e90, nil + } + mem30350e90 := allocDeviceBufferMemoryRequirementsMemory(1) + ref30350e90 := (*C.VkDeviceBufferMemoryRequirements)(mem30350e90) + allocs30350e90 := new(cgoAllocMap) + allocs30350e90.Add(mem30350e90) + + var csType_allocs *cgoAllocMap + ref30350e90.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs30350e90.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref30350e90.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs30350e90.Borrow(cpNext_allocs) + + var cpCreateInfo_allocs *cgoAllocMap + ref30350e90.pCreateInfo, cpCreateInfo_allocs = unpackSBufferCreateInfo(x.PCreateInfo) + allocs30350e90.Borrow(cpCreateInfo_allocs) + + 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 DeviceBufferMemoryRequirements) PassValue() (C.VkDeviceBufferMemoryRequirements, *cgoAllocMap) { + if x.ref30350e90 != nil { + return *x.ref30350e90, 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 *DeviceBufferMemoryRequirements) Deref() { + if x.ref30350e90 == nil { + return + } + x.SType = (StructureType)(x.ref30350e90.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref30350e90.pNext)) + packSBufferCreateInfo(x.PCreateInfo, x.ref30350e90.pCreateInfo) +} + +// allocDeviceImageMemoryRequirementsMemory allocates memory for type C.VkDeviceImageMemoryRequirements in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceImageMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceImageMemoryRequirementsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +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.VkRect2D) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocRect2DMemory(len0) + mem0 := allocImageCreateInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkRect2D)(unsafe.Pointer(h0)) + 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.VkRect2D)(h.Data) - return + 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 *DeviceImageMemoryRequirements) Ref() *C.VkDeviceImageMemoryRequirements { + if x == nil { + return nil + } + 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 *DeviceImageMemoryRequirements) Free() { + if x != nil && x.allocsd9532ea3 != nil { + x.allocsd9532ea3.(*cgoAllocMap).Free() + x.refd9532ea3 = nil + } +} + +// 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 NewDeviceImageMemoryRequirementsRef(ref unsafe.Pointer) *DeviceImageMemoryRequirements { + if ref == nil { + return nil + } + 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 *DeviceImageMemoryRequirements) PassRef() (*C.VkDeviceImageMemoryRequirements, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd9532ea3 != nil { + return x.refd9532ea3, nil + } + memd9532ea3 := allocDeviceImageMemoryRequirementsMemory(1) + refd9532ea3 := (*C.VkDeviceImageMemoryRequirements)(memd9532ea3) + allocsd9532ea3 := new(cgoAllocMap) + allocsd9532ea3.Add(memd9532ea3) + + var csType_allocs *cgoAllocMap + refd9532ea3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9532ea3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd9532ea3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9532ea3.Borrow(cpNext_allocs) + + var cpCreateInfo_allocs *cgoAllocMap + refd9532ea3.pCreateInfo, cpCreateInfo_allocs = unpackSImageCreateInfo(x.PCreateInfo) + allocsd9532ea3.Borrow(cpCreateInfo_allocs) + + var cplaneAspect_allocs *cgoAllocMap + refd9532ea3.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown + allocsd9532ea3.Borrow(cplaneAspect_allocs) + + 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 DeviceImageMemoryRequirements) PassValue() (C.VkDeviceImageMemoryRequirements, *cgoAllocMap) { + if x.refd9532ea3 != nil { + return *x.refd9532ea3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs } -// 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)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceImageMemoryRequirements) Deref() { + if x.refd9532ea3 == nil { + return } + 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) } -// 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)) +// allocSurfaceCapabilitiesMemory allocates memory for type C.VkSurfaceCapabilitiesKHR 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)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesKHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportStateCreateInfo) Ref() *C.VkPipelineViewportStateCreateInfo { +func (x *SurfaceCapabilities) Ref() *C.VkSurfaceCapabilitiesKHR { if x == nil { return nil } - return x.refc4705791 + 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 *PipelineViewportStateCreateInfo) Free() { - if x != nil && x.allocsc4705791 != nil { - x.allocsc4705791.(*cgoAllocMap).Free() - x.refc4705791 = nil +func (x *SurfaceCapabilities) Free() { + if x != nil && x.allocs11d5f596 != nil { + x.allocs11d5f596.(*cgoAllocMap).Free() + x.ref11d5f596 = nil } } -// NewPipelineViewportStateCreateInfoRef 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 NewPipelineViewportStateCreateInfoRef(ref unsafe.Pointer) *PipelineViewportStateCreateInfo { +func NewSurfaceCapabilitiesRef(ref unsafe.Pointer) *SurfaceCapabilities { if ref == nil { return nil } - obj := new(PipelineViewportStateCreateInfo) - obj.refc4705791 = (*C.VkPipelineViewportStateCreateInfo)(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 *PipelineViewportStateCreateInfo) PassRef() (*C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { +func (x *SurfaceCapabilities) PassRef() (*C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc4705791 != nil { - return x.refc4705791, nil + } else if x.ref11d5f596 != nil { + return x.ref11d5f596, nil } - memc4705791 := allocPipelineViewportStateCreateInfoMemory(1) - refc4705791 := (*C.VkPipelineViewportStateCreateInfo)(memc4705791) - allocsc4705791 := new(cgoAllocMap) - allocsc4705791.Add(memc4705791) + mem11d5f596 := allocSurfaceCapabilitiesMemory(1) + ref11d5f596 := (*C.VkSurfaceCapabilitiesKHR)(mem11d5f596) + allocs11d5f596 := new(cgoAllocMap) + allocs11d5f596.Add(mem11d5f596) - var csType_allocs *cgoAllocMap - refc4705791.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc4705791.Borrow(csType_allocs) + var cminImageCount_allocs *cgoAllocMap + ref11d5f596.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown + allocs11d5f596.Borrow(cminImageCount_allocs) - var cpNext_allocs *cgoAllocMap - refc4705791.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc4705791.Borrow(cpNext_allocs) + var cmaxImageCount_allocs *cgoAllocMap + ref11d5f596.maxImageCount, cmaxImageCount_allocs = (C.uint32_t)(x.MaxImageCount), cgoAllocsUnknown + allocs11d5f596.Borrow(cmaxImageCount_allocs) - var cflags_allocs *cgoAllocMap - refc4705791.flags, cflags_allocs = (C.VkPipelineViewportStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocsc4705791.Borrow(cflags_allocs) + var ccurrentExtent_allocs *cgoAllocMap + ref11d5f596.currentExtent, ccurrentExtent_allocs = x.CurrentExtent.PassValue() + allocs11d5f596.Borrow(ccurrentExtent_allocs) - var cviewportCount_allocs *cgoAllocMap - refc4705791.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocsc4705791.Borrow(cviewportCount_allocs) + var cminImageExtent_allocs *cgoAllocMap + ref11d5f596.minImageExtent, cminImageExtent_allocs = x.MinImageExtent.PassValue() + allocs11d5f596.Borrow(cminImageExtent_allocs) - var cpViewports_allocs *cgoAllocMap - refc4705791.pViewports, cpViewports_allocs = unpackSViewport(x.PViewports) - allocsc4705791.Borrow(cpViewports_allocs) + var cmaxImageExtent_allocs *cgoAllocMap + ref11d5f596.maxImageExtent, cmaxImageExtent_allocs = x.MaxImageExtent.PassValue() + allocs11d5f596.Borrow(cmaxImageExtent_allocs) - var cscissorCount_allocs *cgoAllocMap - refc4705791.scissorCount, cscissorCount_allocs = (C.uint32_t)(x.ScissorCount), cgoAllocsUnknown - allocsc4705791.Borrow(cscissorCount_allocs) + var cmaxImageArrayLayers_allocs *cgoAllocMap + ref11d5f596.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown + allocs11d5f596.Borrow(cmaxImageArrayLayers_allocs) - var cpScissors_allocs *cgoAllocMap - refc4705791.pScissors, cpScissors_allocs = unpackSRect2D(x.PScissors) - allocsc4705791.Borrow(cpScissors_allocs) + var csupportedTransforms_allocs *cgoAllocMap + ref11d5f596.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown + allocs11d5f596.Borrow(csupportedTransforms_allocs) - x.refc4705791 = refc4705791 - x.allocsc4705791 = allocsc4705791 - return refc4705791, allocsc4705791 + 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 PipelineViewportStateCreateInfo) PassValue() (C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { - if x.refc4705791 != nil { - return *x.refc4705791, nil +func (x SurfaceCapabilities) PassValue() (C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { + if x.ref11d5f596 != nil { + return *x.ref11d5f596, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7314,134 +33354,93 @@ 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 *SurfaceCapabilities) Deref() { + if x.ref11d5f596 == 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.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) } -// allocPipelineRasterizationStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateCreateInfo in C. +// allocSurfaceFormatMemory allocates memory for type C.VkSurfaceFormatKHR 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()) +func allocSurfaceFormatMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormatValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineRasterizationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateCreateInfo{}) +const sizeOfSurfaceFormatValue = unsafe.Sizeof([1]C.VkSurfaceFormatKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateCreateInfo) Ref() *C.VkPipelineRasterizationStateCreateInfo { +func (x *SurfaceFormat) Ref() *C.VkSurfaceFormatKHR { if x == nil { return nil } - return x.ref48cb9fad + 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 *PipelineRasterizationStateCreateInfo) Free() { - if x != nil && x.allocs48cb9fad != nil { - x.allocs48cb9fad.(*cgoAllocMap).Free() - x.ref48cb9fad = nil +func (x *SurfaceFormat) Free() { + if x != nil && x.allocsedaf82ca != nil { + x.allocsedaf82ca.(*cgoAllocMap).Free() + x.refedaf82ca = nil } } -// NewPipelineRasterizationStateCreateInfoRef 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 NewPipelineRasterizationStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateCreateInfo { +func NewSurfaceFormatRef(ref unsafe.Pointer) *SurfaceFormat { if ref == nil { return nil } - obj := new(PipelineRasterizationStateCreateInfo) - obj.ref48cb9fad = (*C.VkPipelineRasterizationStateCreateInfo)(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 *PipelineRasterizationStateCreateInfo) PassRef() (*C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { +func (x *SurfaceFormat) PassRef() (*C.VkSurfaceFormatKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref48cb9fad != nil { - return x.ref48cb9fad, nil + } else if x.refedaf82ca != nil { + return x.refedaf82ca, 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) + memedaf82ca := allocSurfaceFormatMemory(1) + refedaf82ca := (*C.VkSurfaceFormatKHR)(memedaf82ca) + allocsedaf82ca := new(cgoAllocMap) + allocsedaf82ca.Add(memedaf82ca) - var cdepthBiasSlopeFactor_allocs *cgoAllocMap - ref48cb9fad.depthBiasSlopeFactor, cdepthBiasSlopeFactor_allocs = (C.float)(x.DepthBiasSlopeFactor), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthBiasSlopeFactor_allocs) + var cformat_allocs *cgoAllocMap + refedaf82ca.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsedaf82ca.Borrow(cformat_allocs) - var clineWidth_allocs *cgoAllocMap - ref48cb9fad.lineWidth, clineWidth_allocs = (C.float)(x.LineWidth), cgoAllocsUnknown - allocs48cb9fad.Borrow(clineWidth_allocs) + var ccolorSpace_allocs *cgoAllocMap + refedaf82ca.colorSpace, ccolorSpace_allocs = (C.VkColorSpaceKHR)(x.ColorSpace), cgoAllocsUnknown + allocsedaf82ca.Borrow(ccolorSpace_allocs) - x.ref48cb9fad = ref48cb9fad - x.allocs48cb9fad = allocs48cb9fad - return ref48cb9fad, allocs48cb9fad + 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 PipelineRasterizationStateCreateInfo) PassValue() (C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { - if x.ref48cb9fad != nil { - return *x.ref48cb9fad, nil +func (x SurfaceFormat) PassValue() (C.VkSurfaceFormatKHR, *cgoAllocMap) { + if x.refedaf82ca != nil { + return *x.refedaf82ca, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7449,124 +33448,149 @@ 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 *SurfaceFormat) Deref() { + if x.refedaf82ca == 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.Format = (Format)(x.refedaf82ca.format) + x.ColorSpace = (ColorSpace)(x.refedaf82ca.colorSpace) } -// allocPipelineMultisampleStateCreateInfoMemory allocates memory for type C.VkPipelineMultisampleStateCreateInfo in C. +// allocSwapchainCreateInfoMemory allocates memory for type C.VkSwapchainCreateInfoKHR 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()) +func allocSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineMultisampleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineMultisampleStateCreateInfo{}) +const sizeOfSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineMultisampleStateCreateInfo) Ref() *C.VkPipelineMultisampleStateCreateInfo { +func (x *SwapchainCreateInfo) Ref() *C.VkSwapchainCreateInfoKHR { if x == nil { return nil } - return x.refb6538bfb + 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 *PipelineMultisampleStateCreateInfo) Free() { - if x != nil && x.allocsb6538bfb != nil { - x.allocsb6538bfb.(*cgoAllocMap).Free() - x.refb6538bfb = nil +func (x *SwapchainCreateInfo) Free() { + if x != nil && x.allocsdb619e1c != nil { + x.allocsdb619e1c.(*cgoAllocMap).Free() + x.refdb619e1c = nil } } -// NewPipelineMultisampleStateCreateInfoRef 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 NewPipelineMultisampleStateCreateInfoRef(ref unsafe.Pointer) *PipelineMultisampleStateCreateInfo { +func NewSwapchainCreateInfoRef(ref unsafe.Pointer) *SwapchainCreateInfo { if ref == nil { return nil } - obj := new(PipelineMultisampleStateCreateInfo) - obj.refb6538bfb = (*C.VkPipelineMultisampleStateCreateInfo)(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 *PipelineMultisampleStateCreateInfo) PassRef() (*C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { +func (x *SwapchainCreateInfo) PassRef() (*C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb6538bfb != nil { - return x.refb6538bfb, nil + } else if x.refdb619e1c != nil { + return x.refdb619e1c, nil } - memb6538bfb := allocPipelineMultisampleStateCreateInfoMemory(1) - refb6538bfb := (*C.VkPipelineMultisampleStateCreateInfo)(memb6538bfb) - allocsb6538bfb := new(cgoAllocMap) - allocsb6538bfb.Add(memb6538bfb) + memdb619e1c := allocSwapchainCreateInfoMemory(1) + refdb619e1c := (*C.VkSwapchainCreateInfoKHR)(memdb619e1c) + allocsdb619e1c := new(cgoAllocMap) + allocsdb619e1c.Add(memdb619e1c) var csType_allocs *cgoAllocMap - refb6538bfb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb6538bfb.Borrow(csType_allocs) + refdb619e1c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdb619e1c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb6538bfb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb6538bfb.Borrow(cpNext_allocs) + refdb619e1c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdb619e1c.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - refb6538bfb.flags, cflags_allocs = (C.VkPipelineMultisampleStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocsb6538bfb.Borrow(cflags_allocs) + refdb619e1c.flags, cflags_allocs = (C.VkSwapchainCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsdb619e1c.Borrow(cflags_allocs) - var crasterizationSamples_allocs *cgoAllocMap - refb6538bfb.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown - allocsb6538bfb.Borrow(crasterizationSamples_allocs) + var csurface_allocs *cgoAllocMap + refdb619e1c.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown + allocsdb619e1c.Borrow(csurface_allocs) - var csampleShadingEnable_allocs *cgoAllocMap - refb6538bfb.sampleShadingEnable, csampleShadingEnable_allocs = (C.VkBool32)(x.SampleShadingEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(csampleShadingEnable_allocs) + var cminImageCount_allocs *cgoAllocMap + refdb619e1c.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown + allocsdb619e1c.Borrow(cminImageCount_allocs) - var cminSampleShading_allocs *cgoAllocMap - refb6538bfb.minSampleShading, cminSampleShading_allocs = (C.float)(x.MinSampleShading), cgoAllocsUnknown - allocsb6538bfb.Borrow(cminSampleShading_allocs) + var cimageFormat_allocs *cgoAllocMap + refdb619e1c.imageFormat, cimageFormat_allocs = (C.VkFormat)(x.ImageFormat), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageFormat_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 cimageColorSpace_allocs *cgoAllocMap + refdb619e1c.imageColorSpace, cimageColorSpace_allocs = (C.VkColorSpaceKHR)(x.ImageColorSpace), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageColorSpace_allocs) - var calphaToCoverageEnable_allocs *cgoAllocMap - refb6538bfb.alphaToCoverageEnable, calphaToCoverageEnable_allocs = (C.VkBool32)(x.AlphaToCoverageEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(calphaToCoverageEnable_allocs) + var cimageExtent_allocs *cgoAllocMap + refdb619e1c.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocsdb619e1c.Borrow(cimageExtent_allocs) - var calphaToOneEnable_allocs *cgoAllocMap - refb6538bfb.alphaToOneEnable, calphaToOneEnable_allocs = (C.VkBool32)(x.AlphaToOneEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(calphaToOneEnable_allocs) + var cimageArrayLayers_allocs *cgoAllocMap + refdb619e1c.imageArrayLayers, cimageArrayLayers_allocs = (C.uint32_t)(x.ImageArrayLayers), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageArrayLayers_allocs) - x.refb6538bfb = refb6538bfb - x.allocsb6538bfb = allocsb6538bfb - return refb6538bfb, allocsb6538bfb + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + 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 PipelineMultisampleStateCreateInfo) PassValue() (C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { - if x.refb6538bfb != nil { - return *x.refb6538bfb, nil +func (x SwapchainCreateInfo) PassValue() (C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.refdb619e1c != nil { + return *x.refdb619e1c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7574,116 +33598,187 @@ 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 *SwapchainCreateInfo) Deref() { + if x.refdb619e1c == 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.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.AlphaToCoverageEnable = (Bool32)(x.refb6538bfb.alphaToCoverageEnable) - x.AlphaToOneEnable = (Bool32)(x.refb6538bfb.alphaToOneEnable) + 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)) } -// allocStencilOpStateMemory allocates memory for type C.VkStencilOpState in C. +// allocPresentInfoMemory allocates memory for type C.VkPresentInfoKHR 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()) +func allocPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfStencilOpStateValue = unsafe.Sizeof([1]C.VkStencilOpState{}) +const sizeOfPresentInfoValue = unsafe.Sizeof([1]C.VkPresentInfoKHR{}) + +// copyPSwapchainBytes copies the data from Go slice as *C.VkSwapchainKHR. +func copyPSwapchainBytes(slice *sliceHeader) (*C.VkSwapchainKHR, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfSwapchainValue) * slice.Len, + Cap: int(sizeOfSwapchainValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkSwapchainKHR)(mem0), allocs +} + +// allocSwapchainMemory allocates memory for type C.VkSwapchainKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSwapchainMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfSwapchainValue = unsafe.Sizeof([1]C.VkSwapchainKHR{}) + +// copyPResultBytes copies the data from Go slice as *C.VkResult. +func copyPResultBytes(slice *sliceHeader) (*C.VkResult, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfResultValue) * slice.Len, + Cap: int(sizeOfResultValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkResult)(mem0), allocs +} + +// allocResultMemory allocates memory for type C.VkResult in C. +// The caller is responsible for freeing the this memory via C.free. +func allocResultMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfResultValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfResultValue = unsafe.Sizeof([1]C.VkResult{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *StencilOpState) Ref() *C.VkStencilOpState { +func (x *PresentInfo) Ref() *C.VkPresentInfoKHR { if x == nil { return nil } - return x.ref28886871 + 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 *StencilOpState) Free() { - if x != nil && x.allocs28886871 != nil { - x.allocs28886871.(*cgoAllocMap).Free() - x.ref28886871 = nil +func (x *PresentInfo) Free() { + if x != nil && x.allocs1d0e82d4 != nil { + x.allocs1d0e82d4.(*cgoAllocMap).Free() + x.ref1d0e82d4 = nil } } -// NewStencilOpStateRef 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 NewStencilOpStateRef(ref unsafe.Pointer) *StencilOpState { +func NewPresentInfoRef(ref unsafe.Pointer) *PresentInfo { if ref == nil { return nil } - obj := new(StencilOpState) - obj.ref28886871 = (*C.VkStencilOpState)(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 *StencilOpState) PassRef() (*C.VkStencilOpState, *cgoAllocMap) { +func (x *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *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) + } else if x.ref1d0e82d4 != nil { + return x.ref1d0e82d4, nil + } + mem1d0e82d4 := allocPresentInfoMemory(1) + ref1d0e82d4 := (*C.VkPresentInfoKHR)(mem1d0e82d4) + allocs1d0e82d4 := new(cgoAllocMap) + allocs1d0e82d4.Add(mem1d0e82d4) - var cfailOp_allocs *cgoAllocMap - ref28886871.failOp, cfailOp_allocs = (C.VkStencilOp)(x.FailOp), cgoAllocsUnknown - allocs28886871.Borrow(cfailOp_allocs) + var csType_allocs *cgoAllocMap + ref1d0e82d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1d0e82d4.Borrow(csType_allocs) - var cpassOp_allocs *cgoAllocMap - ref28886871.passOp, cpassOp_allocs = (C.VkStencilOp)(x.PassOp), cgoAllocsUnknown - allocs28886871.Borrow(cpassOp_allocs) + var cpNext_allocs *cgoAllocMap + ref1d0e82d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpNext_allocs) - var cdepthFailOp_allocs *cgoAllocMap - ref28886871.depthFailOp, cdepthFailOp_allocs = (C.VkStencilOp)(x.DepthFailOp), cgoAllocsUnknown - allocs28886871.Borrow(cdepthFailOp_allocs) + var cwaitSemaphoreCount_allocs *cgoAllocMap + ref1d0e82d4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cwaitSemaphoreCount_allocs) - var ccompareOp_allocs *cgoAllocMap - ref28886871.compareOp, ccompareOp_allocs = (C.VkCompareOp)(x.CompareOp), cgoAllocsUnknown - allocs28886871.Borrow(ccompareOp_allocs) + var cpWaitSemaphores_allocs *cgoAllocMap + ref1d0e82d4.pWaitSemaphores, cpWaitSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + allocs1d0e82d4.Borrow(cpWaitSemaphores_allocs) - var ccompareMask_allocs *cgoAllocMap - ref28886871.compareMask, ccompareMask_allocs = (C.uint32_t)(x.CompareMask), cgoAllocsUnknown - allocs28886871.Borrow(ccompareMask_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref1d0e82d4.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cswapchainCount_allocs) - var cwriteMask_allocs *cgoAllocMap - ref28886871.writeMask, cwriteMask_allocs = (C.uint32_t)(x.WriteMask), cgoAllocsUnknown - allocs28886871.Borrow(cwriteMask_allocs) + var cpSwapchains_allocs *cgoAllocMap + ref1d0e82d4.pSwapchains, cpSwapchains_allocs = copyPSwapchainBytes((*sliceHeader)(unsafe.Pointer(&x.PSwapchains))) + allocs1d0e82d4.Borrow(cpSwapchains_allocs) - var creference_allocs *cgoAllocMap - ref28886871.reference, creference_allocs = (C.uint32_t)(x.Reference), cgoAllocsUnknown - allocs28886871.Borrow(creference_allocs) + var cpImageIndices_allocs *cgoAllocMap + ref1d0e82d4.pImageIndices, cpImageIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PImageIndices))) + allocs1d0e82d4.Borrow(cpImageIndices_allocs) - x.ref28886871 = ref28886871 - x.allocs28886871 = allocs28886871 - return ref28886871, allocs28886871 + var cpResults_allocs *cgoAllocMap + ref1d0e82d4.pResults, cpResults_allocs = copyPResultBytes((*sliceHeader)(unsafe.Pointer(&x.PResults))) + 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 StencilOpState) PassValue() (C.VkStencilOpState, *cgoAllocMap) { - if x.ref28886871 != nil { - return *x.ref28886871, nil +func (x PresentInfo) PassValue() (C.VkPresentInfoKHR, *cgoAllocMap) { + if x.ref1d0e82d4 != nil { + return *x.ref1d0e82d4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7691,130 +33786,111 @@ 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 *PresentInfo) Deref() { + if x.ref1d0e82d4 == 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.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 = ? + } -// allocPipelineDepthStencilStateCreateInfoMemory allocates memory for type C.VkPipelineDepthStencilStateCreateInfo in C. +// allocImageSwapchainCreateInfoMemory allocates memory for type C.VkImageSwapchainCreateInfoKHR 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()) +func allocImageSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSwapchainCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineDepthStencilStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDepthStencilStateCreateInfo{}) +const sizeOfImageSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkImageSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDepthStencilStateCreateInfo) Ref() *C.VkPipelineDepthStencilStateCreateInfo { +func (x *ImageSwapchainCreateInfo) Ref() *C.VkImageSwapchainCreateInfoKHR { if x == nil { return nil } - return x.refeabfcf1 + 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 *PipelineDepthStencilStateCreateInfo) Free() { - if x != nil && x.allocseabfcf1 != nil { - x.allocseabfcf1.(*cgoAllocMap).Free() - x.refeabfcf1 = nil +func (x *ImageSwapchainCreateInfo) Free() { + if x != nil && x.allocsd83cc5d0 != nil { + x.allocsd83cc5d0.(*cgoAllocMap).Free() + x.refd83cc5d0 = nil } } -// NewPipelineDepthStencilStateCreateInfoRef 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 NewPipelineDepthStencilStateCreateInfoRef(ref unsafe.Pointer) *PipelineDepthStencilStateCreateInfo { +func NewImageSwapchainCreateInfoRef(ref unsafe.Pointer) *ImageSwapchainCreateInfo { if ref == nil { return nil } - obj := new(PipelineDepthStencilStateCreateInfo) - obj.refeabfcf1 = (*C.VkPipelineDepthStencilStateCreateInfo)(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 *PipelineDepthStencilStateCreateInfo) PassRef() (*C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { +func (x *ImageSwapchainCreateInfo) PassRef() (*C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeabfcf1 != nil { - return x.refeabfcf1, nil + } else if x.refd83cc5d0 != nil { + return x.refd83cc5d0, nil } - memeabfcf1 := allocPipelineDepthStencilStateCreateInfoMemory(1) - refeabfcf1 := (*C.VkPipelineDepthStencilStateCreateInfo)(memeabfcf1) - allocseabfcf1 := new(cgoAllocMap) - allocseabfcf1.Add(memeabfcf1) + memd83cc5d0 := allocImageSwapchainCreateInfoMemory(1) + refd83cc5d0 := (*C.VkImageSwapchainCreateInfoKHR)(memd83cc5d0) + allocsd83cc5d0 := new(cgoAllocMap) + allocsd83cc5d0.Add(memd83cc5d0) var csType_allocs *cgoAllocMap - refeabfcf1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseabfcf1.Borrow(csType_allocs) + refd83cc5d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd83cc5d0.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) + refd83cc5d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd83cc5d0.Borrow(cpNext_allocs) - var cmaxDepthBounds_allocs *cgoAllocMap - refeabfcf1.maxDepthBounds, cmaxDepthBounds_allocs = (C.float)(x.MaxDepthBounds), cgoAllocsUnknown - allocseabfcf1.Borrow(cmaxDepthBounds_allocs) + var cswapchain_allocs *cgoAllocMap + refd83cc5d0.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocsd83cc5d0.Borrow(cswapchain_allocs) - x.refeabfcf1 = refeabfcf1 - x.allocseabfcf1 = allocseabfcf1 - return refeabfcf1, allocseabfcf1 + 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 PipelineDepthStencilStateCreateInfo) PassValue() (C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { - if x.refeabfcf1 != nil { - return *x.refeabfcf1, nil +func (x ImageSwapchainCreateInfo) PassValue() (C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.refd83cc5d0 != nil { + return *x.refd83cc5d0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7822,119 +33898,94 @@ 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 *ImageSwapchainCreateInfo) Deref() { + if x.refd83cc5d0 == 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.refd83cc5d0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd83cc5d0.pNext)) + x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.refd83cc5d0.swapchain)) } -// allocPipelineColorBlendAttachmentStateMemory allocates memory for type C.VkPipelineColorBlendAttachmentState in C. +// allocBindImageMemorySwapchainInfoMemory allocates memory for type C.VkBindImageMemorySwapchainInfoKHR 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()) +func allocBindImageMemorySwapchainInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemorySwapchainInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineColorBlendAttachmentStateValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAttachmentState{}) +const sizeOfBindImageMemorySwapchainInfoValue = unsafe.Sizeof([1]C.VkBindImageMemorySwapchainInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendAttachmentState) Ref() *C.VkPipelineColorBlendAttachmentState { +func (x *BindImageMemorySwapchainInfo) Ref() *C.VkBindImageMemorySwapchainInfoKHR { if x == nil { return nil } - return x.ref9e889477 + 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 *PipelineColorBlendAttachmentState) Free() { - if x != nil && x.allocs9e889477 != nil { - x.allocs9e889477.(*cgoAllocMap).Free() - x.ref9e889477 = nil +func (x *BindImageMemorySwapchainInfo) Free() { + if x != nil && x.allocs1aa25cb6 != nil { + x.allocs1aa25cb6.(*cgoAllocMap).Free() + x.ref1aa25cb6 = nil } } -// NewPipelineColorBlendAttachmentStateRef 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 NewPipelineColorBlendAttachmentStateRef(ref unsafe.Pointer) *PipelineColorBlendAttachmentState { +func NewBindImageMemorySwapchainInfoRef(ref unsafe.Pointer) *BindImageMemorySwapchainInfo { if ref == nil { return nil } - obj := new(PipelineColorBlendAttachmentState) - obj.ref9e889477 = (*C.VkPipelineColorBlendAttachmentState)(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 *PipelineColorBlendAttachmentState) PassRef() (*C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { +func (x *BindImageMemorySwapchainInfo) PassRef() (*C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9e889477 != nil { - return x.ref9e889477, nil + } else if x.ref1aa25cb6 != nil { + return x.ref1aa25cb6, 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) + mem1aa25cb6 := allocBindImageMemorySwapchainInfoMemory(1) + ref1aa25cb6 := (*C.VkBindImageMemorySwapchainInfoKHR)(mem1aa25cb6) + allocs1aa25cb6 := new(cgoAllocMap) + allocs1aa25cb6.Add(mem1aa25cb6) - var csrcAlphaBlendFactor_allocs *cgoAllocMap - ref9e889477.srcAlphaBlendFactor, csrcAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.SrcAlphaBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(csrcAlphaBlendFactor_allocs) + var csType_allocs *cgoAllocMap + ref1aa25cb6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1aa25cb6.Borrow(csType_allocs) - var cdstAlphaBlendFactor_allocs *cgoAllocMap - ref9e889477.dstAlphaBlendFactor, cdstAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.DstAlphaBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(cdstAlphaBlendFactor_allocs) + var cpNext_allocs *cgoAllocMap + ref1aa25cb6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cpNext_allocs) - var calphaBlendOp_allocs *cgoAllocMap - ref9e889477.alphaBlendOp, calphaBlendOp_allocs = (C.VkBlendOp)(x.AlphaBlendOp), cgoAllocsUnknown - allocs9e889477.Borrow(calphaBlendOp_allocs) + var cswapchain_allocs *cgoAllocMap + ref1aa25cb6.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cswapchain_allocs) - var ccolorWriteMask_allocs *cgoAllocMap - ref9e889477.colorWriteMask, ccolorWriteMask_allocs = (C.VkColorComponentFlags)(x.ColorWriteMask), cgoAllocsUnknown - allocs9e889477.Borrow(ccolorWriteMask_allocs) + var cimageIndex_allocs *cgoAllocMap + ref1aa25cb6.imageIndex, cimageIndex_allocs = (C.uint32_t)(x.ImageIndex), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cimageIndex_allocs) - x.ref9e889477 = ref9e889477 - x.allocs9e889477 = allocs9e889477 - return ref9e889477, allocs9e889477 + 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 PipelineColorBlendAttachmentState) PassValue() (C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { - if x.ref9e889477 != nil { - return *x.ref9e889477, nil +func (x BindImageMemorySwapchainInfo) PassValue() (C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { + if x.ref1aa25cb6 != nil { + return *x.ref1aa25cb6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7942,153 +33993,107 @@ 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 *BindImageMemorySwapchainInfo) Deref() { + if x.ref1aa25cb6 == 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.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) } -// allocPipelineColorBlendStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendStateCreateInfo in C. +// allocAcquireNextImageInfoMemory allocates memory for type C.VkAcquireNextImageInfoKHR 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()) +func allocAcquireNextImageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireNextImageInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfAcquireNextImageInfoValue = unsafe.Sizeof([1]C.VkAcquireNextImageInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendStateCreateInfo) Ref() *C.VkPipelineColorBlendStateCreateInfo { +func (x *AcquireNextImageInfo) Ref() *C.VkAcquireNextImageInfoKHR { if x == nil { return nil } - return x.ref2a9b490b + 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 *PipelineColorBlendStateCreateInfo) Free() { - if x != nil && x.allocs2a9b490b != nil { - x.allocs2a9b490b.(*cgoAllocMap).Free() - x.ref2a9b490b = nil +func (x *AcquireNextImageInfo) Free() { + if x != nil && x.allocs588806a5 != nil { + x.allocs588806a5.(*cgoAllocMap).Free() + x.ref588806a5 = nil } } -// NewPipelineColorBlendStateCreateInfoRef 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 NewPipelineColorBlendStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendStateCreateInfo { +func NewAcquireNextImageInfoRef(ref unsafe.Pointer) *AcquireNextImageInfo { if ref == nil { return nil } - obj := new(PipelineColorBlendStateCreateInfo) - obj.ref2a9b490b = (*C.VkPipelineColorBlendStateCreateInfo)(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 *PipelineColorBlendStateCreateInfo) PassRef() (*C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { +func (x *AcquireNextImageInfo) PassRef() (*C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2a9b490b != nil { - return x.ref2a9b490b, nil + } else if x.ref588806a5 != nil { + return x.ref588806a5, nil } - mem2a9b490b := allocPipelineColorBlendStateCreateInfoMemory(1) - ref2a9b490b := (*C.VkPipelineColorBlendStateCreateInfo)(mem2a9b490b) - allocs2a9b490b := new(cgoAllocMap) - allocs2a9b490b.Add(mem2a9b490b) + mem588806a5 := allocAcquireNextImageInfoMemory(1) + ref588806a5 := (*C.VkAcquireNextImageInfoKHR)(mem588806a5) + allocs588806a5 := new(cgoAllocMap) + allocs588806a5.Add(mem588806a5) var csType_allocs *cgoAllocMap - ref2a9b490b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2a9b490b.Borrow(csType_allocs) + ref588806a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs588806a5.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) + ref588806a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs588806a5.Borrow(cpNext_allocs) - var clogicOpEnable_allocs *cgoAllocMap - ref2a9b490b.logicOpEnable, clogicOpEnable_allocs = (C.VkBool32)(x.LogicOpEnable), cgoAllocsUnknown - allocs2a9b490b.Borrow(clogicOpEnable_allocs) + var cswapchain_allocs *cgoAllocMap + ref588806a5.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs588806a5.Borrow(cswapchain_allocs) - var clogicOp_allocs *cgoAllocMap - ref2a9b490b.logicOp, clogicOp_allocs = (C.VkLogicOp)(x.LogicOp), cgoAllocsUnknown - allocs2a9b490b.Borrow(clogicOp_allocs) + var ctimeout_allocs *cgoAllocMap + ref588806a5.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown + allocs588806a5.Borrow(ctimeout_allocs) - var cattachmentCount_allocs *cgoAllocMap - ref2a9b490b.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocs2a9b490b.Borrow(cattachmentCount_allocs) + var csemaphore_allocs *cgoAllocMap + ref588806a5.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs588806a5.Borrow(csemaphore_allocs) - var cpAttachments_allocs *cgoAllocMap - ref2a9b490b.pAttachments, cpAttachments_allocs = unpackSPipelineColorBlendAttachmentState(x.PAttachments) - allocs2a9b490b.Borrow(cpAttachments_allocs) + var cfence_allocs *cgoAllocMap + ref588806a5.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocs588806a5.Borrow(cfence_allocs) - var cblendConstants_allocs *cgoAllocMap - ref2a9b490b.blendConstants, cblendConstants_allocs = *(*[4]C.float)(unsafe.Pointer(&x.BlendConstants)), cgoAllocsUnknown - allocs2a9b490b.Borrow(cblendConstants_allocs) + var cdeviceMask_allocs *cgoAllocMap + ref588806a5.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs588806a5.Borrow(cdeviceMask_allocs) - x.ref2a9b490b = ref2a9b490b - x.allocs2a9b490b = allocs2a9b490b - return ref2a9b490b, allocs2a9b490b + 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 PipelineColorBlendStateCreateInfo) PassValue() (C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { - if x.ref2a9b490b != nil { - return *x.ref2a9b490b, nil +func (x AcquireNextImageInfo) PassValue() (C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { + if x.ref588806a5 != nil { + return *x.ref588806a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8096,103 +34101,98 @@ 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 *AcquireNextImageInfo) Deref() { + if x.ref588806a5 == 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.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) } -// allocPipelineDynamicStateCreateInfoMemory allocates memory for type C.VkPipelineDynamicStateCreateInfo in C. +// allocDeviceGroupPresentCapabilitiesMemory allocates memory for type C.VkDeviceGroupPresentCapabilitiesKHR 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()) +func allocDeviceGroupPresentCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentCapabilitiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineDynamicStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDynamicStateCreateInfo{}) +const sizeOfDeviceGroupPresentCapabilitiesValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDynamicStateCreateInfo) Ref() *C.VkPipelineDynamicStateCreateInfo { +func (x *DeviceGroupPresentCapabilities) Ref() *C.VkDeviceGroupPresentCapabilitiesKHR { if x == nil { return nil } - return x.ref246d7bc8 + 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 *PipelineDynamicStateCreateInfo) Free() { - if x != nil && x.allocs246d7bc8 != nil { - x.allocs246d7bc8.(*cgoAllocMap).Free() - x.ref246d7bc8 = nil +func (x *DeviceGroupPresentCapabilities) Free() { + if x != nil && x.allocsa3962c81 != nil { + x.allocsa3962c81.(*cgoAllocMap).Free() + x.refa3962c81 = nil } } -// NewPipelineDynamicStateCreateInfoRef 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 NewPipelineDynamicStateCreateInfoRef(ref unsafe.Pointer) *PipelineDynamicStateCreateInfo { +func NewDeviceGroupPresentCapabilitiesRef(ref unsafe.Pointer) *DeviceGroupPresentCapabilities { if ref == nil { return nil } - obj := new(PipelineDynamicStateCreateInfo) - obj.ref246d7bc8 = (*C.VkPipelineDynamicStateCreateInfo)(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 *PipelineDynamicStateCreateInfo) PassRef() (*C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { +func (x *DeviceGroupPresentCapabilities) PassRef() (*C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref246d7bc8 != nil { - return x.ref246d7bc8, nil + } else if x.refa3962c81 != nil { + return x.refa3962c81, nil } - mem246d7bc8 := allocPipelineDynamicStateCreateInfoMemory(1) - ref246d7bc8 := (*C.VkPipelineDynamicStateCreateInfo)(mem246d7bc8) - allocs246d7bc8 := new(cgoAllocMap) - allocs246d7bc8.Add(mem246d7bc8) + mema3962c81 := allocDeviceGroupPresentCapabilitiesMemory(1) + refa3962c81 := (*C.VkDeviceGroupPresentCapabilitiesKHR)(mema3962c81) + allocsa3962c81 := new(cgoAllocMap) + allocsa3962c81.Add(mema3962c81) var csType_allocs *cgoAllocMap - ref246d7bc8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs246d7bc8.Borrow(csType_allocs) + refa3962c81.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa3962c81.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) + refa3962c81.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa3962c81.Borrow(cpNext_allocs) - var cdynamicStateCount_allocs *cgoAllocMap - ref246d7bc8.dynamicStateCount, cdynamicStateCount_allocs = (C.uint32_t)(x.DynamicStateCount), cgoAllocsUnknown - allocs246d7bc8.Borrow(cdynamicStateCount_allocs) + var cpresentMask_allocs *cgoAllocMap + refa3962c81.presentMask, cpresentMask_allocs = *(*[32]C.uint32_t)(unsafe.Pointer(&x.PresentMask)), cgoAllocsUnknown + allocsa3962c81.Borrow(cpresentMask_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 cmodes_allocs *cgoAllocMap + refa3962c81.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown + allocsa3962c81.Borrow(cmodes_allocs) - x.ref246d7bc8 = ref246d7bc8 - x.allocs246d7bc8 = allocs246d7bc8 - return ref246d7bc8, allocs246d7bc8 + 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 PipelineDynamicStateCreateInfo) PassValue() (C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { - if x.ref246d7bc8 != nil { - return *x.ref246d7bc8, nil +func (x DeviceGroupPresentCapabilities) PassValue() (C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { + if x.refa3962c81 != nil { + return *x.refa3962c81, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8200,198 +34200,99 @@ 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 *DeviceGroupPresentCapabilities) Deref() { + if x.refa3962c81 == 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.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) } -// allocGraphicsPipelineCreateInfoMemory allocates memory for type C.VkGraphicsPipelineCreateInfo in C. +// allocDeviceGroupPresentInfoMemory allocates memory for type C.VkDeviceGroupPresentInfoKHR 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()) +func allocDeviceGroupPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - } -} +const sizeOfDeviceGroupPresentInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GraphicsPipelineCreateInfo) Ref() *C.VkGraphicsPipelineCreateInfo { +func (x *DeviceGroupPresentInfo) Ref() *C.VkDeviceGroupPresentInfoKHR { if x == nil { return nil } - return x.ref178f88b6 + 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 *GraphicsPipelineCreateInfo) Free() { - if x != nil && x.allocs178f88b6 != nil { - x.allocs178f88b6.(*cgoAllocMap).Free() - x.ref178f88b6 = nil +func (x *DeviceGroupPresentInfo) Free() { + if x != nil && x.allocsf6912d09 != nil { + x.allocsf6912d09.(*cgoAllocMap).Free() + x.reff6912d09 = nil } } -// NewGraphicsPipelineCreateInfoRef 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 NewGraphicsPipelineCreateInfoRef(ref unsafe.Pointer) *GraphicsPipelineCreateInfo { +func NewDeviceGroupPresentInfoRef(ref unsafe.Pointer) *DeviceGroupPresentInfo { if ref == nil { return nil } - obj := new(GraphicsPipelineCreateInfo) - obj.ref178f88b6 = (*C.VkGraphicsPipelineCreateInfo)(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 *GraphicsPipelineCreateInfo) PassRef() (*C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { +func (x *DeviceGroupPresentInfo) PassRef() (*C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref178f88b6 != nil { - return x.ref178f88b6, nil + } else if x.reff6912d09 != nil { + return x.reff6912d09, nil } - mem178f88b6 := allocGraphicsPipelineCreateInfoMemory(1) - ref178f88b6 := (*C.VkGraphicsPipelineCreateInfo)(mem178f88b6) - allocs178f88b6 := new(cgoAllocMap) - allocs178f88b6.Add(mem178f88b6) + memf6912d09 := allocDeviceGroupPresentInfoMemory(1) + reff6912d09 := (*C.VkDeviceGroupPresentInfoKHR)(memf6912d09) + allocsf6912d09 := new(cgoAllocMap) + allocsf6912d09.Add(memf6912d09) var csType_allocs *cgoAllocMap - ref178f88b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs178f88b6.Borrow(csType_allocs) + reff6912d09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf6912d09.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) + reff6912d09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf6912d09.Borrow(cpNext_allocs) - var csubpass_allocs *cgoAllocMap - ref178f88b6.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown - allocs178f88b6.Borrow(csubpass_allocs) + var cswapchainCount_allocs *cgoAllocMap + reff6912d09.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocsf6912d09.Borrow(cswapchainCount_allocs) - var cbasePipelineHandle_allocs *cgoAllocMap - ref178f88b6.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown - allocs178f88b6.Borrow(cbasePipelineHandle_allocs) + var cpDeviceMasks_allocs *cgoAllocMap + reff6912d09.pDeviceMasks, cpDeviceMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks))) + allocsf6912d09.Borrow(cpDeviceMasks_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref178f88b6.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs178f88b6.Borrow(cbasePipelineIndex_allocs) + var cmode_allocs *cgoAllocMap + reff6912d09.mode, cmode_allocs = (C.VkDeviceGroupPresentModeFlagBitsKHR)(x.Mode), cgoAllocsUnknown + allocsf6912d09.Borrow(cmode_allocs) - x.ref178f88b6 = ref178f88b6 - x.allocs178f88b6 = allocs178f88b6 - return ref178f88b6, allocs178f88b6 + 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 GraphicsPipelineCreateInfo) PassValue() (C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { - if x.ref178f88b6 != nil { - return *x.ref178f88b6, nil +func (x DeviceGroupPresentInfo) PassValue() (C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { + if x.reff6912d09 != nil { + return *x.reff6912d09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8399,122 +34300,96 @@ 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 *DeviceGroupPresentInfo) Deref() { + if x.reff6912d09 == 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.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) } -// allocComputePipelineCreateInfoMemory allocates memory for type C.VkComputePipelineCreateInfo in C. +// allocDeviceGroupSwapchainCreateInfoMemory allocates memory for type C.VkDeviceGroupSwapchainCreateInfoKHR 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()) +func allocDeviceGroupSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupSwapchainCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfComputePipelineCreateInfoValue = unsafe.Sizeof([1]C.VkComputePipelineCreateInfo{}) +const sizeOfDeviceGroupSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ComputePipelineCreateInfo) Ref() *C.VkComputePipelineCreateInfo { +func (x *DeviceGroupSwapchainCreateInfo) Ref() *C.VkDeviceGroupSwapchainCreateInfoKHR { if x == nil { return nil } - return x.ref77823220 + 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 *ComputePipelineCreateInfo) Free() { - if x != nil && x.allocs77823220 != nil { - x.allocs77823220.(*cgoAllocMap).Free() - x.ref77823220 = nil +func (x *DeviceGroupSwapchainCreateInfo) Free() { + if x != nil && x.allocs44ae0c0e != nil { + x.allocs44ae0c0e.(*cgoAllocMap).Free() + x.ref44ae0c0e = nil } } -// NewComputePipelineCreateInfoRef 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 NewComputePipelineCreateInfoRef(ref unsafe.Pointer) *ComputePipelineCreateInfo { +func NewDeviceGroupSwapchainCreateInfoRef(ref unsafe.Pointer) *DeviceGroupSwapchainCreateInfo { if ref == nil { return nil } - obj := new(ComputePipelineCreateInfo) - obj.ref77823220 = (*C.VkComputePipelineCreateInfo)(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 *ComputePipelineCreateInfo) PassRef() (*C.VkComputePipelineCreateInfo, *cgoAllocMap) { +func (x *DeviceGroupSwapchainCreateInfo) PassRef() (*C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref77823220 != nil { - return x.ref77823220, nil + } else if x.ref44ae0c0e != nil { + return x.ref44ae0c0e, nil } - mem77823220 := allocComputePipelineCreateInfoMemory(1) - ref77823220 := (*C.VkComputePipelineCreateInfo)(mem77823220) - allocs77823220 := new(cgoAllocMap) - allocs77823220.Add(mem77823220) + mem44ae0c0e := allocDeviceGroupSwapchainCreateInfoMemory(1) + ref44ae0c0e := (*C.VkDeviceGroupSwapchainCreateInfoKHR)(mem44ae0c0e) + allocs44ae0c0e := new(cgoAllocMap) + allocs44ae0c0e.Add(mem44ae0c0e) var csType_allocs *cgoAllocMap - ref77823220.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs77823220.Borrow(csType_allocs) + ref44ae0c0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs44ae0c0e.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) + ref44ae0c0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs44ae0c0e.Borrow(cpNext_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref77823220.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs77823220.Borrow(cbasePipelineIndex_allocs) + var cmodes_allocs *cgoAllocMap + ref44ae0c0e.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown + allocs44ae0c0e.Borrow(cmodes_allocs) - x.ref77823220 = ref77823220 - x.allocs77823220 = allocs77823220 - return ref77823220, allocs77823220 + 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 ComputePipelineCreateInfo) PassValue() (C.VkComputePipelineCreateInfo, *cgoAllocMap) { - if x.ref77823220 != nil { - return *x.ref77823220, nil +func (x DeviceGroupSwapchainCreateInfo) PassValue() (C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.ref44ae0c0e != nil { + return *x.ref44ae0c0e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8522,94 +34397,86 @@ 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 *DeviceGroupSwapchainCreateInfo) Deref() { + if x.ref44ae0c0e == 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.ref44ae0c0e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref44ae0c0e.pNext)) + x.Modes = (DeviceGroupPresentModeFlags)(x.ref44ae0c0e.modes) } -// allocPushConstantRangeMemory allocates memory for type C.VkPushConstantRange in C. +// allocDisplayModeParametersMemory allocates memory for type C.VkDisplayModeParametersKHR 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()) +func allocDisplayModeParametersMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeParametersValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPushConstantRangeValue = unsafe.Sizeof([1]C.VkPushConstantRange{}) +const sizeOfDisplayModeParametersValue = unsafe.Sizeof([1]C.VkDisplayModeParametersKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PushConstantRange) Ref() *C.VkPushConstantRange { +func (x *DisplayModeParameters) Ref() *C.VkDisplayModeParametersKHR { if x == nil { return nil } - return x.ref6f025856 + 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 *PushConstantRange) Free() { - if x != nil && x.allocs6f025856 != nil { - x.allocs6f025856.(*cgoAllocMap).Free() - x.ref6f025856 = nil +func (x *DisplayModeParameters) Free() { + if x != nil && x.allocse016f77f != nil { + x.allocse016f77f.(*cgoAllocMap).Free() + x.refe016f77f = nil } } -// NewPushConstantRangeRef 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 NewPushConstantRangeRef(ref unsafe.Pointer) *PushConstantRange { +func NewDisplayModeParametersRef(ref unsafe.Pointer) *DisplayModeParameters { if ref == nil { return nil } - obj := new(PushConstantRange) - obj.ref6f025856 = (*C.VkPushConstantRange)(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 *PushConstantRange) PassRef() (*C.VkPushConstantRange, *cgoAllocMap) { +func (x *DisplayModeParameters) PassRef() (*C.VkDisplayModeParametersKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f025856 != nil { - return x.ref6f025856, nil + } else if x.refe016f77f != nil { + return x.refe016f77f, 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) + meme016f77f := allocDisplayModeParametersMemory(1) + refe016f77f := (*C.VkDisplayModeParametersKHR)(meme016f77f) + allocse016f77f := new(cgoAllocMap) + allocse016f77f.Add(meme016f77f) - var coffset_allocs *cgoAllocMap - ref6f025856.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocs6f025856.Borrow(coffset_allocs) + var cvisibleRegion_allocs *cgoAllocMap + refe016f77f.visibleRegion, cvisibleRegion_allocs = x.VisibleRegion.PassValue() + allocse016f77f.Borrow(cvisibleRegion_allocs) - var csize_allocs *cgoAllocMap - ref6f025856.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown - allocs6f025856.Borrow(csize_allocs) + var crefreshRate_allocs *cgoAllocMap + refe016f77f.refreshRate, crefreshRate_allocs = (C.uint32_t)(x.RefreshRate), cgoAllocsUnknown + allocse016f77f.Borrow(crefreshRate_allocs) - x.ref6f025856 = ref6f025856 - x.allocs6f025856 = allocs6f025856 - return ref6f025856, allocs6f025856 + 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 PushConstantRange) PassValue() (C.VkPushConstantRange, *cgoAllocMap) { - if x.ref6f025856 != nil { - return *x.ref6f025856, nil +func (x DisplayModeParameters) PassValue() (C.VkDisplayModeParametersKHR, *cgoAllocMap) { + if x.refe016f77f != nil { + return *x.refe016f77f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8617,144 +34484,93 @@ 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 *DisplayModeParameters) Deref() { + if x.refe016f77f == nil { return } - x.StageFlags = (ShaderStageFlags)(x.ref6f025856.stageFlags) - x.Offset = (uint32)(x.ref6f025856.offset) - x.Size = (uint32)(x.ref6f025856.size) + x.VisibleRegion = *NewExtent2DRef(unsafe.Pointer(&x.refe016f77f.visibleRegion)) + x.RefreshRate = (uint32)(x.refe016f77f.refreshRate) } -// allocPipelineLayoutCreateInfoMemory allocates memory for type C.VkPipelineLayoutCreateInfo in C. +// allocDisplayModeCreateInfoMemory allocates memory for type C.VkDisplayModeCreateInfoKHR 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()) +func allocDisplayModeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - } -} +const sizeOfDisplayModeCreateInfoValue = unsafe.Sizeof([1]C.VkDisplayModeCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineLayoutCreateInfo) Ref() *C.VkPipelineLayoutCreateInfo { +func (x *DisplayModeCreateInfo) Ref() *C.VkDisplayModeCreateInfoKHR { if x == nil { return nil } - return x.ref64cc4eed + 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 *PipelineLayoutCreateInfo) Free() { - if x != nil && x.allocs64cc4eed != nil { - x.allocs64cc4eed.(*cgoAllocMap).Free() - x.ref64cc4eed = nil +func (x *DisplayModeCreateInfo) Free() { + if x != nil && x.allocs392fca31 != nil { + x.allocs392fca31.(*cgoAllocMap).Free() + x.ref392fca31 = nil } } -// NewPipelineLayoutCreateInfoRef 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 NewPipelineLayoutCreateInfoRef(ref unsafe.Pointer) *PipelineLayoutCreateInfo { +func NewDisplayModeCreateInfoRef(ref unsafe.Pointer) *DisplayModeCreateInfo { if ref == nil { return nil } - obj := new(PipelineLayoutCreateInfo) - obj.ref64cc4eed = (*C.VkPipelineLayoutCreateInfo)(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 *PipelineLayoutCreateInfo) PassRef() (*C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { +func (x *DisplayModeCreateInfo) PassRef() (*C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref64cc4eed != nil { - return x.ref64cc4eed, nil + } else if x.ref392fca31 != nil { + return x.ref392fca31, nil } - mem64cc4eed := allocPipelineLayoutCreateInfoMemory(1) - ref64cc4eed := (*C.VkPipelineLayoutCreateInfo)(mem64cc4eed) - allocs64cc4eed := new(cgoAllocMap) - allocs64cc4eed.Add(mem64cc4eed) + mem392fca31 := allocDisplayModeCreateInfoMemory(1) + ref392fca31 := (*C.VkDisplayModeCreateInfoKHR)(mem392fca31) + allocs392fca31 := new(cgoAllocMap) + allocs392fca31.Add(mem392fca31) var csType_allocs *cgoAllocMap - ref64cc4eed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64cc4eed.Borrow(csType_allocs) + ref392fca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs392fca31.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref64cc4eed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64cc4eed.Borrow(cpNext_allocs) + ref392fca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs392fca31.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) + ref392fca31.flags, cflags_allocs = (C.VkDisplayModeCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs392fca31.Borrow(cflags_allocs) - var cpPushConstantRanges_allocs *cgoAllocMap - ref64cc4eed.pPushConstantRanges, cpPushConstantRanges_allocs = unpackSPushConstantRange(x.PPushConstantRanges) - allocs64cc4eed.Borrow(cpPushConstantRanges_allocs) + var cparameters_allocs *cgoAllocMap + ref392fca31.parameters, cparameters_allocs = x.Parameters.PassValue() + allocs392fca31.Borrow(cparameters_allocs) - x.ref64cc4eed = ref64cc4eed - x.allocs64cc4eed = allocs64cc4eed - return ref64cc4eed, allocs64cc4eed + 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 PipelineLayoutCreateInfo) PassValue() (C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { - if x.ref64cc4eed != nil { - return *x.ref64cc4eed, nil +func (x DisplayModeCreateInfo) PassValue() (C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { + if x.ref392fca31 != nil { + return *x.ref392fca31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8762,158 +34578,87 @@ 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 *DisplayModeCreateInfo) Deref() { + if x.ref392fca31 == 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.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)) } -// allocSamplerCreateInfoMemory allocates memory for type C.VkSamplerCreateInfo in C. +// allocDisplayModePropertiesMemory allocates memory for type C.VkDisplayModePropertiesKHR 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()) +func allocDisplayModePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSamplerCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCreateInfo{}) +const sizeOfDisplayModePropertiesValue = unsafe.Sizeof([1]C.VkDisplayModePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerCreateInfo) Ref() *C.VkSamplerCreateInfo { +func (x *DisplayModeProperties) Ref() *C.VkDisplayModePropertiesKHR { if x == nil { return nil } - return x.refce034abf + 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 *SamplerCreateInfo) Free() { - if x != nil && x.allocsce034abf != nil { - x.allocsce034abf.(*cgoAllocMap).Free() - x.refce034abf = nil +func (x *DisplayModeProperties) Free() { + if x != nil && x.allocs5e3abaaa != nil { + x.allocs5e3abaaa.(*cgoAllocMap).Free() + x.ref5e3abaaa = nil } } -// NewSamplerCreateInfoRef 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 NewSamplerCreateInfoRef(ref unsafe.Pointer) *SamplerCreateInfo { +func NewDisplayModePropertiesRef(ref unsafe.Pointer) *DisplayModeProperties { if ref == nil { return nil } - obj := new(SamplerCreateInfo) - obj.refce034abf = (*C.VkSamplerCreateInfo)(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 *SamplerCreateInfo) PassRef() (*C.VkSamplerCreateInfo, *cgoAllocMap) { +func (x *DisplayModeProperties) PassRef() (*C.VkDisplayModePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refce034abf != nil { - return x.refce034abf, nil + } else if x.ref5e3abaaa != nil { + return x.ref5e3abaaa, 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) + mem5e3abaaa := allocDisplayModePropertiesMemory(1) + ref5e3abaaa := (*C.VkDisplayModePropertiesKHR)(mem5e3abaaa) + allocs5e3abaaa := new(cgoAllocMap) + allocs5e3abaaa.Add(mem5e3abaaa) - var cborderColor_allocs *cgoAllocMap - refce034abf.borderColor, cborderColor_allocs = (C.VkBorderColor)(x.BorderColor), cgoAllocsUnknown - allocsce034abf.Borrow(cborderColor_allocs) + var cdisplayMode_allocs *cgoAllocMap + ref5e3abaaa.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown + allocs5e3abaaa.Borrow(cdisplayMode_allocs) - var cunnormalizedCoordinates_allocs *cgoAllocMap - refce034abf.unnormalizedCoordinates, cunnormalizedCoordinates_allocs = (C.VkBool32)(x.UnnormalizedCoordinates), cgoAllocsUnknown - allocsce034abf.Borrow(cunnormalizedCoordinates_allocs) + var cparameters_allocs *cgoAllocMap + ref5e3abaaa.parameters, cparameters_allocs = x.Parameters.PassValue() + allocs5e3abaaa.Borrow(cparameters_allocs) - x.refce034abf = refce034abf - x.allocsce034abf = allocsce034abf - return refce034abf, allocsce034abf + 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 SamplerCreateInfo) PassValue() (C.VkSamplerCreateInfo, *cgoAllocMap) { - if x.refce034abf != nil { - return *x.refce034abf, nil +func (x DisplayModeProperties) PassValue() (C.VkDisplayModePropertiesKHR, *cgoAllocMap) { + if x.ref5e3abaaa != nil { + return *x.ref5e3abaaa, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8921,113 +34666,113 @@ 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 *DisplayModeProperties) Deref() { + if x.ref5e3abaaa == 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.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref5e3abaaa.displayMode)) + x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref5e3abaaa.parameters)) } -// allocDescriptorSetLayoutBindingMemory allocates memory for type C.VkDescriptorSetLayoutBinding in C. +// allocDisplayPlaneCapabilitiesMemory allocates memory for type C.VkDisplayPlaneCapabilitiesKHR 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()) +func allocDisplayPlaneCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilitiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetLayoutBindingValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBinding{}) +const sizeOfDisplayPlaneCapabilitiesValue = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutBinding) Ref() *C.VkDescriptorSetLayoutBinding { +func (x *DisplayPlaneCapabilities) Ref() *C.VkDisplayPlaneCapabilitiesKHR { if x == nil { return nil } - return x.ref8b50b4ec + 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 *DescriptorSetLayoutBinding) Free() { - if x != nil && x.allocs8b50b4ec != nil { - x.allocs8b50b4ec.(*cgoAllocMap).Free() - x.ref8b50b4ec = nil +func (x *DisplayPlaneCapabilities) Free() { + if x != nil && x.allocs6f31fcaf != nil { + x.allocs6f31fcaf.(*cgoAllocMap).Free() + x.ref6f31fcaf = nil } } -// NewDescriptorSetLayoutBindingRef 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 NewDescriptorSetLayoutBindingRef(ref unsafe.Pointer) *DescriptorSetLayoutBinding { +func NewDisplayPlaneCapabilitiesRef(ref unsafe.Pointer) *DisplayPlaneCapabilities { if ref == nil { return nil } - obj := new(DescriptorSetLayoutBinding) - obj.ref8b50b4ec = (*C.VkDescriptorSetLayoutBinding)(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 *DescriptorSetLayoutBinding) PassRef() (*C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { +func (x *DisplayPlaneCapabilities) PassRef() (*C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8b50b4ec != nil { - return x.ref8b50b4ec, nil + } else if x.ref6f31fcaf != nil { + return x.ref6f31fcaf, nil } - mem8b50b4ec := allocDescriptorSetLayoutBindingMemory(1) - ref8b50b4ec := (*C.VkDescriptorSetLayoutBinding)(mem8b50b4ec) - allocs8b50b4ec := new(cgoAllocMap) - allocs8b50b4ec.Add(mem8b50b4ec) + mem6f31fcaf := allocDisplayPlaneCapabilitiesMemory(1) + ref6f31fcaf := (*C.VkDisplayPlaneCapabilitiesKHR)(mem6f31fcaf) + allocs6f31fcaf := new(cgoAllocMap) + allocs6f31fcaf.Add(mem6f31fcaf) - var cbinding_allocs *cgoAllocMap - ref8b50b4ec.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cbinding_allocs) + var csupportedAlpha_allocs *cgoAllocMap + ref6f31fcaf.supportedAlpha, csupportedAlpha_allocs = (C.VkDisplayPlaneAlphaFlagsKHR)(x.SupportedAlpha), cgoAllocsUnknown + allocs6f31fcaf.Borrow(csupportedAlpha_allocs) - var cdescriptorType_allocs *cgoAllocMap - ref8b50b4ec.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cdescriptorType_allocs) + var cminSrcPosition_allocs *cgoAllocMap + ref6f31fcaf.minSrcPosition, cminSrcPosition_allocs = x.MinSrcPosition.PassValue() + allocs6f31fcaf.Borrow(cminSrcPosition_allocs) - var cdescriptorCount_allocs *cgoAllocMap - ref8b50b4ec.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cdescriptorCount_allocs) + var cmaxSrcPosition_allocs *cgoAllocMap + ref6f31fcaf.maxSrcPosition, cmaxSrcPosition_allocs = x.MaxSrcPosition.PassValue() + allocs6f31fcaf.Borrow(cmaxSrcPosition_allocs) - var cstageFlags_allocs *cgoAllocMap - ref8b50b4ec.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cstageFlags_allocs) + var cminSrcExtent_allocs *cgoAllocMap + ref6f31fcaf.minSrcExtent, cminSrcExtent_allocs = x.MinSrcExtent.PassValue() + allocs6f31fcaf.Borrow(cminSrcExtent_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 cmaxSrcExtent_allocs *cgoAllocMap + ref6f31fcaf.maxSrcExtent, cmaxSrcExtent_allocs = x.MaxSrcExtent.PassValue() + allocs6f31fcaf.Borrow(cmaxSrcExtent_allocs) - x.ref8b50b4ec = ref8b50b4ec - x.allocs8b50b4ec = allocs8b50b4ec - return ref8b50b4ec, allocs8b50b4ec + var cminDstPosition_allocs *cgoAllocMap + ref6f31fcaf.minDstPosition, cminDstPosition_allocs = x.MinDstPosition.PassValue() + allocs6f31fcaf.Borrow(cminDstPosition_allocs) + + 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 DescriptorSetLayoutBinding) PassValue() (C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { - if x.ref8b50b4ec != nil { - return *x.ref8b50b4ec, nil +func (x DisplayPlaneCapabilities) PassValue() (C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { + if x.ref6f31fcaf != nil { + return *x.ref6f31fcaf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9035,142 +34780,92 @@ 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 *DisplayPlaneCapabilities) Deref() { + if x.ref6f31fcaf == 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.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)) } -// allocDescriptorSetLayoutCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutCreateInfo in C. +// allocDisplayPlanePropertiesMemory allocates memory for type C.VkDisplayPlanePropertiesKHR 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()) +func allocDisplayPlanePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlanePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - } -} +const sizeOfDisplayPlanePropertiesValue = unsafe.Sizeof([1]C.VkDisplayPlanePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutCreateInfo) Ref() *C.VkDescriptorSetLayoutCreateInfo { +func (x *DisplayPlaneProperties) Ref() *C.VkDisplayPlanePropertiesKHR { if x == nil { return nil } - return x.ref5ee8e0ed + 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 *DescriptorSetLayoutCreateInfo) Free() { - if x != nil && x.allocs5ee8e0ed != nil { - x.allocs5ee8e0ed.(*cgoAllocMap).Free() - x.ref5ee8e0ed = nil +func (x *DisplayPlaneProperties) Free() { + if x != nil && x.allocsce3db3f6 != nil { + x.allocsce3db3f6.(*cgoAllocMap).Free() + x.refce3db3f6 = nil } } -// NewDescriptorSetLayoutCreateInfoRef 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 NewDescriptorSetLayoutCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutCreateInfo { +func NewDisplayPlanePropertiesRef(ref unsafe.Pointer) *DisplayPlaneProperties { if ref == nil { return nil } - obj := new(DescriptorSetLayoutCreateInfo) - obj.ref5ee8e0ed = (*C.VkDescriptorSetLayoutCreateInfo)(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 *DescriptorSetLayoutCreateInfo) PassRef() (*C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { +func (x *DisplayPlaneProperties) PassRef() (*C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5ee8e0ed != nil { - return x.ref5ee8e0ed, nil + } else if x.refce3db3f6 != nil { + return x.refce3db3f6, 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) + memce3db3f6 := allocDisplayPlanePropertiesMemory(1) + refce3db3f6 := (*C.VkDisplayPlanePropertiesKHR)(memce3db3f6) + allocsce3db3f6 := new(cgoAllocMap) + allocsce3db3f6.Add(memce3db3f6) - var cbindingCount_allocs *cgoAllocMap - ref5ee8e0ed.bindingCount, cbindingCount_allocs = (C.uint32_t)(x.BindingCount), cgoAllocsUnknown - allocs5ee8e0ed.Borrow(cbindingCount_allocs) + var ccurrentDisplay_allocs *cgoAllocMap + refce3db3f6.currentDisplay, ccurrentDisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.CurrentDisplay)), cgoAllocsUnknown + allocsce3db3f6.Borrow(ccurrentDisplay_allocs) - var cpBindings_allocs *cgoAllocMap - ref5ee8e0ed.pBindings, cpBindings_allocs = unpackSDescriptorSetLayoutBinding(x.PBindings) - allocs5ee8e0ed.Borrow(cpBindings_allocs) + var ccurrentStackIndex_allocs *cgoAllocMap + refce3db3f6.currentStackIndex, ccurrentStackIndex_allocs = (C.uint32_t)(x.CurrentStackIndex), cgoAllocsUnknown + allocsce3db3f6.Borrow(ccurrentStackIndex_allocs) - x.ref5ee8e0ed = ref5ee8e0ed - x.allocs5ee8e0ed = allocs5ee8e0ed - return ref5ee8e0ed, allocs5ee8e0ed + 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 DescriptorSetLayoutCreateInfo) PassValue() (C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { - if x.ref5ee8e0ed != nil { - return *x.ref5ee8e0ed, nil +func (x DisplayPlaneProperties) PassValue() (C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { + if x.refce3db3f6 != nil { + return *x.refce3db3f6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9178,88 +34873,105 @@ 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 *DisplayPlaneProperties) Deref() { + if x.refce3db3f6 == 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.CurrentDisplay = *(*Display)(unsafe.Pointer(&x.refce3db3f6.currentDisplay)) + x.CurrentStackIndex = (uint32)(x.refce3db3f6.currentStackIndex) } -// allocDescriptorPoolSizeMemory allocates memory for type C.VkDescriptorPoolSize in C. +// allocDisplayPropertiesMemory allocates memory for type C.VkDisplayPropertiesKHR 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()) +func allocDisplayPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorPoolSizeValue = unsafe.Sizeof([1]C.VkDescriptorPoolSize{}) +const sizeOfDisplayPropertiesValue = unsafe.Sizeof([1]C.VkDisplayPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolSize) Ref() *C.VkDescriptorPoolSize { +func (x *DisplayProperties) Ref() *C.VkDisplayPropertiesKHR { if x == nil { return nil } - return x.refe15137da + 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 *DescriptorPoolSize) Free() { - if x != nil && x.allocse15137da != nil { - x.allocse15137da.(*cgoAllocMap).Free() - x.refe15137da = nil +func (x *DisplayProperties) Free() { + if x != nil && x.allocsfe2a7187 != nil { + x.allocsfe2a7187.(*cgoAllocMap).Free() + x.reffe2a7187 = nil + } +} + +// 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 NewDisplayPropertiesRef(ref unsafe.Pointer) *DisplayProperties { + if ref == nil { + return nil } + obj := new(DisplayProperties) + obj.reffe2a7187 = (*C.VkDisplayPropertiesKHR)(unsafe.Pointer(ref)) + return obj } -// 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 *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) + + var cphysicalResolution_allocs *cgoAllocMap + reffe2a7187.physicalResolution, cphysicalResolution_allocs = x.PhysicalResolution.PassValue() + allocsfe2a7187.Borrow(cphysicalResolution_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 *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 csupportedTransforms_allocs *cgoAllocMap + reffe2a7187.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown + allocsfe2a7187.Borrow(csupportedTransforms_allocs) - var c_type_allocs *cgoAllocMap - refe15137da._type, c_type_allocs = (C.VkDescriptorType)(x.Type), cgoAllocsUnknown - allocse15137da.Borrow(c_type_allocs) + var cplaneReorderPossible_allocs *cgoAllocMap + reffe2a7187.planeReorderPossible, cplaneReorderPossible_allocs = (C.VkBool32)(x.PlaneReorderPossible), cgoAllocsUnknown + allocsfe2a7187.Borrow(cplaneReorderPossible_allocs) - var cdescriptorCount_allocs *cgoAllocMap - refe15137da.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocse15137da.Borrow(cdescriptorCount_allocs) + var cpersistentContent_allocs *cgoAllocMap + reffe2a7187.persistentContent, cpersistentContent_allocs = (C.VkBool32)(x.PersistentContent), cgoAllocsUnknown + allocsfe2a7187.Borrow(cpersistentContent_allocs) - x.refe15137da = refe15137da - x.allocse15137da = allocse15137da - return refe15137da, allocse15137da + 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 DescriptorPoolSize) PassValue() (C.VkDescriptorPoolSize, *cgoAllocMap) { - if x.refe15137da != nil { - return *x.refe15137da, nil +func (x DisplayProperties) PassValue() (C.VkDisplayPropertiesKHR, *cgoAllocMap) { + if x.reffe2a7187 != nil { + return *x.reffe2a7187, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9267,139 +34979,122 @@ 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 *DisplayProperties) Deref() { + if x.reffe2a7187 == nil { return } - x.Type = (DescriptorType)(x.refe15137da._type) - x.DescriptorCount = (uint32)(x.refe15137da.descriptorCount) + 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) } -// allocDescriptorPoolCreateInfoMemory allocates memory for type C.VkDescriptorPoolCreateInfo in C. +// allocDisplaySurfaceCreateInfoMemory allocates memory for type C.VkDisplaySurfaceCreateInfoKHR 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()) +func allocDisplaySurfaceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplaySurfaceCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfDisplaySurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkDisplaySurfaceCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolCreateInfo) Ref() *C.VkDescriptorPoolCreateInfo { +func (x *DisplaySurfaceCreateInfo) Ref() *C.VkDisplaySurfaceCreateInfoKHR { if x == nil { return nil } - return x.ref19868463 + 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 *DescriptorPoolCreateInfo) Free() { - if x != nil && x.allocs19868463 != nil { - x.allocs19868463.(*cgoAllocMap).Free() - x.ref19868463 = nil +func (x *DisplaySurfaceCreateInfo) Free() { + if x != nil && x.allocs58445c35 != nil { + x.allocs58445c35.(*cgoAllocMap).Free() + x.ref58445c35 = nil } } -// NewDescriptorPoolCreateInfoRef 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 NewDescriptorPoolCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolCreateInfo { +func NewDisplaySurfaceCreateInfoRef(ref unsafe.Pointer) *DisplaySurfaceCreateInfo { if ref == nil { return nil } - obj := new(DescriptorPoolCreateInfo) - obj.ref19868463 = (*C.VkDescriptorPoolCreateInfo)(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 *DescriptorPoolCreateInfo) PassRef() (*C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { +func (x *DisplaySurfaceCreateInfo) PassRef() (*C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref19868463 != nil { - return x.ref19868463, nil + } else if x.ref58445c35 != nil { + return x.ref58445c35, nil } - mem19868463 := allocDescriptorPoolCreateInfoMemory(1) - ref19868463 := (*C.VkDescriptorPoolCreateInfo)(mem19868463) - allocs19868463 := new(cgoAllocMap) - allocs19868463.Add(mem19868463) + mem58445c35 := allocDisplaySurfaceCreateInfoMemory(1) + ref58445c35 := (*C.VkDisplaySurfaceCreateInfoKHR)(mem58445c35) + allocs58445c35 := new(cgoAllocMap) + allocs58445c35.Add(mem58445c35) var csType_allocs *cgoAllocMap - ref19868463.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs19868463.Borrow(csType_allocs) + ref58445c35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs58445c35.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref19868463.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs19868463.Borrow(cpNext_allocs) + ref58445c35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs58445c35.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref19868463.flags, cflags_allocs = (C.VkDescriptorPoolCreateFlags)(x.Flags), cgoAllocsUnknown - allocs19868463.Borrow(cflags_allocs) + ref58445c35.flags, cflags_allocs = (C.VkDisplaySurfaceCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs58445c35.Borrow(cflags_allocs) - var cmaxSets_allocs *cgoAllocMap - ref19868463.maxSets, cmaxSets_allocs = (C.uint32_t)(x.MaxSets), cgoAllocsUnknown - allocs19868463.Borrow(cmaxSets_allocs) + var cdisplayMode_allocs *cgoAllocMap + ref58445c35.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown + allocs58445c35.Borrow(cdisplayMode_allocs) - var cpoolSizeCount_allocs *cgoAllocMap - ref19868463.poolSizeCount, cpoolSizeCount_allocs = (C.uint32_t)(x.PoolSizeCount), cgoAllocsUnknown - allocs19868463.Borrow(cpoolSizeCount_allocs) + var cplaneIndex_allocs *cgoAllocMap + ref58445c35.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown + allocs58445c35.Borrow(cplaneIndex_allocs) - var cpPoolSizes_allocs *cgoAllocMap - ref19868463.pPoolSizes, cpPoolSizes_allocs = unpackSDescriptorPoolSize(x.PPoolSizes) - allocs19868463.Borrow(cpPoolSizes_allocs) + var cplaneStackIndex_allocs *cgoAllocMap + ref58445c35.planeStackIndex, cplaneStackIndex_allocs = (C.uint32_t)(x.PlaneStackIndex), cgoAllocsUnknown + allocs58445c35.Borrow(cplaneStackIndex_allocs) - x.ref19868463 = ref19868463 - x.allocs19868463 = allocs19868463 - return ref19868463, allocs19868463 + 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 DescriptorPoolCreateInfo) PassValue() (C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { - if x.ref19868463 != nil { - return *x.ref19868463, nil +func (x DisplaySurfaceCreateInfo) PassValue() (C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { + if x.ref58445c35 != nil { + return *x.ref58445c35, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9407,101 +35102,105 @@ 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 *DisplaySurfaceCreateInfo) Deref() { + if x.ref58445c35 == 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.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)) } -// allocDescriptorSetAllocateInfoMemory allocates memory for type C.VkDescriptorSetAllocateInfo in C. +// allocDisplayPresentInfoMemory allocates memory for type C.VkDisplayPresentInfoKHR 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()) +func allocDisplayPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPresentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetAllocateInfo{}) +const sizeOfDisplayPresentInfoValue = unsafe.Sizeof([1]C.VkDisplayPresentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetAllocateInfo) Ref() *C.VkDescriptorSetAllocateInfo { +func (x *DisplayPresentInfo) Ref() *C.VkDisplayPresentInfoKHR { if x == nil { return nil } - return x.ref2dd6cc22 + 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 *DescriptorSetAllocateInfo) Free() { - if x != nil && x.allocs2dd6cc22 != nil { - x.allocs2dd6cc22.(*cgoAllocMap).Free() - x.ref2dd6cc22 = nil +func (x *DisplayPresentInfo) Free() { + if x != nil && x.allocs8d2571e4 != nil { + x.allocs8d2571e4.(*cgoAllocMap).Free() + x.ref8d2571e4 = nil } } -// NewDescriptorSetAllocateInfoRef 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 NewDescriptorSetAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetAllocateInfo { +func NewDisplayPresentInfoRef(ref unsafe.Pointer) *DisplayPresentInfo { if ref == nil { return nil } - obj := new(DescriptorSetAllocateInfo) - obj.ref2dd6cc22 = (*C.VkDescriptorSetAllocateInfo)(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 *DescriptorSetAllocateInfo) PassRef() (*C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { +func (x *DisplayPresentInfo) PassRef() (*C.VkDisplayPresentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2dd6cc22 != nil { - return x.ref2dd6cc22, nil + } else if x.ref8d2571e4 != nil { + return x.ref8d2571e4, nil } - mem2dd6cc22 := allocDescriptorSetAllocateInfoMemory(1) - ref2dd6cc22 := (*C.VkDescriptorSetAllocateInfo)(mem2dd6cc22) - allocs2dd6cc22 := new(cgoAllocMap) - allocs2dd6cc22.Add(mem2dd6cc22) + mem8d2571e4 := allocDisplayPresentInfoMemory(1) + ref8d2571e4 := (*C.VkDisplayPresentInfoKHR)(mem8d2571e4) + allocs8d2571e4 := new(cgoAllocMap) + allocs8d2571e4.Add(mem8d2571e4) var csType_allocs *cgoAllocMap - ref2dd6cc22.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2dd6cc22.Borrow(csType_allocs) + ref8d2571e4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8d2571e4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2dd6cc22.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cpNext_allocs) + ref8d2571e4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8d2571e4.Borrow(cpNext_allocs) - var cdescriptorPool_allocs *cgoAllocMap - ref2dd6cc22.descriptorPool, cdescriptorPool_allocs = *(*C.VkDescriptorPool)(unsafe.Pointer(&x.DescriptorPool)), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cdescriptorPool_allocs) + var csrcRect_allocs *cgoAllocMap + ref8d2571e4.srcRect, csrcRect_allocs = x.SrcRect.PassValue() + allocs8d2571e4.Borrow(csrcRect_allocs) - var cdescriptorSetCount_allocs *cgoAllocMap - ref2dd6cc22.descriptorSetCount, cdescriptorSetCount_allocs = (C.uint32_t)(x.DescriptorSetCount), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cdescriptorSetCount_allocs) + var cdstRect_allocs *cgoAllocMap + ref8d2571e4.dstRect, cdstRect_allocs = x.DstRect.PassValue() + allocs8d2571e4.Borrow(cdstRect_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 cpersistent_allocs *cgoAllocMap + ref8d2571e4.persistent, cpersistent_allocs = (C.VkBool32)(x.Persistent), cgoAllocsUnknown + allocs8d2571e4.Borrow(cpersistent_allocs) - x.ref2dd6cc22 = ref2dd6cc22 - x.allocs2dd6cc22 = allocs2dd6cc22 - return ref2dd6cc22, allocs2dd6cc22 + 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 DescriptorSetAllocateInfo) PassValue() (C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { - if x.ref2dd6cc22 != nil { - return *x.ref2dd6cc22, nil +func (x DisplayPresentInfo) PassValue() (C.VkDisplayPresentInfoKHR, *cgoAllocMap) { + if x.ref8d2571e4 != nil { + return *x.ref8d2571e4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9509,96 +35208,100 @@ 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 *DisplayPresentInfo) Deref() { + if x.ref8d2571e4 == 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.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) } -// allocDescriptorImageInfoMemory allocates memory for type C.VkDescriptorImageInfo in C. +// allocRenderingFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentShadingRateAttachmentInfoKHR 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()) +func allocRenderingFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentShadingRateAttachmentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorImageInfoValue = unsafe.Sizeof([1]C.VkDescriptorImageInfo{}) +const sizeOfRenderingFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentShadingRateAttachmentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorImageInfo) Ref() *C.VkDescriptorImageInfo { +func (x *RenderingFragmentShadingRateAttachmentInfo) Ref() *C.VkRenderingFragmentShadingRateAttachmentInfoKHR { if x == nil { return nil } - return x.refaf073b07 + return x.ref4d98d68f } // Free invokes alloc map'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 *RenderingFragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocs4d98d68f != nil { + x.allocs4d98d68f.(*cgoAllocMap).Free() + x.ref4d98d68f = nil } } -// NewDescriptorImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewDescriptorImageInfoRef(ref unsafe.Pointer) *DescriptorImageInfo { +func NewRenderingFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentShadingRateAttachmentInfo { if ref == nil { return nil } - obj := new(DescriptorImageInfo) - obj.refaf073b07 = (*C.VkDescriptorImageInfo)(unsafe.Pointer(ref)) + obj := new(RenderingFragmentShadingRateAttachmentInfo) + obj.ref4d98d68f = (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *RenderingFragmentShadingRateAttachmentInfo) PassRef() (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf073b07 != nil { - return x.refaf073b07, nil + } else if x.ref4d98d68f != nil { + return x.ref4d98d68f, nil } - memaf073b07 := allocDescriptorImageInfoMemory(1) - refaf073b07 := (*C.VkDescriptorImageInfo)(memaf073b07) - allocsaf073b07 := new(cgoAllocMap) - allocsaf073b07.Add(memaf073b07) + mem4d98d68f := allocRenderingFragmentShadingRateAttachmentInfoMemory(1) + ref4d98d68f := (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(mem4d98d68f) + allocs4d98d68f := new(cgoAllocMap) + allocs4d98d68f.Add(mem4d98d68f) - var csampler_allocs *cgoAllocMap - refaf073b07.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown - allocsaf073b07.Borrow(csampler_allocs) + 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 - refaf073b07.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown - allocsaf073b07.Borrow(cimageView_allocs) + ref4d98d68f.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs4d98d68f.Borrow(cimageView_allocs) var cimageLayout_allocs *cgoAllocMap - refaf073b07.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown - allocsaf073b07.Borrow(cimageLayout_allocs) + ref4d98d68f.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs4d98d68f.Borrow(cimageLayout_allocs) - x.refaf073b07 = refaf073b07 - x.allocsaf073b07 = allocsaf073b07 - return refaf073b07, allocsaf073b07 + 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 DescriptorImageInfo) PassValue() (C.VkDescriptorImageInfo, *cgoAllocMap) { - if x.refaf073b07 != nil { - return *x.refaf073b07, nil +func (x RenderingFragmentShadingRateAttachmentInfo) PassValue() (C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.ref4d98d68f != nil { + return *x.ref4d98d68f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9606,90 +35309,96 @@ 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 *RenderingFragmentShadingRateAttachmentInfo) Deref() { + if x.ref4d98d68f == 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.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)) } -// allocDescriptorBufferInfoMemory allocates memory for type C.VkDescriptorBufferInfo in C. +// allocRenderingFragmentDensityMapAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentDensityMapAttachmentInfoEXT 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()) +func allocRenderingFragmentDensityMapAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentDensityMapAttachmentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorBufferInfoValue = unsafe.Sizeof([1]C.VkDescriptorBufferInfo{}) +const sizeOfRenderingFragmentDensityMapAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentDensityMapAttachmentInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorBufferInfo) Ref() *C.VkDescriptorBufferInfo { +func (x *RenderingFragmentDensityMapAttachmentInfo) Ref() *C.VkRenderingFragmentDensityMapAttachmentInfoEXT { if x == nil { return nil } - return x.refe64bec0e + 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 *DescriptorBufferInfo) Free() { - if x != nil && x.allocse64bec0e != nil { - x.allocse64bec0e.(*cgoAllocMap).Free() - x.refe64bec0e = nil +func (x *RenderingFragmentDensityMapAttachmentInfo) Free() { + if x != nil && x.allocs5a007d48 != nil { + x.allocs5a007d48.(*cgoAllocMap).Free() + x.ref5a007d48 = nil } } -// NewDescriptorBufferInfoRef 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 NewDescriptorBufferInfoRef(ref unsafe.Pointer) *DescriptorBufferInfo { +func NewRenderingFragmentDensityMapAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentDensityMapAttachmentInfo { if ref == nil { return nil } - obj := new(DescriptorBufferInfo) - obj.refe64bec0e = (*C.VkDescriptorBufferInfo)(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 *DescriptorBufferInfo) PassRef() (*C.VkDescriptorBufferInfo, *cgoAllocMap) { +func (x *RenderingFragmentDensityMapAttachmentInfo) PassRef() (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe64bec0e != nil { - return x.refe64bec0e, nil + } else if x.ref5a007d48 != nil { + return x.ref5a007d48, nil } - meme64bec0e := allocDescriptorBufferInfoMemory(1) - refe64bec0e := (*C.VkDescriptorBufferInfo)(meme64bec0e) - allocse64bec0e := new(cgoAllocMap) - allocse64bec0e.Add(meme64bec0e) + mem5a007d48 := allocRenderingFragmentDensityMapAttachmentInfoMemory(1) + ref5a007d48 := (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(mem5a007d48) + allocs5a007d48 := new(cgoAllocMap) + allocs5a007d48.Add(mem5a007d48) - var cbuffer_allocs *cgoAllocMap - refe64bec0e.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocse64bec0e.Borrow(cbuffer_allocs) + var csType_allocs *cgoAllocMap + ref5a007d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5a007d48.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - refe64bec0e.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocse64bec0e.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + ref5a007d48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5a007d48.Borrow(cpNext_allocs) - var c_range_allocs *cgoAllocMap - refe64bec0e._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown - allocse64bec0e.Borrow(c_range_allocs) + var cimageView_allocs *cgoAllocMap + ref5a007d48.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageView_allocs) - x.refe64bec0e = refe64bec0e - x.allocse64bec0e = allocse64bec0e - return refe64bec0e, allocse64bec0e + var cimageLayout_allocs *cgoAllocMap + ref5a007d48.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageLayout_allocs) + + 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 DescriptorBufferInfo) PassValue() (C.VkDescriptorBufferInfo, *cgoAllocMap) { - if x.refe64bec0e != nil { - return *x.refe64bec0e, nil +func (x RenderingFragmentDensityMapAttachmentInfo) PassValue() (C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { + if x.ref5a007d48 != nil { + return *x.ref5a007d48, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9697,194 +35406,128 @@ 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 *RenderingFragmentDensityMapAttachmentInfo) Deref() { + if x.ref5a007d48 == 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.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) } -// allocWriteDescriptorSetMemory allocates memory for type C.VkWriteDescriptorSet in C. +// allocAttachmentSampleCountInfoAMDMemory allocates memory for type C.VkAttachmentSampleCountInfoAMD 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()) +func allocAttachmentSampleCountInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleCountInfoAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfWriteDescriptorSetValue = unsafe.Sizeof([1]C.VkWriteDescriptorSet{}) +const sizeOfAttachmentSampleCountInfoAMDValue = unsafe.Sizeof([1]C.VkAttachmentSampleCountInfoAMD{}) -// 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() +// copyPSampleCountFlagBitsBytes copies the data from Go slice as *C.VkSampleCountFlagBits. +func copyPSampleCountFlagBitsBytes(slice *sliceHeader) (*C.VkSampleCountFlagBits, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) - len0 := len(x) - mem0 := allocDescriptorImageInfoMemory(len0) + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfSampleCountFlagBitsValue) * slice.Len, + Cap: int(sizeOfSampleCountFlagBitsValue) * slice.Len, + })))) 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 + return (*C.VkSampleCountFlagBits)(mem0), 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)) +// allocSampleCountFlagBitsMemory allocates memory for type C.VkSampleCountFlagBits in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSampleCountFlagBitsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleCountFlagBitsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } -// 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)) - } -} +const sizeOfSampleCountFlagBitsValue = unsafe.Sizeof([1]C.VkSampleCountFlagBits{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *WriteDescriptorSet) Ref() *C.VkWriteDescriptorSet { +func (x *AttachmentSampleCountInfoAMD) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { return nil } - return x.ref3cec3f3f + 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 *WriteDescriptorSet) Free() { - if x != nil && x.allocs3cec3f3f != nil { - x.allocs3cec3f3f.(*cgoAllocMap).Free() - x.ref3cec3f3f = nil +func (x *AttachmentSampleCountInfoAMD) Free() { + if x != nil && x.allocseef56262 != nil { + x.allocseef56262.(*cgoAllocMap).Free() + x.refeef56262 = nil } } -// NewWriteDescriptorSetRef 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 NewWriteDescriptorSetRef(ref unsafe.Pointer) *WriteDescriptorSet { +func NewAttachmentSampleCountInfoAMDRef(ref unsafe.Pointer) *AttachmentSampleCountInfoAMD { if ref == nil { return nil } - obj := new(WriteDescriptorSet) - obj.ref3cec3f3f = (*C.VkWriteDescriptorSet)(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 *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) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// 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 cdescriptorCount_allocs *cgoAllocMap - ref3cec3f3f.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdescriptorCount_allocs) + var csType_allocs *cgoAllocMap + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.Borrow(csType_allocs) - var cdescriptorType_allocs *cgoAllocMap - ref3cec3f3f.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdescriptorType_allocs) + var cpNext_allocs *cgoAllocMap + refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseef56262.Borrow(cpNext_allocs) - var cpImageInfo_allocs *cgoAllocMap - ref3cec3f3f.pImageInfo, cpImageInfo_allocs = unpackSDescriptorImageInfo(x.PImageInfo) - allocs3cec3f3f.Borrow(cpImageInfo_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocseef56262.Borrow(ccolorAttachmentCount_allocs) - var cpBufferInfo_allocs *cgoAllocMap - ref3cec3f3f.pBufferInfo, cpBufferInfo_allocs = unpackSDescriptorBufferInfo(x.PBufferInfo) - allocs3cec3f3f.Borrow(cpBufferInfo_allocs) + var cpColorAttachmentSamples_allocs *cgoAllocMap + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = copyPSampleCountFlagBitsBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples))) + allocseef56262.Borrow(cpColorAttachmentSamples_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 cdepthStencilAttachmentSamples_allocs *cgoAllocMap + refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown + allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) - x.ref3cec3f3f = ref3cec3f3f - x.allocs3cec3f3f = allocs3cec3f3f - return ref3cec3f3f, allocs3cec3f3f + 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 WriteDescriptorSet) PassValue() (C.VkWriteDescriptorSet, *cgoAllocMap) { - if x.ref3cec3f3f != nil { - return *x.ref3cec3f3f, nil +func (x AttachmentSampleCountInfoAMD) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9892,125 +35535,92 @@ 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 *AttachmentSampleCountInfoAMD) Deref() { + if x.refeef56262 == 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.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 = ? -// 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 + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -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 { +func (x *AttachmentSampleCountInfoNV) 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 *AttachmentSampleCountInfoNV) 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. +// 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 NewCopyDescriptorSetRef(ref unsafe.Pointer) *CopyDescriptorSet { +func NewAttachmentSampleCountInfoNVRef(ref unsafe.Pointer) *AttachmentSampleCountInfoNV { if ref == nil { return nil } - obj := new(CopyDescriptorSet) - obj.reffe237a3a = (*C.VkCopyDescriptorSet)(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 *CopyDescriptorSet) PassRef() (*C.VkCopyDescriptorSet, *cgoAllocMap) { +func (x *AttachmentSampleCountInfoNV) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe237a3a != nil { - return x.reffe237a3a, nil + } else if x.refeef56262 != nil { + return x.refeef56262, nil } - memfe237a3a := allocCopyDescriptorSetMemory(1) - reffe237a3a := (*C.VkCopyDescriptorSet)(memfe237a3a) - allocsfe237a3a := new(cgoAllocMap) - allocsfe237a3a.Add(memfe237a3a) + memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) + refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) + allocseef56262 := new(cgoAllocMap) + allocseef56262.Add(memeef56262) var csType_allocs *cgoAllocMap - reffe237a3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe237a3a.Borrow(csType_allocs) + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.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) + 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 = copyPSampleCountFlagBitsBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples))) + 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 AttachmentSampleCountInfoNV) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10018,120 +35628,100 @@ 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 *AttachmentSampleCountInfoNV) 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) + hxf8b35a8 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf8b35a8.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf8b35a8.Cap = 0x7fffffff + // hxf8b35a8.Len = ? + + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -// allocFramebufferCreateInfoMemory allocates memory for type C.VkFramebufferCreateInfo in C. +// allocMultiviewPerViewAttributesInfoNVXMemory allocates memory for type C.VkMultiviewPerViewAttributesInfoNVX 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()) +func allocMultiviewPerViewAttributesInfoNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiviewPerViewAttributesInfoNVXValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfFramebufferCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferCreateInfo{}) +const sizeOfMultiviewPerViewAttributesInfoNVXValue = unsafe.Sizeof([1]C.VkMultiviewPerViewAttributesInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FramebufferCreateInfo) Ref() *C.VkFramebufferCreateInfo { +func (x *MultiviewPerViewAttributesInfoNVX) Ref() *C.VkMultiviewPerViewAttributesInfoNVX { if x == nil { return nil } - return x.refa3ad85cc + 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 *FramebufferCreateInfo) Free() { - if x != nil && x.allocsa3ad85cc != nil { - x.allocsa3ad85cc.(*cgoAllocMap).Free() - x.refa3ad85cc = nil +func (x *MultiviewPerViewAttributesInfoNVX) Free() { + if x != nil && x.allocsc7d79ea0 != nil { + x.allocsc7d79ea0.(*cgoAllocMap).Free() + x.refc7d79ea0 = nil } } -// NewFramebufferCreateInfoRef 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 NewFramebufferCreateInfoRef(ref unsafe.Pointer) *FramebufferCreateInfo { +func NewMultiviewPerViewAttributesInfoNVXRef(ref unsafe.Pointer) *MultiviewPerViewAttributesInfoNVX { if ref == nil { return nil } - obj := new(FramebufferCreateInfo) - obj.refa3ad85cc = (*C.VkFramebufferCreateInfo)(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 *FramebufferCreateInfo) PassRef() (*C.VkFramebufferCreateInfo, *cgoAllocMap) { +func (x *MultiviewPerViewAttributesInfoNVX) PassRef() (*C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa3ad85cc != nil { - return x.refa3ad85cc, nil + } else if x.refc7d79ea0 != nil { + return x.refc7d79ea0, nil } - mema3ad85cc := allocFramebufferCreateInfoMemory(1) - refa3ad85cc := (*C.VkFramebufferCreateInfo)(mema3ad85cc) - allocsa3ad85cc := new(cgoAllocMap) - allocsa3ad85cc.Add(mema3ad85cc) + memc7d79ea0 := allocMultiviewPerViewAttributesInfoNVXMemory(1) + refc7d79ea0 := (*C.VkMultiviewPerViewAttributesInfoNVX)(memc7d79ea0) + allocsc7d79ea0 := new(cgoAllocMap) + allocsc7d79ea0.Add(memc7d79ea0) var csType_allocs *cgoAllocMap - refa3ad85cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa3ad85cc.Borrow(csType_allocs) + refc7d79ea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc7d79ea0.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) + refc7d79ea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cpNext_allocs) - var cheight_allocs *cgoAllocMap - refa3ad85cc.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cheight_allocs) + var cperViewAttributes_allocs *cgoAllocMap + refc7d79ea0.perViewAttributes, cperViewAttributes_allocs = (C.VkBool32)(x.PerViewAttributes), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributes_allocs) - var clayers_allocs *cgoAllocMap - refa3ad85cc.layers, clayers_allocs = (C.uint32_t)(x.Layers), cgoAllocsUnknown - allocsa3ad85cc.Borrow(clayers_allocs) + var cperViewAttributesPositionXOnly_allocs *cgoAllocMap + refc7d79ea0.perViewAttributesPositionXOnly, cperViewAttributesPositionXOnly_allocs = (C.VkBool32)(x.PerViewAttributesPositionXOnly), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributesPositionXOnly_allocs) - x.refa3ad85cc = refa3ad85cc - x.allocsa3ad85cc = allocsa3ad85cc - return refa3ad85cc, allocsa3ad85cc + 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 FramebufferCreateInfo) PassValue() (C.VkFramebufferCreateInfo, *cgoAllocMap) { - if x.refa3ad85cc != nil { - return *x.refa3ad85cc, nil +func (x MultiviewPerViewAttributesInfoNVX) PassValue() (C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { + if x.refc7d79ea0 != nil { + return *x.refc7d79ea0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10139,124 +35729,95 @@ 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 *MultiviewPerViewAttributesInfoNVX) Deref() { + if x.refc7d79ea0 == 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) + 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) } -// allocAttachmentDescriptionMemory allocates memory for type C.VkAttachmentDescription in C. +// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR 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()) +func allocImportMemoryFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryFdInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAttachmentDescriptionValue = unsafe.Sizeof([1]C.VkAttachmentDescription{}) +const sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentDescription) Ref() *C.VkAttachmentDescription { +func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { if x == nil { return nil } - return x.refa5d685fc + 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 *AttachmentDescription) Free() { - if x != nil && x.allocsa5d685fc != nil { - x.allocsa5d685fc.(*cgoAllocMap).Free() - x.refa5d685fc = nil +func (x *ImportMemoryFdInfo) Free() { + if x != nil && x.allocs73f83287 != nil { + x.allocs73f83287.(*cgoAllocMap).Free() + x.ref73f83287 = nil } } -// NewAttachmentDescriptionRef 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 NewAttachmentDescriptionRef(ref unsafe.Pointer) *AttachmentDescription { +func NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { if ref == nil { return nil } - obj := new(AttachmentDescription) - obj.refa5d685fc = (*C.VkAttachmentDescription)(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 *AttachmentDescription) PassRef() (*C.VkAttachmentDescription, *cgoAllocMap) { +func (x *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5d685fc != nil { - return x.refa5d685fc, nil + } else if x.ref73f83287 != nil { + return x.ref73f83287, 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) + mem73f83287 := allocImportMemoryFdInfoMemory(1) + ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) + allocs73f83287 := new(cgoAllocMap) + allocs73f83287.Add(mem73f83287) - var cstencilLoadOp_allocs *cgoAllocMap - refa5d685fc.stencilLoadOp, cstencilLoadOp_allocs = (C.VkAttachmentLoadOp)(x.StencilLoadOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cstencilLoadOp_allocs) + var csType_allocs *cgoAllocMap + ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73f83287.Borrow(csType_allocs) - var cstencilStoreOp_allocs *cgoAllocMap - refa5d685fc.stencilStoreOp, cstencilStoreOp_allocs = (C.VkAttachmentStoreOp)(x.StencilStoreOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cstencilStoreOp_allocs) + var cpNext_allocs *cgoAllocMap + ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73f83287.Borrow(cpNext_allocs) - var cinitialLayout_allocs *cgoAllocMap - refa5d685fc.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown - allocsa5d685fc.Borrow(cinitialLayout_allocs) + var chandleType_allocs *cgoAllocMap + ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs73f83287.Borrow(chandleType_allocs) - var cfinalLayout_allocs *cgoAllocMap - refa5d685fc.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown - allocsa5d685fc.Borrow(cfinalLayout_allocs) + var cfd_allocs *cgoAllocMap + ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocs73f83287.Borrow(cfd_allocs) - x.refa5d685fc = refa5d685fc - x.allocsa5d685fc = allocsa5d685fc - return refa5d685fc, allocsa5d685fc + 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 AttachmentDescription) PassValue() (C.VkAttachmentDescription, *cgoAllocMap) { - if x.refa5d685fc != nil { - return *x.refa5d685fc, nil +func (x ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { + if x.ref73f83287 != nil { + return *x.ref73f83287, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10264,92 +35825,91 @@ 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 *ImportMemoryFdInfo) Deref() { + if x.ref73f83287 == 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.ref73f83287.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73f83287.pNext)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref73f83287.handleType) + x.Fd = (int32)(x.ref73f83287.fd) } -// allocAttachmentReferenceMemory allocates memory for type C.VkAttachmentReference in C. +// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR 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()) +func allocMemoryFdPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryFdPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAttachmentReferenceValue = unsafe.Sizeof([1]C.VkAttachmentReference{}) +const sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentReference) Ref() *C.VkAttachmentReference { +func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { if x == nil { return nil } - return x.refef4776de + 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 *AttachmentReference) Free() { - if x != nil && x.allocsef4776de != nil { - x.allocsef4776de.(*cgoAllocMap).Free() - x.refef4776de = nil +func (x *MemoryFdProperties) Free() { + if x != nil && x.allocs51e16d38 != nil { + x.allocs51e16d38.(*cgoAllocMap).Free() + x.ref51e16d38 = nil } } -// NewAttachmentReferenceRef 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 NewAttachmentReferenceRef(ref unsafe.Pointer) *AttachmentReference { +func NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { if ref == nil { return nil } - obj := new(AttachmentReference) - obj.refef4776de = (*C.VkAttachmentReference)(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 *AttachmentReference) PassRef() (*C.VkAttachmentReference, *cgoAllocMap) { +func (x *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refef4776de != nil { - return x.refef4776de, nil + } else if x.ref51e16d38 != nil { + return x.ref51e16d38, nil } - memef4776de := allocAttachmentReferenceMemory(1) - refef4776de := (*C.VkAttachmentReference)(memef4776de) - allocsef4776de := new(cgoAllocMap) - allocsef4776de.Add(memef4776de) + mem51e16d38 := allocMemoryFdPropertiesMemory(1) + ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) + allocs51e16d38 := new(cgoAllocMap) + allocs51e16d38.Add(mem51e16d38) - var cattachment_allocs *cgoAllocMap - refef4776de.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown - allocsef4776de.Borrow(cattachment_allocs) + var csType_allocs *cgoAllocMap + ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51e16d38.Borrow(csType_allocs) - var clayout_allocs *cgoAllocMap - refef4776de.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown - allocsef4776de.Borrow(clayout_allocs) + var cpNext_allocs *cgoAllocMap + ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51e16d38.Borrow(cpNext_allocs) - x.refef4776de = refef4776de - x.allocsef4776de = allocsef4776de - return refef4776de, allocsef4776de + var cmemoryTypeBits_allocs *cgoAllocMap + ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocs51e16d38.Borrow(cmemoryTypeBits_allocs) + + 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 AttachmentReference) PassValue() (C.VkAttachmentReference, *cgoAllocMap) { - if x.refef4776de != nil { - return *x.refef4776de, nil +func (x MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { + if x.ref51e16d38 != nil { + return *x.ref51e16d38, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10357,155 +35917,94 @@ 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 *MemoryFdProperties) Deref() { + if x.ref51e16d38 == nil { return } - x.Attachment = (uint32)(x.refef4776de.attachment) - x.Layout = (ImageLayout)(x.refef4776de.layout) + x.SType = (StructureType)(x.ref51e16d38.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51e16d38.pNext)) + x.MemoryTypeBits = (uint32)(x.ref51e16d38.memoryTypeBits) } -// allocSubpassDescriptionMemory allocates memory for type C.VkSubpassDescription in C. +// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR 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()) +func allocMemoryGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetFdInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDescription) Ref() *C.VkSubpassDescription { +func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { if x == nil { return nil } - return x.refc7bfeda + 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 *SubpassDescription) Free() { - if x != nil && x.allocsc7bfeda != nil { - x.allocsc7bfeda.(*cgoAllocMap).Free() - x.refc7bfeda = nil +func (x *MemoryGetFdInfo) Free() { + if x != nil && x.allocs75a079b1 != nil { + x.allocs75a079b1.(*cgoAllocMap).Free() + x.ref75a079b1 = nil } } -// NewSubpassDescriptionRef 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 NewSubpassDescriptionRef(ref unsafe.Pointer) *SubpassDescription { +func NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { if ref == nil { return nil } - obj := new(SubpassDescription) - obj.refc7bfeda = (*C.VkSubpassDescription)(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 *SubpassDescription) PassRef() (*C.VkSubpassDescription, *cgoAllocMap) { +func (x *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc7bfeda != nil { - return x.refc7bfeda, nil + } else if x.ref75a079b1 != nil { + return x.ref75a079b1, 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) + mem75a079b1 := allocMemoryGetFdInfoMemory(1) + ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) + allocs75a079b1 := new(cgoAllocMap) + allocs75a079b1.Add(mem75a079b1) - var cpResolveAttachments_allocs *cgoAllocMap - refc7bfeda.pResolveAttachments, cpResolveAttachments_allocs = unpackSAttachmentReference(x.PResolveAttachments) - allocsc7bfeda.Borrow(cpResolveAttachments_allocs) + var csType_allocs *cgoAllocMap + ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75a079b1.Borrow(csType_allocs) - var cpDepthStencilAttachment_allocs *cgoAllocMap - refc7bfeda.pDepthStencilAttachment, cpDepthStencilAttachment_allocs = x.PDepthStencilAttachment.PassRef() - allocsc7bfeda.Borrow(cpDepthStencilAttachment_allocs) + var cpNext_allocs *cgoAllocMap + ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75a079b1.Borrow(cpNext_allocs) - var cpreserveAttachmentCount_allocs *cgoAllocMap - refc7bfeda.preserveAttachmentCount, cpreserveAttachmentCount_allocs = (C.uint32_t)(x.PreserveAttachmentCount), cgoAllocsUnknown - allocsc7bfeda.Borrow(cpreserveAttachmentCount_allocs) + var cmemory_allocs *cgoAllocMap + ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs75a079b1.Borrow(cmemory_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 chandleType_allocs *cgoAllocMap + ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs75a079b1.Borrow(chandleType_allocs) - x.refc7bfeda = refc7bfeda - x.allocsc7bfeda = allocsc7bfeda - return refc7bfeda, allocsc7bfeda + 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 SubpassDescription) PassValue() (C.VkSubpassDescription, *cgoAllocMap) { - if x.refc7bfeda != nil { - return *x.refc7bfeda, nil +func (x MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { + if x.ref75a079b1 != nil { + return *x.ref75a079b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10513,117 +36012,103 @@ 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 *MemoryGetFdInfo) Deref() { + if x.ref75a079b1 == 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.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) } -// allocSubpassDependencyMemory allocates memory for type C.VkSubpassDependency in C. +// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR 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()) +func allocImportSemaphoreFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportSemaphoreFdInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassDependencyValue = unsafe.Sizeof([1]C.VkSubpassDependency{}) +const sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDependency) Ref() *C.VkSubpassDependency { +func (x *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { if x == nil { return nil } - return x.refdb197adb + return x.refbc2f829a } // Free invokes alloc map'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 *ImportSemaphoreFdInfo) Free() { + if x != nil && x.allocsbc2f829a != nil { + x.allocsbc2f829a.(*cgoAllocMap).Free() + x.refbc2f829a = nil } } -// NewSubpassDependencyRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSubpassDependencyRef(ref unsafe.Pointer) *SubpassDependency { +func NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { if ref == nil { return nil } - obj := new(SubpassDependency) - obj.refdb197adb = (*C.VkSubpassDependency)(unsafe.Pointer(ref)) + obj := new(ImportSemaphoreFdInfo) + obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdb197adb != nil { - return x.refdb197adb, nil + } else if x.refbc2f829a != nil { + return x.refbc2f829a, 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) + membc2f829a := allocImportSemaphoreFdInfoMemory(1) + refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) + allocsbc2f829a := new(cgoAllocMap) + allocsbc2f829a.Add(membc2f829a) - var cdstSubpass_allocs *cgoAllocMap - refdb197adb.dstSubpass, cdstSubpass_allocs = (C.uint32_t)(x.DstSubpass), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstSubpass_allocs) + var csType_allocs *cgoAllocMap + refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc2f829a.Borrow(csType_allocs) - var csrcStageMask_allocs *cgoAllocMap - refdb197adb.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags)(x.SrcStageMask), cgoAllocsUnknown - allocsdb197adb.Borrow(csrcStageMask_allocs) + var cpNext_allocs *cgoAllocMap + refbc2f829a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc2f829a.Borrow(cpNext_allocs) - var cdstStageMask_allocs *cgoAllocMap - refdb197adb.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags)(x.DstStageMask), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstStageMask_allocs) + var csemaphore_allocs *cgoAllocMap + refbc2f829a.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocsbc2f829a.Borrow(csemaphore_allocs) - var csrcAccessMask_allocs *cgoAllocMap - refdb197adb.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocsdb197adb.Borrow(csrcAccessMask_allocs) + var cflags_allocs *cgoAllocMap + refbc2f829a.flags, cflags_allocs = (C.VkSemaphoreImportFlags)(x.Flags), cgoAllocsUnknown + allocsbc2f829a.Borrow(cflags_allocs) - var cdstAccessMask_allocs *cgoAllocMap - refdb197adb.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstAccessMask_allocs) + var chandleType_allocs *cgoAllocMap + refbc2f829a.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsbc2f829a.Borrow(chandleType_allocs) - var cdependencyFlags_allocs *cgoAllocMap - refdb197adb.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown - allocsdb197adb.Borrow(cdependencyFlags_allocs) + var cfd_allocs *cgoAllocMap + refbc2f829a.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocsbc2f829a.Borrow(cfd_allocs) - x.refdb197adb = refdb197adb - x.allocsdb197adb = allocsdb197adb - return refdb197adb, allocsdb197adb + x.refbc2f829a = refbc2f829a + x.allocsbc2f829a = allocsbc2f829a + return refbc2f829a, allocsbc2f829a } // 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 ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { + if x.refbc2f829a != nil { + return *x.refbc2f829a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10631,232 +36116,97 @@ 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 *ImportSemaphoreFdInfo) Deref() { + if x.refbc2f829a == 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.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) } -// allocRenderPassCreateInfoMemory allocates memory for type C.VkRenderPassCreateInfo in C. +// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR 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()) +func allocSemaphoreGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreGetFdInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - } -} +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 +36214,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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevicePushDescriptorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePushDescriptorPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 +36306,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 +36389,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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocRectLayerMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRectLayerValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 +36481,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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPresentRegionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.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,186 +36606,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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPresentRegionsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 -} +const sizeOfPresentRegionsValue = unsafe.Sizeof([1]C.VkPresentRegionsKHR{}) -// PassRef returns the 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) { +// 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 - } 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 - -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) -// 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 + len0 := len(x) + mem0 := allocPresentRegionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, } - 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 + v0 := *(*[]C.VkPresentRegionKHR)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) } - x.SrcOffset = (DeviceSize)(x.ref12184ffd.srcOffset) - x.DstOffset = (DeviceSize)(x.ref12184ffd.dstOffset) - x.Size = (DeviceSize)(x.ref12184ffd.size) + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPresentRegionKHR)(h.Data) + return } -// 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()) +// 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)) } - 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 { +func (x *PresentRegions) Ref() *C.VkPresentRegionsKHR { if x == nil { return nil } - return x.ref3b13bcd2 + 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 *ImageSubresourceLayers) Free() { - if x != nil && x.allocs3b13bcd2 != nil { - x.allocs3b13bcd2.(*cgoAllocMap).Free() - x.ref3b13bcd2 = nil +func (x *PresentRegions) Free() { + if x != nil && x.allocs62958060 != nil { + x.allocs62958060.(*cgoAllocMap).Free() + x.ref62958060 = nil } } -// NewImageSubresourceLayersRef 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 NewImageSubresourceLayersRef(ref unsafe.Pointer) *ImageSubresourceLayers { +func NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { if ref == nil { return nil } - obj := new(ImageSubresourceLayers) - obj.ref3b13bcd2 = (*C.VkImageSubresourceLayers)(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 *ImageSubresourceLayers) PassRef() (*C.VkImageSubresourceLayers, *cgoAllocMap) { +func (x *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3b13bcd2 != nil { - return x.ref3b13bcd2, nil + } else if x.ref62958060 != nil { + return x.ref62958060, nil } - mem3b13bcd2 := allocImageSubresourceLayersMemory(1) - ref3b13bcd2 := (*C.VkImageSubresourceLayers)(mem3b13bcd2) - allocs3b13bcd2 := new(cgoAllocMap) - allocs3b13bcd2.Add(mem3b13bcd2) + mem62958060 := allocPresentRegionsMemory(1) + ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) + allocs62958060 := new(cgoAllocMap) + allocs62958060.Add(mem62958060) - var caspectMask_allocs *cgoAllocMap - ref3b13bcd2.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs3b13bcd2.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62958060.Borrow(csType_allocs) - var cmipLevel_allocs *cgoAllocMap - ref3b13bcd2.mipLevel, cmipLevel_allocs = (C.uint32_t)(x.MipLevel), cgoAllocsUnknown - allocs3b13bcd2.Borrow(cmipLevel_allocs) + var cpNext_allocs *cgoAllocMap + ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62958060.Borrow(cpNext_allocs) - var cbaseArrayLayer_allocs *cgoAllocMap - ref3b13bcd2.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown - allocs3b13bcd2.Borrow(cbaseArrayLayer_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs62958060.Borrow(cswapchainCount_allocs) - var clayerCount_allocs *cgoAllocMap - ref3b13bcd2.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs3b13bcd2.Borrow(clayerCount_allocs) + var cpRegions_allocs *cgoAllocMap + ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) + allocs62958060.Borrow(cpRegions_allocs) - x.ref3b13bcd2 = ref3b13bcd2 - x.allocs3b13bcd2 = allocs3b13bcd2 - return ref3b13bcd2, allocs3b13bcd2 + 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 ImageSubresourceLayers) PassValue() (C.VkImageSubresourceLayers, *cgoAllocMap) { - if x.ref3b13bcd2 != nil { - return *x.ref3b13bcd2, nil +func (x PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { + if x.ref62958060 != nil { + return *x.ref62958060, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11503,235 +36738,194 @@ 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 *PresentRegions) Deref() { + if x.ref62958060 == 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.ref62958060.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref62958060.pNext)) + x.SwapchainCount = (uint32)(x.ref62958060.swapchainCount) + packSPresentRegion(x.PRegions, x.ref62958060.pRegions) } -// allocImageCopyMemory allocates memory for type C.VkImageCopy in C. +// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR 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()) +func allocSharedPresentSurfaceCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSharedPresentSurfaceCapabilitiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageCopyValue = unsafe.Sizeof([1]C.VkImageCopy{}) +const sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageCopy) Ref() *C.VkImageCopy { +func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { if x == nil { return nil } - return x.ref4e7a1214 + 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 *ImageCopy) Free() { - if x != nil && x.allocs4e7a1214 != nil { - x.allocs4e7a1214.(*cgoAllocMap).Free() - x.ref4e7a1214 = nil +func (x *SharedPresentSurfaceCapabilities) Free() { + if x != nil && x.allocs3f98a814 != nil { + x.allocs3f98a814.(*cgoAllocMap).Free() + x.ref3f98a814 = nil } } -// NewImageCopyRef 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 NewImageCopyRef(ref unsafe.Pointer) *ImageCopy { +func NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { if ref == nil { return nil } - obj := new(ImageCopy) - obj.ref4e7a1214 = (*C.VkImageCopy)(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 *ImageCopy) PassRef() (*C.VkImageCopy, *cgoAllocMap) { +func (x *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4e7a1214 != nil { - return x.ref4e7a1214, nil + } else if x.ref3f98a814 != nil { + return x.ref3f98a814, 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) + mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) + ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) + allocs3f98a814 := new(cgoAllocMap) + allocs3f98a814.Add(mem3f98a814) - var cdstSubresource_allocs *cgoAllocMap - ref4e7a1214.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs4e7a1214.Borrow(cdstSubresource_allocs) + var csType_allocs *cgoAllocMap + ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3f98a814.Borrow(csType_allocs) - var cdstOffset_allocs *cgoAllocMap - ref4e7a1214.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() - allocs4e7a1214.Borrow(cdstOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3f98a814.Borrow(cpNext_allocs) - var cextent_allocs *cgoAllocMap - ref4e7a1214.extent, cextent_allocs = x.Extent.PassValue() - allocs4e7a1214.Borrow(cextent_allocs) + var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap + ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown + allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) - x.ref4e7a1214 = ref4e7a1214 - x.allocs4e7a1214 = allocs4e7a1214 - return ref4e7a1214, allocs4e7a1214 + 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 ImageCopy) PassValue() (C.VkImageCopy, *cgoAllocMap) { - if x.ref4e7a1214 != nil { - return *x.ref4e7a1214, nil +func (x SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { + if x.ref3f98a814 != nil { + return *x.ref3f98a814, 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)) -} - -// 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) +// Deref uses the underlying reference to C object and fills the wrapping struct with 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 { + return } - unpacked = *(*[2]C.VkOffset3D)(mem0) - return + x.SType = (StructureType)(x.ref3f98a814.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3f98a814.pNext)) + x.SharedPresentSupportedUsageFlags = (ImageUsageFlags)(x.ref3f98a814.sharedPresentSupportedUsageFlags) } -// 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)) +// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR 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)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageBlit) Ref() *C.VkImageBlit { +func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { if x == nil { return nil } - return x.ref11311e8d + 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 *ImageBlit) Free() { - if x != nil && x.allocs11311e8d != nil { - x.allocs11311e8d.(*cgoAllocMap).Free() - x.ref11311e8d = nil +func (x *ImportFenceFdInfo) Free() { + if x != nil && x.allocs86ebd28c != nil { + x.allocs86ebd28c.(*cgoAllocMap).Free() + x.ref86ebd28c = nil } } -// NewImageBlitRef 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 NewImageBlitRef(ref unsafe.Pointer) *ImageBlit { +func NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { if ref == nil { return nil } - obj := new(ImageBlit) - obj.ref11311e8d = (*C.VkImageBlit)(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 *ImageBlit) PassRef() (*C.VkImageBlit, *cgoAllocMap) { +func (x *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11311e8d != nil { - return x.ref11311e8d, nil + } else if x.ref86ebd28c != nil { + return x.ref86ebd28c, nil } - mem11311e8d := allocImageBlitMemory(1) - ref11311e8d := (*C.VkImageBlit)(mem11311e8d) - allocs11311e8d := new(cgoAllocMap) - allocs11311e8d.Add(mem11311e8d) + mem86ebd28c := allocImportFenceFdInfoMemory(1) + ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) + allocs86ebd28c := new(cgoAllocMap) + allocs86ebd28c.Add(mem86ebd28c) - var csrcSubresource_allocs *cgoAllocMap - ref11311e8d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() - allocs11311e8d.Borrow(csrcSubresource_allocs) + var csType_allocs *cgoAllocMap + ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86ebd28c.Borrow(csType_allocs) - var csrcOffsets_allocs *cgoAllocMap - ref11311e8d.srcOffsets, csrcOffsets_allocs = unpackA2Offset3D(x.SrcOffsets) - allocs11311e8d.Borrow(csrcOffsets_allocs) + var cpNext_allocs *cgoAllocMap + ref86ebd28c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cpNext_allocs) - var cdstSubresource_allocs *cgoAllocMap - ref11311e8d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs11311e8d.Borrow(cdstSubresource_allocs) + var cfence_allocs *cgoAllocMap + ref86ebd28c.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cfence_allocs) - var cdstOffsets_allocs *cgoAllocMap - ref11311e8d.dstOffsets, cdstOffsets_allocs = unpackA2Offset3D(x.DstOffsets) - allocs11311e8d.Borrow(cdstOffsets_allocs) + var cflags_allocs *cgoAllocMap + ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown + allocs86ebd28c.Borrow(cflags_allocs) - x.ref11311e8d = ref11311e8d - x.allocs11311e8d = allocs11311e8d - return ref11311e8d, allocs11311e8d + var chandleType_allocs *cgoAllocMap + ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs86ebd28c.Borrow(chandleType_allocs) + + 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 ImageBlit) PassValue() (C.VkImageBlit, *cgoAllocMap) { - if x.ref11311e8d != nil { - return *x.ref11311e8d, nil +func (x ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { + if x.ref86ebd28c != nil { + return *x.ref86ebd28c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11739,103 +36933,97 @@ 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 *ImportFenceFdInfo) Deref() { + if x.ref86ebd28c == 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.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) } -// allocBufferImageCopyMemory allocates memory for type C.VkBufferImageCopy in C. +// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR 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()) +func allocFenceGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceGetFdInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBufferImageCopyValue = unsafe.Sizeof([1]C.VkBufferImageCopy{}) +const sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferImageCopy) Ref() *C.VkBufferImageCopy { +func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { if x == nil { return nil } - return x.ref6d50e36e + 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 *BufferImageCopy) Free() { - if x != nil && x.allocs6d50e36e != nil { - x.allocs6d50e36e.(*cgoAllocMap).Free() - x.ref6d50e36e = nil +func (x *FenceGetFdInfo) Free() { + if x != nil && x.allocsc2668bc3 != nil { + x.allocsc2668bc3.(*cgoAllocMap).Free() + x.refc2668bc3 = nil } } -// NewBufferImageCopyRef 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 NewBufferImageCopyRef(ref unsafe.Pointer) *BufferImageCopy { +func NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { if ref == nil { return nil } - obj := new(BufferImageCopy) - obj.ref6d50e36e = (*C.VkBufferImageCopy)(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 *BufferImageCopy) PassRef() (*C.VkBufferImageCopy, *cgoAllocMap) { +func (x *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6d50e36e != nil { - return x.ref6d50e36e, nil + } else if x.refc2668bc3 != nil { + return x.refc2668bc3, 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) + memc2668bc3 := allocFenceGetFdInfoMemory(1) + refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) + allocsc2668bc3 := new(cgoAllocMap) + allocsc2668bc3.Add(memc2668bc3) - var cbufferImageHeight_allocs *cgoAllocMap - ref6d50e36e.bufferImageHeight, cbufferImageHeight_allocs = (C.uint32_t)(x.BufferImageHeight), cgoAllocsUnknown - allocs6d50e36e.Borrow(cbufferImageHeight_allocs) + var csType_allocs *cgoAllocMap + refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc2668bc3.Borrow(csType_allocs) - var cimageSubresource_allocs *cgoAllocMap - ref6d50e36e.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() - allocs6d50e36e.Borrow(cimageSubresource_allocs) + var cpNext_allocs *cgoAllocMap + refc2668bc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cpNext_allocs) - var cimageOffset_allocs *cgoAllocMap - ref6d50e36e.imageOffset, cimageOffset_allocs = x.ImageOffset.PassValue() - allocs6d50e36e.Borrow(cimageOffset_allocs) + var cfence_allocs *cgoAllocMap + refc2668bc3.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cfence_allocs) - var cimageExtent_allocs *cgoAllocMap - ref6d50e36e.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocs6d50e36e.Borrow(cimageExtent_allocs) + var chandleType_allocs *cgoAllocMap + refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsc2668bc3.Borrow(chandleType_allocs) - x.ref6d50e36e = ref6d50e36e - x.allocs6d50e36e = allocs6d50e36e - return ref6d50e36e, allocs6d50e36e + 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 BufferImageCopy) PassValue() (C.VkBufferImageCopy, *cgoAllocMap) { - if x.ref6d50e36e != nil { - return *x.ref6d50e36e, nil +func (x FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { + if x.refc2668bc3 != nil { + return *x.refc2668bc3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11843,89 +37031,95 @@ 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 *FenceGetFdInfo) Deref() { + if x.refc2668bc3 == 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.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) } -// allocClearDepthStencilValueMemory allocates memory for type C.VkClearDepthStencilValue in C. +// allocPhysicalDevicePerformanceQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryFeaturesKHR 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()) +func allocPhysicalDevicePerformanceQueryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfClearDepthStencilValueValue = unsafe.Sizeof([1]C.VkClearDepthStencilValue{}) +const sizeOfPhysicalDevicePerformanceQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearDepthStencilValue) Ref() *C.VkClearDepthStencilValue { +func (x *PhysicalDevicePerformanceQueryFeatures) Ref() *C.VkPhysicalDevicePerformanceQueryFeaturesKHR { if x == nil { return nil } - return x.refa7d07c03 + 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 *ClearDepthStencilValue) Free() { - if x != nil && x.allocsa7d07c03 != nil { - x.allocsa7d07c03.(*cgoAllocMap).Free() - x.refa7d07c03 = nil +func (x *PhysicalDevicePerformanceQueryFeatures) Free() { + if x != nil && x.allocs8e4527cb != nil { + x.allocs8e4527cb.(*cgoAllocMap).Free() + x.ref8e4527cb = nil } } -// NewClearDepthStencilValueRef 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 NewClearDepthStencilValueRef(ref unsafe.Pointer) *ClearDepthStencilValue { +func NewPhysicalDevicePerformanceQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryFeatures { if ref == nil { return nil } - obj := new(ClearDepthStencilValue) - obj.refa7d07c03 = (*C.VkClearDepthStencilValue)(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 *ClearDepthStencilValue) PassRef() (*C.VkClearDepthStencilValue, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryFeatures) PassRef() (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa7d07c03 != nil { - return x.refa7d07c03, nil + } else if x.ref8e4527cb != nil { + return x.ref8e4527cb, nil } - mema7d07c03 := allocClearDepthStencilValueMemory(1) - refa7d07c03 := (*C.VkClearDepthStencilValue)(mema7d07c03) - allocsa7d07c03 := new(cgoAllocMap) - allocsa7d07c03.Add(mema7d07c03) + mem8e4527cb := allocPhysicalDevicePerformanceQueryFeaturesMemory(1) + ref8e4527cb := (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(mem8e4527cb) + allocs8e4527cb := new(cgoAllocMap) + allocs8e4527cb.Add(mem8e4527cb) - var cdepth_allocs *cgoAllocMap - refa7d07c03.depth, cdepth_allocs = (C.float)(x.Depth), cgoAllocsUnknown - allocsa7d07c03.Borrow(cdepth_allocs) + var csType_allocs *cgoAllocMap + ref8e4527cb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8e4527cb.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 + ref8e4527cb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8e4527cb.Borrow(cpNext_allocs) - x.refa7d07c03 = refa7d07c03 - x.allocsa7d07c03 = allocsa7d07c03 - return refa7d07c03, allocsa7d07c03 + var cperformanceCounterQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterQueryPools, cperformanceCounterQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterQueryPools_allocs) + + var cperformanceCounterMultipleQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterMultipleQueryPools, cperformanceCounterMultipleQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterMultipleQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterMultipleQueryPools_allocs) + + 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 ClearDepthStencilValue) PassValue() (C.VkClearDepthStencilValue, *cgoAllocMap) { - if x.refa7d07c03 != nil { - return *x.refa7d07c03, nil +func (x PhysicalDevicePerformanceQueryFeatures) PassValue() (C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { + if x.ref8e4527cb != nil { + return *x.ref8e4527cb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11933,89 +37127,91 @@ 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 *PhysicalDevicePerformanceQueryFeatures) Deref() { + if x.ref8e4527cb == nil { return } - x.Depth = (float32)(x.refa7d07c03.depth) - x.Stencil = (uint32)(x.refa7d07c03.stencil) + 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) } -// allocClearAttachmentMemory allocates memory for type C.VkClearAttachment in C. +// allocPhysicalDevicePerformanceQueryPropertiesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryPropertiesKHR 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()) +func allocPhysicalDevicePerformanceQueryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfClearAttachmentValue = unsafe.Sizeof([1]C.VkClearAttachment{}) +const sizeOfPhysicalDevicePerformanceQueryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearAttachment) Ref() *C.VkClearAttachment { +func (x *PhysicalDevicePerformanceQueryProperties) Ref() *C.VkPhysicalDevicePerformanceQueryPropertiesKHR { if x == nil { return nil } - return x.refe9150303 + 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 *ClearAttachment) Free() { - if x != nil && x.allocse9150303 != nil { - x.allocse9150303.(*cgoAllocMap).Free() - x.refe9150303 = nil +func (x *PhysicalDevicePerformanceQueryProperties) Free() { + if x != nil && x.allocsc3efa645 != nil { + x.allocsc3efa645.(*cgoAllocMap).Free() + x.refc3efa645 = nil } } -// NewClearAttachmentRef 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 NewClearAttachmentRef(ref unsafe.Pointer) *ClearAttachment { +func NewPhysicalDevicePerformanceQueryPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryProperties { if ref == nil { return nil } - obj := new(ClearAttachment) - obj.refe9150303 = (*C.VkClearAttachment)(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 *ClearAttachment) PassRef() (*C.VkClearAttachment, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryProperties) PassRef() (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe9150303 != nil { - return x.refe9150303, nil + } else if x.refc3efa645 != nil { + return x.refc3efa645, nil } - meme9150303 := allocClearAttachmentMemory(1) - refe9150303 := (*C.VkClearAttachment)(meme9150303) - allocse9150303 := new(cgoAllocMap) - allocse9150303.Add(meme9150303) + memc3efa645 := allocPhysicalDevicePerformanceQueryPropertiesMemory(1) + refc3efa645 := (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(memc3efa645) + allocsc3efa645 := new(cgoAllocMap) + allocsc3efa645.Add(memc3efa645) - var caspectMask_allocs *cgoAllocMap - refe9150303.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocse9150303.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + refc3efa645.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc3efa645.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 + refc3efa645.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc3efa645.Borrow(cpNext_allocs) - var cclearValue_allocs *cgoAllocMap - refe9150303.clearValue, cclearValue_allocs = *(*C.VkClearValue)(unsafe.Pointer(&x.ClearValue)), cgoAllocsUnknown - allocse9150303.Borrow(cclearValue_allocs) + var callowCommandBufferQueryCopies_allocs *cgoAllocMap + refc3efa645.allowCommandBufferQueryCopies, callowCommandBufferQueryCopies_allocs = (C.VkBool32)(x.AllowCommandBufferQueryCopies), cgoAllocsUnknown + allocsc3efa645.Borrow(callowCommandBufferQueryCopies_allocs) - x.refe9150303 = refe9150303 - x.allocse9150303 = allocse9150303 - return refe9150303, allocse9150303 + 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 ClearAttachment) PassValue() (C.VkClearAttachment, *cgoAllocMap) { - if x.refe9150303 != nil { - return *x.refe9150303, nil +func (x PhysicalDevicePerformanceQueryProperties) PassValue() (C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { + if x.refc3efa645 != nil { + return *x.refc3efa645, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12023,90 +37219,102 @@ 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 *PhysicalDevicePerformanceQueryProperties) Deref() { + if x.refc3efa645 == 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.refc3efa645.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc3efa645.pNext)) + x.AllowCommandBufferQueryCopies = (Bool32)(x.refc3efa645.allowCommandBufferQueryCopies) } -// allocClearRectMemory allocates memory for type C.VkClearRect in C. +// allocPerformanceCounterMemory allocates memory for type C.VkPerformanceCounterKHR 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()) +func allocPerformanceCounterMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfClearRectValue = unsafe.Sizeof([1]C.VkClearRect{}) +const sizeOfPerformanceCounterValue = unsafe.Sizeof([1]C.VkPerformanceCounterKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearRect) Ref() *C.VkClearRect { +func (x *PerformanceCounter) Ref() *C.VkPerformanceCounterKHR { if x == nil { return nil } - return x.ref1d449c8b + 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 *ClearRect) Free() { - if x != nil && x.allocs1d449c8b != nil { - x.allocs1d449c8b.(*cgoAllocMap).Free() - x.ref1d449c8b = nil +func (x *PerformanceCounter) Free() { + if x != nil && x.allocsc754b4e5 != nil { + x.allocsc754b4e5.(*cgoAllocMap).Free() + x.refc754b4e5 = nil } } -// NewClearRectRef 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 NewClearRectRef(ref unsafe.Pointer) *ClearRect { +func NewPerformanceCounterRef(ref unsafe.Pointer) *PerformanceCounter { if ref == nil { return nil } - obj := new(ClearRect) - obj.ref1d449c8b = (*C.VkClearRect)(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 *ClearRect) PassRef() (*C.VkClearRect, *cgoAllocMap) { +func (x *PerformanceCounter) PassRef() (*C.VkPerformanceCounterKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d449c8b != nil { - return x.ref1d449c8b, nil + } else if x.refc754b4e5 != nil { + return x.refc754b4e5, nil } - mem1d449c8b := allocClearRectMemory(1) - ref1d449c8b := (*C.VkClearRect)(mem1d449c8b) - allocs1d449c8b := new(cgoAllocMap) - allocs1d449c8b.Add(mem1d449c8b) + memc754b4e5 := allocPerformanceCounterMemory(1) + refc754b4e5 := (*C.VkPerformanceCounterKHR)(memc754b4e5) + allocsc754b4e5 := new(cgoAllocMap) + allocsc754b4e5.Add(memc754b4e5) - var crect_allocs *cgoAllocMap - ref1d449c8b.rect, crect_allocs = x.Rect.PassValue() - allocs1d449c8b.Borrow(crect_allocs) + var csType_allocs *cgoAllocMap + refc754b4e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc754b4e5.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 + refc754b4e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc754b4e5.Borrow(cpNext_allocs) - var clayerCount_allocs *cgoAllocMap - ref1d449c8b.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs1d449c8b.Borrow(clayerCount_allocs) + var cunit_allocs *cgoAllocMap + refc754b4e5.unit, cunit_allocs = (C.VkPerformanceCounterUnitKHR)(x.Unit), cgoAllocsUnknown + allocsc754b4e5.Borrow(cunit_allocs) - x.ref1d449c8b = ref1d449c8b - x.allocs1d449c8b = allocs1d449c8b - return ref1d449c8b, allocs1d449c8b + 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 ClearRect) PassValue() (C.VkClearRect, *cgoAllocMap) { - if x.ref1d449c8b != nil { - return *x.ref1d449c8b, nil +func (x PerformanceCounter) PassValue() (C.VkPerformanceCounterKHR, *cgoAllocMap) { + if x.refc754b4e5 != nil { + return *x.refc754b4e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12114,98 +37322,105 @@ 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 *PerformanceCounter) Deref() { + if x.refc754b4e5 == 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.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)) } -// allocImageResolveMemory allocates memory for type C.VkImageResolve in C. +// allocPerformanceCounterDescriptionMemory allocates memory for type C.VkPerformanceCounterDescriptionKHR 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()) +func allocPerformanceCounterDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterDescriptionValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageResolveValue = unsafe.Sizeof([1]C.VkImageResolve{}) +const sizeOfPerformanceCounterDescriptionValue = unsafe.Sizeof([1]C.VkPerformanceCounterDescriptionKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageResolve) Ref() *C.VkImageResolve { +func (x *PerformanceCounterDescription) Ref() *C.VkPerformanceCounterDescriptionKHR { if x == nil { return nil } - return x.ref7bda856d + 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 *ImageResolve) Free() { - if x != nil && x.allocs7bda856d != nil { - x.allocs7bda856d.(*cgoAllocMap).Free() - x.ref7bda856d = nil +func (x *PerformanceCounterDescription) Free() { + if x != nil && x.allocs95209df5 != nil { + x.allocs95209df5.(*cgoAllocMap).Free() + x.ref95209df5 = nil } } -// NewImageResolveRef 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 NewImageResolveRef(ref unsafe.Pointer) *ImageResolve { +func NewPerformanceCounterDescriptionRef(ref unsafe.Pointer) *PerformanceCounterDescription { if ref == nil { return nil } - obj := new(ImageResolve) - obj.ref7bda856d = (*C.VkImageResolve)(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 *ImageResolve) PassRef() (*C.VkImageResolve, *cgoAllocMap) { +func (x *PerformanceCounterDescription) PassRef() (*C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7bda856d != nil { - return x.ref7bda856d, nil + } else if x.ref95209df5 != nil { + return x.ref95209df5, nil } - mem7bda856d := allocImageResolveMemory(1) - ref7bda856d := (*C.VkImageResolve)(mem7bda856d) - allocs7bda856d := new(cgoAllocMap) - allocs7bda856d.Add(mem7bda856d) + mem95209df5 := allocPerformanceCounterDescriptionMemory(1) + ref95209df5 := (*C.VkPerformanceCounterDescriptionKHR)(mem95209df5) + allocs95209df5 := new(cgoAllocMap) + allocs95209df5.Add(mem95209df5) - var csrcSubresource_allocs *cgoAllocMap - ref7bda856d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() - allocs7bda856d.Borrow(csrcSubresource_allocs) + var csType_allocs *cgoAllocMap + ref95209df5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95209df5.Borrow(csType_allocs) - var csrcOffset_allocs *cgoAllocMap - ref7bda856d.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() - allocs7bda856d.Borrow(csrcOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref95209df5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95209df5.Borrow(cpNext_allocs) - var cdstSubresource_allocs *cgoAllocMap - ref7bda856d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs7bda856d.Borrow(cdstSubresource_allocs) + var cflags_allocs *cgoAllocMap + ref95209df5.flags, cflags_allocs = (C.VkPerformanceCounterDescriptionFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs95209df5.Borrow(cflags_allocs) - var cdstOffset_allocs *cgoAllocMap - ref7bda856d.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() - allocs7bda856d.Borrow(cdstOffset_allocs) + var cname_allocs *cgoAllocMap + ref95209df5.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs95209df5.Borrow(cname_allocs) - var cextent_allocs *cgoAllocMap - ref7bda856d.extent, cextent_allocs = x.Extent.PassValue() - allocs7bda856d.Borrow(cextent_allocs) + var ccategory_allocs *cgoAllocMap + ref95209df5.category, ccategory_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Category)), cgoAllocsUnknown + allocs95209df5.Borrow(ccategory_allocs) - x.ref7bda856d = ref7bda856d - x.allocs7bda856d = allocs7bda856d - return ref7bda856d, allocs7bda856d + 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 ImageResolve) PassValue() (C.VkImageResolve, *cgoAllocMap) { - if x.ref7bda856d != nil { - return *x.ref7bda856d, nil +func (x PerformanceCounterDescription) PassValue() (C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { + if x.ref95209df5 != nil { + return *x.ref95209df5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12213,96 +37428,101 @@ 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 *PerformanceCounterDescription) Deref() { + if x.ref95209df5 == 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.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)) } -// allocMemoryBarrierMemory allocates memory for type C.VkMemoryBarrier in C. +// allocQueryPoolPerformanceCreateInfoMemory allocates memory for type C.VkQueryPoolPerformanceCreateInfoKHR 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()) +func allocQueryPoolPerformanceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryBarrierValue = unsafe.Sizeof([1]C.VkMemoryBarrier{}) +const sizeOfQueryPoolPerformanceCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryBarrier) Ref() *C.VkMemoryBarrier { +func (x *QueryPoolPerformanceCreateInfo) Ref() *C.VkQueryPoolPerformanceCreateInfoKHR { if x == nil { return nil } - return x.ref977c944e + 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 *MemoryBarrier) Free() { - if x != nil && x.allocs977c944e != nil { - x.allocs977c944e.(*cgoAllocMap).Free() - x.ref977c944e = nil +func (x *QueryPoolPerformanceCreateInfo) Free() { + if x != nil && x.allocs55afa561 != nil { + x.allocs55afa561.(*cgoAllocMap).Free() + x.ref55afa561 = nil } } -// NewMemoryBarrierRef 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 NewMemoryBarrierRef(ref unsafe.Pointer) *MemoryBarrier { +func NewQueryPoolPerformanceCreateInfoRef(ref unsafe.Pointer) *QueryPoolPerformanceCreateInfo { if ref == nil { return nil } - obj := new(MemoryBarrier) - obj.ref977c944e = (*C.VkMemoryBarrier)(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 *MemoryBarrier) PassRef() (*C.VkMemoryBarrier, *cgoAllocMap) { +func (x *QueryPoolPerformanceCreateInfo) PassRef() (*C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref977c944e != nil { - return x.ref977c944e, nil + } else if x.ref55afa561 != nil { + return x.ref55afa561, nil } - mem977c944e := allocMemoryBarrierMemory(1) - ref977c944e := (*C.VkMemoryBarrier)(mem977c944e) - allocs977c944e := new(cgoAllocMap) - allocs977c944e.Add(mem977c944e) + mem55afa561 := allocQueryPoolPerformanceCreateInfoMemory(1) + ref55afa561 := (*C.VkQueryPoolPerformanceCreateInfoKHR)(mem55afa561) + allocs55afa561 := new(cgoAllocMap) + allocs55afa561.Add(mem55afa561) var csType_allocs *cgoAllocMap - ref977c944e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs977c944e.Borrow(csType_allocs) + ref55afa561.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs55afa561.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref977c944e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs977c944e.Borrow(cpNext_allocs) + ref55afa561.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs55afa561.Borrow(cpNext_allocs) - var csrcAccessMask_allocs *cgoAllocMap - ref977c944e.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocs977c944e.Borrow(csrcAccessMask_allocs) + var cqueueFamilyIndex_allocs *cgoAllocMap + ref55afa561.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs55afa561.Borrow(cqueueFamilyIndex_allocs) - var cdstAccessMask_allocs *cgoAllocMap - ref977c944e.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocs977c944e.Borrow(cdstAccessMask_allocs) + var ccounterIndexCount_allocs *cgoAllocMap + ref55afa561.counterIndexCount, ccounterIndexCount_allocs = (C.uint32_t)(x.CounterIndexCount), cgoAllocsUnknown + allocs55afa561.Borrow(ccounterIndexCount_allocs) - x.ref977c944e = ref977c944e - x.allocs977c944e = allocs977c944e - return ref977c944e, allocs977c944e + var cpCounterIndices_allocs *cgoAllocMap + ref55afa561.pCounterIndices, cpCounterIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCounterIndices))) + allocs55afa561.Borrow(cpCounterIndices_allocs) + + 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 MemoryBarrier) PassValue() (C.VkMemoryBarrier, *cgoAllocMap) { - if x.ref977c944e != nil { - return *x.ref977c944e, nil +func (x QueryPoolPerformanceCreateInfo) PassValue() (C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { + if x.ref55afa561 != nil { + return *x.ref55afa561, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12310,115 +37530,100 @@ 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 *QueryPoolPerformanceCreateInfo) Deref() { + if x.ref55afa561 == 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.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 = ? + } -// allocBufferMemoryBarrierMemory allocates memory for type C.VkBufferMemoryBarrier in C. +// allocAcquireProfilingLockInfoMemory allocates memory for type C.VkAcquireProfilingLockInfoKHR 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocAcquireProfilingLockInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireProfilingLockInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBufferMemoryBarrierValue = unsafe.Sizeof([1]C.VkBufferMemoryBarrier{}) +const sizeOfAcquireProfilingLockInfoValue = unsafe.Sizeof([1]C.VkAcquireProfilingLockInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferMemoryBarrier) Ref() *C.VkBufferMemoryBarrier { +func (x *AcquireProfilingLockInfo) Ref() *C.VkAcquireProfilingLockInfoKHR { if x == nil { return nil } - return x.refeaf4700b + 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 *BufferMemoryBarrier) Free() { - if x != nil && x.allocseaf4700b != nil { - x.allocseaf4700b.(*cgoAllocMap).Free() - x.refeaf4700b = nil +func (x *AcquireProfilingLockInfo) Free() { + if x != nil && x.allocs73cbb121 != nil { + x.allocs73cbb121.(*cgoAllocMap).Free() + x.ref73cbb121 = nil } } -// NewBufferMemoryBarrierRef 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 NewBufferMemoryBarrierRef(ref unsafe.Pointer) *BufferMemoryBarrier { +func NewAcquireProfilingLockInfoRef(ref unsafe.Pointer) *AcquireProfilingLockInfo { if ref == nil { return nil } - obj := new(BufferMemoryBarrier) - obj.refeaf4700b = (*C.VkBufferMemoryBarrier)(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 *BufferMemoryBarrier) PassRef() (*C.VkBufferMemoryBarrier, *cgoAllocMap) { +func (x *AcquireProfilingLockInfo) PassRef() (*C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeaf4700b != nil { - return x.refeaf4700b, nil + } else if x.ref73cbb121 != nil { + return x.ref73cbb121, nil } - memeaf4700b := allocBufferMemoryBarrierMemory(1) - refeaf4700b := (*C.VkBufferMemoryBarrier)(memeaf4700b) - allocseaf4700b := new(cgoAllocMap) - allocseaf4700b.Add(memeaf4700b) + mem73cbb121 := allocAcquireProfilingLockInfoMemory(1) + ref73cbb121 := (*C.VkAcquireProfilingLockInfoKHR)(mem73cbb121) + allocs73cbb121 := new(cgoAllocMap) + allocs73cbb121.Add(mem73cbb121) var csType_allocs *cgoAllocMap - refeaf4700b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseaf4700b.Borrow(csType_allocs) + ref73cbb121.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73cbb121.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) - - var cbuffer_allocs *cgoAllocMap - refeaf4700b.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocseaf4700b.Borrow(cbuffer_allocs) + ref73cbb121.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73cbb121.Borrow(cpNext_allocs) - var coffset_allocs *cgoAllocMap - refeaf4700b.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocseaf4700b.Borrow(coffset_allocs) + var cflags_allocs *cgoAllocMap + ref73cbb121.flags, cflags_allocs = (C.VkAcquireProfilingLockFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs73cbb121.Borrow(cflags_allocs) - var csize_allocs *cgoAllocMap - refeaf4700b.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocseaf4700b.Borrow(csize_allocs) + var ctimeout_allocs *cgoAllocMap + ref73cbb121.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown + allocs73cbb121.Borrow(ctimeout_allocs) - x.refeaf4700b = refeaf4700b - x.allocseaf4700b = allocseaf4700b - return refeaf4700b, allocseaf4700b + 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 BufferMemoryBarrier) PassValue() (C.VkBufferMemoryBarrier, *cgoAllocMap) { - if x.refeaf4700b != nil { - return *x.refeaf4700b, nil +func (x AcquireProfilingLockInfo) PassValue() (C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { + if x.ref73cbb121 != nil { + return *x.ref73cbb121, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12426,124 +37631,91 @@ 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 *AcquireProfilingLockInfo) Deref() { + if x.ref73cbb121 == 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.ref73cbb121.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73cbb121.pNext)) + x.Flags = (AcquireProfilingLockFlags)(x.ref73cbb121.flags) + x.Timeout = (uint64)(x.ref73cbb121.timeout) } -// allocImageMemoryBarrierMemory allocates memory for type C.VkImageMemoryBarrier in C. +// allocPerformanceQuerySubmitInfoMemory allocates memory for type C.VkPerformanceQuerySubmitInfoKHR 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()) +func allocPerformanceQuerySubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceQuerySubmitInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageMemoryBarrierValue = unsafe.Sizeof([1]C.VkImageMemoryBarrier{}) +const sizeOfPerformanceQuerySubmitInfoValue = unsafe.Sizeof([1]C.VkPerformanceQuerySubmitInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageMemoryBarrier) Ref() *C.VkImageMemoryBarrier { +func (x *PerformanceQuerySubmitInfo) Ref() *C.VkPerformanceQuerySubmitInfoKHR { if x == nil { return nil } - return x.refd52734ec + 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 *ImageMemoryBarrier) Free() { - if x != nil && x.allocsd52734ec != nil { - x.allocsd52734ec.(*cgoAllocMap).Free() - x.refd52734ec = nil +func (x *PerformanceQuerySubmitInfo) Free() { + if x != nil && x.allocsbccd2736 != nil { + x.allocsbccd2736.(*cgoAllocMap).Free() + x.refbccd2736 = nil } } -// NewImageMemoryBarrierRef 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 NewImageMemoryBarrierRef(ref unsafe.Pointer) *ImageMemoryBarrier { +func NewPerformanceQuerySubmitInfoRef(ref unsafe.Pointer) *PerformanceQuerySubmitInfo { if ref == nil { return nil } - obj := new(ImageMemoryBarrier) - obj.refd52734ec = (*C.VkImageMemoryBarrier)(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 *ImageMemoryBarrier) PassRef() (*C.VkImageMemoryBarrier, *cgoAllocMap) { +func (x *PerformanceQuerySubmitInfo) PassRef() (*C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd52734ec != nil { - return x.refd52734ec, nil + } else if x.refbccd2736 != nil { + return x.refbccd2736, nil } - memd52734ec := allocImageMemoryBarrierMemory(1) - refd52734ec := (*C.VkImageMemoryBarrier)(memd52734ec) - allocsd52734ec := new(cgoAllocMap) - allocsd52734ec.Add(memd52734ec) + membccd2736 := allocPerformanceQuerySubmitInfoMemory(1) + refbccd2736 := (*C.VkPerformanceQuerySubmitInfoKHR)(membccd2736) + allocsbccd2736 := new(cgoAllocMap) + allocsbccd2736.Add(membccd2736) var csType_allocs *cgoAllocMap - refd52734ec.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd52734ec.Borrow(csType_allocs) + refbccd2736.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbccd2736.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) + refbccd2736.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbccd2736.Borrow(cpNext_allocs) - var csubresourceRange_allocs *cgoAllocMap - refd52734ec.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() - allocsd52734ec.Borrow(csubresourceRange_allocs) + var ccounterPassIndex_allocs *cgoAllocMap + refbccd2736.counterPassIndex, ccounterPassIndex_allocs = (C.uint32_t)(x.CounterPassIndex), cgoAllocsUnknown + allocsbccd2736.Borrow(ccounterPassIndex_allocs) - x.refd52734ec = refd52734ec - x.allocsd52734ec = allocsd52734ec - return refd52734ec, allocsd52734ec + 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 ImageMemoryBarrier) PassValue() (C.VkImageMemoryBarrier, *cgoAllocMap) { - if x.refd52734ec != nil { - return *x.refd52734ec, nil +func (x PerformanceQuerySubmitInfo) PassValue() (C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { + if x.refbccd2736 != nil { + return *x.refbccd2736, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12551,113 +37723,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 *PerformanceQuerySubmitInfo) Deref() { + if x.refbccd2736 == 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.refbccd2736.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbccd2736.pNext)) + x.CounterPassIndex = (uint32)(x.refbccd2736.counterPassIndex) } -// allocRenderPassBeginInfoMemory allocates memory for type C.VkRenderPassBeginInfo in C. +// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR 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()) +func allocPhysicalDeviceSurfaceInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSurfaceInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassBeginInfo{}) +const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassBeginInfo) Ref() *C.VkRenderPassBeginInfo { +func (x *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { if x == nil { return nil } - return x.ref3c3752c8 + 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 *RenderPassBeginInfo) Free() { - if x != nil && x.allocs3c3752c8 != nil { - x.allocs3c3752c8.(*cgoAllocMap).Free() - x.ref3c3752c8 = nil +func (x *PhysicalDeviceSurfaceInfo2) Free() { + if x != nil && x.allocsd22370ae != nil { + x.allocsd22370ae.(*cgoAllocMap).Free() + x.refd22370ae = nil } } -// NewRenderPassBeginInfoRef 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 NewRenderPassBeginInfoRef(ref unsafe.Pointer) *RenderPassBeginInfo { +func NewPhysicalDeviceSurfaceInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSurfaceInfo2 { if ref == nil { return nil } - obj := new(RenderPassBeginInfo) - obj.ref3c3752c8 = (*C.VkRenderPassBeginInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSurfaceInfo2) + obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceSurfaceInfo2) PassRef() (*C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3c3752c8 != nil { - return x.ref3c3752c8, nil + } else if x.refd22370ae != nil { + return x.refd22370ae, nil } - mem3c3752c8 := allocRenderPassBeginInfoMemory(1) - ref3c3752c8 := (*C.VkRenderPassBeginInfo)(mem3c3752c8) - allocs3c3752c8 := new(cgoAllocMap) - allocs3c3752c8.Add(mem3c3752c8) + memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) + refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) + allocsd22370ae := new(cgoAllocMap) + allocsd22370ae.Add(memd22370ae) var csType_allocs *cgoAllocMap - ref3c3752c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3c3752c8.Borrow(csType_allocs) + refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd22370ae.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) + refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd22370ae.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 csurface_allocs *cgoAllocMap + refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown + allocsd22370ae.Borrow(csurface_allocs) - x.ref3c3752c8 = ref3c3752c8 - x.allocs3c3752c8 = allocs3c3752c8 - return ref3c3752c8, allocs3c3752c8 + 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 RenderPassBeginInfo) PassValue() (C.VkRenderPassBeginInfo, *cgoAllocMap) { - if x.ref3c3752c8 != nil { - return *x.ref3c3752c8, nil +func (x PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { + if x.refd22370ae != nil { + return *x.refd22370ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12665,98 +37814,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 *PhysicalDeviceSurfaceInfo2) Deref() { + if x.refd22370ae == 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.refd22370ae.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd22370ae.pNext)) + x.Surface = *(*Surface)(unsafe.Pointer(&x.refd22370ae.surface)) } -// allocDispatchIndirectCommandMemory allocates memory for type C.VkDispatchIndirectCommand in C. +// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSurfaceCapabilities2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilities2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDispatchIndirectCommandValue = unsafe.Sizeof([1]C.VkDispatchIndirectCommand{}) +const sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DispatchIndirectCommand) Ref() *C.VkDispatchIndirectCommand { +func (x *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { if x == nil { return nil } - return x.refd298ba27 + 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 *DispatchIndirectCommand) Free() { - if x != nil && x.allocsd298ba27 != nil { - x.allocsd298ba27.(*cgoAllocMap).Free() - x.refd298ba27 = nil +func (x *SurfaceCapabilities2) Free() { + if x != nil && x.allocsea469745 != nil { + x.allocsea469745.(*cgoAllocMap).Free() + x.refea469745 = nil } } -// NewDispatchIndirectCommandRef 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 NewDispatchIndirectCommandRef(ref unsafe.Pointer) *DispatchIndirectCommand { +func NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { if ref == nil { return nil } - obj := new(DispatchIndirectCommand) - obj.refd298ba27 = (*C.VkDispatchIndirectCommand)(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 *DispatchIndirectCommand) PassRef() (*C.VkDispatchIndirectCommand, *cgoAllocMap) { +func (x *SurfaceCapabilities2) PassRef() (*C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd298ba27 != nil { - return x.refd298ba27, nil + } else if x.refea469745 != nil { + return x.refea469745, nil } - memd298ba27 := allocDispatchIndirectCommandMemory(1) - refd298ba27 := (*C.VkDispatchIndirectCommand)(memd298ba27) - allocsd298ba27 := new(cgoAllocMap) - allocsd298ba27.Add(memd298ba27) + memea469745 := allocSurfaceCapabilities2Memory(1) + refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) + allocsea469745 := new(cgoAllocMap) + allocsea469745.Add(memea469745) - var cx_allocs *cgoAllocMap - refd298ba27.x, cx_allocs = (C.uint32_t)(x.X), cgoAllocsUnknown - allocsd298ba27.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea469745.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 + refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea469745.Borrow(cpNext_allocs) - var cz_allocs *cgoAllocMap - refd298ba27.z, cz_allocs = (C.uint32_t)(x.Z), cgoAllocsUnknown - allocsd298ba27.Borrow(cz_allocs) + var csurfaceCapabilities_allocs *cgoAllocMap + refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() + allocsea469745.Borrow(csurfaceCapabilities_allocs) - x.refd298ba27 = refd298ba27 - x.allocsd298ba27 = allocsd298ba27 - return refd298ba27, allocsd298ba27 + 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 DispatchIndirectCommand) PassValue() (C.VkDispatchIndirectCommand, *cgoAllocMap) { - if x.refd298ba27 != nil { - return *x.refd298ba27, nil +func (x SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { + if x.refea469745 != nil { + return *x.refea469745, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12764,98 +37905,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 *SurfaceCapabilities2) Deref() { + if x.refea469745 == nil { return } - x.X = (uint32)(x.refd298ba27.x) - x.Y = (uint32)(x.refd298ba27.y) - x.Z = (uint32)(x.refd298ba27.z) + x.SType = (StructureType)(x.refea469745.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea469745.pNext)) + x.SurfaceCapabilities = *NewSurfaceCapabilitiesRef(unsafe.Pointer(&x.refea469745.surfaceCapabilities)) } -// allocDrawIndexedIndirectCommandMemory allocates memory for type C.VkDrawIndexedIndirectCommand in C. +// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR 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()) +func allocSurfaceFormat2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormat2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDrawIndexedIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndexedIndirectCommand{}) +const sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawIndexedIndirectCommand) Ref() *C.VkDrawIndexedIndirectCommand { +func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { if x == nil { return nil } - return x.ref4c78b5c3 + 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 *DrawIndexedIndirectCommand) Free() { - if x != nil && x.allocs4c78b5c3 != nil { - x.allocs4c78b5c3.(*cgoAllocMap).Free() - x.ref4c78b5c3 = nil +func (x *SurfaceFormat2) Free() { + if x != nil && x.allocs8867f0ed != nil { + x.allocs8867f0ed.(*cgoAllocMap).Free() + x.ref8867f0ed = nil } } -// NewDrawIndexedIndirectCommandRef 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 NewDrawIndexedIndirectCommandRef(ref unsafe.Pointer) *DrawIndexedIndirectCommand { +func NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { if ref == nil { return nil } - obj := new(DrawIndexedIndirectCommand) - obj.ref4c78b5c3 = (*C.VkDrawIndexedIndirectCommand)(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 *DrawIndexedIndirectCommand) PassRef() (*C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { +func (x *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4c78b5c3 != nil { - return x.ref4c78b5c3, nil + } else if x.ref8867f0ed != nil { + return x.ref8867f0ed, 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) + mem8867f0ed := allocSurfaceFormat2Memory(1) + ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) + allocs8867f0ed := new(cgoAllocMap) + allocs8867f0ed.Add(mem8867f0ed) - var cfirstIndex_allocs *cgoAllocMap - ref4c78b5c3.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cfirstIndex_allocs) + var csType_allocs *cgoAllocMap + ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8867f0ed.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 + ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8867f0ed.Borrow(cpNext_allocs) - var cfirstInstance_allocs *cgoAllocMap - ref4c78b5c3.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cfirstInstance_allocs) + var csurfaceFormat_allocs *cgoAllocMap + ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() + allocs8867f0ed.Borrow(csurfaceFormat_allocs) - x.ref4c78b5c3 = ref4c78b5c3 - x.allocs4c78b5c3 = allocs4c78b5c3 - return ref4c78b5c3, allocs4c78b5c3 + 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 DrawIndexedIndirectCommand) PassValue() (C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { - if x.ref4c78b5c3 != nil { - return *x.ref4c78b5c3, nil +func (x SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { + if x.ref8867f0ed != nil { + return *x.ref8867f0ed, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12863,96 +37996,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 *SurfaceFormat2) Deref() { + if x.ref8867f0ed == 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.ref8867f0ed.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8867f0ed.pNext)) + x.SurfaceFormat = *NewSurfaceFormatRef(unsafe.Pointer(&x.ref8867f0ed.surfaceFormat)) } -// allocDrawIndirectCommandMemory allocates memory for type C.VkDrawIndirectCommand in C. +// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR 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()) +func allocDisplayProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayProperties2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDrawIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndirectCommand{}) +const sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawIndirectCommand) Ref() *C.VkDrawIndirectCommand { +func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { if x == nil { return nil } - return x.ref2b5b67c4 + 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 *DrawIndirectCommand) Free() { - if x != nil && x.allocs2b5b67c4 != nil { - x.allocs2b5b67c4.(*cgoAllocMap).Free() - x.ref2b5b67c4 = nil +func (x *DisplayProperties2) Free() { + if x != nil && x.allocs80194833 != nil { + x.allocs80194833.(*cgoAllocMap).Free() + x.ref80194833 = nil } } -// NewDrawIndirectCommandRef 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 NewDrawIndirectCommandRef(ref unsafe.Pointer) *DrawIndirectCommand { +func NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { if ref == nil { return nil } - obj := new(DrawIndirectCommand) - obj.ref2b5b67c4 = (*C.VkDrawIndirectCommand)(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 *DrawIndirectCommand) PassRef() (*C.VkDrawIndirectCommand, *cgoAllocMap) { +func (x *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b5b67c4 != nil { - return x.ref2b5b67c4, nil + } else if x.ref80194833 != nil { + return x.ref80194833, 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) + mem80194833 := allocDisplayProperties2Memory(1) + ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) + allocs80194833 := new(cgoAllocMap) + allocs80194833.Add(mem80194833) - var cinstanceCount_allocs *cgoAllocMap - ref2b5b67c4.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cinstanceCount_allocs) + var csType_allocs *cgoAllocMap + ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80194833.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 + ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80194833.Borrow(cpNext_allocs) - var cfirstInstance_allocs *cgoAllocMap - ref2b5b67c4.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cfirstInstance_allocs) + var cdisplayProperties_allocs *cgoAllocMap + ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() + allocs80194833.Borrow(cdisplayProperties_allocs) - x.ref2b5b67c4 = ref2b5b67c4 - x.allocs2b5b67c4 = allocs2b5b67c4 - return ref2b5b67c4, allocs2b5b67c4 + 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 DrawIndirectCommand) PassValue() (C.VkDrawIndirectCommand, *cgoAllocMap) { - if x.ref2b5b67c4 != nil { - return *x.ref2b5b67c4, nil +func (x DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { + if x.ref80194833 != nil { + return *x.ref80194833, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12960,137 +38087,90 @@ 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 *DisplayProperties2) Deref() { + if x.ref80194833 == 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) -} - -// allocBaseOutStructureMemory allocates memory for type C.VkBaseOutStructure 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.ref80194833.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80194833.pNext)) + x.DisplayProperties = *NewDisplayPropertiesRef(unsafe.Pointer(&x.ref80194833.displayProperties)) } -const sizeOfBaseOutStructureValue = unsafe.Sizeof([1]C.VkBaseOutStructure{}) - -// allocStruct_VkBaseOutStructureMemory allocates memory for type C.struct_VkBaseOutStructure in C. +// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR 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()) +func allocDisplayPlaneProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneProperties2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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)) - } -} +const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BaseOutStructure) Ref() *C.VkBaseOutStructure { +func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { if x == nil { return nil } - return x.refd536fcd0 + 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 *BaseOutStructure) Free() { - if x != nil && x.allocsd536fcd0 != nil { - x.allocsd536fcd0.(*cgoAllocMap).Free() - x.refd536fcd0 = 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 *DisplayPlaneProperties2) Free() { + if x != nil && x.allocsa72b1e5b != nil { + x.allocsa72b1e5b.(*cgoAllocMap).Free() + x.refa72b1e5b = nil } } -// NewBaseOutStructureRef 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 NewBaseOutStructureRef(ref unsafe.Pointer) *BaseOutStructure { +func NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { if ref == nil { return nil } - obj := new(BaseOutStructure) - obj.refd536fcd0 = (*C.VkBaseOutStructure)(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 *BaseOutStructure) PassRef() (*C.VkBaseOutStructure, *cgoAllocMap) { +func (x *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd536fcd0 != nil { - return x.refd536fcd0, nil + } else if x.refa72b1e5b != nil { + return x.refa72b1e5b, nil } - memd536fcd0 := allocBaseOutStructureMemory(1) - refd536fcd0 := (*C.VkBaseOutStructure)(memd536fcd0) - allocsd536fcd0 := new(cgoAllocMap) - allocsd536fcd0.Add(memd536fcd0) + mema72b1e5b := allocDisplayPlaneProperties2Memory(1) + refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) + allocsa72b1e5b := new(cgoAllocMap) + allocsa72b1e5b.Add(mema72b1e5b) var csType_allocs *cgoAllocMap - refd536fcd0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd536fcd0.Borrow(csType_allocs) + refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa72b1e5b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd536fcd0.pNext, cpNext_allocs = unpackSBaseOutStructure(x.PNext) - allocsd536fcd0.Borrow(cpNext_allocs) + refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa72b1e5b.Borrow(cpNext_allocs) - x.refd536fcd0 = refd536fcd0 - x.allocsd536fcd0 = allocsd536fcd0 - return refd536fcd0, allocsd536fcd0 + var cdisplayPlaneProperties_allocs *cgoAllocMap + refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() + allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) + + 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 BaseOutStructure) PassValue() (C.VkBaseOutStructure, *cgoAllocMap) { - if x.refd536fcd0 != nil { - return *x.refd536fcd0, nil +func (x DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { + if x.refa72b1e5b != nil { + return *x.refa72b1e5b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13098,135 +38178,90 @@ 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 *DisplayPlaneProperties2) Deref() { + if x.refa72b1e5b == 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.refa72b1e5b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa72b1e5b.pNext)) + x.DisplayPlaneProperties = *NewDisplayPlanePropertiesRef(unsafe.Pointer(&x.refa72b1e5b.displayPlaneProperties)) } -const sizeOfBaseInStructureValue = unsafe.Sizeof([1]C.VkBaseInStructure{}) - -// allocStruct_VkBaseInStructureMemory allocates memory for type C.struct_VkBaseInStructure in C. +// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR 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()) +func allocDisplayModeProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeProperties2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BaseInStructure) Ref() *C.VkBaseInStructure { +func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { if x == nil { return nil } - return x.refeae401a9 + return x.refc566048d } // Free invokes alloc map'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 *DisplayModeProperties2) Free() { + if x != nil && x.allocsc566048d != nil { + x.allocsc566048d.(*cgoAllocMap).Free() + x.refc566048d = nil } } -// NewBaseInStructureRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewBaseInStructureRef(ref unsafe.Pointer) *BaseInStructure { +func NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { if ref == nil { return nil } - obj := new(BaseInStructure) - obj.refeae401a9 = (*C.VkBaseInStructure)(unsafe.Pointer(ref)) + 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 *BaseInStructure) PassRef() (*C.VkBaseInStructure, *cgoAllocMap) { +func (x *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeae401a9 != nil { - return x.refeae401a9, nil + } else if x.refc566048d != nil { + return x.refc566048d, nil } - memeae401a9 := allocBaseInStructureMemory(1) - refeae401a9 := (*C.VkBaseInStructure)(memeae401a9) - allocseae401a9 := new(cgoAllocMap) - allocseae401a9.Add(memeae401a9) + memc566048d := allocDisplayModeProperties2Memory(1) + refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) + allocsc566048d := new(cgoAllocMap) + allocsc566048d.Add(memc566048d) var csType_allocs *cgoAllocMap - refeae401a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseae401a9.Borrow(csType_allocs) + refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc566048d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeae401a9.pNext, cpNext_allocs = unpackSBaseInStructure(x.PNext) - allocseae401a9.Borrow(cpNext_allocs) + refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc566048d.Borrow(cpNext_allocs) - x.refeae401a9 = refeae401a9 - x.allocseae401a9 = allocseae401a9 - return refeae401a9, allocseae401a9 + 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 BaseInStructure) PassValue() (C.VkBaseInStructure, *cgoAllocMap) { - if x.refeae401a9 != nil { - return *x.refeae401a9, nil +func (x DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { + if x.refc566048d != nil { + return *x.refc566048d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13234,101 +38269,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 *DisplayModeProperties2) Deref() { + if x.refc566048d == nil { return } - x.SType = (StructureType)(x.refeae401a9.sType) - packSBaseInStructure(x.PNext, x.refeae401a9.pNext) + x.SType = (StructureType)(x.refc566048d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc566048d.pNext)) + x.DisplayModeProperties = *NewDisplayModePropertiesRef(unsafe.Pointer(&x.refc566048d.displayModeProperties)) } -// allocPhysicalDeviceSubgroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceSubgroupProperties in C. +// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR 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()) +func allocDisplayPlaneInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneInfo2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSubgroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupProperties{}) +const sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSubgroupProperties) Ref() *C.VkPhysicalDeviceSubgroupProperties { +func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { if x == nil { return nil } - return x.refb019c29f + 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 *PhysicalDeviceSubgroupProperties) Free() { - if x != nil && x.allocsb019c29f != nil { - x.allocsb019c29f.(*cgoAllocMap).Free() - x.refb019c29f = nil +func (x *DisplayPlaneInfo2) Free() { + if x != nil && x.allocsf355ccbf != nil { + x.allocsf355ccbf.(*cgoAllocMap).Free() + x.reff355ccbf = nil } } -// NewPhysicalDeviceSubgroupPropertiesRef 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 NewPhysicalDeviceSubgroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupProperties { +func NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { if ref == nil { return nil } - obj := new(PhysicalDeviceSubgroupProperties) - obj.refb019c29f = (*C.VkPhysicalDeviceSubgroupProperties)(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 *PhysicalDeviceSubgroupProperties) PassRef() (*C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { +func (x *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb019c29f != nil { - return x.refb019c29f, nil + } else if x.reff355ccbf != nil { + return x.reff355ccbf, nil } - memb019c29f := allocPhysicalDeviceSubgroupPropertiesMemory(1) - refb019c29f := (*C.VkPhysicalDeviceSubgroupProperties)(memb019c29f) - allocsb019c29f := new(cgoAllocMap) - allocsb019c29f.Add(memb019c29f) + memf355ccbf := allocDisplayPlaneInfo2Memory(1) + reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) + allocsf355ccbf := new(cgoAllocMap) + allocsf355ccbf.Add(memf355ccbf) var csType_allocs *cgoAllocMap - refb019c29f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb019c29f.Borrow(csType_allocs) + reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf355ccbf.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) + reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cpNext_allocs) - var csupportedOperations_allocs *cgoAllocMap - refb019c29f.supportedOperations, csupportedOperations_allocs = (C.VkSubgroupFeatureFlags)(x.SupportedOperations), cgoAllocsUnknown - allocsb019c29f.Borrow(csupportedOperations_allocs) + var cmode_allocs *cgoAllocMap + reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cmode_allocs) - var cquadOperationsInAllStages_allocs *cgoAllocMap - refb019c29f.quadOperationsInAllStages, cquadOperationsInAllStages_allocs = (C.VkBool32)(x.QuadOperationsInAllStages), cgoAllocsUnknown - allocsb019c29f.Borrow(cquadOperationsInAllStages_allocs) + var cplaneIndex_allocs *cgoAllocMap + reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown + allocsf355ccbf.Borrow(cplaneIndex_allocs) - x.refb019c29f = refb019c29f - x.allocsb019c29f = allocsb019c29f - return refb019c29f, allocsb019c29f + 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 PhysicalDeviceSubgroupProperties) PassValue() (C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { - if x.refb019c29f != nil { - return *x.refb019c29f, nil +func (x DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { + if x.reff355ccbf != nil { + return *x.reff355ccbf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13336,101 +38364,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 *DisplayPlaneInfo2) Deref() { + if x.reff355ccbf == 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.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) } -// allocBindBufferMemoryInfoMemory allocates memory for type C.VkBindBufferMemoryInfo in C. +// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR 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()) +func allocDisplayPlaneCapabilities2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilities2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindBufferMemoryInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryInfo{}) +const sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindBufferMemoryInfo) Ref() *C.VkBindBufferMemoryInfo { +func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { if x == nil { return nil } - return x.refd392322d + 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 *BindBufferMemoryInfo) Free() { - if x != nil && x.allocsd392322d != nil { - x.allocsd392322d.(*cgoAllocMap).Free() - x.refd392322d = nil +func (x *DisplayPlaneCapabilities2) Free() { + if x != nil && x.allocsb53dfb44 != nil { + x.allocsb53dfb44.(*cgoAllocMap).Free() + x.refb53dfb44 = nil } } -// NewBindBufferMemoryInfoRef 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 NewBindBufferMemoryInfoRef(ref unsafe.Pointer) *BindBufferMemoryInfo { +func NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { if ref == nil { return nil } - obj := new(BindBufferMemoryInfo) - obj.refd392322d = (*C.VkBindBufferMemoryInfo)(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 *BindBufferMemoryInfo) PassRef() (*C.VkBindBufferMemoryInfo, *cgoAllocMap) { +func (x *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd392322d != nil { - return x.refd392322d, nil + } else if x.refb53dfb44 != nil { + return x.refb53dfb44, nil } - memd392322d := allocBindBufferMemoryInfoMemory(1) - refd392322d := (*C.VkBindBufferMemoryInfo)(memd392322d) - allocsd392322d := new(cgoAllocMap) - allocsd392322d.Add(memd392322d) + memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) + refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) + allocsb53dfb44 := new(cgoAllocMap) + allocsb53dfb44.Add(memb53dfb44) var csType_allocs *cgoAllocMap - refd392322d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd392322d.Borrow(csType_allocs) + refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb53dfb44.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) + refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb53dfb44.Borrow(cpNext_allocs) - var cmemoryOffset_allocs *cgoAllocMap - refd392322d.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocsd392322d.Borrow(cmemoryOffset_allocs) + var ccapabilities_allocs *cgoAllocMap + refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() + allocsb53dfb44.Borrow(ccapabilities_allocs) - x.refd392322d = refd392322d - x.allocsd392322d = allocsd392322d - return refd392322d, allocsd392322d + 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 BindBufferMemoryInfo) PassValue() (C.VkBindBufferMemoryInfo, *cgoAllocMap) { - if x.refd392322d != nil { - return *x.refd392322d, nil +func (x DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { + if x.refb53dfb44 != nil { + return *x.refb53dfb44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13438,100 +38456,94 @@ 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 *DisplayPlaneCapabilities2) Deref() { + if x.refb53dfb44 == 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.refb53dfb44.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb53dfb44.pNext)) + x.Capabilities = *NewDisplayPlaneCapabilitiesRef(unsafe.Pointer(&x.refb53dfb44.capabilities)) } -// allocBindImageMemoryInfoMemory allocates memory for type C.VkBindImageMemoryInfo in C. +// allocPhysicalDeviceShaderClockFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderClockFeaturesKHR 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()) +func allocPhysicalDeviceShaderClockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderClockFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindImageMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryInfo{}) +const sizeOfPhysicalDeviceShaderClockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderClockFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemoryInfo) Ref() *C.VkBindImageMemoryInfo { +func (x *PhysicalDeviceShaderClockFeatures) Ref() *C.VkPhysicalDeviceShaderClockFeaturesKHR { if x == nil { return nil } - return x.ref767a2113 + 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 *BindImageMemoryInfo) Free() { - if x != nil && x.allocs767a2113 != nil { - x.allocs767a2113.(*cgoAllocMap).Free() - x.ref767a2113 = nil +func (x *PhysicalDeviceShaderClockFeatures) Free() { + if x != nil && x.allocsab512283 != nil { + x.allocsab512283.(*cgoAllocMap).Free() + x.refab512283 = nil } } -// NewBindImageMemoryInfoRef 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 NewBindImageMemoryInfoRef(ref unsafe.Pointer) *BindImageMemoryInfo { +func NewPhysicalDeviceShaderClockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderClockFeatures { if ref == nil { return nil } - obj := new(BindImageMemoryInfo) - obj.ref767a2113 = (*C.VkBindImageMemoryInfo)(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 *BindImageMemoryInfo) PassRef() (*C.VkBindImageMemoryInfo, *cgoAllocMap) { +func (x *PhysicalDeviceShaderClockFeatures) PassRef() (*C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref767a2113 != nil { - return x.ref767a2113, nil + } else if x.refab512283 != nil { + return x.refab512283, nil } - mem767a2113 := allocBindImageMemoryInfoMemory(1) - ref767a2113 := (*C.VkBindImageMemoryInfo)(mem767a2113) - allocs767a2113 := new(cgoAllocMap) - allocs767a2113.Add(mem767a2113) + memab512283 := allocPhysicalDeviceShaderClockFeaturesMemory(1) + refab512283 := (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(memab512283) + allocsab512283 := new(cgoAllocMap) + allocsab512283.Add(memab512283) var csType_allocs *cgoAllocMap - ref767a2113.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs767a2113.Borrow(csType_allocs) + refab512283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsab512283.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref767a2113.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs767a2113.Borrow(cpNext_allocs) + refab512283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsab512283.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 cshaderSubgroupClock_allocs *cgoAllocMap + refab512283.shaderSubgroupClock, cshaderSubgroupClock_allocs = (C.VkBool32)(x.ShaderSubgroupClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderSubgroupClock_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref767a2113.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs767a2113.Borrow(cmemoryOffset_allocs) + var cshaderDeviceClock_allocs *cgoAllocMap + refab512283.shaderDeviceClock, cshaderDeviceClock_allocs = (C.VkBool32)(x.ShaderDeviceClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderDeviceClock_allocs) - x.ref767a2113 = ref767a2113 - x.allocs767a2113 = allocs767a2113 - return ref767a2113, allocs767a2113 + 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 BindImageMemoryInfo) PassValue() (C.VkBindImageMemoryInfo, *cgoAllocMap) { - if x.ref767a2113 != nil { - return *x.ref767a2113, nil +func (x PhysicalDeviceShaderClockFeatures) PassValue() (C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { + if x.refab512283 != nil { + return *x.refab512283, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13539,104 +38551,91 @@ 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 *PhysicalDeviceShaderClockFeatures) Deref() { + if x.refab512283 == 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.refab512283.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refab512283.pNext)) + x.ShaderSubgroupClock = (Bool32)(x.refab512283.shaderSubgroupClock) + x.ShaderDeviceClock = (Bool32)(x.refab512283.shaderDeviceClock) } -// allocPhysicalDevice16BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice16BitStorageFeatures in C. +// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoKHR 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()) +func allocDeviceQueueGlobalPriorityCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueGlobalPriorityCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevice16BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice16BitStorageFeatures{}) +const sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevice16BitStorageFeatures) Ref() *C.VkPhysicalDevice16BitStorageFeatures { +func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoKHR { if x == nil { return nil } - return x.refa90fed14 + 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 *PhysicalDevice16BitStorageFeatures) Free() { - if x != nil && x.allocsa90fed14 != nil { - x.allocsa90fed14.(*cgoAllocMap).Free() - x.refa90fed14 = nil +func (x *DeviceQueueGlobalPriorityCreateInfo) Free() { + if x != nil && x.allocsdf0afc28 != nil { + x.allocsdf0afc28.(*cgoAllocMap).Free() + x.refdf0afc28 = nil } } -// NewPhysicalDevice16BitStorageFeaturesRef 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 NewPhysicalDevice16BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice16BitStorageFeatures { +func NewDeviceQueueGlobalPriorityCreateInfoRef(ref unsafe.Pointer) *DeviceQueueGlobalPriorityCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDevice16BitStorageFeatures) - obj.refa90fed14 = (*C.VkPhysicalDevice16BitStorageFeatures)(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 *PhysicalDevice16BitStorageFeatures) PassRef() (*C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { +func (x *DeviceQueueGlobalPriorityCreateInfo) PassRef() (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa90fed14 != nil { - return x.refa90fed14, nil + } else if x.refdf0afc28 != nil { + return x.refdf0afc28, nil } - mema90fed14 := allocPhysicalDevice16BitStorageFeaturesMemory(1) - refa90fed14 := (*C.VkPhysicalDevice16BitStorageFeatures)(mema90fed14) - allocsa90fed14 := new(cgoAllocMap) - allocsa90fed14.Add(mema90fed14) + memdf0afc28 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) + refdf0afc28 := (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(memdf0afc28) + allocsdf0afc28 := new(cgoAllocMap) + allocsdf0afc28.Add(memdf0afc28) var csType_allocs *cgoAllocMap - refa90fed14.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa90fed14.Borrow(csType_allocs) + refdf0afc28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf0afc28.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) + refdf0afc28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf0afc28.Borrow(cpNext_allocs) - var cstorageInputOutput16_allocs *cgoAllocMap - refa90fed14.storageInputOutput16, cstorageInputOutput16_allocs = (C.VkBool32)(x.StorageInputOutput16), cgoAllocsUnknown - allocsa90fed14.Borrow(cstorageInputOutput16_allocs) + var cglobalPriority_allocs *cgoAllocMap + refdf0afc28.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityKHR)(x.GlobalPriority), cgoAllocsUnknown + allocsdf0afc28.Borrow(cglobalPriority_allocs) - x.refa90fed14 = refa90fed14 - x.allocsa90fed14 = allocsa90fed14 - return refa90fed14, allocsa90fed14 + 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 PhysicalDevice16BitStorageFeatures) PassValue() (C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { - if x.refa90fed14 != nil { - return *x.refa90fed14, nil +func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { + if x.refdf0afc28 != nil { + return *x.refdf0afc28, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13644,97 +38643,90 @@ 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 *DeviceQueueGlobalPriorityCreateInfo) Deref() { + if x.refdf0afc28 == 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.refdf0afc28.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf0afc28.pNext)) + x.GlobalPriority = (QueueGlobalPriority)(x.refdf0afc28.globalPriority) } -// allocMemoryDedicatedRequirementsMemory allocates memory for type C.VkMemoryDedicatedRequirements in C. +// allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR 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()) +func allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryDedicatedRequirementsValue = unsafe.Sizeof([1]C.VkMemoryDedicatedRequirements{}) +const sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryDedicatedRequirements) Ref() *C.VkMemoryDedicatedRequirements { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Ref() *C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { if x == nil { return nil } - return x.refaa924122 + 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 *MemoryDedicatedRequirements) Free() { - if x != nil && x.allocsaa924122 != nil { - x.allocsaa924122.(*cgoAllocMap).Free() - x.refaa924122 = nil +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Free() { + if x != nil && x.allocsa6f56699 != nil { + x.allocsa6f56699.(*cgoAllocMap).Free() + x.refa6f56699 = nil } } -// NewMemoryDedicatedRequirementsRef 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 NewMemoryDedicatedRequirementsRef(ref unsafe.Pointer) *MemoryDedicatedRequirements { +func NewPhysicalDeviceGlobalPriorityQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGlobalPriorityQueryFeatures { if ref == nil { return nil } - obj := new(MemoryDedicatedRequirements) - obj.refaa924122 = (*C.VkMemoryDedicatedRequirements)(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 *MemoryDedicatedRequirements) PassRef() (*C.VkMemoryDedicatedRequirements, *cgoAllocMap) { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) PassRef() (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaa924122 != nil { - return x.refaa924122, nil + } else if x.refa6f56699 != nil { + return x.refa6f56699, nil } - memaa924122 := allocMemoryDedicatedRequirementsMemory(1) - refaa924122 := (*C.VkMemoryDedicatedRequirements)(memaa924122) - allocsaa924122 := new(cgoAllocMap) - allocsaa924122.Add(memaa924122) + mema6f56699 := allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(1) + refa6f56699 := (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(mema6f56699) + allocsa6f56699 := new(cgoAllocMap) + allocsa6f56699.Add(mema6f56699) var csType_allocs *cgoAllocMap - refaa924122.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaa924122.Borrow(csType_allocs) + refa6f56699.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa6f56699.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) + refa6f56699.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa6f56699.Borrow(cpNext_allocs) - var crequiresDedicatedAllocation_allocs *cgoAllocMap - refaa924122.requiresDedicatedAllocation, crequiresDedicatedAllocation_allocs = (C.VkBool32)(x.RequiresDedicatedAllocation), cgoAllocsUnknown - allocsaa924122.Borrow(crequiresDedicatedAllocation_allocs) + var cglobalPriorityQuery_allocs *cgoAllocMap + refa6f56699.globalPriorityQuery, cglobalPriorityQuery_allocs = (C.VkBool32)(x.GlobalPriorityQuery), cgoAllocsUnknown + allocsa6f56699.Borrow(cglobalPriorityQuery_allocs) - x.refaa924122 = refaa924122 - x.allocsaa924122 = allocsaa924122 - return refaa924122, allocsaa924122 + 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 MemoryDedicatedRequirements) PassValue() (C.VkMemoryDedicatedRequirements, *cgoAllocMap) { - if x.refaa924122 != nil { - return *x.refaa924122, nil +func (x PhysicalDeviceGlobalPriorityQueryFeatures) PassValue() (C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { + if x.refa6f56699 != nil { + return *x.refa6f56699, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13742,95 +38734,94 @@ 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 *PhysicalDeviceGlobalPriorityQueryFeatures) Deref() { + if x.refa6f56699 == 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.refa6f56699.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6f56699.pNext)) + x.GlobalPriorityQuery = (Bool32)(x.refa6f56699.globalPriorityQuery) } -// allocMemoryDedicatedAllocateInfoMemory allocates memory for type C.VkMemoryDedicatedAllocateInfo in C. +// allocQueueFamilyGlobalPriorityPropertiesMemory allocates memory for type C.VkQueueFamilyGlobalPriorityPropertiesKHR 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()) +func allocQueueFamilyGlobalPriorityPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyGlobalPriorityPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryDedicatedAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryDedicatedAllocateInfo{}) +const sizeOfQueueFamilyGlobalPriorityPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyGlobalPriorityPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryDedicatedAllocateInfo) Ref() *C.VkMemoryDedicatedAllocateInfo { +func (x *QueueFamilyGlobalPriorityProperties) Ref() *C.VkQueueFamilyGlobalPriorityPropertiesKHR { if x == nil { return nil } - return x.reff8fabe62 + 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 *MemoryDedicatedAllocateInfo) Free() { - if x != nil && x.allocsf8fabe62 != nil { - x.allocsf8fabe62.(*cgoAllocMap).Free() - x.reff8fabe62 = nil +func (x *QueueFamilyGlobalPriorityProperties) Free() { + if x != nil && x.allocsf5bb6c4d != nil { + x.allocsf5bb6c4d.(*cgoAllocMap).Free() + x.reff5bb6c4d = nil } } -// NewMemoryDedicatedAllocateInfoRef 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 NewMemoryDedicatedAllocateInfoRef(ref unsafe.Pointer) *MemoryDedicatedAllocateInfo { +func NewQueueFamilyGlobalPriorityPropertiesRef(ref unsafe.Pointer) *QueueFamilyGlobalPriorityProperties { if ref == nil { return nil } - obj := new(MemoryDedicatedAllocateInfo) - obj.reff8fabe62 = (*C.VkMemoryDedicatedAllocateInfo)(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 *MemoryDedicatedAllocateInfo) PassRef() (*C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { +func (x *QueueFamilyGlobalPriorityProperties) PassRef() (*C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff8fabe62 != nil { - return x.reff8fabe62, nil + } else if x.reff5bb6c4d != nil { + return x.reff5bb6c4d, nil } - memf8fabe62 := allocMemoryDedicatedAllocateInfoMemory(1) - reff8fabe62 := (*C.VkMemoryDedicatedAllocateInfo)(memf8fabe62) - allocsf8fabe62 := new(cgoAllocMap) - allocsf8fabe62.Add(memf8fabe62) + memf5bb6c4d := allocQueueFamilyGlobalPriorityPropertiesMemory(1) + reff5bb6c4d := (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(memf5bb6c4d) + allocsf5bb6c4d := new(cgoAllocMap) + allocsf5bb6c4d.Add(memf5bb6c4d) var csType_allocs *cgoAllocMap - reff8fabe62.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf8fabe62.Borrow(csType_allocs) + reff5bb6c4d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff8fabe62.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cpNext_allocs) + reff5bb6c4d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - reff8fabe62.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cimage_allocs) + var cpriorityCount_allocs *cgoAllocMap + reff5bb6c4d.priorityCount, cpriorityCount_allocs = (C.uint32_t)(x.PriorityCount), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorityCount_allocs) - var cbuffer_allocs *cgoAllocMap - reff8fabe62.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cbuffer_allocs) + var cpriorities_allocs *cgoAllocMap + reff5bb6c4d.priorities, cpriorities_allocs = *(*[16]C.VkQueueGlobalPriorityKHR)(unsafe.Pointer(&x.Priorities)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorities_allocs) - x.reff8fabe62 = reff8fabe62 - x.allocsf8fabe62 = allocsf8fabe62 - return reff8fabe62, allocsf8fabe62 + 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 MemoryDedicatedAllocateInfo) PassValue() (C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { - if x.reff8fabe62 != nil { - return *x.reff8fabe62, nil +func (x QueueFamilyGlobalPriorityProperties) PassValue() (C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { + if x.reff5bb6c4d != nil { + return *x.reff5bb6c4d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13838,95 +38829,95 @@ 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 *QueueFamilyGlobalPriorityProperties) Deref() { + if x.reff5bb6c4d == 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.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)) } -// allocMemoryAllocateFlagsInfoMemory allocates memory for type C.VkMemoryAllocateFlagsInfo in C. +// allocFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkFragmentShadingRateAttachmentInfoKHR 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()) +func allocFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFragmentShadingRateAttachmentInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryAllocateFlagsInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateFlagsInfo{}) +const sizeOfFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkFragmentShadingRateAttachmentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryAllocateFlagsInfo) Ref() *C.VkMemoryAllocateFlagsInfo { +func (x *FragmentShadingRateAttachmentInfo) Ref() *C.VkFragmentShadingRateAttachmentInfoKHR { if x == nil { return nil } - return x.ref7ca6664 + 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 *MemoryAllocateFlagsInfo) Free() { - if x != nil && x.allocs7ca6664 != nil { - x.allocs7ca6664.(*cgoAllocMap).Free() - x.ref7ca6664 = nil +func (x *FragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocsd9f9d390 != nil { + x.allocsd9f9d390.(*cgoAllocMap).Free() + x.refd9f9d390 = nil } } -// NewMemoryAllocateFlagsInfoRef 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 NewMemoryAllocateFlagsInfoRef(ref unsafe.Pointer) *MemoryAllocateFlagsInfo { +func NewFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *FragmentShadingRateAttachmentInfo { if ref == nil { return nil } - obj := new(MemoryAllocateFlagsInfo) - obj.ref7ca6664 = (*C.VkMemoryAllocateFlagsInfo)(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 *MemoryAllocateFlagsInfo) PassRef() (*C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { +func (x *FragmentShadingRateAttachmentInfo) PassRef() (*C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ca6664 != nil { - return x.ref7ca6664, nil + } else if x.refd9f9d390 != nil { + return x.refd9f9d390, nil } - mem7ca6664 := allocMemoryAllocateFlagsInfoMemory(1) - ref7ca6664 := (*C.VkMemoryAllocateFlagsInfo)(mem7ca6664) - allocs7ca6664 := new(cgoAllocMap) - allocs7ca6664.Add(mem7ca6664) + memd9f9d390 := allocFragmentShadingRateAttachmentInfoMemory(1) + refd9f9d390 := (*C.VkFragmentShadingRateAttachmentInfoKHR)(memd9f9d390) + allocsd9f9d390 := new(cgoAllocMap) + allocsd9f9d390.Add(memd9f9d390) var csType_allocs *cgoAllocMap - ref7ca6664.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7ca6664.Borrow(csType_allocs) + refd9f9d390.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9f9d390.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7ca6664.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7ca6664.Borrow(cpNext_allocs) + refd9f9d390.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9f9d390.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref7ca6664.flags, cflags_allocs = (C.VkMemoryAllocateFlags)(x.Flags), cgoAllocsUnknown - allocs7ca6664.Borrow(cflags_allocs) + var cpFragmentShadingRateAttachment_allocs *cgoAllocMap + refd9f9d390.pFragmentShadingRateAttachment, cpFragmentShadingRateAttachment_allocs = unpackSAttachmentReference2(x.PFragmentShadingRateAttachment) + allocsd9f9d390.Borrow(cpFragmentShadingRateAttachment_allocs) - var cdeviceMask_allocs *cgoAllocMap - ref7ca6664.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocs7ca6664.Borrow(cdeviceMask_allocs) + var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap + refd9f9d390.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() + allocsd9f9d390.Borrow(cshadingRateAttachmentTexelSize_allocs) - x.ref7ca6664 = ref7ca6664 - x.allocs7ca6664 = allocs7ca6664 - return ref7ca6664, allocs7ca6664 + 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 MemoryAllocateFlagsInfo) PassValue() (C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { - if x.ref7ca6664 != nil { - return *x.ref7ca6664, nil +func (x FragmentShadingRateAttachmentInfo) PassValue() (C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.refd9f9d390 != nil { + return *x.refd9f9d390, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13934,99 +38925,95 @@ 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 *FragmentShadingRateAttachmentInfo) Deref() { + if x.refd9f9d390 == 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.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)) } -// allocDeviceGroupRenderPassBeginInfoMemory allocates memory for type C.VkDeviceGroupRenderPassBeginInfo in C. +// allocPipelineFragmentShadingRateStateCreateInfoMemory allocates memory for type C.VkPipelineFragmentShadingRateStateCreateInfoKHR 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()) +func allocPipelineFragmentShadingRateStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupRenderPassBeginInfo{}) +const sizeOfPipelineFragmentShadingRateStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateStateCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupRenderPassBeginInfo) Ref() *C.VkDeviceGroupRenderPassBeginInfo { +func (x *PipelineFragmentShadingRateStateCreateInfo) Ref() *C.VkPipelineFragmentShadingRateStateCreateInfoKHR { if x == nil { return nil } - return x.ref139f3599 + 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 *DeviceGroupRenderPassBeginInfo) Free() { - if x != nil && x.allocs139f3599 != nil { - x.allocs139f3599.(*cgoAllocMap).Free() - x.ref139f3599 = nil +func (x *PipelineFragmentShadingRateStateCreateInfo) Free() { + if x != nil && x.allocs47a79f27 != nil { + x.allocs47a79f27.(*cgoAllocMap).Free() + x.ref47a79f27 = nil } } -// NewDeviceGroupRenderPassBeginInfoRef 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 NewDeviceGroupRenderPassBeginInfoRef(ref unsafe.Pointer) *DeviceGroupRenderPassBeginInfo { +func NewPipelineFragmentShadingRateStateCreateInfoRef(ref unsafe.Pointer) *PipelineFragmentShadingRateStateCreateInfo { if ref == nil { return nil } - obj := new(DeviceGroupRenderPassBeginInfo) - obj.ref139f3599 = (*C.VkDeviceGroupRenderPassBeginInfo)(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 *DeviceGroupRenderPassBeginInfo) PassRef() (*C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { +func (x *PipelineFragmentShadingRateStateCreateInfo) PassRef() (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref139f3599 != nil { - return x.ref139f3599, nil + } else if x.ref47a79f27 != nil { + return x.ref47a79f27, nil } - mem139f3599 := allocDeviceGroupRenderPassBeginInfoMemory(1) - ref139f3599 := (*C.VkDeviceGroupRenderPassBeginInfo)(mem139f3599) - allocs139f3599 := new(cgoAllocMap) - allocs139f3599.Add(mem139f3599) + mem47a79f27 := allocPipelineFragmentShadingRateStateCreateInfoMemory(1) + ref47a79f27 := (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(mem47a79f27) + allocs47a79f27 := new(cgoAllocMap) + allocs47a79f27.Add(mem47a79f27) var csType_allocs *cgoAllocMap - ref139f3599.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs139f3599.Borrow(csType_allocs) + ref47a79f27.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs47a79f27.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref139f3599.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs139f3599.Borrow(cpNext_allocs) + ref47a79f27.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs47a79f27.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 cfragmentSize_allocs *cgoAllocMap + ref47a79f27.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() + allocs47a79f27.Borrow(cfragmentSize_allocs) - var cpDeviceRenderAreas_allocs *cgoAllocMap - ref139f3599.pDeviceRenderAreas, cpDeviceRenderAreas_allocs = unpackSRect2D(x.PDeviceRenderAreas) - allocs139f3599.Borrow(cpDeviceRenderAreas_allocs) + var ccombinerOps_allocs *cgoAllocMap + ref47a79f27.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown + allocs47a79f27.Borrow(ccombinerOps_allocs) - x.ref139f3599 = ref139f3599 - x.allocs139f3599 = allocs139f3599 - return ref139f3599, allocs139f3599 + 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 DeviceGroupRenderPassBeginInfo) PassValue() (C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { - if x.ref139f3599 != nil { - return *x.ref139f3599, nil +func (x PipelineFragmentShadingRateStateCreateInfo) PassValue() (C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { + if x.ref47a79f27 != nil { + return *x.ref47a79f27, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14034,92 +39021,99 @@ 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 *PipelineFragmentShadingRateStateCreateInfo) Deref() { + if x.ref47a79f27 == 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) + 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)) } -// allocDeviceGroupCommandBufferBeginInfoMemory allocates memory for type C.VkDeviceGroupCommandBufferBeginInfo in C. +// allocPhysicalDeviceFragmentShadingRateFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR 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()) +func allocPhysicalDeviceFragmentShadingRateFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupCommandBufferBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupCommandBufferBeginInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupCommandBufferBeginInfo) Ref() *C.VkDeviceGroupCommandBufferBeginInfo { +func (x *PhysicalDeviceFragmentShadingRateFeatures) Ref() *C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR { if x == nil { return nil } - return x.refb9a8f0cd + 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 *DeviceGroupCommandBufferBeginInfo) Free() { - if x != nil && x.allocsb9a8f0cd != nil { - x.allocsb9a8f0cd.(*cgoAllocMap).Free() - x.refb9a8f0cd = nil +func (x *PhysicalDeviceFragmentShadingRateFeatures) Free() { + if x != nil && x.allocs9041f272 != nil { + x.allocs9041f272.(*cgoAllocMap).Free() + x.ref9041f272 = nil } } -// NewDeviceGroupCommandBufferBeginInfoRef 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 NewDeviceGroupCommandBufferBeginInfoRef(ref unsafe.Pointer) *DeviceGroupCommandBufferBeginInfo { +func NewPhysicalDeviceFragmentShadingRateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateFeatures { if ref == nil { return nil } - obj := new(DeviceGroupCommandBufferBeginInfo) - obj.refb9a8f0cd = (*C.VkDeviceGroupCommandBufferBeginInfo)(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 *DeviceGroupCommandBufferBeginInfo) PassRef() (*C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb9a8f0cd != nil { - return x.refb9a8f0cd, nil + } else if x.ref9041f272 != nil { + return x.ref9041f272, nil } - memb9a8f0cd := allocDeviceGroupCommandBufferBeginInfoMemory(1) - refb9a8f0cd := (*C.VkDeviceGroupCommandBufferBeginInfo)(memb9a8f0cd) - allocsb9a8f0cd := new(cgoAllocMap) - allocsb9a8f0cd.Add(memb9a8f0cd) + mem9041f272 := allocPhysicalDeviceFragmentShadingRateFeaturesMemory(1) + ref9041f272 := (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(mem9041f272) + allocs9041f272 := new(cgoAllocMap) + allocs9041f272.Add(mem9041f272) var csType_allocs *cgoAllocMap - refb9a8f0cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(csType_allocs) + ref9041f272.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9041f272.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb9a8f0cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(cpNext_allocs) + ref9041f272.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9041f272.Borrow(cpNext_allocs) - var cdeviceMask_allocs *cgoAllocMap - refb9a8f0cd.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(cdeviceMask_allocs) + var cpipelineFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.pipelineFragmentShadingRate, cpipelineFragmentShadingRate_allocs = (C.VkBool32)(x.PipelineFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cpipelineFragmentShadingRate_allocs) - x.refb9a8f0cd = refb9a8f0cd - x.allocsb9a8f0cd = allocsb9a8f0cd - return refb9a8f0cd, allocsb9a8f0cd + var cprimitiveFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.primitiveFragmentShadingRate, cprimitiveFragmentShadingRate_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cprimitiveFragmentShadingRate_allocs) + + 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 DeviceGroupCommandBufferBeginInfo) PassValue() (C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { - if x.refb9a8f0cd != nil { - return *x.refb9a8f0cd, nil +func (x PhysicalDeviceFragmentShadingRateFeatures) PassValue() (C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { + if x.ref9041f272 != nil { + return *x.ref9041f272, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14127,110 +39121,156 @@ 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 *PhysicalDeviceFragmentShadingRateFeatures) Deref() { + if x.ref9041f272 == 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.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) } -// allocDeviceGroupSubmitInfoMemory allocates memory for type C.VkDeviceGroupSubmitInfo in C. +// allocPhysicalDeviceFragmentShadingRatePropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR 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()) +func allocPhysicalDeviceFragmentShadingRatePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupSubmitInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSubmitInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupSubmitInfo) Ref() *C.VkDeviceGroupSubmitInfo { +func (x *PhysicalDeviceFragmentShadingRateProperties) Ref() *C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR { if x == nil { return nil } - return x.refea4e7ce4 + 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 *DeviceGroupSubmitInfo) Free() { - if x != nil && x.allocsea4e7ce4 != nil { - x.allocsea4e7ce4.(*cgoAllocMap).Free() - x.refea4e7ce4 = nil +func (x *PhysicalDeviceFragmentShadingRateProperties) Free() { + if x != nil && x.allocs518beb != nil { + x.allocs518beb.(*cgoAllocMap).Free() + x.ref518beb = nil } } -// NewDeviceGroupSubmitInfoRef 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 NewDeviceGroupSubmitInfoRef(ref unsafe.Pointer) *DeviceGroupSubmitInfo { +func NewPhysicalDeviceFragmentShadingRatePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateProperties { if ref == nil { return nil } - obj := new(DeviceGroupSubmitInfo) - obj.refea4e7ce4 = (*C.VkDeviceGroupSubmitInfo)(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 *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateProperties) PassRef() (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea4e7ce4 != nil { - return x.refea4e7ce4, nil + } else if x.ref518beb != nil { + return x.ref518beb, nil } - memea4e7ce4 := allocDeviceGroupSubmitInfoMemory(1) - refea4e7ce4 := (*C.VkDeviceGroupSubmitInfo)(memea4e7ce4) - allocsea4e7ce4 := new(cgoAllocMap) - allocsea4e7ce4.Add(memea4e7ce4) + mem518beb := allocPhysicalDeviceFragmentShadingRatePropertiesMemory(1) + ref518beb := (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(mem518beb) + allocs518beb := new(cgoAllocMap) + allocs518beb.Add(mem518beb) var csType_allocs *cgoAllocMap - refea4e7ce4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea4e7ce4.Borrow(csType_allocs) + ref518beb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs518beb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea4e7ce4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cpNext_allocs) + ref518beb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs518beb.Borrow(cpNext_allocs) - var cwaitSemaphoreCount_allocs *cgoAllocMap - refea4e7ce4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cwaitSemaphoreCount_allocs) + var cminFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.minFragmentShadingRateAttachmentTexelSize, cminFragmentShadingRateAttachmentTexelSize_allocs = x.MinFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cminFragmentShadingRateAttachmentTexelSize_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 cmaxFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSize, cmaxFragmentShadingRateAttachmentTexelSize_allocs = x.MaxFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSize_allocs) - var ccommandBufferCount_allocs *cgoAllocMap - refea4e7ce4.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(ccommandBufferCount_allocs) + var cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSizeAspectRatio, cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs = (C.uint32_t)(x.MaxFragmentShadingRateAttachmentTexelSizeAspectRatio), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_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 cprimitiveFragmentShadingRateWithMultipleViewports_allocs *cgoAllocMap + ref518beb.primitiveFragmentShadingRateWithMultipleViewports, cprimitiveFragmentShadingRateWithMultipleViewports_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRateWithMultipleViewports), cgoAllocsUnknown + allocs518beb.Borrow(cprimitiveFragmentShadingRateWithMultipleViewports_allocs) - var csignalSemaphoreCount_allocs *cgoAllocMap - refea4e7ce4.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(csignalSemaphoreCount_allocs) + var clayeredShadingRateAttachments_allocs *cgoAllocMap + ref518beb.layeredShadingRateAttachments, clayeredShadingRateAttachments_allocs = (C.VkBool32)(x.LayeredShadingRateAttachments), cgoAllocsUnknown + allocs518beb.Borrow(clayeredShadingRateAttachments_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 cfragmentShadingRateNonTrivialCombinerOps_allocs *cgoAllocMap + ref518beb.fragmentShadingRateNonTrivialCombinerOps, cfragmentShadingRateNonTrivialCombinerOps_allocs = (C.VkBool32)(x.FragmentShadingRateNonTrivialCombinerOps), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateNonTrivialCombinerOps_allocs) - x.refea4e7ce4 = refea4e7ce4 - x.allocsea4e7ce4 = allocsea4e7ce4 - return refea4e7ce4, allocsea4e7ce4 + 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 DeviceGroupSubmitInfo) PassValue() (C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { - if x.refea4e7ce4 != nil { - return *x.refea4e7ce4, nil +func (x PhysicalDeviceFragmentShadingRateProperties) PassValue() (C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { + if x.ref518beb != nil { + return *x.ref518beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14238,111 +39278,110 @@ 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 *PhysicalDeviceFragmentShadingRateProperties) Deref() { + if x.ref518beb == 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. + 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 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()) +func allocPhysicalDeviceFragmentShadingRateMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupBindSparseInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupBindSparseInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRateValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupBindSparseInfo) Ref() *C.VkDeviceGroupBindSparseInfo { +func (x *PhysicalDeviceFragmentShadingRate) Ref() *C.VkPhysicalDeviceFragmentShadingRateKHR { if x == nil { return nil } - return x.ref5b5446cd + 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 *DeviceGroupBindSparseInfo) Free() { - if x != nil && x.allocs5b5446cd != nil { - x.allocs5b5446cd.(*cgoAllocMap).Free() - x.ref5b5446cd = nil +func (x *PhysicalDeviceFragmentShadingRate) Free() { + if x != nil && x.allocs17914e16 != nil { + x.allocs17914e16.(*cgoAllocMap).Free() + x.ref17914e16 = nil } } -// NewDeviceGroupBindSparseInfoRef 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 NewDeviceGroupBindSparseInfoRef(ref unsafe.Pointer) *DeviceGroupBindSparseInfo { +func NewPhysicalDeviceFragmentShadingRateRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRate { if ref == nil { return nil } - obj := new(DeviceGroupBindSparseInfo) - obj.ref5b5446cd = (*C.VkDeviceGroupBindSparseInfo)(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 *DeviceGroupBindSparseInfo) PassRef() (*C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRate) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5b5446cd != nil { - return x.ref5b5446cd, nil + } else if x.ref17914e16 != nil { + return x.ref17914e16, nil } - mem5b5446cd := allocDeviceGroupBindSparseInfoMemory(1) - ref5b5446cd := (*C.VkDeviceGroupBindSparseInfo)(mem5b5446cd) - allocs5b5446cd := new(cgoAllocMap) - allocs5b5446cd.Add(mem5b5446cd) + mem17914e16 := allocPhysicalDeviceFragmentShadingRateMemory(1) + ref17914e16 := (*C.VkPhysicalDeviceFragmentShadingRateKHR)(mem17914e16) + allocs17914e16 := new(cgoAllocMap) + allocs17914e16.Add(mem17914e16) var csType_allocs *cgoAllocMap - ref5b5446cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5b5446cd.Borrow(csType_allocs) + ref17914e16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17914e16.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5b5446cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5b5446cd.Borrow(cpNext_allocs) + ref17914e16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17914e16.Borrow(cpNext_allocs) - var cresourceDeviceIndex_allocs *cgoAllocMap - ref5b5446cd.resourceDeviceIndex, cresourceDeviceIndex_allocs = (C.uint32_t)(x.ResourceDeviceIndex), cgoAllocsUnknown - allocs5b5446cd.Borrow(cresourceDeviceIndex_allocs) + var csampleCounts_allocs *cgoAllocMap + ref17914e16.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown + allocs17914e16.Borrow(csampleCounts_allocs) - var cmemoryDeviceIndex_allocs *cgoAllocMap - ref5b5446cd.memoryDeviceIndex, cmemoryDeviceIndex_allocs = (C.uint32_t)(x.MemoryDeviceIndex), cgoAllocsUnknown - allocs5b5446cd.Borrow(cmemoryDeviceIndex_allocs) + var cfragmentSize_allocs *cgoAllocMap + ref17914e16.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() + allocs17914e16.Borrow(cfragmentSize_allocs) - x.ref5b5446cd = ref5b5446cd - x.allocs5b5446cd = allocs5b5446cd - return ref5b5446cd, allocs5b5446cd + 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 DeviceGroupBindSparseInfo) PassValue() (C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { - if x.ref5b5446cd != nil { - return *x.ref5b5446cd, nil +func (x PhysicalDeviceFragmentShadingRate) PassValue() (C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { + if x.ref17914e16 != nil { + return *x.ref17914e16, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14350,95 +39389,91 @@ 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 *PhysicalDeviceFragmentShadingRate) Deref() { + if x.ref17914e16 == 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.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)) } -// allocBindBufferMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindBufferMemoryDeviceGroupInfo in C. +// allocSurfaceProtectedCapabilitiesMemory allocates memory for type C.VkSurfaceProtectedCapabilitiesKHR 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()) +func allocSurfaceProtectedCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceProtectedCapabilitiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindBufferMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryDeviceGroupInfo{}) +const sizeOfSurfaceProtectedCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceProtectedCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindBufferMemoryDeviceGroupInfo) Ref() *C.VkBindBufferMemoryDeviceGroupInfo { +func (x *SurfaceProtectedCapabilities) Ref() *C.VkSurfaceProtectedCapabilitiesKHR { if x == nil { return nil } - return x.reff136b64f + 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 *BindBufferMemoryDeviceGroupInfo) Free() { - if x != nil && x.allocsf136b64f != nil { - x.allocsf136b64f.(*cgoAllocMap).Free() - x.reff136b64f = nil +func (x *SurfaceProtectedCapabilities) Free() { + if x != nil && x.allocsa5f4111 != nil { + x.allocsa5f4111.(*cgoAllocMap).Free() + x.refa5f4111 = nil } } -// NewBindBufferMemoryDeviceGroupInfoRef 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 NewBindBufferMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindBufferMemoryDeviceGroupInfo { +func NewSurfaceProtectedCapabilitiesRef(ref unsafe.Pointer) *SurfaceProtectedCapabilities { if ref == nil { return nil } - obj := new(BindBufferMemoryDeviceGroupInfo) - obj.reff136b64f = (*C.VkBindBufferMemoryDeviceGroupInfo)(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 *BindBufferMemoryDeviceGroupInfo) PassRef() (*C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { +func (x *SurfaceProtectedCapabilities) PassRef() (*C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff136b64f != nil { - return x.reff136b64f, nil + } else if x.refa5f4111 != nil { + return x.refa5f4111, nil } - memf136b64f := allocBindBufferMemoryDeviceGroupInfoMemory(1) - reff136b64f := (*C.VkBindBufferMemoryDeviceGroupInfo)(memf136b64f) - allocsf136b64f := new(cgoAllocMap) - allocsf136b64f.Add(memf136b64f) + mema5f4111 := allocSurfaceProtectedCapabilitiesMemory(1) + refa5f4111 := (*C.VkSurfaceProtectedCapabilitiesKHR)(mema5f4111) + allocsa5f4111 := new(cgoAllocMap) + allocsa5f4111.Add(mema5f4111) var csType_allocs *cgoAllocMap - reff136b64f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf136b64f.Borrow(csType_allocs) + refa5f4111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa5f4111.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) + refa5f4111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa5f4111.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 csupportsProtected_allocs *cgoAllocMap + refa5f4111.supportsProtected, csupportsProtected_allocs = (C.VkBool32)(x.SupportsProtected), cgoAllocsUnknown + allocsa5f4111.Borrow(csupportsProtected_allocs) - x.reff136b64f = reff136b64f - x.allocsf136b64f = allocsf136b64f - return reff136b64f, allocsf136b64f + 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 BindBufferMemoryDeviceGroupInfo) PassValue() (C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { - if x.reff136b64f != nil { - return *x.reff136b64f, nil +func (x SurfaceProtectedCapabilities) PassValue() (C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { + if x.refa5f4111 != nil { + return *x.refa5f4111, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14446,107 +39481,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 *SurfaceProtectedCapabilities) Deref() { + if x.refa5f4111 == 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.refa5f4111.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa5f4111.pNext)) + x.SupportsProtected = (Bool32)(x.refa5f4111.supportsProtected) } -// allocBindImageMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindImageMemoryDeviceGroupInfo in C. +// allocPhysicalDevicePresentWaitFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentWaitFeaturesKHR 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()) +func allocPhysicalDevicePresentWaitFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentWaitFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindImageMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryDeviceGroupInfo{}) +const sizeOfPhysicalDevicePresentWaitFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentWaitFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemoryDeviceGroupInfo) Ref() *C.VkBindImageMemoryDeviceGroupInfo { +func (x *PhysicalDevicePresentWaitFeatures) Ref() *C.VkPhysicalDevicePresentWaitFeaturesKHR { if x == nil { return nil } - return x.ref24f026a5 + 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 *BindImageMemoryDeviceGroupInfo) Free() { - if x != nil && x.allocs24f026a5 != nil { - x.allocs24f026a5.(*cgoAllocMap).Free() - x.ref24f026a5 = nil +func (x *PhysicalDevicePresentWaitFeatures) Free() { + if x != nil && x.allocs1cd9c482 != nil { + x.allocs1cd9c482.(*cgoAllocMap).Free() + x.ref1cd9c482 = nil } } -// NewBindImageMemoryDeviceGroupInfoRef 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 NewBindImageMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindImageMemoryDeviceGroupInfo { +func NewPhysicalDevicePresentWaitFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentWaitFeatures { if ref == nil { return nil } - obj := new(BindImageMemoryDeviceGroupInfo) - obj.ref24f026a5 = (*C.VkBindImageMemoryDeviceGroupInfo)(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 *BindImageMemoryDeviceGroupInfo) PassRef() (*C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { +func (x *PhysicalDevicePresentWaitFeatures) PassRef() (*C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref24f026a5 != nil { - return x.ref24f026a5, nil + } else if x.ref1cd9c482 != nil { + return x.ref1cd9c482, nil } - mem24f026a5 := allocBindImageMemoryDeviceGroupInfoMemory(1) - ref24f026a5 := (*C.VkBindImageMemoryDeviceGroupInfo)(mem24f026a5) - allocs24f026a5 := new(cgoAllocMap) - allocs24f026a5.Add(mem24f026a5) + mem1cd9c482 := allocPhysicalDevicePresentWaitFeaturesMemory(1) + ref1cd9c482 := (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(mem1cd9c482) + allocs1cd9c482 := new(cgoAllocMap) + allocs1cd9c482.Add(mem1cd9c482) var csType_allocs *cgoAllocMap - ref24f026a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs24f026a5.Borrow(csType_allocs) + ref1cd9c482.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cd9c482.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) + ref1cd9c482.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpNext_allocs) - var cpSplitInstanceBindRegions_allocs *cgoAllocMap - ref24f026a5.pSplitInstanceBindRegions, cpSplitInstanceBindRegions_allocs = unpackSRect2D(x.PSplitInstanceBindRegions) - allocs24f026a5.Borrow(cpSplitInstanceBindRegions_allocs) + var cpresentWait_allocs *cgoAllocMap + ref1cd9c482.presentWait, cpresentWait_allocs = (C.VkBool32)(x.PresentWait), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpresentWait_allocs) - x.ref24f026a5 = ref24f026a5 - x.allocs24f026a5 = allocs24f026a5 - return ref24f026a5, allocs24f026a5 + 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 BindImageMemoryDeviceGroupInfo) PassValue() (C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { - if x.ref24f026a5 != nil { - return *x.ref24f026a5, nil +func (x PhysicalDevicePresentWaitFeatures) PassValue() (C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { + if x.ref1cd9c482 != nil { + return *x.ref1cd9c482, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14554,105 +39572,90 @@ 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 *PhysicalDevicePresentWaitFeatures) Deref() { + if x.ref1cd9c482 == 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.ref1cd9c482.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1cd9c482.pNext)) + x.PresentWait = (Bool32)(x.ref1cd9c482.presentWait) } -// allocPhysicalDeviceGroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceGroupProperties in C. +// allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR 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()) +func allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceGroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGroupProperties{}) +const sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceGroupProperties) Ref() *C.VkPhysicalDeviceGroupProperties { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Ref() *C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { if x == nil { return nil } - return x.ref2aa9a663 + 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 *PhysicalDeviceGroupProperties) Free() { - if x != nil && x.allocs2aa9a663 != nil { - x.allocs2aa9a663.(*cgoAllocMap).Free() - x.ref2aa9a663 = nil +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Free() { + if x != nil && x.allocs84acf0e1 != nil { + x.allocs84acf0e1.(*cgoAllocMap).Free() + x.ref84acf0e1 = nil } } -// NewPhysicalDeviceGroupPropertiesRef 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 NewPhysicalDeviceGroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceGroupProperties { +func NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineExecutablePropertiesFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceGroupProperties) - obj.ref2aa9a663 = (*C.VkPhysicalDeviceGroupProperties)(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 *PhysicalDeviceGroupProperties) PassRef() (*C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) PassRef() (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2aa9a663 != nil { - return x.ref2aa9a663, nil + } else if x.ref84acf0e1 != nil { + return x.ref84acf0e1, nil } - mem2aa9a663 := allocPhysicalDeviceGroupPropertiesMemory(1) - ref2aa9a663 := (*C.VkPhysicalDeviceGroupProperties)(mem2aa9a663) - allocs2aa9a663 := new(cgoAllocMap) - allocs2aa9a663.Add(mem2aa9a663) + mem84acf0e1 := allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(1) + ref84acf0e1 := (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(mem84acf0e1) + allocs84acf0e1 := new(cgoAllocMap) + allocs84acf0e1.Add(mem84acf0e1) var csType_allocs *cgoAllocMap - ref2aa9a663.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2aa9a663.Borrow(csType_allocs) + ref84acf0e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs84acf0e1.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) + ref84acf0e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpNext_allocs) - var csubsetAllocation_allocs *cgoAllocMap - ref2aa9a663.subsetAllocation, csubsetAllocation_allocs = (C.VkBool32)(x.SubsetAllocation), cgoAllocsUnknown - allocs2aa9a663.Borrow(csubsetAllocation_allocs) + var cpipelineExecutableInfo_allocs *cgoAllocMap + ref84acf0e1.pipelineExecutableInfo, cpipelineExecutableInfo_allocs = (C.VkBool32)(x.PipelineExecutableInfo), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpipelineExecutableInfo_allocs) - x.ref2aa9a663 = ref2aa9a663 - x.allocs2aa9a663 = allocs2aa9a663 - return ref2aa9a663, allocs2aa9a663 + 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 PhysicalDeviceGroupProperties) PassValue() (C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { - if x.ref2aa9a663 != nil { - return *x.ref2aa9a663, nil +func (x PhysicalDevicePipelineExecutablePropertiesFeatures) PassValue() (C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { + if x.ref84acf0e1 != nil { + return *x.ref84acf0e1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14660,96 +39663,90 @@ 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 *PhysicalDevicePipelineExecutablePropertiesFeatures) Deref() { + if x.ref84acf0e1 == 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.ref84acf0e1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref84acf0e1.pNext)) + x.PipelineExecutableInfo = (Bool32)(x.ref84acf0e1.pipelineExecutableInfo) } -// allocDeviceGroupDeviceCreateInfoMemory allocates memory for type C.VkDeviceGroupDeviceCreateInfo in C. +// allocPipelineInfoMemory allocates memory for type C.VkPipelineInfoKHR 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()) +func allocPipelineInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupDeviceCreateInfo{}) +const sizeOfPipelineInfoValue = unsafe.Sizeof([1]C.VkPipelineInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupDeviceCreateInfo) Ref() *C.VkDeviceGroupDeviceCreateInfo { +func (x *PipelineInfo) Ref() *C.VkPipelineInfoKHR { if x == nil { return nil } - return x.refb2275723 + 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 *DeviceGroupDeviceCreateInfo) Free() { - if x != nil && x.allocsb2275723 != nil { - x.allocsb2275723.(*cgoAllocMap).Free() - x.refb2275723 = nil +func (x *PipelineInfo) Free() { + if x != nil && x.allocscd879ca1 != nil { + x.allocscd879ca1.(*cgoAllocMap).Free() + x.refcd879ca1 = nil } } -// NewDeviceGroupDeviceCreateInfoRef 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 NewDeviceGroupDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceGroupDeviceCreateInfo { +func NewPipelineInfoRef(ref unsafe.Pointer) *PipelineInfo { if ref == nil { return nil } - obj := new(DeviceGroupDeviceCreateInfo) - obj.refb2275723 = (*C.VkDeviceGroupDeviceCreateInfo)(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 *DeviceGroupDeviceCreateInfo) PassRef() (*C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { +func (x *PipelineInfo) PassRef() (*C.VkPipelineInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb2275723 != nil { - return x.refb2275723, nil + } else if x.refcd879ca1 != nil { + return x.refcd879ca1, nil } - memb2275723 := allocDeviceGroupDeviceCreateInfoMemory(1) - refb2275723 := (*C.VkDeviceGroupDeviceCreateInfo)(memb2275723) - allocsb2275723 := new(cgoAllocMap) - allocsb2275723.Add(memb2275723) + memcd879ca1 := allocPipelineInfoMemory(1) + refcd879ca1 := (*C.VkPipelineInfoKHR)(memcd879ca1) + allocscd879ca1 := new(cgoAllocMap) + allocscd879ca1.Add(memcd879ca1) var csType_allocs *cgoAllocMap - refb2275723.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb2275723.Borrow(csType_allocs) + refcd879ca1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd879ca1.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) + refcd879ca1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpNext_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 cpipeline_allocs *cgoAllocMap + refcd879ca1.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpipeline_allocs) - x.refb2275723 = refb2275723 - x.allocsb2275723 = allocsb2275723 - return refb2275723, allocsb2275723 + 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 DeviceGroupDeviceCreateInfo) PassValue() (C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { - if x.refb2275723 != nil { - return *x.refb2275723, nil +func (x PipelineInfo) PassValue() (C.VkPipelineInfoKHR, *cgoAllocMap) { + if x.refcd879ca1 != nil { + return *x.refcd879ca1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14757,95 +39754,102 @@ 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 { - 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 = ? - +func (x *PipelineInfo) Deref() { + if x.refcd879ca1 == nil { + return + } + x.SType = (StructureType)(x.refcd879ca1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd879ca1.pNext)) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refcd879ca1.pipeline)) } -// allocBufferMemoryRequirementsInfo2Memory allocates memory for type C.VkBufferMemoryRequirementsInfo2 in C. +// allocPipelineExecutablePropertiesMemory allocates memory for type C.VkPipelineExecutablePropertiesKHR 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()) +func allocPipelineExecutablePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutablePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBufferMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkBufferMemoryRequirementsInfo2{}) +const sizeOfPipelineExecutablePropertiesValue = unsafe.Sizeof([1]C.VkPipelineExecutablePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferMemoryRequirementsInfo2) Ref() *C.VkBufferMemoryRequirementsInfo2 { +func (x *PipelineExecutableProperties) Ref() *C.VkPipelineExecutablePropertiesKHR { if x == nil { return nil } - return x.reff54a2a42 + 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 *BufferMemoryRequirementsInfo2) Free() { - if x != nil && x.allocsf54a2a42 != nil { - x.allocsf54a2a42.(*cgoAllocMap).Free() - x.reff54a2a42 = nil +func (x *PipelineExecutableProperties) Free() { + if x != nil && x.allocs4eb592a4 != nil { + x.allocs4eb592a4.(*cgoAllocMap).Free() + x.ref4eb592a4 = nil } } -// NewBufferMemoryRequirementsInfo2Ref 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 NewBufferMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *BufferMemoryRequirementsInfo2 { +func NewPipelineExecutablePropertiesRef(ref unsafe.Pointer) *PipelineExecutableProperties { if ref == nil { return nil } - obj := new(BufferMemoryRequirementsInfo2) - obj.reff54a2a42 = (*C.VkBufferMemoryRequirementsInfo2)(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 *BufferMemoryRequirementsInfo2) PassRef() (*C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineExecutableProperties) PassRef() (*C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff54a2a42 != nil { - return x.reff54a2a42, nil + } else if x.ref4eb592a4 != nil { + return x.ref4eb592a4, nil } - memf54a2a42 := allocBufferMemoryRequirementsInfo2Memory(1) - reff54a2a42 := (*C.VkBufferMemoryRequirementsInfo2)(memf54a2a42) - allocsf54a2a42 := new(cgoAllocMap) - allocsf54a2a42.Add(memf54a2a42) + mem4eb592a4 := allocPipelineExecutablePropertiesMemory(1) + ref4eb592a4 := (*C.VkPipelineExecutablePropertiesKHR)(mem4eb592a4) + allocs4eb592a4 := new(cgoAllocMap) + allocs4eb592a4.Add(mem4eb592a4) var csType_allocs *cgoAllocMap - reff54a2a42.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf54a2a42.Borrow(csType_allocs) + ref4eb592a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4eb592a4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff54a2a42.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf54a2a42.Borrow(cpNext_allocs) + ref4eb592a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - reff54a2a42.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsf54a2a42.Borrow(cbuffer_allocs) + var cstages_allocs *cgoAllocMap + ref4eb592a4.stages, cstages_allocs = (C.VkShaderStageFlags)(x.Stages), cgoAllocsUnknown + allocs4eb592a4.Borrow(cstages_allocs) - x.reff54a2a42 = reff54a2a42 - x.allocsf54a2a42 = allocsf54a2a42 - return reff54a2a42, allocsf54a2a42 + var cname_allocs *cgoAllocMap + ref4eb592a4.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cname_allocs) + + var cdescription_allocs *cgoAllocMap + ref4eb592a4.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cdescription_allocs) + + 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 BufferMemoryRequirementsInfo2) PassValue() (C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { - if x.reff54a2a42 != nil { - return *x.reff54a2a42, nil +func (x PipelineExecutableProperties) PassValue() (C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { + if x.ref4eb592a4 != nil { + return *x.ref4eb592a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14853,90 +39857,97 @@ 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 *PipelineExecutableProperties) Deref() { + if x.ref4eb592a4 == 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.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) } -// allocImageMemoryRequirementsInfo2Memory allocates memory for type C.VkImageMemoryRequirementsInfo2 in C. +// allocPipelineExecutableInfoMemory allocates memory for type C.VkPipelineExecutableInfoKHR 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()) +func allocPipelineExecutableInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageMemoryRequirementsInfo2{}) +const sizeOfPipelineExecutableInfoValue = unsafe.Sizeof([1]C.VkPipelineExecutableInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageMemoryRequirementsInfo2) Ref() *C.VkImageMemoryRequirementsInfo2 { +func (x *PipelineExecutableInfo) Ref() *C.VkPipelineExecutableInfoKHR { if x == nil { return nil } - return x.ref75b3ca05 + 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 *ImageMemoryRequirementsInfo2) Free() { - if x != nil && x.allocs75b3ca05 != nil { - x.allocs75b3ca05.(*cgoAllocMap).Free() - x.ref75b3ca05 = nil +func (x *PipelineExecutableInfo) Free() { + if x != nil && x.allocs9b891dad != nil { + x.allocs9b891dad.(*cgoAllocMap).Free() + x.ref9b891dad = nil } } -// NewImageMemoryRequirementsInfo2Ref 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 NewImageMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageMemoryRequirementsInfo2 { +func NewPipelineExecutableInfoRef(ref unsafe.Pointer) *PipelineExecutableInfo { if ref == nil { return nil } - obj := new(ImageMemoryRequirementsInfo2) - obj.ref75b3ca05 = (*C.VkImageMemoryRequirementsInfo2)(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 *ImageMemoryRequirementsInfo2) PassRef() (*C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineExecutableInfo) PassRef() (*C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75b3ca05 != nil { - return x.ref75b3ca05, nil + } else if x.ref9b891dad != nil { + return x.ref9b891dad, nil } - mem75b3ca05 := allocImageMemoryRequirementsInfo2Memory(1) - ref75b3ca05 := (*C.VkImageMemoryRequirementsInfo2)(mem75b3ca05) - allocs75b3ca05 := new(cgoAllocMap) - allocs75b3ca05.Add(mem75b3ca05) + mem9b891dad := allocPipelineExecutableInfoMemory(1) + ref9b891dad := (*C.VkPipelineExecutableInfoKHR)(mem9b891dad) + allocs9b891dad := new(cgoAllocMap) + allocs9b891dad.Add(mem9b891dad) var csType_allocs *cgoAllocMap - ref75b3ca05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75b3ca05.Borrow(csType_allocs) + ref9b891dad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9b891dad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75b3ca05.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75b3ca05.Borrow(cpNext_allocs) + ref9b891dad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref75b3ca05.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs75b3ca05.Borrow(cimage_allocs) + var cpipeline_allocs *cgoAllocMap + ref9b891dad.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpipeline_allocs) - x.ref75b3ca05 = ref75b3ca05 - x.allocs75b3ca05 = allocs75b3ca05 - return ref75b3ca05, allocs75b3ca05 + var cexecutableIndex_allocs *cgoAllocMap + ref9b891dad.executableIndex, cexecutableIndex_allocs = (C.uint32_t)(x.ExecutableIndex), cgoAllocsUnknown + allocs9b891dad.Borrow(cexecutableIndex_allocs) + + 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 ImageMemoryRequirementsInfo2) PassValue() (C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { - if x.ref75b3ca05 != nil { - return *x.ref75b3ca05, nil +func (x PipelineExecutableInfo) PassValue() (C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { + if x.ref9b891dad != nil { + return *x.ref9b891dad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14944,90 +39955,103 @@ 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 *PipelineExecutableInfo) Deref() { + if x.ref9b891dad == 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.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) } -// allocImageSparseMemoryRequirementsInfo2Memory allocates memory for type C.VkImageSparseMemoryRequirementsInfo2 in C. +// allocPipelineExecutableStatisticMemory allocates memory for type C.VkPipelineExecutableStatisticKHR 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()) +func allocPipelineExecutableStatisticMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableStatisticValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageSparseMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageSparseMemoryRequirementsInfo2{}) +const sizeOfPipelineExecutableStatisticValue = unsafe.Sizeof([1]C.VkPipelineExecutableStatisticKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSparseMemoryRequirementsInfo2) Ref() *C.VkImageSparseMemoryRequirementsInfo2 { +func (x *PipelineExecutableStatistic) Ref() *C.VkPipelineExecutableStatisticKHR { if x == nil { return nil } - return x.ref878956f7 + 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 *ImageSparseMemoryRequirementsInfo2) Free() { - if x != nil && x.allocs878956f7 != nil { - x.allocs878956f7.(*cgoAllocMap).Free() - x.ref878956f7 = nil +func (x *PipelineExecutableStatistic) Free() { + if x != nil && x.allocs4af1a62c != nil { + x.allocs4af1a62c.(*cgoAllocMap).Free() + x.ref4af1a62c = nil } } -// NewImageSparseMemoryRequirementsInfo2Ref 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 NewImageSparseMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageSparseMemoryRequirementsInfo2 { +func NewPipelineExecutableStatisticRef(ref unsafe.Pointer) *PipelineExecutableStatistic { if ref == nil { return nil } - obj := new(ImageSparseMemoryRequirementsInfo2) - obj.ref878956f7 = (*C.VkImageSparseMemoryRequirementsInfo2)(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 *ImageSparseMemoryRequirementsInfo2) PassRef() (*C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineExecutableStatistic) PassRef() (*C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref878956f7 != nil { - return x.ref878956f7, nil + } else if x.ref4af1a62c != nil { + return x.ref4af1a62c, nil } - mem878956f7 := allocImageSparseMemoryRequirementsInfo2Memory(1) - ref878956f7 := (*C.VkImageSparseMemoryRequirementsInfo2)(mem878956f7) - allocs878956f7 := new(cgoAllocMap) - allocs878956f7.Add(mem878956f7) + mem4af1a62c := allocPipelineExecutableStatisticMemory(1) + ref4af1a62c := (*C.VkPipelineExecutableStatisticKHR)(mem4af1a62c) + allocs4af1a62c := new(cgoAllocMap) + allocs4af1a62c.Add(mem4af1a62c) var csType_allocs *cgoAllocMap - ref878956f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs878956f7.Borrow(csType_allocs) + ref4af1a62c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4af1a62c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref878956f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs878956f7.Borrow(cpNext_allocs) + ref4af1a62c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref878956f7.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs878956f7.Borrow(cimage_allocs) + var cname_allocs *cgoAllocMap + ref4af1a62c.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cname_allocs) - x.ref878956f7 = ref878956f7 - x.allocs878956f7 = allocs878956f7 - return ref878956f7, allocs878956f7 + 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 ImageSparseMemoryRequirementsInfo2) PassValue() (C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { - if x.ref878956f7 != nil { - return *x.ref878956f7, nil +func (x PipelineExecutableStatistic) PassValue() (C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { + if x.ref4af1a62c != nil { + return *x.ref4af1a62c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15035,90 +40059,109 @@ 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 *PipelineExecutableStatistic) Deref() { + if x.ref4af1a62c == 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.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)) } -// allocMemoryRequirements2Memory allocates memory for type C.VkMemoryRequirements2 in C. +// allocPipelineExecutableInternalRepresentationMemory allocates memory for type C.VkPipelineExecutableInternalRepresentationKHR 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()) +func allocPipelineExecutableInternalRepresentationMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInternalRepresentationValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryRequirements2Value = unsafe.Sizeof([1]C.VkMemoryRequirements2{}) +const sizeOfPipelineExecutableInternalRepresentationValue = unsafe.Sizeof([1]C.VkPipelineExecutableInternalRepresentationKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryRequirements2) Ref() *C.VkMemoryRequirements2 { +func (x *PipelineExecutableInternalRepresentation) Ref() *C.VkPipelineExecutableInternalRepresentationKHR { if x == nil { return nil } - return x.refc0e75f21 + 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 *MemoryRequirements2) Free() { - if x != nil && x.allocsc0e75f21 != nil { - x.allocsc0e75f21.(*cgoAllocMap).Free() - x.refc0e75f21 = nil +func (x *PipelineExecutableInternalRepresentation) Free() { + if x != nil && x.allocs20e334f7 != nil { + x.allocs20e334f7.(*cgoAllocMap).Free() + x.ref20e334f7 = nil } } -// NewMemoryRequirements2Ref 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 NewMemoryRequirements2Ref(ref unsafe.Pointer) *MemoryRequirements2 { +func NewPipelineExecutableInternalRepresentationRef(ref unsafe.Pointer) *PipelineExecutableInternalRepresentation { if ref == nil { return nil } - obj := new(MemoryRequirements2) - obj.refc0e75f21 = (*C.VkMemoryRequirements2)(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 *MemoryRequirements2) PassRef() (*C.VkMemoryRequirements2, *cgoAllocMap) { +func (x *PipelineExecutableInternalRepresentation) PassRef() (*C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc0e75f21 != nil { - return x.refc0e75f21, nil + } else if x.ref20e334f7 != nil { + return x.ref20e334f7, nil } - memc0e75f21 := allocMemoryRequirements2Memory(1) - refc0e75f21 := (*C.VkMemoryRequirements2)(memc0e75f21) - allocsc0e75f21 := new(cgoAllocMap) - allocsc0e75f21.Add(memc0e75f21) + mem20e334f7 := allocPipelineExecutableInternalRepresentationMemory(1) + ref20e334f7 := (*C.VkPipelineExecutableInternalRepresentationKHR)(mem20e334f7) + allocs20e334f7 := new(cgoAllocMap) + allocs20e334f7.Add(mem20e334f7) var csType_allocs *cgoAllocMap - refc0e75f21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc0e75f21.Borrow(csType_allocs) + ref20e334f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs20e334f7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc0e75f21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc0e75f21.Borrow(cpNext_allocs) + ref20e334f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs20e334f7.Borrow(cpNext_allocs) - var cmemoryRequirements_allocs *cgoAllocMap - refc0e75f21.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() - allocsc0e75f21.Borrow(cmemoryRequirements_allocs) + var cname_allocs *cgoAllocMap + ref20e334f7.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs20e334f7.Borrow(cname_allocs) - x.refc0e75f21 = refc0e75f21 - x.allocsc0e75f21 = allocsc0e75f21 - return refc0e75f21, allocsc0e75f21 + 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 MemoryRequirements2) PassValue() (C.VkMemoryRequirements2, *cgoAllocMap) { - if x.refc0e75f21 != nil { - return *x.refc0e75f21, nil +func (x PipelineExecutableInternalRepresentation) PassValue() (C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { + if x.ref20e334f7 != nil { + return *x.ref20e334f7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15126,90 +40169,127 @@ 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 *PipelineExecutableInternalRepresentation) Deref() { + if x.ref20e334f7 == 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.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 = (uint32)(x.ref20e334f7.dataSize) + x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref20e334f7.pData)) } -// allocSparseImageMemoryRequirements2Memory allocates memory for type C.VkSparseImageMemoryRequirements2 in C. +// allocPipelineLibraryCreateInfoMemory allocates memory for type C.VkPipelineLibraryCreateInfoKHR 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()) +func allocPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLibraryCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageMemoryRequirements2Value = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements2{}) +const sizeOfPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLibraryCreateInfoKHR{}) + +// copyPPipelineBytes copies the data from Go slice as *C.VkPipeline. +func copyPPipelineBytes(slice *sliceHeader) (*C.VkPipeline, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfPipelineValue) * slice.Len, + Cap: int(sizeOfPipelineValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkPipeline)(mem0), allocs +} + +// allocPipelineMemory allocates memory for type C.VkPipeline in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineValue = unsafe.Sizeof([1]C.VkPipeline{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryRequirements2) Ref() *C.VkSparseImageMemoryRequirements2 { +func (x *PipelineLibraryCreateInfo) Ref() *C.VkPipelineLibraryCreateInfoKHR { if x == nil { return nil } - return x.refb8da955c + 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 *SparseImageMemoryRequirements2) Free() { - if x != nil && x.allocsb8da955c != nil { - x.allocsb8da955c.(*cgoAllocMap).Free() - x.refb8da955c = nil +func (x *PipelineLibraryCreateInfo) Free() { + if x != nil && x.allocs6bb7541b != nil { + x.allocs6bb7541b.(*cgoAllocMap).Free() + x.ref6bb7541b = nil } } -// NewSparseImageMemoryRequirements2Ref 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 NewSparseImageMemoryRequirements2Ref(ref unsafe.Pointer) *SparseImageMemoryRequirements2 { +func NewPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *PipelineLibraryCreateInfo { if ref == nil { return nil } - obj := new(SparseImageMemoryRequirements2) - obj.refb8da955c = (*C.VkSparseImageMemoryRequirements2)(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 *SparseImageMemoryRequirements2) PassRef() (*C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { +func (x *PipelineLibraryCreateInfo) PassRef() (*C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8da955c != nil { - return x.refb8da955c, nil + } else if x.ref6bb7541b != nil { + return x.ref6bb7541b, nil } - memb8da955c := allocSparseImageMemoryRequirements2Memory(1) - refb8da955c := (*C.VkSparseImageMemoryRequirements2)(memb8da955c) - allocsb8da955c := new(cgoAllocMap) - allocsb8da955c.Add(memb8da955c) + mem6bb7541b := allocPipelineLibraryCreateInfoMemory(1) + ref6bb7541b := (*C.VkPipelineLibraryCreateInfoKHR)(mem6bb7541b) + allocs6bb7541b := new(cgoAllocMap) + allocs6bb7541b.Add(mem6bb7541b) var csType_allocs *cgoAllocMap - refb8da955c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8da955c.Borrow(csType_allocs) + ref6bb7541b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6bb7541b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8da955c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8da955c.Borrow(cpNext_allocs) + ref6bb7541b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6bb7541b.Borrow(cpNext_allocs) - var cmemoryRequirements_allocs *cgoAllocMap - refb8da955c.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() - allocsb8da955c.Borrow(cmemoryRequirements_allocs) + var clibraryCount_allocs *cgoAllocMap + ref6bb7541b.libraryCount, clibraryCount_allocs = (C.uint32_t)(x.LibraryCount), cgoAllocsUnknown + allocs6bb7541b.Borrow(clibraryCount_allocs) - x.refb8da955c = refb8da955c - x.allocsb8da955c = allocsb8da955c - return refb8da955c, allocsb8da955c + var cpLibraries_allocs *cgoAllocMap + ref6bb7541b.pLibraries, cpLibraries_allocs = copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&x.PLibraries))) + 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 SparseImageMemoryRequirements2) PassValue() (C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { - if x.refb8da955c != nil { - return *x.refb8da955c, nil +func (x PipelineLibraryCreateInfo) PassValue() (C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { + if x.ref6bb7541b != nil { + return *x.ref6bb7541b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15217,90 +40297,99 @@ 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 *PipelineLibraryCreateInfo) Deref() { + if x.ref6bb7541b == 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.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 = ? + } -// allocPhysicalDeviceFeatures2Memory allocates memory for type C.VkPhysicalDeviceFeatures2 in C. +// allocPresentIdMemory allocates memory for type C.VkPresentIdKHR 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()) +func allocPresentIdMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentIdValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceFeatures2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceFeatures2{}) +const sizeOfPresentIdValue = unsafe.Sizeof([1]C.VkPresentIdKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFeatures2) Ref() *C.VkPhysicalDeviceFeatures2 { +func (x *PresentId) Ref() *C.VkPresentIdKHR { if x == nil { return nil } - return x.refff6ed04 + 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 *PhysicalDeviceFeatures2) Free() { - if x != nil && x.allocsff6ed04 != nil { - x.allocsff6ed04.(*cgoAllocMap).Free() - x.refff6ed04 = nil +func (x *PresentId) Free() { + if x != nil && x.allocs70010623 != nil { + x.allocs70010623.(*cgoAllocMap).Free() + x.ref70010623 = nil } } -// NewPhysicalDeviceFeatures2Ref 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 NewPhysicalDeviceFeatures2Ref(ref unsafe.Pointer) *PhysicalDeviceFeatures2 { +func NewPresentIdRef(ref unsafe.Pointer) *PresentId { if ref == nil { return nil } - obj := new(PhysicalDeviceFeatures2) - obj.refff6ed04 = (*C.VkPhysicalDeviceFeatures2)(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 *PhysicalDeviceFeatures2) PassRef() (*C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { +func (x *PresentId) PassRef() (*C.VkPresentIdKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refff6ed04 != nil { - return x.refff6ed04, nil + } else if x.ref70010623 != nil { + return x.ref70010623, nil } - memff6ed04 := allocPhysicalDeviceFeatures2Memory(1) - refff6ed04 := (*C.VkPhysicalDeviceFeatures2)(memff6ed04) - allocsff6ed04 := new(cgoAllocMap) - allocsff6ed04.Add(memff6ed04) + mem70010623 := allocPresentIdMemory(1) + ref70010623 := (*C.VkPresentIdKHR)(mem70010623) + allocs70010623 := new(cgoAllocMap) + allocs70010623.Add(mem70010623) var csType_allocs *cgoAllocMap - refff6ed04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsff6ed04.Borrow(csType_allocs) + ref70010623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70010623.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refff6ed04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsff6ed04.Borrow(cpNext_allocs) + ref70010623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70010623.Borrow(cpNext_allocs) - var cfeatures_allocs *cgoAllocMap - refff6ed04.features, cfeatures_allocs = x.Features.PassValue() - allocsff6ed04.Borrow(cfeatures_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref70010623.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70010623.Borrow(cswapchainCount_allocs) - x.refff6ed04 = refff6ed04 - x.allocsff6ed04 = allocsff6ed04 - return refff6ed04, allocsff6ed04 + var cpPresentIds_allocs *cgoAllocMap + ref70010623.pPresentIds, cpPresentIds_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPresentIds))) + 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 PhysicalDeviceFeatures2) PassValue() (C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { - if x.refff6ed04 != nil { - return *x.refff6ed04, nil +func (x PresentId) PassValue() (C.VkPresentIdKHR, *cgoAllocMap) { + if x.ref70010623 != nil { + return *x.ref70010623, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15308,90 +40397,95 @@ 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 *PresentId) Deref() { + if x.ref70010623 == 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.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 = ? + } -// allocPhysicalDeviceProperties2Memory allocates memory for type C.VkPhysicalDeviceProperties2 in C. +// allocPhysicalDevicePresentIdFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentIdFeaturesKHR 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()) +func allocPhysicalDevicePresentIdFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentIdFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties2{}) +const sizeOfPhysicalDevicePresentIdFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentIdFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProperties2) Ref() *C.VkPhysicalDeviceProperties2 { +func (x *PhysicalDevicePresentIdFeatures) Ref() *C.VkPhysicalDevicePresentIdFeaturesKHR { if x == nil { return nil } - return x.ref947bd13e + 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 *PhysicalDeviceProperties2) Free() { - if x != nil && x.allocs947bd13e != nil { - x.allocs947bd13e.(*cgoAllocMap).Free() - x.ref947bd13e = nil +func (x *PhysicalDevicePresentIdFeatures) Free() { + if x != nil && x.allocsba9945cd != nil { + x.allocsba9945cd.(*cgoAllocMap).Free() + x.refba9945cd = nil } } -// NewPhysicalDeviceProperties2Ref 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 NewPhysicalDeviceProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceProperties2 { +func NewPhysicalDevicePresentIdFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentIdFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceProperties2) - obj.ref947bd13e = (*C.VkPhysicalDeviceProperties2)(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 *PhysicalDeviceProperties2) PassRef() (*C.VkPhysicalDeviceProperties2, *cgoAllocMap) { +func (x *PhysicalDevicePresentIdFeatures) PassRef() (*C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref947bd13e != nil { - return x.ref947bd13e, nil + } else if x.refba9945cd != nil { + return x.refba9945cd, nil } - mem947bd13e := allocPhysicalDeviceProperties2Memory(1) - ref947bd13e := (*C.VkPhysicalDeviceProperties2)(mem947bd13e) - allocs947bd13e := new(cgoAllocMap) - allocs947bd13e.Add(mem947bd13e) + memba9945cd := allocPhysicalDevicePresentIdFeaturesMemory(1) + refba9945cd := (*C.VkPhysicalDevicePresentIdFeaturesKHR)(memba9945cd) + allocsba9945cd := new(cgoAllocMap) + allocsba9945cd.Add(memba9945cd) var csType_allocs *cgoAllocMap - ref947bd13e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs947bd13e.Borrow(csType_allocs) + refba9945cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsba9945cd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref947bd13e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs947bd13e.Borrow(cpNext_allocs) + refba9945cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsba9945cd.Borrow(cpNext_allocs) - var cproperties_allocs *cgoAllocMap - ref947bd13e.properties, cproperties_allocs = x.Properties.PassValue() - allocs947bd13e.Borrow(cproperties_allocs) + var cpresentId_allocs *cgoAllocMap + refba9945cd.presentId, cpresentId_allocs = (C.VkBool32)(x.PresentId), cgoAllocsUnknown + allocsba9945cd.Borrow(cpresentId_allocs) - x.ref947bd13e = ref947bd13e - x.allocs947bd13e = allocs947bd13e - return ref947bd13e, allocs947bd13e + 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 PhysicalDeviceProperties2) PassValue() (C.VkPhysicalDeviceProperties2, *cgoAllocMap) { - if x.ref947bd13e != nil { - return *x.ref947bd13e, nil +func (x PhysicalDevicePresentIdFeatures) PassValue() (C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { + if x.refba9945cd != nil { + return *x.refba9945cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15399,90 +40493,90 @@ 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 *PhysicalDevicePresentIdFeatures) Deref() { + if x.refba9945cd == 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.refba9945cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba9945cd.pNext)) + x.PresentId = (Bool32)(x.refba9945cd.presentId) } -// allocFormatProperties2Memory allocates memory for type C.VkFormatProperties2 in C. +// allocQueueFamilyCheckpointProperties2NVMemory allocates memory for type C.VkQueueFamilyCheckpointProperties2NV 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()) +func allocQueueFamilyCheckpointProperties2NVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointProperties2NVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfFormatProperties2Value = unsafe.Sizeof([1]C.VkFormatProperties2{}) +const sizeOfQueueFamilyCheckpointProperties2NVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointProperties2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FormatProperties2) Ref() *C.VkFormatProperties2 { +func (x *QueueFamilyCheckpointProperties2NV) Ref() *C.VkQueueFamilyCheckpointProperties2NV { if x == nil { return nil } - return x.refddc6af2a + 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 *FormatProperties2) Free() { - if x != nil && x.allocsddc6af2a != nil { - x.allocsddc6af2a.(*cgoAllocMap).Free() - x.refddc6af2a = nil +func (x *QueueFamilyCheckpointProperties2NV) Free() { + if x != nil && x.allocsfdc86afc != nil { + x.allocsfdc86afc.(*cgoAllocMap).Free() + x.reffdc86afc = nil } } -// NewFormatProperties2Ref 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 NewFormatProperties2Ref(ref unsafe.Pointer) *FormatProperties2 { +func NewQueueFamilyCheckpointProperties2NVRef(ref unsafe.Pointer) *QueueFamilyCheckpointProperties2NV { if ref == nil { return nil } - obj := new(FormatProperties2) - obj.refddc6af2a = (*C.VkFormatProperties2)(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 *FormatProperties2) PassRef() (*C.VkFormatProperties2, *cgoAllocMap) { +func (x *QueueFamilyCheckpointProperties2NV) PassRef() (*C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refddc6af2a != nil { - return x.refddc6af2a, nil + } else if x.reffdc86afc != nil { + return x.reffdc86afc, nil } - memddc6af2a := allocFormatProperties2Memory(1) - refddc6af2a := (*C.VkFormatProperties2)(memddc6af2a) - allocsddc6af2a := new(cgoAllocMap) - allocsddc6af2a.Add(memddc6af2a) + memfdc86afc := allocQueueFamilyCheckpointProperties2NVMemory(1) + reffdc86afc := (*C.VkQueueFamilyCheckpointProperties2NV)(memfdc86afc) + allocsfdc86afc := new(cgoAllocMap) + allocsfdc86afc.Add(memfdc86afc) var csType_allocs *cgoAllocMap - refddc6af2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsddc6af2a.Borrow(csType_allocs) + reffdc86afc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfdc86afc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refddc6af2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsddc6af2a.Borrow(cpNext_allocs) + reffdc86afc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfdc86afc.Borrow(cpNext_allocs) - var cformatProperties_allocs *cgoAllocMap - refddc6af2a.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() - allocsddc6af2a.Borrow(cformatProperties_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + reffdc86afc.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags2)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocsfdc86afc.Borrow(ccheckpointExecutionStageMask_allocs) - x.refddc6af2a = refddc6af2a - x.allocsddc6af2a = allocsddc6af2a - return refddc6af2a, allocsddc6af2a + 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 FormatProperties2) PassValue() (C.VkFormatProperties2, *cgoAllocMap) { - if x.refddc6af2a != nil { - return *x.refddc6af2a, nil +func (x QueueFamilyCheckpointProperties2NV) PassValue() (C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { + if x.reffdc86afc != nil { + return *x.reffdc86afc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15490,90 +40584,94 @@ 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 *QueueFamilyCheckpointProperties2NV) Deref() { + if x.reffdc86afc == 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.reffdc86afc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffdc86afc.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags2)(x.reffdc86afc.checkpointExecutionStageMask) } -// allocImageFormatProperties2Memory allocates memory for type C.VkImageFormatProperties2 in C. +// allocCheckpointData2NVMemory allocates memory for type C.VkCheckpointData2NV 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()) +func allocCheckpointData2NVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointData2NVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageFormatProperties2Value = unsafe.Sizeof([1]C.VkImageFormatProperties2{}) +const sizeOfCheckpointData2NVValue = unsafe.Sizeof([1]C.VkCheckpointData2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatProperties2) Ref() *C.VkImageFormatProperties2 { +func (x *CheckpointData2NV) Ref() *C.VkCheckpointData2NV { if x == nil { return nil } - return x.ref224187e7 + 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 *ImageFormatProperties2) Free() { - if x != nil && x.allocs224187e7 != nil { - x.allocs224187e7.(*cgoAllocMap).Free() - x.ref224187e7 = nil +func (x *CheckpointData2NV) Free() { + if x != nil && x.allocs6e25431b != nil { + x.allocs6e25431b.(*cgoAllocMap).Free() + x.ref6e25431b = nil } } -// NewImageFormatProperties2Ref 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 NewImageFormatProperties2Ref(ref unsafe.Pointer) *ImageFormatProperties2 { +func NewCheckpointData2NVRef(ref unsafe.Pointer) *CheckpointData2NV { if ref == nil { return nil } - obj := new(ImageFormatProperties2) - obj.ref224187e7 = (*C.VkImageFormatProperties2)(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 *ImageFormatProperties2) PassRef() (*C.VkImageFormatProperties2, *cgoAllocMap) { +func (x *CheckpointData2NV) PassRef() (*C.VkCheckpointData2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref224187e7 != nil { - return x.ref224187e7, nil + } else if x.ref6e25431b != nil { + return x.ref6e25431b, nil } - mem224187e7 := allocImageFormatProperties2Memory(1) - ref224187e7 := (*C.VkImageFormatProperties2)(mem224187e7) - allocs224187e7 := new(cgoAllocMap) - allocs224187e7.Add(mem224187e7) + mem6e25431b := allocCheckpointData2NVMemory(1) + ref6e25431b := (*C.VkCheckpointData2NV)(mem6e25431b) + allocs6e25431b := new(cgoAllocMap) + allocs6e25431b.Add(mem6e25431b) var csType_allocs *cgoAllocMap - ref224187e7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs224187e7.Borrow(csType_allocs) + ref6e25431b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6e25431b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref224187e7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs224187e7.Borrow(cpNext_allocs) + ref6e25431b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6e25431b.Borrow(cpNext_allocs) - var cimageFormatProperties_allocs *cgoAllocMap - ref224187e7.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() - allocs224187e7.Borrow(cimageFormatProperties_allocs) + var cstage_allocs *cgoAllocMap + ref6e25431b.stage, cstage_allocs = (C.VkPipelineStageFlags2)(x.Stage), cgoAllocsUnknown + allocs6e25431b.Borrow(cstage_allocs) - x.ref224187e7 = ref224187e7 - x.allocs224187e7 = allocs224187e7 - return ref224187e7, allocs224187e7 + 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 ImageFormatProperties2) PassValue() (C.VkImageFormatProperties2, *cgoAllocMap) { - if x.ref224187e7 != nil { - return *x.ref224187e7, nil +func (x CheckpointData2NV) PassValue() (C.VkCheckpointData2NV, *cgoAllocMap) { + if x.ref6e25431b != nil { + return *x.ref6e25431b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15581,106 +40679,91 @@ 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 *CheckpointData2NV) Deref() { + if x.ref6e25431b == 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.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)) } -// 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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,185 +40771,248 @@ 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassValue() (C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { + if x.ref288a691 != nil { + return *x.ref288a691, 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 *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Deref() { + if x.ref288a691 == nil { + return + } + 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) +} + +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 } -// 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 +func NewDebugReportCallbackFuncRef(ref unsafe.Pointer) *DebugReportCallbackFunc { + return (*DebugReportCallbackFunc)(ref) } -// Deref uses the underlying reference to C object and fills the wrapping struct with 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 +//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 := (uint32)(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 } - x.SType = (StructureType)(x.ref85bf626c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref85bf626c.pNext)) - x.QueueFamilyProperties = *NewQueueFamilyPropertiesRef(unsafe.Pointer(&x.ref85bf626c.queueFamilyProperties)) + panic("callback func has not been set (race?)") } -// allocPhysicalDeviceMemoryProperties2Memory allocates memory for type C.VkPhysicalDeviceMemoryProperties2 in C. +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 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()) +func allocDebugReportCallbackCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugReportCallbackCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMemoryProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties2{}) +const sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMemoryProperties2) Ref() *C.VkPhysicalDeviceMemoryProperties2 { +func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { if x == nil { return nil } - return x.refd9e39b19 + 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 *PhysicalDeviceMemoryProperties2) Free() { - if x != nil && x.allocsd9e39b19 != nil { - x.allocsd9e39b19.(*cgoAllocMap).Free() - x.refd9e39b19 = nil +func (x *DebugReportCallbackCreateInfo) Free() { + if x != nil && x.allocsc8238563 != nil { + x.allocsc8238563.(*cgoAllocMap).Free() + x.refc8238563 = nil } } -// NewPhysicalDeviceMemoryProperties2Ref 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 NewPhysicalDeviceMemoryProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties2 { +func NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryProperties2) - obj.refd9e39b19 = (*C.VkPhysicalDeviceMemoryProperties2)(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 *PhysicalDeviceMemoryProperties2) PassRef() (*C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { +func (x *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9e39b19 != nil { - return x.refd9e39b19, nil + } else if x.refc8238563 != nil { + return x.refc8238563, nil } - memd9e39b19 := allocPhysicalDeviceMemoryProperties2Memory(1) - refd9e39b19 := (*C.VkPhysicalDeviceMemoryProperties2)(memd9e39b19) - allocsd9e39b19 := new(cgoAllocMap) - allocsd9e39b19.Add(memd9e39b19) + memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) + refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) + allocsc8238563 := new(cgoAllocMap) + allocsc8238563.Add(memc8238563) var csType_allocs *cgoAllocMap - refd9e39b19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9e39b19.Borrow(csType_allocs) + refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc8238563.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd9e39b19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9e39b19.Borrow(cpNext_allocs) + refc8238563.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc8238563.Borrow(cpNext_allocs) - var cmemoryProperties_allocs *cgoAllocMap - refd9e39b19.memoryProperties, cmemoryProperties_allocs = x.MemoryProperties.PassValue() - allocsd9e39b19.Borrow(cmemoryProperties_allocs) + var cflags_allocs *cgoAllocMap + refc8238563.flags, cflags_allocs = (C.VkDebugReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsc8238563.Borrow(cflags_allocs) - x.refd9e39b19 = refd9e39b19 - x.allocsd9e39b19 = allocsd9e39b19 - return refd9e39b19, allocsd9e39b19 + var cpfnCallback_allocs *cgoAllocMap + refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() + allocsc8238563.Borrow(cpfnCallback_allocs) + + var cpUserData_allocs *cgoAllocMap + refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsc8238563.Borrow(cpUserData_allocs) + + 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 PhysicalDeviceMemoryProperties2) PassValue() (C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { - if x.refd9e39b19 != nil { - return *x.refd9e39b19, nil +func (x DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { + if x.refc8238563 != nil { + return *x.refc8238563, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15874,90 +41020,92 @@ 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 *DebugReportCallbackCreateInfo) Deref() { + if x.refc8238563 == 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.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)) } -// allocSparseImageFormatProperties2Memory allocates memory for type C.VkSparseImageFormatProperties2 in C. +// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD 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()) +func allocPipelineRasterizationStateRasterizationOrderAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateRasterizationOrderAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSparseImageFormatProperties2Value = unsafe.Sizeof([1]C.VkSparseImageFormatProperties2{}) +const sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageFormatProperties2) Ref() *C.VkSparseImageFormatProperties2 { +func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { if x == nil { return nil } - return x.ref6b48294b + 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 *SparseImageFormatProperties2) Free() { - if x != nil && x.allocs6b48294b != nil { - x.allocs6b48294b.(*cgoAllocMap).Free() - x.ref6b48294b = nil +func (x *PipelineRasterizationStateRasterizationOrderAMD) Free() { + if x != nil && x.allocs5098cf82 != nil { + x.allocs5098cf82.(*cgoAllocMap).Free() + x.ref5098cf82 = nil } } -// NewSparseImageFormatProperties2Ref 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 NewSparseImageFormatProperties2Ref(ref unsafe.Pointer) *SparseImageFormatProperties2 { +func NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { if ref == nil { return nil } - obj := new(SparseImageFormatProperties2) - obj.ref6b48294b = (*C.VkSparseImageFormatProperties2)(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 *SparseImageFormatProperties2) PassRef() (*C.VkSparseImageFormatProperties2, *cgoAllocMap) { +func (x *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6b48294b != nil { - return x.ref6b48294b, nil + } else if x.ref5098cf82 != nil { + return x.ref5098cf82, nil } - mem6b48294b := allocSparseImageFormatProperties2Memory(1) - ref6b48294b := (*C.VkSparseImageFormatProperties2)(mem6b48294b) - allocs6b48294b := new(cgoAllocMap) - allocs6b48294b.Add(mem6b48294b) + mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) + ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) + allocs5098cf82 := new(cgoAllocMap) + allocs5098cf82.Add(mem5098cf82) var csType_allocs *cgoAllocMap - ref6b48294b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6b48294b.Borrow(csType_allocs) + ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5098cf82.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6b48294b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6b48294b.Borrow(cpNext_allocs) + ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5098cf82.Borrow(cpNext_allocs) - var cproperties_allocs *cgoAllocMap - ref6b48294b.properties, cproperties_allocs = x.Properties.PassValue() - allocs6b48294b.Borrow(cproperties_allocs) + var crasterizationOrder_allocs *cgoAllocMap + ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown + allocs5098cf82.Borrow(crasterizationOrder_allocs) - x.ref6b48294b = ref6b48294b - x.allocs6b48294b = allocs6b48294b - return ref6b48294b, allocs6b48294b + 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 SparseImageFormatProperties2) PassValue() (C.VkSparseImageFormatProperties2, *cgoAllocMap) { - if x.ref6b48294b != nil { - return *x.ref6b48294b, nil +func (x PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { + if x.ref5098cf82 != nil { + return *x.ref5098cf82, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15965,106 +41113,98 @@ 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 *PipelineRasterizationStateRasterizationOrderAMD) Deref() { + if x.ref5098cf82 == 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.SType = (StructureType)(x.ref5098cf82.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5098cf82.pNext)) + x.RasterizationOrder = (RasterizationOrderAMD)(x.ref5098cf82.rasterizationOrder) } -// allocPhysicalDeviceSparseImageFormatInfo2Memory allocates memory for type C.VkPhysicalDeviceSparseImageFormatInfo2 in C. +// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT 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()) +func allocDebugMarkerObjectNameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectNameInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSparseImageFormatInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseImageFormatInfo2{}) +const sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSparseImageFormatInfo2) Ref() *C.VkPhysicalDeviceSparseImageFormatInfo2 { +func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { if x == nil { return nil } - return x.ref566d5513 + 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 *PhysicalDeviceSparseImageFormatInfo2) Free() { - if x != nil && x.allocs566d5513 != nil { - x.allocs566d5513.(*cgoAllocMap).Free() - x.ref566d5513 = nil +func (x *DebugMarkerObjectNameInfo) Free() { + if x != nil && x.allocse4983fab != nil { + x.allocse4983fab.(*cgoAllocMap).Free() + x.refe4983fab = nil } } -// NewPhysicalDeviceSparseImageFormatInfo2Ref 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 NewPhysicalDeviceSparseImageFormatInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSparseImageFormatInfo2 { +func NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceSparseImageFormatInfo2) - obj.ref566d5513 = (*C.VkPhysicalDeviceSparseImageFormatInfo2)(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 *PhysicalDeviceSparseImageFormatInfo2) PassRef() (*C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { +func (x *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref566d5513 != nil { - return x.ref566d5513, nil + } else if x.refe4983fab != nil { + return x.refe4983fab, nil } - mem566d5513 := allocPhysicalDeviceSparseImageFormatInfo2Memory(1) - ref566d5513 := (*C.VkPhysicalDeviceSparseImageFormatInfo2)(mem566d5513) - allocs566d5513 := new(cgoAllocMap) - allocs566d5513.Add(mem566d5513) + meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) + refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) + allocse4983fab := new(cgoAllocMap) + allocse4983fab.Add(meme4983fab) var csType_allocs *cgoAllocMap - ref566d5513.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs566d5513.Borrow(csType_allocs) + refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse4983fab.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) + refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse4983fab.Borrow(cpNext_allocs) - var csamples_allocs *cgoAllocMap - ref566d5513.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown - allocs566d5513.Borrow(csamples_allocs) + var cobjectType_allocs *cgoAllocMap + refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown + allocse4983fab.Borrow(cobjectType_allocs) - var cusage_allocs *cgoAllocMap - ref566d5513.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocs566d5513.Borrow(cusage_allocs) + var cobject_allocs *cgoAllocMap + refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown + allocse4983fab.Borrow(cobject_allocs) - var ctiling_allocs *cgoAllocMap - ref566d5513.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown - allocs566d5513.Borrow(ctiling_allocs) + var cpObjectName_allocs *cgoAllocMap + refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) + allocse4983fab.Borrow(cpObjectName_allocs) - x.ref566d5513 = ref566d5513 - x.allocs566d5513 = allocs566d5513 - return ref566d5513, allocs566d5513 + 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 PhysicalDeviceSparseImageFormatInfo2) PassValue() (C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { - if x.ref566d5513 != nil { - return *x.ref566d5513, nil +func (x DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { + if x.refe4983fab != nil { + return *x.refe4983fab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16072,94 +41212,108 @@ 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 *DebugMarkerObjectNameInfo) Deref() { + if x.refe4983fab == 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.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) } -// allocPhysicalDevicePointClippingPropertiesMemory allocates memory for type C.VkPhysicalDevicePointClippingProperties in C. +// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT 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()) +func allocDebugMarkerObjectTagInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectTagInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevicePointClippingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePointClippingProperties{}) +const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePointClippingProperties) Ref() *C.VkPhysicalDevicePointClippingProperties { +func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { if x == nil { return nil } - return x.ref5afbd22f + 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 *PhysicalDevicePointClippingProperties) Free() { - if x != nil && x.allocs5afbd22f != nil { - x.allocs5afbd22f.(*cgoAllocMap).Free() - x.ref5afbd22f = nil +func (x *DebugMarkerObjectTagInfo) Free() { + if x != nil && x.allocsa41a5c3b != nil { + x.allocsa41a5c3b.(*cgoAllocMap).Free() + x.refa41a5c3b = nil } } -// NewPhysicalDevicePointClippingPropertiesRef 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 NewPhysicalDevicePointClippingPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePointClippingProperties { +func NewDebugMarkerObjectTagInfoRef(ref unsafe.Pointer) *DebugMarkerObjectTagInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePointClippingProperties) - obj.ref5afbd22f = (*C.VkPhysicalDevicePointClippingProperties)(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 *PhysicalDevicePointClippingProperties) PassRef() (*C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { +func (x *DebugMarkerObjectTagInfo) PassRef() (*C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5afbd22f != nil { - return x.ref5afbd22f, nil + } else if x.refa41a5c3b != nil { + return x.refa41a5c3b, nil } - mem5afbd22f := allocPhysicalDevicePointClippingPropertiesMemory(1) - ref5afbd22f := (*C.VkPhysicalDevicePointClippingProperties)(mem5afbd22f) - allocs5afbd22f := new(cgoAllocMap) - allocs5afbd22f.Add(mem5afbd22f) + mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) + refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) + allocsa41a5c3b := new(cgoAllocMap) + allocsa41a5c3b.Add(mema41a5c3b) var csType_allocs *cgoAllocMap - ref5afbd22f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5afbd22f.Borrow(csType_allocs) + refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa41a5c3b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5afbd22f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5afbd22f.Borrow(cpNext_allocs) + refa41a5c3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cpNext_allocs) - var cpointClippingBehavior_allocs *cgoAllocMap - ref5afbd22f.pointClippingBehavior, cpointClippingBehavior_allocs = (C.VkPointClippingBehavior)(x.PointClippingBehavior), cgoAllocsUnknown - allocs5afbd22f.Borrow(cpointClippingBehavior_allocs) + var cobjectType_allocs *cgoAllocMap + refa41a5c3b.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cobjectType_allocs) - x.ref5afbd22f = ref5afbd22f - x.allocs5afbd22f = allocs5afbd22f - return ref5afbd22f, allocs5afbd22f + 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) + + 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 PhysicalDevicePointClippingProperties) PassValue() (C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { - if x.ref5afbd22f != nil { - return *x.ref5afbd22f, nil +func (x DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { + if x.refa41a5c3b != nil { + return *x.refa41a5c3b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16167,223 +41321,190 @@ 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 *DebugMarkerObjectTagInfo) Deref() { + if x.refa41a5c3b == 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.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 = (uint32)(x.refa41a5c3b.tagSize) + x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pTag)) } -// allocInputAttachmentAspectReferenceMemory allocates memory for type C.VkInputAttachmentAspectReference in C. +// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT 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()) +func allocDebugMarkerMarkerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerMarkerInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfInputAttachmentAspectReferenceValue = unsafe.Sizeof([1]C.VkInputAttachmentAspectReference{}) +const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *InputAttachmentAspectReference) Ref() *C.VkInputAttachmentAspectReference { +func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { if x == nil { return nil } - return x.ref4f7194e6 + 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 *InputAttachmentAspectReference) Free() { - if x != nil && x.allocs4f7194e6 != nil { - x.allocs4f7194e6.(*cgoAllocMap).Free() - x.ref4f7194e6 = nil +func (x *DebugMarkerMarkerInfo) Free() { + if x != nil && x.allocs234b91fd != nil { + x.allocs234b91fd.(*cgoAllocMap).Free() + x.ref234b91fd = nil } } -// NewInputAttachmentAspectReferenceRef 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 NewInputAttachmentAspectReferenceRef(ref unsafe.Pointer) *InputAttachmentAspectReference { +func NewDebugMarkerMarkerInfoRef(ref unsafe.Pointer) *DebugMarkerMarkerInfo { if ref == nil { return nil } - obj := new(InputAttachmentAspectReference) - obj.ref4f7194e6 = (*C.VkInputAttachmentAspectReference)(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 *InputAttachmentAspectReference) PassRef() (*C.VkInputAttachmentAspectReference, *cgoAllocMap) { +func (x *DebugMarkerMarkerInfo) PassRef() (*C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4f7194e6 != nil { - return x.ref4f7194e6, nil + } else if x.ref234b91fd != nil { + return x.ref234b91fd, 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) + mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) + ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) + allocs234b91fd := new(cgoAllocMap) + allocs234b91fd.Add(mem234b91fd) - var caspectMask_allocs *cgoAllocMap - ref4f7194e6.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs4f7194e6.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs234b91fd.Borrow(csType_allocs) - x.ref4f7194e6 = ref4f7194e6 - x.allocs4f7194e6 = allocs4f7194e6 - return ref4f7194e6, allocs4f7194e6 + 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) -// 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 -} + var ccolor_allocs *cgoAllocMap + ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs234b91fd.Borrow(ccolor_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) -} + x.ref234b91fd = ref234b91fd + x.allocs234b91fd = allocs234b91fd + return ref234b91fd, allocs234b91fd -// 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 +// 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 } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkInputAttachmentAspectReference) { - go allocs.Free() - }) + ref, allocs := x.PassRef() + return *ref, allocs +} - 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) +// Deref uses the underlying reference to C object and fills the wrapping struct with 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 { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkInputAttachmentAspectReference)(h.Data) - 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)) } -// 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)) +// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV 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)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassInputAttachmentAspectCreateInfo) Ref() *C.VkRenderPassInputAttachmentAspectCreateInfo { +func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { if x == nil { return nil } - return x.ref34eaa5c7 + 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 *RenderPassInputAttachmentAspectCreateInfo) Free() { - if x != nil && x.allocs34eaa5c7 != nil { - x.allocs34eaa5c7.(*cgoAllocMap).Free() - x.ref34eaa5c7 = nil +func (x *DedicatedAllocationImageCreateInfoNV) Free() { + if x != nil && x.allocs685d878b != nil { + x.allocs685d878b.(*cgoAllocMap).Free() + x.ref685d878b = nil } } -// NewRenderPassInputAttachmentAspectCreateInfoRef 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 NewRenderPassInputAttachmentAspectCreateInfoRef(ref unsafe.Pointer) *RenderPassInputAttachmentAspectCreateInfo { +func NewDedicatedAllocationImageCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationImageCreateInfoNV { if ref == nil { return nil } - obj := new(RenderPassInputAttachmentAspectCreateInfo) - obj.ref34eaa5c7 = (*C.VkRenderPassInputAttachmentAspectCreateInfo)(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 *RenderPassInputAttachmentAspectCreateInfo) PassRef() (*C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { +func (x *DedicatedAllocationImageCreateInfoNV) PassRef() (*C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref34eaa5c7 != nil { - return x.ref34eaa5c7, nil + } else if x.ref685d878b != nil { + return x.ref685d878b, nil } - mem34eaa5c7 := allocRenderPassInputAttachmentAspectCreateInfoMemory(1) - ref34eaa5c7 := (*C.VkRenderPassInputAttachmentAspectCreateInfo)(mem34eaa5c7) - allocs34eaa5c7 := new(cgoAllocMap) - allocs34eaa5c7.Add(mem34eaa5c7) + mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) + ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) + allocs685d878b := new(cgoAllocMap) + allocs685d878b.Add(mem685d878b) var csType_allocs *cgoAllocMap - ref34eaa5c7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs34eaa5c7.Borrow(csType_allocs) + ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs685d878b.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) + ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs685d878b.Borrow(cpNext_allocs) - var cpAspectReferences_allocs *cgoAllocMap - ref34eaa5c7.pAspectReferences, cpAspectReferences_allocs = unpackSInputAttachmentAspectReference(x.PAspectReferences) - allocs34eaa5c7.Borrow(cpAspectReferences_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocs685d878b.Borrow(cdedicatedAllocation_allocs) - x.ref34eaa5c7 = ref34eaa5c7 - x.allocs34eaa5c7 = allocs34eaa5c7 - return ref34eaa5c7, allocs34eaa5c7 + 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 RenderPassInputAttachmentAspectCreateInfo) PassValue() (C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { - if x.ref34eaa5c7 != nil { - return *x.ref34eaa5c7, nil +func (x DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { + if x.ref685d878b != nil { + return *x.ref685d878b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16391,91 +41512,90 @@ 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 *DedicatedAllocationImageCreateInfoNV) Deref() { + if x.ref685d878b == 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.ref685d878b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) + x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) } -// allocImageViewUsageCreateInfoMemory allocates memory for type C.VkImageViewUsageCreateInfo in C. +// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV 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()) +func allocDedicatedAllocationBufferCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationBufferCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageViewUsageCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewUsageCreateInfo{}) +const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewUsageCreateInfo) Ref() *C.VkImageViewUsageCreateInfo { +func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { if x == nil { return nil } - return x.ref3791cec9 + 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 *ImageViewUsageCreateInfo) Free() { - if x != nil && x.allocs3791cec9 != nil { - x.allocs3791cec9.(*cgoAllocMap).Free() - x.ref3791cec9 = nil +func (x *DedicatedAllocationBufferCreateInfoNV) Free() { + if x != nil && x.allocsbc745a8 != nil { + x.allocsbc745a8.(*cgoAllocMap).Free() + x.refbc745a8 = nil } } -// NewImageViewUsageCreateInfoRef 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 NewImageViewUsageCreateInfoRef(ref unsafe.Pointer) *ImageViewUsageCreateInfo { +func NewDedicatedAllocationBufferCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationBufferCreateInfoNV { if ref == nil { return nil } - obj := new(ImageViewUsageCreateInfo) - obj.ref3791cec9 = (*C.VkImageViewUsageCreateInfo)(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 *ImageViewUsageCreateInfo) PassRef() (*C.VkImageViewUsageCreateInfo, *cgoAllocMap) { +func (x *DedicatedAllocationBufferCreateInfoNV) PassRef() (*C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3791cec9 != nil { - return x.ref3791cec9, nil + } else if x.refbc745a8 != nil { + return x.refbc745a8, nil } - mem3791cec9 := allocImageViewUsageCreateInfoMemory(1) - ref3791cec9 := (*C.VkImageViewUsageCreateInfo)(mem3791cec9) - allocs3791cec9 := new(cgoAllocMap) - allocs3791cec9.Add(mem3791cec9) + membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) + refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) + allocsbc745a8 := new(cgoAllocMap) + allocsbc745a8.Add(membc745a8) var csType_allocs *cgoAllocMap - ref3791cec9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3791cec9.Borrow(csType_allocs) + refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc745a8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3791cec9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3791cec9.Borrow(cpNext_allocs) + refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc745a8.Borrow(cpNext_allocs) - var cusage_allocs *cgoAllocMap - ref3791cec9.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocs3791cec9.Borrow(cusage_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocsbc745a8.Borrow(cdedicatedAllocation_allocs) - x.ref3791cec9 = ref3791cec9 - x.allocs3791cec9 = allocs3791cec9 - return ref3791cec9, allocs3791cec9 + 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 ImageViewUsageCreateInfo) PassValue() (C.VkImageViewUsageCreateInfo, *cgoAllocMap) { - if x.ref3791cec9 != nil { - return *x.ref3791cec9, nil +func (x DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { + if x.refbc745a8 != nil { + return *x.refbc745a8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16483,90 +41603,94 @@ 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 *DedicatedAllocationBufferCreateInfoNV) Deref() { + if x.refbc745a8 == 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.refbc745a8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc745a8.pNext)) + x.DedicatedAllocation = (Bool32)(x.refbc745a8.dedicatedAllocation) } -// allocPipelineTessellationDomainOriginStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationDomainOriginStateCreateInfo in C. +// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV 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()) +func allocDedicatedAllocationMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationMemoryAllocateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineTessellationDomainOriginStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationDomainOriginStateCreateInfo{}) +const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineTessellationDomainOriginStateCreateInfo) Ref() *C.VkPipelineTessellationDomainOriginStateCreateInfo { +func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { if x == nil { return nil } - return x.ref58ef29bf + 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 *PipelineTessellationDomainOriginStateCreateInfo) Free() { - if x != nil && x.allocs58ef29bf != nil { - x.allocs58ef29bf.(*cgoAllocMap).Free() - x.ref58ef29bf = nil +func (x *DedicatedAllocationMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs9a72b107 != nil { + x.allocs9a72b107.(*cgoAllocMap).Free() + x.ref9a72b107 = nil } } -// NewPipelineTessellationDomainOriginStateCreateInfoRef 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 NewPipelineTessellationDomainOriginStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationDomainOriginStateCreateInfo { +func NewDedicatedAllocationMemoryAllocateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(PipelineTessellationDomainOriginStateCreateInfo) - obj.ref58ef29bf = (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(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 *PipelineTessellationDomainOriginStateCreateInfo) PassRef() (*C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { +func (x *DedicatedAllocationMemoryAllocateInfoNV) PassRef() (*C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58ef29bf != nil { - return x.ref58ef29bf, nil + } else if x.ref9a72b107 != nil { + return x.ref9a72b107, nil } - mem58ef29bf := allocPipelineTessellationDomainOriginStateCreateInfoMemory(1) - ref58ef29bf := (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(mem58ef29bf) - allocs58ef29bf := new(cgoAllocMap) - allocs58ef29bf.Add(mem58ef29bf) + mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) + ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) + allocs9a72b107 := new(cgoAllocMap) + allocs9a72b107.Add(mem9a72b107) var csType_allocs *cgoAllocMap - ref58ef29bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs58ef29bf.Borrow(csType_allocs) + ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a72b107.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref58ef29bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs58ef29bf.Borrow(cpNext_allocs) + ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a72b107.Borrow(cpNext_allocs) - var cdomainOrigin_allocs *cgoAllocMap - ref58ef29bf.domainOrigin, cdomainOrigin_allocs = (C.VkTessellationDomainOrigin)(x.DomainOrigin), cgoAllocsUnknown - allocs58ef29bf.Borrow(cdomainOrigin_allocs) + var cimage_allocs *cgoAllocMap + ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs9a72b107.Borrow(cimage_allocs) - x.ref58ef29bf = ref58ef29bf - x.allocs58ef29bf = allocs58ef29bf - return ref58ef29bf, allocs58ef29bf + var cbuffer_allocs *cgoAllocMap + ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs9a72b107.Borrow(cbuffer_allocs) + + 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 PipelineTessellationDomainOriginStateCreateInfo) PassValue() (C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { - if x.ref58ef29bf != nil { - return *x.ref58ef29bf, nil +func (x DedicatedAllocationMemoryAllocateInfoNV) PassValue() (C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref9a72b107 != nil { + return *x.ref9a72b107, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16574,110 +41698,95 @@ 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 *DedicatedAllocationMemoryAllocateInfoNV) Deref() { + if x.ref9a72b107 == 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.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)) } -// allocRenderPassMultiviewCreateInfoMemory allocates memory for type C.VkRenderPassMultiviewCreateInfo in C. +// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT 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()) +func allocPhysicalDeviceTransformFeedbackFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRenderPassMultiviewCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassMultiviewCreateInfo{}) +const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassMultiviewCreateInfo) Ref() *C.VkRenderPassMultiviewCreateInfo { +func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { if x == nil { return nil } - return x.refee413e05 + 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 *RenderPassMultiviewCreateInfo) Free() { - if x != nil && x.allocsee413e05 != nil { - x.allocsee413e05.(*cgoAllocMap).Free() - x.refee413e05 = nil +func (x *PhysicalDeviceTransformFeedbackFeatures) Free() { + if x != nil && x.allocs64b2a913 != nil { + x.allocs64b2a913.(*cgoAllocMap).Free() + x.ref64b2a913 = nil } } -// NewRenderPassMultiviewCreateInfoRef 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 NewRenderPassMultiviewCreateInfoRef(ref unsafe.Pointer) *RenderPassMultiviewCreateInfo { +func NewPhysicalDeviceTransformFeedbackFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackFeatures { if ref == nil { return nil } - obj := new(RenderPassMultiviewCreateInfo) - obj.refee413e05 = (*C.VkRenderPassMultiviewCreateInfo)(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 *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackFeatures) PassRef() (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refee413e05 != nil { - return x.refee413e05, nil + } else if x.ref64b2a913 != nil { + return x.ref64b2a913, nil } - memee413e05 := allocRenderPassMultiviewCreateInfoMemory(1) - refee413e05 := (*C.VkRenderPassMultiviewCreateInfo)(memee413e05) - allocsee413e05 := new(cgoAllocMap) - allocsee413e05.Add(memee413e05) + mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) + ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) + allocs64b2a913 := new(cgoAllocMap) + allocs64b2a913.Add(mem64b2a913) var csType_allocs *cgoAllocMap - refee413e05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsee413e05.Borrow(csType_allocs) + ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64b2a913.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) + ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64b2a913.Borrow(cpNext_allocs) - var ccorrelationMaskCount_allocs *cgoAllocMap - refee413e05.correlationMaskCount, ccorrelationMaskCount_allocs = (C.uint32_t)(x.CorrelationMaskCount), cgoAllocsUnknown - allocsee413e05.Borrow(ccorrelationMaskCount_allocs) + var ctransformFeedback_allocs *cgoAllocMap + ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown + allocs64b2a913.Borrow(ctransformFeedback_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 cgeometryStreams_allocs *cgoAllocMap + ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown + allocs64b2a913.Borrow(cgeometryStreams_allocs) - x.refee413e05 = refee413e05 - x.allocsee413e05 = allocsee413e05 - return refee413e05, allocsee413e05 + 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 RenderPassMultiviewCreateInfo) PassValue() (C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { - if x.refee413e05 != nil { - return *x.refee413e05, nil +func (x PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { + if x.ref64b2a913 != nil { + return *x.ref64b2a913, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16685,115 +41794,127 @@ 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 *PhysicalDeviceTransformFeedbackFeatures) Deref() { + if x.ref64b2a913 == 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.ref64b2a913.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64b2a913.pNext)) + x.TransformFeedback = (Bool32)(x.ref64b2a913.transformFeedback) + x.GeometryStreams = (Bool32)(x.ref64b2a913.geometryStreams) } -// allocPhysicalDeviceMultiviewFeaturesMemory allocates memory for type C.VkPhysicalDeviceMultiviewFeatures in C. +// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT 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()) +func allocPhysicalDeviceTransformFeedbackPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMultiviewFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewFeatures{}) +const sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewFeatures) Ref() *C.VkPhysicalDeviceMultiviewFeatures { +func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { if x == nil { return nil } - return x.refd7a7434b + 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 *PhysicalDeviceMultiviewFeatures) Free() { - if x != nil && x.allocsd7a7434b != nil { - x.allocsd7a7434b.(*cgoAllocMap).Free() - x.refd7a7434b = nil +func (x *PhysicalDeviceTransformFeedbackProperties) Free() { + if x != nil && x.allocsc295a2a0 != nil { + x.allocsc295a2a0.(*cgoAllocMap).Free() + x.refc295a2a0 = nil } } -// NewPhysicalDeviceMultiviewFeaturesRef 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 NewPhysicalDeviceMultiviewFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewFeatures { +func NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewFeatures) - obj.refd7a7434b = (*C.VkPhysicalDeviceMultiviewFeatures)(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 *PhysicalDeviceMultiviewFeatures) PassRef() (*C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd7a7434b != nil { - return x.refd7a7434b, nil + } else if x.refc295a2a0 != nil { + return x.refc295a2a0, nil } - memd7a7434b := allocPhysicalDeviceMultiviewFeaturesMemory(1) - refd7a7434b := (*C.VkPhysicalDeviceMultiviewFeatures)(memd7a7434b) - allocsd7a7434b := new(cgoAllocMap) - allocsd7a7434b.Add(memd7a7434b) + memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) + refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) + allocsc295a2a0 := new(cgoAllocMap) + allocsc295a2a0.Add(memc295a2a0) var csType_allocs *cgoAllocMap - refd7a7434b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd7a7434b.Borrow(csType_allocs) + refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc295a2a0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd7a7434b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd7a7434b.Borrow(cpNext_allocs) + refc295a2a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc295a2a0.Borrow(cpNext_allocs) - var cmultiview_allocs *cgoAllocMap - refd7a7434b.multiview, cmultiview_allocs = (C.VkBool32)(x.Multiview), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiview_allocs) + var cmaxTransformFeedbackStreams_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackStreams, cmaxTransformFeedbackStreams_allocs = (C.uint32_t)(x.MaxTransformFeedbackStreams), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackStreams_allocs) - var cmultiviewGeometryShader_allocs *cgoAllocMap - refd7a7434b.multiviewGeometryShader, cmultiviewGeometryShader_allocs = (C.VkBool32)(x.MultiviewGeometryShader), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiviewGeometryShader_allocs) + var cmaxTransformFeedbackBuffers_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBuffers, cmaxTransformFeedbackBuffers_allocs = (C.uint32_t)(x.MaxTransformFeedbackBuffers), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBuffers_allocs) - var cmultiviewTessellationShader_allocs *cgoAllocMap - refd7a7434b.multiviewTessellationShader, cmultiviewTessellationShader_allocs = (C.VkBool32)(x.MultiviewTessellationShader), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiviewTessellationShader_allocs) + var cmaxTransformFeedbackBufferSize_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBufferSize, cmaxTransformFeedbackBufferSize_allocs = (C.VkDeviceSize)(x.MaxTransformFeedbackBufferSize), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferSize_allocs) - x.refd7a7434b = refd7a7434b - x.allocsd7a7434b = allocsd7a7434b - return refd7a7434b, allocsd7a7434b + 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.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 PhysicalDeviceMultiviewFeatures) PassValue() (C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { - if x.refd7a7434b != nil { - return *x.refd7a7434b, nil +func (x PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { + if x.refc295a2a0 != nil { + return *x.refc295a2a0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16801,96 +41922,103 @@ 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 *PhysicalDeviceTransformFeedbackProperties) Deref() { + if x.refc295a2a0 == 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.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) } -// allocPhysicalDeviceMultiviewPropertiesMemory allocates memory for type C.VkPhysicalDeviceMultiviewProperties in C. +// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT 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()) +func allocPipelineRasterizationStateStreamCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateStreamCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMultiviewPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewProperties{}) +const sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewProperties) Ref() *C.VkPhysicalDeviceMultiviewProperties { +func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { if x == nil { return nil } - return x.ref95110029 + 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 *PhysicalDeviceMultiviewProperties) Free() { - if x != nil && x.allocs95110029 != nil { - x.allocs95110029.(*cgoAllocMap).Free() - x.ref95110029 = nil +func (x *PipelineRasterizationStateStreamCreateInfo) Free() { + if x != nil && x.allocsed6e1fb9 != nil { + x.allocsed6e1fb9.(*cgoAllocMap).Free() + x.refed6e1fb9 = nil } } -// NewPhysicalDeviceMultiviewPropertiesRef 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 NewPhysicalDeviceMultiviewPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewProperties { +func NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewProperties) - obj.ref95110029 = (*C.VkPhysicalDeviceMultiviewProperties)(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 *PhysicalDeviceMultiviewProperties) PassRef() (*C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { +func (x *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref95110029 != nil { - return x.ref95110029, nil + } else if x.refed6e1fb9 != nil { + return x.refed6e1fb9, nil } - mem95110029 := allocPhysicalDeviceMultiviewPropertiesMemory(1) - ref95110029 := (*C.VkPhysicalDeviceMultiviewProperties)(mem95110029) - allocs95110029 := new(cgoAllocMap) - allocs95110029.Add(mem95110029) + memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) + refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) + allocsed6e1fb9 := new(cgoAllocMap) + allocsed6e1fb9.Add(memed6e1fb9) var csType_allocs *cgoAllocMap - ref95110029.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs95110029.Borrow(csType_allocs) + refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed6e1fb9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref95110029.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs95110029.Borrow(cpNext_allocs) + refed6e1fb9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cpNext_allocs) - var cmaxMultiviewViewCount_allocs *cgoAllocMap - ref95110029.maxMultiviewViewCount, cmaxMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMultiviewViewCount), cgoAllocsUnknown - allocs95110029.Borrow(cmaxMultiviewViewCount_allocs) + var cflags_allocs *cgoAllocMap + refed6e1fb9.flags, cflags_allocs = (C.VkPipelineRasterizationStateStreamCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cflags_allocs) - var cmaxMultiviewInstanceIndex_allocs *cgoAllocMap - ref95110029.maxMultiviewInstanceIndex, cmaxMultiviewInstanceIndex_allocs = (C.uint32_t)(x.MaxMultiviewInstanceIndex), cgoAllocsUnknown - allocs95110029.Borrow(cmaxMultiviewInstanceIndex_allocs) + var crasterizationStream_allocs *cgoAllocMap + refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown + allocsed6e1fb9.Borrow(crasterizationStream_allocs) - x.ref95110029 = ref95110029 - x.allocs95110029 = allocs95110029 - return ref95110029, allocs95110029 + 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 PhysicalDeviceMultiviewProperties) PassValue() (C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { - if x.ref95110029 != nil { - return *x.ref95110029, nil +func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { + if x.refed6e1fb9 != nil { + return *x.refed6e1fb9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16898,95 +42026,99 @@ 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 *PipelineRasterizationStateStreamCreateInfo) Deref() { + if x.refed6e1fb9 == 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.refed6e1fb9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed6e1fb9.pNext)) + x.Flags = (PipelineRasterizationStateStreamCreateFlags)(x.refed6e1fb9.flags) + x.RasterizationStream = (uint32)(x.refed6e1fb9.rasterizationStream) } -// allocPhysicalDeviceVariablePointerFeaturesMemory allocates memory for type C.VkPhysicalDeviceVariablePointerFeatures in C. +// allocImageViewHandleInfoNVXMemory allocates memory for type C.VkImageViewHandleInfoNVX 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocImageViewHandleInfoNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewHandleInfoNVXValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceVariablePointerFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVariablePointerFeatures{}) +const sizeOfImageViewHandleInfoNVXValue = unsafe.Sizeof([1]C.VkImageViewHandleInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVariablePointerFeatures) Ref() *C.VkPhysicalDeviceVariablePointerFeatures { +func (x *ImageViewHandleInfoNVX) Ref() *C.VkImageViewHandleInfoNVX { if x == nil { return nil } - return x.refdedd8372 + 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 *PhysicalDeviceVariablePointerFeatures) Free() { - if x != nil && x.allocsdedd8372 != nil { - x.allocsdedd8372.(*cgoAllocMap).Free() - x.refdedd8372 = nil +func (x *ImageViewHandleInfoNVX) Free() { + if x != nil && x.allocsc283b384 != nil { + x.allocsc283b384.(*cgoAllocMap).Free() + x.refc283b384 = nil } } -// NewPhysicalDeviceVariablePointerFeaturesRef 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 NewPhysicalDeviceVariablePointerFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVariablePointerFeatures { +func NewImageViewHandleInfoNVXRef(ref unsafe.Pointer) *ImageViewHandleInfoNVX { if ref == nil { return nil } - obj := new(PhysicalDeviceVariablePointerFeatures) - obj.refdedd8372 = (*C.VkPhysicalDeviceVariablePointerFeatures)(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 *PhysicalDeviceVariablePointerFeatures) PassRef() (*C.VkPhysicalDeviceVariablePointerFeatures, *cgoAllocMap) { +func (x *ImageViewHandleInfoNVX) PassRef() (*C.VkImageViewHandleInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdedd8372 != nil { - return x.refdedd8372, nil + } else if x.refc283b384 != nil { + return x.refc283b384, nil } - memdedd8372 := allocPhysicalDeviceVariablePointerFeaturesMemory(1) - refdedd8372 := (*C.VkPhysicalDeviceVariablePointerFeatures)(memdedd8372) - allocsdedd8372 := new(cgoAllocMap) - allocsdedd8372.Add(memdedd8372) + memc283b384 := allocImageViewHandleInfoNVXMemory(1) + refc283b384 := (*C.VkImageViewHandleInfoNVX)(memc283b384) + allocsc283b384 := new(cgoAllocMap) + allocsc283b384.Add(memc283b384) var csType_allocs *cgoAllocMap - refdedd8372.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdedd8372.Borrow(csType_allocs) + refc283b384.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc283b384.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdedd8372.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdedd8372.Borrow(cpNext_allocs) + refc283b384.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc283b384.Borrow(cpNext_allocs) - var cvariablePointersStorageBuffer_allocs *cgoAllocMap - refdedd8372.variablePointersStorageBuffer, cvariablePointersStorageBuffer_allocs = (C.VkBool32)(x.VariablePointersStorageBuffer), cgoAllocsUnknown - allocsdedd8372.Borrow(cvariablePointersStorageBuffer_allocs) + var cimageView_allocs *cgoAllocMap + refc283b384.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocsc283b384.Borrow(cimageView_allocs) - var cvariablePointers_allocs *cgoAllocMap - refdedd8372.variablePointers, cvariablePointers_allocs = (C.VkBool32)(x.VariablePointers), cgoAllocsUnknown - allocsdedd8372.Borrow(cvariablePointers_allocs) + 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.refdedd8372 = refdedd8372 - x.allocsdedd8372 = allocsdedd8372 - return refdedd8372, allocsdedd8372 + 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 PhysicalDeviceVariablePointerFeatures) PassValue() (C.VkPhysicalDeviceVariablePointerFeatures, *cgoAllocMap) { - if x.refdedd8372 != nil { - return *x.refdedd8372, nil +func (x ImageViewHandleInfoNVX) PassValue() (C.VkImageViewHandleInfoNVX, *cgoAllocMap) { + if x.refc283b384 != nil { + return *x.refc283b384, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16994,91 +42126,96 @@ 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 *ImageViewHandleInfoNVX) Deref() { + if x.refc283b384 == 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.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)) } -// allocPhysicalDeviceProtectedMemoryFeaturesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryFeatures in C. +// allocImageViewAddressPropertiesNVXMemory allocates memory for type C.VkImageViewAddressPropertiesNVX 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()) +func allocImageViewAddressPropertiesNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewAddressPropertiesNVXValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceProtectedMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryFeatures{}) +const sizeOfImageViewAddressPropertiesNVXValue = unsafe.Sizeof([1]C.VkImageViewAddressPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProtectedMemoryFeatures) Ref() *C.VkPhysicalDeviceProtectedMemoryFeatures { +func (x *ImageViewAddressPropertiesNVX) Ref() *C.VkImageViewAddressPropertiesNVX { if x == nil { return nil } - return x.refac441ed1 + 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 *PhysicalDeviceProtectedMemoryFeatures) Free() { - if x != nil && x.allocsac441ed1 != nil { - x.allocsac441ed1.(*cgoAllocMap).Free() - x.refac441ed1 = nil +func (x *ImageViewAddressPropertiesNVX) Free() { + if x != nil && x.allocse6dd1556 != nil { + x.allocse6dd1556.(*cgoAllocMap).Free() + x.refe6dd1556 = nil } } -// NewPhysicalDeviceProtectedMemoryFeaturesRef 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 NewPhysicalDeviceProtectedMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryFeatures { +func NewImageViewAddressPropertiesNVXRef(ref unsafe.Pointer) *ImageViewAddressPropertiesNVX { if ref == nil { return nil } - obj := new(PhysicalDeviceProtectedMemoryFeatures) - obj.refac441ed1 = (*C.VkPhysicalDeviceProtectedMemoryFeatures)(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 *PhysicalDeviceProtectedMemoryFeatures) PassRef() (*C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { +func (x *ImageViewAddressPropertiesNVX) PassRef() (*C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac441ed1 != nil { - return x.refac441ed1, nil + } else if x.refe6dd1556 != nil { + return x.refe6dd1556, nil } - memac441ed1 := allocPhysicalDeviceProtectedMemoryFeaturesMemory(1) - refac441ed1 := (*C.VkPhysicalDeviceProtectedMemoryFeatures)(memac441ed1) - allocsac441ed1 := new(cgoAllocMap) - allocsac441ed1.Add(memac441ed1) + meme6dd1556 := allocImageViewAddressPropertiesNVXMemory(1) + refe6dd1556 := (*C.VkImageViewAddressPropertiesNVX)(meme6dd1556) + allocse6dd1556 := new(cgoAllocMap) + allocse6dd1556.Add(meme6dd1556) var csType_allocs *cgoAllocMap - refac441ed1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsac441ed1.Borrow(csType_allocs) + refe6dd1556.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse6dd1556.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refac441ed1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsac441ed1.Borrow(cpNext_allocs) + refe6dd1556.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse6dd1556.Borrow(cpNext_allocs) - var cprotectedMemory_allocs *cgoAllocMap - refac441ed1.protectedMemory, cprotectedMemory_allocs = (C.VkBool32)(x.ProtectedMemory), cgoAllocsUnknown - allocsac441ed1.Borrow(cprotectedMemory_allocs) + var cdeviceAddress_allocs *cgoAllocMap + refe6dd1556.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocse6dd1556.Borrow(cdeviceAddress_allocs) - x.refac441ed1 = refac441ed1 - x.allocsac441ed1 = allocsac441ed1 - return refac441ed1, allocsac441ed1 + var csize_allocs *cgoAllocMap + refe6dd1556.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocse6dd1556.Borrow(csize_allocs) + + 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 PhysicalDeviceProtectedMemoryFeatures) PassValue() (C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { - if x.refac441ed1 != nil { - return *x.refac441ed1, nil +func (x ImageViewAddressPropertiesNVX) PassValue() (C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { + if x.refe6dd1556 != nil { + return *x.refe6dd1556, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17086,90 +42223,91 @@ 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 *ImageViewAddressPropertiesNVX) Deref() { + if x.refe6dd1556 == 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.refe6dd1556.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe6dd1556.pNext)) + x.DeviceAddress = (DeviceAddress)(x.refe6dd1556.deviceAddress) + x.Size = (DeviceSize)(x.refe6dd1556.size) } -// allocPhysicalDeviceProtectedMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryProperties in C. +// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD 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()) +func allocTextureLODGatherFormatPropertiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfTextureLODGatherFormatPropertiesAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceProtectedMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryProperties{}) +const sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProtectedMemoryProperties) Ref() *C.VkPhysicalDeviceProtectedMemoryProperties { +func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { if x == nil { return nil } - return x.refb653413 + 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 *PhysicalDeviceProtectedMemoryProperties) Free() { - if x != nil && x.allocsb653413 != nil { - x.allocsb653413.(*cgoAllocMap).Free() - x.refb653413 = nil +func (x *TextureLODGatherFormatPropertiesAMD) Free() { + if x != nil && x.allocs519ba3a9 != nil { + x.allocs519ba3a9.(*cgoAllocMap).Free() + x.ref519ba3a9 = nil } } -// NewPhysicalDeviceProtectedMemoryPropertiesRef 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 NewPhysicalDeviceProtectedMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryProperties { +func NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { if ref == nil { return nil } - obj := new(PhysicalDeviceProtectedMemoryProperties) - obj.refb653413 = (*C.VkPhysicalDeviceProtectedMemoryProperties)(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 *PhysicalDeviceProtectedMemoryProperties) PassRef() (*C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { +func (x *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb653413 != nil { - return x.refb653413, nil + } else if x.ref519ba3a9 != nil { + return x.ref519ba3a9, nil } - memb653413 := allocPhysicalDeviceProtectedMemoryPropertiesMemory(1) - refb653413 := (*C.VkPhysicalDeviceProtectedMemoryProperties)(memb653413) - allocsb653413 := new(cgoAllocMap) - allocsb653413.Add(memb653413) + mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) + ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) + allocs519ba3a9 := new(cgoAllocMap) + allocs519ba3a9.Add(mem519ba3a9) var csType_allocs *cgoAllocMap - refb653413.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb653413.Borrow(csType_allocs) + ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs519ba3a9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb653413.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb653413.Borrow(cpNext_allocs) + ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs519ba3a9.Borrow(cpNext_allocs) - var cprotectedNoFault_allocs *cgoAllocMap - refb653413.protectedNoFault, cprotectedNoFault_allocs = (C.VkBool32)(x.ProtectedNoFault), cgoAllocsUnknown - allocsb653413.Borrow(cprotectedNoFault_allocs) + var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap + ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown + allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) - x.refb653413 = refb653413 - x.allocsb653413 = allocsb653413 - return refb653413, allocsb653413 + 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 PhysicalDeviceProtectedMemoryProperties) PassValue() (C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { - if x.refb653413 != nil { - return *x.refb653413, nil +func (x TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { + if x.ref519ba3a9 != nil { + return *x.ref519ba3a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17177,98 +42315,98 @@ 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 *TextureLODGatherFormatPropertiesAMD) Deref() { + if x.ref519ba3a9 == 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.ref519ba3a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref519ba3a9.pNext)) + x.SupportsTextureGatherLODBiasAMD = (Bool32)(x.ref519ba3a9.supportsTextureGatherLODBiasAMD) } -// allocDeviceQueueInfo2Memory allocates memory for type C.VkDeviceQueueInfo2 in C. +// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD 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()) +func allocShaderResourceUsageAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderResourceUsageAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceQueueInfo2Value = unsafe.Sizeof([1]C.VkDeviceQueueInfo2{}) +const sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueInfo2) Ref() *C.VkDeviceQueueInfo2 { +func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { if x == nil { return nil } - return x.ref2f267e52 + 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 *DeviceQueueInfo2) Free() { - if x != nil && x.allocs2f267e52 != nil { - x.allocs2f267e52.(*cgoAllocMap).Free() - x.ref2f267e52 = nil +func (x *ShaderResourceUsageAMD) Free() { + if x != nil && x.allocs8a688131 != nil { + x.allocs8a688131.(*cgoAllocMap).Free() + x.ref8a688131 = nil } } -// NewDeviceQueueInfo2Ref 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 NewDeviceQueueInfo2Ref(ref unsafe.Pointer) *DeviceQueueInfo2 { +func NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { if ref == nil { return nil } - obj := new(DeviceQueueInfo2) - obj.ref2f267e52 = (*C.VkDeviceQueueInfo2)(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 *DeviceQueueInfo2) PassRef() (*C.VkDeviceQueueInfo2, *cgoAllocMap) { +func (x *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f267e52 != nil { - return x.ref2f267e52, nil + } else if x.ref8a688131 != nil { + return x.ref8a688131, nil } - mem2f267e52 := allocDeviceQueueInfo2Memory(1) - ref2f267e52 := (*C.VkDeviceQueueInfo2)(mem2f267e52) - allocs2f267e52 := new(cgoAllocMap) - allocs2f267e52.Add(mem2f267e52) + mem8a688131 := allocShaderResourceUsageAMDMemory(1) + ref8a688131 := (*C.VkShaderResourceUsageAMD)(mem8a688131) + allocs8a688131 := new(cgoAllocMap) + allocs8a688131.Add(mem8a688131) - var csType_allocs *cgoAllocMap - ref2f267e52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2f267e52.Borrow(csType_allocs) + var cnumUsedVgprs_allocs *cgoAllocMap + ref8a688131.numUsedVgprs, cnumUsedVgprs_allocs = (C.uint32_t)(x.NumUsedVgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedVgprs_allocs) - var cpNext_allocs *cgoAllocMap - ref2f267e52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2f267e52.Borrow(cpNext_allocs) + var cnumUsedSgprs_allocs *cgoAllocMap + ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedSgprs_allocs) - var cflags_allocs *cgoAllocMap - ref2f267e52.flags, cflags_allocs = (C.VkDeviceQueueCreateFlags)(x.Flags), cgoAllocsUnknown - allocs2f267e52.Borrow(cflags_allocs) + var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap + ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown + allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) - var cqueueFamilyIndex_allocs *cgoAllocMap - ref2f267e52.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs2f267e52.Borrow(cqueueFamilyIndex_allocs) + var cldsUsageSizeInBytes_allocs *cgoAllocMap + ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) - var cqueueIndex_allocs *cgoAllocMap - ref2f267e52.queueIndex, cqueueIndex_allocs = (C.uint32_t)(x.QueueIndex), cgoAllocsUnknown - allocs2f267e52.Borrow(cqueueIndex_allocs) + var cscratchMemUsageInBytes_allocs *cgoAllocMap + ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) - x.ref2f267e52 = ref2f267e52 - x.allocs2f267e52 = allocs2f267e52 - return ref2f267e52, allocs2f267e52 + 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 DeviceQueueInfo2) PassValue() (C.VkDeviceQueueInfo2, *cgoAllocMap) { - if x.ref2f267e52 != nil { - return *x.ref2f267e52, nil +func (x ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { + if x.ref8a688131 != nil { + return *x.ref8a688131, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17276,92 +42414,108 @@ 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 *ShaderResourceUsageAMD) Deref() { + if x.ref8a688131 == 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.NumUsedVgprs = (uint32)(x.ref8a688131.numUsedVgprs) + x.NumUsedSgprs = (uint32)(x.ref8a688131.numUsedSgprs) + x.LdsSizePerLocalWorkGroup = (uint32)(x.ref8a688131.ldsSizePerLocalWorkGroup) + x.LdsUsageSizeInBytes = (uint32)(x.ref8a688131.ldsUsageSizeInBytes) + x.ScratchMemUsageInBytes = (uint32)(x.ref8a688131.scratchMemUsageInBytes) } -// allocProtectedSubmitInfoMemory allocates memory for type C.VkProtectedSubmitInfo in C. +// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD 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()) +func allocShaderStatisticsInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderStatisticsInfoAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfProtectedSubmitInfoValue = unsafe.Sizeof([1]C.VkProtectedSubmitInfo{}) +const sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ProtectedSubmitInfo) Ref() *C.VkProtectedSubmitInfo { +func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { if x == nil { return nil } - return x.ref6bd69669 + 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 *ProtectedSubmitInfo) Free() { - if x != nil && x.allocs6bd69669 != nil { - x.allocs6bd69669.(*cgoAllocMap).Free() - x.ref6bd69669 = nil +func (x *ShaderStatisticsInfoAMD) Free() { + if x != nil && x.allocs896a52bf != nil { + x.allocs896a52bf.(*cgoAllocMap).Free() + x.ref896a52bf = nil } } -// NewProtectedSubmitInfoRef 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 NewProtectedSubmitInfoRef(ref unsafe.Pointer) *ProtectedSubmitInfo { +func NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { if ref == nil { return nil } - obj := new(ProtectedSubmitInfo) - obj.ref6bd69669 = (*C.VkProtectedSubmitInfo)(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 *ProtectedSubmitInfo) PassRef() (*C.VkProtectedSubmitInfo, *cgoAllocMap) { +func (x *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bd69669 != nil { - return x.ref6bd69669, nil + } else if x.ref896a52bf != nil { + return x.ref896a52bf, nil } - mem6bd69669 := allocProtectedSubmitInfoMemory(1) - ref6bd69669 := (*C.VkProtectedSubmitInfo)(mem6bd69669) - allocs6bd69669 := new(cgoAllocMap) - allocs6bd69669.Add(mem6bd69669) + mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) + ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) + allocs896a52bf := new(cgoAllocMap) + allocs896a52bf.Add(mem896a52bf) - var csType_allocs *cgoAllocMap - ref6bd69669.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6bd69669.Borrow(csType_allocs) + var cshaderStageMask_allocs *cgoAllocMap + ref896a52bf.shaderStageMask, cshaderStageMask_allocs = (C.VkShaderStageFlags)(x.ShaderStageMask), cgoAllocsUnknown + allocs896a52bf.Borrow(cshaderStageMask_allocs) - var cpNext_allocs *cgoAllocMap - ref6bd69669.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6bd69669.Borrow(cpNext_allocs) + var cresourceUsage_allocs *cgoAllocMap + ref896a52bf.resourceUsage, cresourceUsage_allocs = x.ResourceUsage.PassValue() + allocs896a52bf.Borrow(cresourceUsage_allocs) - var cprotectedSubmit_allocs *cgoAllocMap - ref6bd69669.protectedSubmit, cprotectedSubmit_allocs = (C.VkBool32)(x.ProtectedSubmit), cgoAllocsUnknown - allocs6bd69669.Borrow(cprotectedSubmit_allocs) + var cnumPhysicalVgprs_allocs *cgoAllocMap + ref896a52bf.numPhysicalVgprs, cnumPhysicalVgprs_allocs = (C.uint32_t)(x.NumPhysicalVgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumPhysicalVgprs_allocs) - x.ref6bd69669 = ref6bd69669 - x.allocs6bd69669 = allocs6bd69669 - return ref6bd69669, allocs6bd69669 + 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 ProtectedSubmitInfo) PassValue() (C.VkProtectedSubmitInfo, *cgoAllocMap) { - if x.ref6bd69669 != nil { - return *x.ref6bd69669, nil +func (x ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { + if x.ref896a52bf != nil { + return *x.ref896a52bf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17369,118 +42523,94 @@ 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 *ShaderStatisticsInfoAMD) Deref() { + if x.ref896a52bf == nil { return } - x.SType = (StructureType)(x.ref6bd69669.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bd69669.pNext)) - x.ProtectedSubmit = (Bool32)(x.ref6bd69669.protectedSubmit) + 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)) } -// allocSamplerYcbcrConversionCreateInfoMemory allocates memory for type C.VkSamplerYcbcrConversionCreateInfo in C. +// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV 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()) +func allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSamplerYcbcrConversionCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionCreateInfo{}) +const sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionCreateInfo) Ref() *C.VkSamplerYcbcrConversionCreateInfo { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { if x == nil { return nil } - return x.ref9875bff7 + 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 *SamplerYcbcrConversionCreateInfo) Free() { - if x != nil && x.allocs9875bff7 != nil { - x.allocs9875bff7.(*cgoAllocMap).Free() - x.ref9875bff7 = nil +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { + if x != nil && x.allocsdf4a62d1 != nil { + x.allocsdf4a62d1.(*cgoAllocMap).Free() + x.refdf4a62d1 = nil } } -// NewSamplerYcbcrConversionCreateInfoRef 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 NewSamplerYcbcrConversionCreateInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionCreateInfo { +func NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionCreateInfo) - obj.ref9875bff7 = (*C.VkSamplerYcbcrConversionCreateInfo)(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 *SamplerYcbcrConversionCreateInfo) PassRef() (*C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9875bff7 != nil { - return x.ref9875bff7, nil + } else if x.refdf4a62d1 != nil { + return x.refdf4a62d1, nil } - mem9875bff7 := allocSamplerYcbcrConversionCreateInfoMemory(1) - ref9875bff7 := (*C.VkSamplerYcbcrConversionCreateInfo)(mem9875bff7) - allocs9875bff7 := new(cgoAllocMap) - allocs9875bff7.Add(mem9875bff7) + memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) + refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) + allocsdf4a62d1 := new(cgoAllocMap) + allocsdf4a62d1.Add(memdf4a62d1) var csType_allocs *cgoAllocMap - ref9875bff7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9875bff7.Borrow(csType_allocs) + refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf4a62d1.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) + refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf4a62d1.Borrow(cpNext_allocs) - var cforceExplicitReconstruction_allocs *cgoAllocMap - ref9875bff7.forceExplicitReconstruction, cforceExplicitReconstruction_allocs = (C.VkBool32)(x.ForceExplicitReconstruction), cgoAllocsUnknown - allocs9875bff7.Borrow(cforceExplicitReconstruction_allocs) + var ccornerSampledImage_allocs *cgoAllocMap + refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown + allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) - x.ref9875bff7 = ref9875bff7 - x.allocs9875bff7 = allocs9875bff7 - return ref9875bff7, allocs9875bff7 + 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 SamplerYcbcrConversionCreateInfo) PassValue() (C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { - if x.ref9875bff7 != nil { - return *x.ref9875bff7, nil +func (x PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { + if x.refdf4a62d1 != nil { + return *x.refdf4a62d1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17488,97 +42618,94 @@ 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 *PhysicalDeviceCornerSampledImageFeaturesNV) Deref() { + if x.refdf4a62d1 == 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.SType = (StructureType)(x.refdf4a62d1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf4a62d1.pNext)) + x.CornerSampledImage = (Bool32)(x.refdf4a62d1.cornerSampledImage) } -// allocSamplerYcbcrConversionInfoMemory allocates memory for type C.VkSamplerYcbcrConversionInfo in C. +// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV 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()) +func allocExternalImageFormatPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalImageFormatPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSamplerYcbcrConversionInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionInfo{}) +const sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionInfo) Ref() *C.VkSamplerYcbcrConversionInfo { +func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { if x == nil { return nil } - return x.ref11ff5547 + 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 *SamplerYcbcrConversionInfo) Free() { - if x != nil && x.allocs11ff5547 != nil { - x.allocs11ff5547.(*cgoAllocMap).Free() - x.ref11ff5547 = nil +func (x *ExternalImageFormatPropertiesNV) Free() { + if x != nil && x.allocsa8900ce5 != nil { + x.allocsa8900ce5.(*cgoAllocMap).Free() + x.refa8900ce5 = nil } } -// NewSamplerYcbcrConversionInfoRef 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 NewSamplerYcbcrConversionInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionInfo { +func NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionInfo) - obj.ref11ff5547 = (*C.VkSamplerYcbcrConversionInfo)(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 *SamplerYcbcrConversionInfo) PassRef() (*C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { +func (x *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11ff5547 != nil { - return x.ref11ff5547, nil + } else if x.refa8900ce5 != nil { + return x.refa8900ce5, nil } - mem11ff5547 := allocSamplerYcbcrConversionInfoMemory(1) - ref11ff5547 := (*C.VkSamplerYcbcrConversionInfo)(mem11ff5547) - allocs11ff5547 := new(cgoAllocMap) - allocs11ff5547.Add(mem11ff5547) + mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) + refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) + allocsa8900ce5 := new(cgoAllocMap) + allocsa8900ce5.Add(mema8900ce5) - var csType_allocs *cgoAllocMap - ref11ff5547.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs11ff5547.Borrow(csType_allocs) + var cimageFormatProperties_allocs *cgoAllocMap + refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() + allocsa8900ce5.Borrow(cimageFormatProperties_allocs) - var cpNext_allocs *cgoAllocMap - ref11ff5547.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs11ff5547.Borrow(cpNext_allocs) + var cexternalMemoryFeatures_allocs *cgoAllocMap + refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) - var cconversion_allocs *cgoAllocMap - ref11ff5547.conversion, cconversion_allocs = *(*C.VkSamplerYcbcrConversion)(unsafe.Pointer(&x.Conversion)), cgoAllocsUnknown - allocs11ff5547.Borrow(cconversion_allocs) + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) - x.ref11ff5547 = ref11ff5547 - x.allocs11ff5547 = allocs11ff5547 - return ref11ff5547, allocs11ff5547 + 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 SamplerYcbcrConversionInfo) PassValue() (C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { - if x.ref11ff5547 != nil { - return *x.ref11ff5547, nil +func (x ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { + if x.refa8900ce5 != nil { + return *x.refa8900ce5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17586,90 +42713,91 @@ 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 *ExternalImageFormatPropertiesNV) Deref() { + if x.refa8900ce5 == 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.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) } -// allocBindImagePlaneMemoryInfoMemory allocates memory for type C.VkBindImagePlaneMemoryInfo in C. +// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV 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()) +func allocExternalMemoryImageCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryImageCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindImagePlaneMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImagePlaneMemoryInfo{}) +const sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImagePlaneMemoryInfo) Ref() *C.VkBindImagePlaneMemoryInfo { +func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { if x == nil { return nil } - return x.ref56b81476 + 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 *BindImagePlaneMemoryInfo) Free() { - if x != nil && x.allocs56b81476 != nil { - x.allocs56b81476.(*cgoAllocMap).Free() - x.ref56b81476 = nil +func (x *ExternalMemoryImageCreateInfoNV) Free() { + if x != nil && x.allocs9a7fb6c8 != nil { + x.allocs9a7fb6c8.(*cgoAllocMap).Free() + x.ref9a7fb6c8 = nil } } -// NewBindImagePlaneMemoryInfoRef 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 NewBindImagePlaneMemoryInfoRef(ref unsafe.Pointer) *BindImagePlaneMemoryInfo { +func NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { if ref == nil { return nil } - obj := new(BindImagePlaneMemoryInfo) - obj.ref56b81476 = (*C.VkBindImagePlaneMemoryInfo)(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 *BindImagePlaneMemoryInfo) PassRef() (*C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { +func (x *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref56b81476 != nil { - return x.ref56b81476, nil + } else if x.ref9a7fb6c8 != nil { + return x.ref9a7fb6c8, nil } - mem56b81476 := allocBindImagePlaneMemoryInfoMemory(1) - ref56b81476 := (*C.VkBindImagePlaneMemoryInfo)(mem56b81476) - allocs56b81476 := new(cgoAllocMap) - allocs56b81476.Add(mem56b81476) + mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) + ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) + allocs9a7fb6c8 := new(cgoAllocMap) + allocs9a7fb6c8.Add(mem9a7fb6c8) var csType_allocs *cgoAllocMap - ref56b81476.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs56b81476.Borrow(csType_allocs) + ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref56b81476.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs56b81476.Borrow(cpNext_allocs) + ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(cpNext_allocs) - var cplaneAspect_allocs *cgoAllocMap - ref56b81476.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown - allocs56b81476.Borrow(cplaneAspect_allocs) + var chandleTypes_allocs *cgoAllocMap + ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(chandleTypes_allocs) - x.ref56b81476 = ref56b81476 - x.allocs56b81476 = allocs56b81476 - return ref56b81476, allocs56b81476 + 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 BindImagePlaneMemoryInfo) PassValue() (C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { - if x.ref56b81476 != nil { - return *x.ref56b81476, nil +func (x ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { + if x.ref9a7fb6c8 != nil { + return *x.ref9a7fb6c8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17677,90 +42805,90 @@ 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 *ExternalMemoryImageCreateInfoNV) Deref() { + if x.ref9a7fb6c8 == 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.ref9a7fb6c8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a7fb6c8.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref9a7fb6c8.handleTypes) } -// allocImagePlaneMemoryRequirementsInfoMemory allocates memory for type C.VkImagePlaneMemoryRequirementsInfo in C. +// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV 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()) +func allocExportMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportMemoryAllocateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImagePlaneMemoryRequirementsInfoValue = unsafe.Sizeof([1]C.VkImagePlaneMemoryRequirementsInfo{}) +const sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImagePlaneMemoryRequirementsInfo) Ref() *C.VkImagePlaneMemoryRequirementsInfo { +func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { if x == nil { return nil } - return x.refefec131f + 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 *ImagePlaneMemoryRequirementsInfo) Free() { - if x != nil && x.allocsefec131f != nil { - x.allocsefec131f.(*cgoAllocMap).Free() - x.refefec131f = nil +func (x *ExportMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs5066f33 != nil { + x.allocs5066f33.(*cgoAllocMap).Free() + x.ref5066f33 = nil } } -// NewImagePlaneMemoryRequirementsInfoRef 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 NewImagePlaneMemoryRequirementsInfoRef(ref unsafe.Pointer) *ImagePlaneMemoryRequirementsInfo { +func NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(ImagePlaneMemoryRequirementsInfo) - obj.refefec131f = (*C.VkImagePlaneMemoryRequirementsInfo)(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 *ImagePlaneMemoryRequirementsInfo) PassRef() (*C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { +func (x *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refefec131f != nil { - return x.refefec131f, nil + } else if x.ref5066f33 != nil { + return x.ref5066f33, nil } - memefec131f := allocImagePlaneMemoryRequirementsInfoMemory(1) - refefec131f := (*C.VkImagePlaneMemoryRequirementsInfo)(memefec131f) - allocsefec131f := new(cgoAllocMap) - allocsefec131f.Add(memefec131f) + mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) + ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) + allocs5066f33 := new(cgoAllocMap) + allocs5066f33.Add(mem5066f33) var csType_allocs *cgoAllocMap - refefec131f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsefec131f.Borrow(csType_allocs) + ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5066f33.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refefec131f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsefec131f.Borrow(cpNext_allocs) + ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5066f33.Borrow(cpNext_allocs) - var cplaneAspect_allocs *cgoAllocMap - refefec131f.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown - allocsefec131f.Borrow(cplaneAspect_allocs) + var chandleTypes_allocs *cgoAllocMap + ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs5066f33.Borrow(chandleTypes_allocs) - x.refefec131f = refefec131f - x.allocsefec131f = allocsefec131f - return refefec131f, allocsefec131f + 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 ImagePlaneMemoryRequirementsInfo) PassValue() (C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { - if x.refefec131f != nil { - return *x.refefec131f, nil +func (x ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref5066f33 != nil { + return *x.ref5066f33, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17768,90 +42896,123 @@ 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 *ExportMemoryAllocateInfoNV) Deref() { + if x.ref5066f33 == nil { return } - x.SType = (StructureType)(x.refefec131f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refefec131f.pNext)) - x.PlaneAspect = (ImageAspectFlagBits)(x.refefec131f.planeAspect) + x.SType = (StructureType)(x.ref5066f33.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5066f33.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref5066f33.handleTypes) } -// allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory allocates memory for type C.VkPhysicalDeviceSamplerYcbcrConversionFeatures in C. +// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT 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()) +func allocValidationFlagsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFlagsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSamplerYcbcrConversionFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerYcbcrConversionFeatures{}) +const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) + +// copyPValidationCheckBytes copies the data from Go slice as *C.VkValidationCheckEXT. +func copyPValidationCheckBytes(slice *sliceHeader) (*C.VkValidationCheckEXT, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfValidationCheckValue) * slice.Len, + Cap: int(sizeOfValidationCheckValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkValidationCheckEXT)(mem0), allocs +} + +// allocValidationCheckMemory allocates memory for type C.VkValidationCheckEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocValidationCheckMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationCheckValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfValidationCheckValue = unsafe.Sizeof([1]C.VkValidationCheckEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Ref() *C.VkPhysicalDeviceSamplerYcbcrConversionFeatures { +func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { if x == nil { return nil } - return x.ref1d054d67 + 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 *PhysicalDeviceSamplerYcbcrConversionFeatures) Free() { - if x != nil && x.allocs1d054d67 != nil { - x.allocs1d054d67.(*cgoAllocMap).Free() - x.ref1d054d67 = nil +func (x *ValidationFlags) Free() { + if x != nil && x.allocsffe080ad != nil { + x.allocsffe080ad.(*cgoAllocMap).Free() + x.refffe080ad = nil } } -// NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef 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 NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerYcbcrConversionFeatures { +func NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { if ref == nil { return nil } - obj := new(PhysicalDeviceSamplerYcbcrConversionFeatures) - obj.ref1d054d67 = (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(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 *PhysicalDeviceSamplerYcbcrConversionFeatures) PassRef() (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { +func (x *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d054d67 != nil { - return x.ref1d054d67, nil + } else if x.refffe080ad != nil { + return x.refffe080ad, nil } - mem1d054d67 := allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory(1) - ref1d054d67 := (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(mem1d054d67) - allocs1d054d67 := new(cgoAllocMap) - allocs1d054d67.Add(mem1d054d67) + memffe080ad := allocValidationFlagsMemory(1) + refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) + allocsffe080ad := new(cgoAllocMap) + allocsffe080ad.Add(memffe080ad) var csType_allocs *cgoAllocMap - ref1d054d67.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d054d67.Borrow(csType_allocs) + refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe080ad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1d054d67.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1d054d67.Borrow(cpNext_allocs) + refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe080ad.Borrow(cpNext_allocs) - var csamplerYcbcrConversion_allocs *cgoAllocMap - ref1d054d67.samplerYcbcrConversion, csamplerYcbcrConversion_allocs = (C.VkBool32)(x.SamplerYcbcrConversion), cgoAllocsUnknown - allocs1d054d67.Borrow(csamplerYcbcrConversion_allocs) + var cdisabledValidationCheckCount_allocs *cgoAllocMap + refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown + allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) - x.ref1d054d67 = ref1d054d67 - x.allocs1d054d67 = allocs1d054d67 - return ref1d054d67, allocs1d054d67 + var cpDisabledValidationChecks_allocs *cgoAllocMap + refffe080ad.pDisabledValidationChecks, cpDisabledValidationChecks_allocs = copyPValidationCheckBytes((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks))) + allocsffe080ad.Borrow(cpDisabledValidationChecks_allocs) + + 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 PhysicalDeviceSamplerYcbcrConversionFeatures) PassValue() (C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { - if x.ref1d054d67 != nil { - return *x.ref1d054d67, nil +func (x ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { + if x.refffe080ad != nil { + return *x.refffe080ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17859,90 +43020,95 @@ 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 *ValidationFlags) Deref() { + if x.refffe080ad == 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.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 = ? + } -// allocSamplerYcbcrConversionImageFormatPropertiesMemory allocates memory for type C.VkSamplerYcbcrConversionImageFormatProperties in C. +// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT 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()) +func allocImageViewASTCDecodeModeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewASTCDecodeModeValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSamplerYcbcrConversionImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionImageFormatProperties{}) +const sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionImageFormatProperties) Ref() *C.VkSamplerYcbcrConversionImageFormatProperties { +func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { if x == nil { return nil } - return x.ref6bc79530 + 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 *SamplerYcbcrConversionImageFormatProperties) Free() { - if x != nil && x.allocs6bc79530 != nil { - x.allocs6bc79530.(*cgoAllocMap).Free() - x.ref6bc79530 = nil +func (x *ImageViewASTCDecodeMode) Free() { + if x != nil && x.allocs3a973fc0 != nil { + x.allocs3a973fc0.(*cgoAllocMap).Free() + x.ref3a973fc0 = nil } } -// NewSamplerYcbcrConversionImageFormatPropertiesRef 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 NewSamplerYcbcrConversionImageFormatPropertiesRef(ref unsafe.Pointer) *SamplerYcbcrConversionImageFormatProperties { +func NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionImageFormatProperties) - obj.ref6bc79530 = (*C.VkSamplerYcbcrConversionImageFormatProperties)(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 *SamplerYcbcrConversionImageFormatProperties) PassRef() (*C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { +func (x *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bc79530 != nil { - return x.ref6bc79530, nil + } else if x.ref3a973fc0 != nil { + return x.ref3a973fc0, nil } - mem6bc79530 := allocSamplerYcbcrConversionImageFormatPropertiesMemory(1) - ref6bc79530 := (*C.VkSamplerYcbcrConversionImageFormatProperties)(mem6bc79530) - allocs6bc79530 := new(cgoAllocMap) - allocs6bc79530.Add(mem6bc79530) + mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) + ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) + allocs3a973fc0 := new(cgoAllocMap) + allocs3a973fc0.Add(mem3a973fc0) var csType_allocs *cgoAllocMap - ref6bc79530.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6bc79530.Borrow(csType_allocs) + ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3a973fc0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6bc79530.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6bc79530.Borrow(cpNext_allocs) + ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3a973fc0.Borrow(cpNext_allocs) - var ccombinedImageSamplerDescriptorCount_allocs *cgoAllocMap - ref6bc79530.combinedImageSamplerDescriptorCount, ccombinedImageSamplerDescriptorCount_allocs = (C.uint32_t)(x.CombinedImageSamplerDescriptorCount), cgoAllocsUnknown - allocs6bc79530.Borrow(ccombinedImageSamplerDescriptorCount_allocs) + var cdecodeMode_allocs *cgoAllocMap + ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown + allocs3a973fc0.Borrow(cdecodeMode_allocs) - x.ref6bc79530 = ref6bc79530 - x.allocs6bc79530 = allocs6bc79530 - return ref6bc79530, allocs6bc79530 + 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 SamplerYcbcrConversionImageFormatProperties) PassValue() (C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { - if x.ref6bc79530 != nil { - return *x.ref6bc79530, nil +func (x ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { + if x.ref3a973fc0 != nil { + return *x.ref3a973fc0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17950,102 +43116,90 @@ 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 *ImageViewASTCDecodeMode) Deref() { + if x.ref3a973fc0 == 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.ref3a973fc0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3a973fc0.pNext)) + x.DecodeMode = (Format)(x.ref3a973fc0.decodeMode) } -// allocDescriptorUpdateTemplateEntryMemory allocates memory for type C.VkDescriptorUpdateTemplateEntry in C. +// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT 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()) +func allocPhysicalDeviceASTCDecodeFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceASTCDecodeFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorUpdateTemplateEntryValue = unsafe.Sizeof([1]C.VkDescriptorUpdateTemplateEntry{}) +const sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorUpdateTemplateEntry) Ref() *C.VkDescriptorUpdateTemplateEntry { +func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { if x == nil { return nil } - return x.refabf78fb7 + 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 *DescriptorUpdateTemplateEntry) Free() { - if x != nil && x.allocsabf78fb7 != nil { - x.allocsabf78fb7.(*cgoAllocMap).Free() - x.refabf78fb7 = nil +func (x *PhysicalDeviceASTCDecodeFeatures) Free() { + if x != nil && x.allocsd8af7d5a != nil { + x.allocsd8af7d5a.(*cgoAllocMap).Free() + x.refd8af7d5a = nil } } -// NewDescriptorUpdateTemplateEntryRef 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 NewDescriptorUpdateTemplateEntryRef(ref unsafe.Pointer) *DescriptorUpdateTemplateEntry { +func NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { if ref == nil { return nil } - obj := new(DescriptorUpdateTemplateEntry) - obj.refabf78fb7 = (*C.VkDescriptorUpdateTemplateEntry)(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 *DescriptorUpdateTemplateEntry) PassRef() (*C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { +func (x *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refabf78fb7 != nil { - return x.refabf78fb7, nil + } else if x.refd8af7d5a != nil { + return x.refd8af7d5a, 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) + memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) + refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) + allocsd8af7d5a := new(cgoAllocMap) + allocsd8af7d5a.Add(memd8af7d5a) - var cdescriptorType_allocs *cgoAllocMap - refabf78fb7.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocsabf78fb7.Borrow(cdescriptorType_allocs) + var csType_allocs *cgoAllocMap + refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8af7d5a.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - refabf78fb7.offset, coffset_allocs = (C.size_t)(x.Offset), cgoAllocsUnknown - allocsabf78fb7.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cpNext_allocs) - var cstride_allocs *cgoAllocMap - refabf78fb7.stride, cstride_allocs = (C.size_t)(x.Stride), cgoAllocsUnknown - allocsabf78fb7.Borrow(cstride_allocs) + var cdecodeModeSharedExponent_allocs *cgoAllocMap + refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) - x.refabf78fb7 = refabf78fb7 - x.allocsabf78fb7 = allocsabf78fb7 - return refabf78fb7, allocsabf78fb7 + 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 DescriptorUpdateTemplateEntry) PassValue() (C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { - if x.refabf78fb7 != nil { - return *x.refabf78fb7, nil +func (x PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { + if x.refd8af7d5a != nil { + return *x.refd8af7d5a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18053,159 +43207,98 @@ 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 *PhysicalDeviceASTCDecodeFeatures) Deref() { + if x.refd8af7d5a == 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.refd8af7d5a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) + x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) } -// allocDescriptorUpdateTemplateCreateInfoMemory allocates memory for type C.VkDescriptorUpdateTemplateCreateInfo in C. +// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT 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()) +func allocConditionalRenderingBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfConditionalRenderingBeginInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorUpdateTemplateCreateInfo) Ref() *C.VkDescriptorUpdateTemplateCreateInfo { +func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { if x == nil { return nil } - return x.ref2af95951 + 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 *DescriptorUpdateTemplateCreateInfo) Free() { - if x != nil && x.allocs2af95951 != nil { - x.allocs2af95951.(*cgoAllocMap).Free() - x.ref2af95951 = nil +func (x *ConditionalRenderingBeginInfo) Free() { + if x != nil && x.allocs82da87c9 != nil { + x.allocs82da87c9.(*cgoAllocMap).Free() + x.ref82da87c9 = nil } } -// NewDescriptorUpdateTemplateCreateInfoRef 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 NewDescriptorUpdateTemplateCreateInfoRef(ref unsafe.Pointer) *DescriptorUpdateTemplateCreateInfo { +func NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { if ref == nil { return nil } - obj := new(DescriptorUpdateTemplateCreateInfo) - obj.ref2af95951 = (*C.VkDescriptorUpdateTemplateCreateInfo)(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 *DescriptorUpdateTemplateCreateInfo) PassRef() (*C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { +func (x *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2af95951 != nil { - return x.ref2af95951, nil + } else if x.ref82da87c9 != nil { + return x.ref82da87c9, nil } - mem2af95951 := allocDescriptorUpdateTemplateCreateInfoMemory(1) - ref2af95951 := (*C.VkDescriptorUpdateTemplateCreateInfo)(mem2af95951) - allocs2af95951 := new(cgoAllocMap) - allocs2af95951.Add(mem2af95951) + mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) + ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) + allocs82da87c9 := new(cgoAllocMap) + allocs82da87c9.Add(mem82da87c9) var csType_allocs *cgoAllocMap - ref2af95951.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2af95951.Borrow(csType_allocs) + ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82da87c9.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) + ref82da87c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82da87c9.Borrow(cpNext_allocs) - var cpipelineBindPoint_allocs *cgoAllocMap - ref2af95951.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs2af95951.Borrow(cpipelineBindPoint_allocs) + var cbuffer_allocs *cgoAllocMap + ref82da87c9.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs82da87c9.Borrow(cbuffer_allocs) - var cpipelineLayout_allocs *cgoAllocMap - ref2af95951.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs2af95951.Borrow(cpipelineLayout_allocs) + var coffset_allocs *cgoAllocMap + ref82da87c9.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs82da87c9.Borrow(coffset_allocs) - var cset_allocs *cgoAllocMap - ref2af95951.set, cset_allocs = (C.uint32_t)(x.Set), cgoAllocsUnknown - allocs2af95951.Borrow(cset_allocs) + var cflags_allocs *cgoAllocMap + ref82da87c9.flags, cflags_allocs = (C.VkConditionalRenderingFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs82da87c9.Borrow(cflags_allocs) - x.ref2af95951 = ref2af95951 - x.allocs2af95951 = allocs2af95951 - return ref2af95951, allocs2af95951 + 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 DescriptorUpdateTemplateCreateInfo) PassValue() (C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { - if x.ref2af95951 != nil { - return *x.ref2af95951, nil +func (x ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { + if x.ref82da87c9 != nil { + return *x.ref82da87c9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18213,97 +43306,96 @@ 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 *ConditionalRenderingBeginInfo) Deref() { + if x.ref82da87c9 == 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.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) } -// allocExternalMemoryPropertiesMemory allocates memory for type C.VkExternalMemoryProperties in C. +// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT 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()) +func allocPhysicalDeviceConditionalRenderingFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConditionalRenderingFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalMemoryPropertiesValue = unsafe.Sizeof([1]C.VkExternalMemoryProperties{}) +const sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryProperties) Ref() *C.VkExternalMemoryProperties { +func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { if x == nil { return nil } - return x.ref4b738f01 + 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 *ExternalMemoryProperties) Free() { - if x != nil && x.allocs4b738f01 != nil { - x.allocs4b738f01.(*cgoAllocMap).Free() - x.ref4b738f01 = nil +func (x *PhysicalDeviceConditionalRenderingFeatures) Free() { + if x != nil && x.allocs89d2a224 != nil { + x.allocs89d2a224.(*cgoAllocMap).Free() + x.ref89d2a224 = nil } } -// NewExternalMemoryPropertiesRef 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 NewExternalMemoryPropertiesRef(ref unsafe.Pointer) *ExternalMemoryProperties { +func NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { if ref == nil { return nil } - obj := new(ExternalMemoryProperties) - obj.ref4b738f01 = (*C.VkExternalMemoryProperties)(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 *ExternalMemoryProperties) PassRef() (*C.VkExternalMemoryProperties, *cgoAllocMap) { +func (x *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4b738f01 != nil { - return x.ref4b738f01, nil + } else if x.ref89d2a224 != nil { + return x.ref89d2a224, nil } - mem4b738f01 := allocExternalMemoryPropertiesMemory(1) - ref4b738f01 := (*C.VkExternalMemoryProperties)(mem4b738f01) - allocs4b738f01 := new(cgoAllocMap) - allocs4b738f01.Add(mem4b738f01) + mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) + ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) + allocs89d2a224 := new(cgoAllocMap) + allocs89d2a224.Add(mem89d2a224) - var cexternalMemoryFeatures_allocs *cgoAllocMap - ref4b738f01.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlags)(x.ExternalMemoryFeatures), cgoAllocsUnknown - allocs4b738f01.Borrow(cexternalMemoryFeatures_allocs) + var csType_allocs *cgoAllocMap + ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs89d2a224.Borrow(csType_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - ref4b738f01.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocs4b738f01.Borrow(cexportFromImportedHandleTypes_allocs) + var cpNext_allocs *cgoAllocMap + ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs89d2a224.Borrow(cpNext_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref4b738f01.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs4b738f01.Borrow(ccompatibleHandleTypes_allocs) + var cconditionalRendering_allocs *cgoAllocMap + ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cconditionalRendering_allocs) - x.ref4b738f01 = ref4b738f01 - x.allocs4b738f01 = allocs4b738f01 - return ref4b738f01, allocs4b738f01 + var cinheritedConditionalRendering_allocs *cgoAllocMap + ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) + + 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 ExternalMemoryProperties) PassValue() (C.VkExternalMemoryProperties, *cgoAllocMap) { - if x.ref4b738f01 != nil { - return *x.ref4b738f01, nil +func (x PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { + if x.ref89d2a224 != nil { + return *x.ref89d2a224, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18311,90 +43403,91 @@ 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 *PhysicalDeviceConditionalRenderingFeatures) Deref() { + if x.ref89d2a224 == nil { return } - x.ExternalMemoryFeatures = (ExternalMemoryFeatureFlags)(x.ref4b738f01.externalMemoryFeatures) - x.ExportFromImportedHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.exportFromImportedHandleTypes) - x.CompatibleHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.compatibleHandleTypes) + 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) } -// allocPhysicalDeviceExternalImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceExternalImageFormatInfo in C. +// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT 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()) +func allocCommandBufferInheritanceConditionalRenderingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceConditionalRenderingInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExternalImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalImageFormatInfo{}) +const sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalImageFormatInfo) Ref() *C.VkPhysicalDeviceExternalImageFormatInfo { +func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { if x == nil { return nil } - return x.refc839c724 + 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 *PhysicalDeviceExternalImageFormatInfo) Free() { - if x != nil && x.allocsc839c724 != nil { - x.allocsc839c724.(*cgoAllocMap).Free() - x.refc839c724 = nil +func (x *CommandBufferInheritanceConditionalRenderingInfo) Free() { + if x != nil && x.allocs7155f49c != nil { + x.allocs7155f49c.(*cgoAllocMap).Free() + x.ref7155f49c = nil } } -// NewPhysicalDeviceExternalImageFormatInfoRef 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 NewPhysicalDeviceExternalImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalImageFormatInfo { +func NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalImageFormatInfo) - obj.refc839c724 = (*C.VkPhysicalDeviceExternalImageFormatInfo)(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 *PhysicalDeviceExternalImageFormatInfo) PassRef() (*C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { +func (x *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc839c724 != nil { - return x.refc839c724, nil + } else if x.ref7155f49c != nil { + return x.ref7155f49c, nil } - memc839c724 := allocPhysicalDeviceExternalImageFormatInfoMemory(1) - refc839c724 := (*C.VkPhysicalDeviceExternalImageFormatInfo)(memc839c724) - allocsc839c724 := new(cgoAllocMap) - allocsc839c724.Add(memc839c724) + mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) + ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) + allocs7155f49c := new(cgoAllocMap) + allocs7155f49c.Add(mem7155f49c) var csType_allocs *cgoAllocMap - refc839c724.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc839c724.Borrow(csType_allocs) + ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7155f49c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc839c724.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc839c724.Borrow(cpNext_allocs) + ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7155f49c.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - refc839c724.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsc839c724.Borrow(chandleType_allocs) + var cconditionalRenderingEnable_allocs *cgoAllocMap + ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown + allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) - x.refc839c724 = refc839c724 - x.allocsc839c724 = allocsc839c724 - return refc839c724, allocsc839c724 + 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 PhysicalDeviceExternalImageFormatInfo) PassValue() (C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { - if x.refc839c724 != nil { - return *x.refc839c724, nil +func (x CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { + if x.ref7155f49c != nil { + return *x.ref7155f49c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18402,90 +43495,86 @@ 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 *CommandBufferInheritanceConditionalRenderingInfo) Deref() { + if x.ref7155f49c == 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.ref7155f49c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7155f49c.pNext)) + x.ConditionalRenderingEnable = (Bool32)(x.ref7155f49c.conditionalRenderingEnable) } -// allocExternalImageFormatPropertiesMemory allocates memory for type C.VkExternalImageFormatProperties in C. +// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV 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()) +func allocViewportWScalingNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportWScalingNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkExternalImageFormatProperties{}) +const sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalImageFormatProperties) Ref() *C.VkExternalImageFormatProperties { +func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { if x == nil { return nil } - return x.refd404c4b5 + 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 *ExternalImageFormatProperties) Free() { - if x != nil && x.allocsd404c4b5 != nil { - x.allocsd404c4b5.(*cgoAllocMap).Free() - x.refd404c4b5 = nil +func (x *ViewportWScalingNV) Free() { + if x != nil && x.allocs7ea4590f != nil { + x.allocs7ea4590f.(*cgoAllocMap).Free() + x.ref7ea4590f = nil } } -// NewExternalImageFormatPropertiesRef 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 NewExternalImageFormatPropertiesRef(ref unsafe.Pointer) *ExternalImageFormatProperties { +func NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { if ref == nil { return nil } - obj := new(ExternalImageFormatProperties) - obj.refd404c4b5 = (*C.VkExternalImageFormatProperties)(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 *ExternalImageFormatProperties) PassRef() (*C.VkExternalImageFormatProperties, *cgoAllocMap) { +func (x *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd404c4b5 != nil { - return x.refd404c4b5, nil + } else if x.ref7ea4590f != nil { + return x.ref7ea4590f, 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) + mem7ea4590f := allocViewportWScalingNVMemory(1) + ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) + allocs7ea4590f := new(cgoAllocMap) + allocs7ea4590f.Add(mem7ea4590f) - var cpNext_allocs *cgoAllocMap - refd404c4b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd404c4b5.Borrow(cpNext_allocs) + var cxcoeff_allocs *cgoAllocMap + ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cxcoeff_allocs) - var cexternalMemoryProperties_allocs *cgoAllocMap - refd404c4b5.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() - allocsd404c4b5.Borrow(cexternalMemoryProperties_allocs) + var cycoeff_allocs *cgoAllocMap + ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cycoeff_allocs) - x.refd404c4b5 = refd404c4b5 - x.allocsd404c4b5 = allocsd404c4b5 - return refd404c4b5, allocsd404c4b5 + 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 ExternalImageFormatProperties) PassValue() (C.VkExternalImageFormatProperties, *cgoAllocMap) { - if x.refd404c4b5 != nil { - return *x.refd404c4b5, nil +func (x ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { + if x.ref7ea4590f != nil { + return *x.ref7ea4590f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18493,98 +43582,135 @@ 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 *ViewportWScalingNV) Deref() { + if x.ref7ea4590f == 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.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) + x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) } -// allocPhysicalDeviceExternalBufferInfoMemory allocates memory for type C.VkPhysicalDeviceExternalBufferInfo in C. +// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV 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()) +func allocPipelineViewportWScalingStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportWScalingStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExternalBufferInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalBufferInfo{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *PhysicalDeviceExternalBufferInfo) Ref() *C.VkPhysicalDeviceExternalBufferInfo { +func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { if x == nil { return nil } - return x.ref8d758947 + 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 *PhysicalDeviceExternalBufferInfo) Free() { - if x != nil && x.allocs8d758947 != nil { - x.allocs8d758947.(*cgoAllocMap).Free() - x.ref8d758947 = nil +func (x *PipelineViewportWScalingStateCreateInfoNV) Free() { + if x != nil && x.allocs3e532c0b != nil { + x.allocs3e532c0b.(*cgoAllocMap).Free() + x.ref3e532c0b = nil } } -// NewPhysicalDeviceExternalBufferInfoRef 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 NewPhysicalDeviceExternalBufferInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalBufferInfo { +func NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalBufferInfo) - obj.ref8d758947 = (*C.VkPhysicalDeviceExternalBufferInfo)(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 *PhysicalDeviceExternalBufferInfo) PassRef() (*C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { +func (x *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8d758947 != nil { - return x.ref8d758947, nil + } else if x.ref3e532c0b != nil { + return x.ref3e532c0b, nil } - mem8d758947 := allocPhysicalDeviceExternalBufferInfoMemory(1) - ref8d758947 := (*C.VkPhysicalDeviceExternalBufferInfo)(mem8d758947) - allocs8d758947 := new(cgoAllocMap) - allocs8d758947.Add(mem8d758947) + mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) + ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) + allocs3e532c0b := new(cgoAllocMap) + allocs3e532c0b.Add(mem3e532c0b) var csType_allocs *cgoAllocMap - ref8d758947.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8d758947.Borrow(csType_allocs) + ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e532c0b.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) + ref3e532c0b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e532c0b.Borrow(cpNext_allocs) - var cusage_allocs *cgoAllocMap - ref8d758947.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown - allocs8d758947.Borrow(cusage_allocs) + var cviewportWScalingEnable_allocs *cgoAllocMap + ref3e532c0b.viewportWScalingEnable, cviewportWScalingEnable_allocs = (C.VkBool32)(x.ViewportWScalingEnable), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportWScalingEnable_allocs) - var chandleType_allocs *cgoAllocMap - ref8d758947.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs8d758947.Borrow(chandleType_allocs) + var cviewportCount_allocs *cgoAllocMap + ref3e532c0b.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportCount_allocs) - x.ref8d758947 = ref8d758947 - x.allocs8d758947 = allocs8d758947 - return ref8d758947, allocs8d758947 + 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 PhysicalDeviceExternalBufferInfo) PassValue() (C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { - if x.ref8d758947 != nil { - return *x.ref8d758947, nil +func (x PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { + if x.ref3e532c0b != nil { + return *x.ref3e532c0b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18592,92 +43718,92 @@ 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 *PipelineViewportWScalingStateCreateInfoNV) Deref() { + if x.ref3e532c0b == 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.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) } -// allocExternalBufferPropertiesMemory allocates memory for type C.VkExternalBufferProperties in C. +// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT 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()) +func allocDisplayPowerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPowerInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalBufferPropertiesValue = unsafe.Sizeof([1]C.VkExternalBufferProperties{}) +const sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalBufferProperties) Ref() *C.VkExternalBufferProperties { +func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { if x == nil { return nil } - return x.ref12f7c546 + 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 *ExternalBufferProperties) Free() { - if x != nil && x.allocs12f7c546 != nil { - x.allocs12f7c546.(*cgoAllocMap).Free() - x.ref12f7c546 = nil +func (x *DisplayPowerInfo) Free() { + if x != nil && x.allocs80fed52f != nil { + x.allocs80fed52f.(*cgoAllocMap).Free() + x.ref80fed52f = nil } } -// NewExternalBufferPropertiesRef 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 NewExternalBufferPropertiesRef(ref unsafe.Pointer) *ExternalBufferProperties { +func NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { if ref == nil { return nil } - obj := new(ExternalBufferProperties) - obj.ref12f7c546 = (*C.VkExternalBufferProperties)(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 *ExternalBufferProperties) PassRef() (*C.VkExternalBufferProperties, *cgoAllocMap) { +func (x *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref12f7c546 != nil { - return x.ref12f7c546, nil + } else if x.ref80fed52f != nil { + return x.ref80fed52f, nil } - mem12f7c546 := allocExternalBufferPropertiesMemory(1) - ref12f7c546 := (*C.VkExternalBufferProperties)(mem12f7c546) - allocs12f7c546 := new(cgoAllocMap) - allocs12f7c546.Add(mem12f7c546) + mem80fed52f := allocDisplayPowerInfoMemory(1) + ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) + allocs80fed52f := new(cgoAllocMap) + allocs80fed52f.Add(mem80fed52f) var csType_allocs *cgoAllocMap - ref12f7c546.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs12f7c546.Borrow(csType_allocs) + ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80fed52f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref12f7c546.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs12f7c546.Borrow(cpNext_allocs) + ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80fed52f.Borrow(cpNext_allocs) - var cexternalMemoryProperties_allocs *cgoAllocMap - ref12f7c546.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() - allocs12f7c546.Borrow(cexternalMemoryProperties_allocs) + var cpowerState_allocs *cgoAllocMap + ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown + allocs80fed52f.Borrow(cpowerState_allocs) - x.ref12f7c546 = ref12f7c546 - x.allocs12f7c546 = allocs12f7c546 - return ref12f7c546, allocs12f7c546 + 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 ExternalBufferProperties) PassValue() (C.VkExternalBufferProperties, *cgoAllocMap) { - if x.ref12f7c546 != nil { - return *x.ref12f7c546, nil +func (x DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { + if x.ref80fed52f != nil { + return *x.ref80fed52f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18685,106 +43811,90 @@ 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 *DisplayPowerInfo) Deref() { + if x.ref80fed52f == 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.ref80fed52f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) + x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) } -// allocPhysicalDeviceIDPropertiesMemory allocates memory for type C.VkPhysicalDeviceIDProperties in C. +// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT 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()) +func allocDeviceEventInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceEventInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceIDPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIDProperties{}) +const sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceIDProperties) Ref() *C.VkPhysicalDeviceIDProperties { +func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { if x == nil { return nil } - return x.refe990a9f3 + 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 *PhysicalDeviceIDProperties) Free() { - if x != nil && x.allocse990a9f3 != nil { - x.allocse990a9f3.(*cgoAllocMap).Free() - x.refe990a9f3 = nil +func (x *DeviceEventInfo) Free() { + if x != nil && x.allocs394b3fcb != nil { + x.allocs394b3fcb.(*cgoAllocMap).Free() + x.ref394b3fcb = nil } } -// NewPhysicalDeviceIDPropertiesRef 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 NewPhysicalDeviceIDPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceIDProperties { +func NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceIDProperties) - obj.refe990a9f3 = (*C.VkPhysicalDeviceIDProperties)(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 *PhysicalDeviceIDProperties) PassRef() (*C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { +func (x *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe990a9f3 != nil { - return x.refe990a9f3, nil + } else if x.ref394b3fcb != nil { + return x.ref394b3fcb, nil } - meme990a9f3 := allocPhysicalDeviceIDPropertiesMemory(1) - refe990a9f3 := (*C.VkPhysicalDeviceIDProperties)(meme990a9f3) - allocse990a9f3 := new(cgoAllocMap) - allocse990a9f3.Add(meme990a9f3) + mem394b3fcb := allocDeviceEventInfoMemory(1) + ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) + allocs394b3fcb := new(cgoAllocMap) + allocs394b3fcb.Add(mem394b3fcb) var csType_allocs *cgoAllocMap - refe990a9f3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse990a9f3.Borrow(csType_allocs) + ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs394b3fcb.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) + ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs394b3fcb.Borrow(cpNext_allocs) - var cdeviceLUIDValid_allocs *cgoAllocMap - refe990a9f3.deviceLUIDValid, cdeviceLUIDValid_allocs = (C.VkBool32)(x.DeviceLUIDValid), cgoAllocsUnknown - allocse990a9f3.Borrow(cdeviceLUIDValid_allocs) + var cdeviceEvent_allocs *cgoAllocMap + ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown + allocs394b3fcb.Borrow(cdeviceEvent_allocs) - x.refe990a9f3 = refe990a9f3 - x.allocse990a9f3 = allocse990a9f3 - return refe990a9f3, allocse990a9f3 + 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 PhysicalDeviceIDProperties) PassValue() (C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { - if x.refe990a9f3 != nil { - return *x.refe990a9f3, nil +func (x DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { + if x.ref394b3fcb != nil { + return *x.ref394b3fcb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18792,94 +43902,90 @@ 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 *DeviceEventInfo) Deref() { + if x.ref394b3fcb == 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.ref394b3fcb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref394b3fcb.pNext)) + x.DeviceEvent = (DeviceEventType)(x.ref394b3fcb.deviceEvent) } -// allocExternalMemoryImageCreateInfoMemory allocates memory for type C.VkExternalMemoryImageCreateInfo in C. +// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT 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()) +func allocDisplayEventInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayEventInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalMemoryImageCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfo{}) +const sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryImageCreateInfo) Ref() *C.VkExternalMemoryImageCreateInfo { +func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { if x == nil { return nil } - return x.refdaf1185e + 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 *ExternalMemoryImageCreateInfo) Free() { - if x != nil && x.allocsdaf1185e != nil { - x.allocsdaf1185e.(*cgoAllocMap).Free() - x.refdaf1185e = nil +func (x *DisplayEventInfo) Free() { + if x != nil && x.allocsa69f7302 != nil { + x.allocsa69f7302.(*cgoAllocMap).Free() + x.refa69f7302 = nil } } -// NewExternalMemoryImageCreateInfoRef 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 NewExternalMemoryImageCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfo { +func NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { if ref == nil { return nil } - obj := new(ExternalMemoryImageCreateInfo) - obj.refdaf1185e = (*C.VkExternalMemoryImageCreateInfo)(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 *ExternalMemoryImageCreateInfo) PassRef() (*C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { +func (x *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdaf1185e != nil { - return x.refdaf1185e, nil + } else if x.refa69f7302 != nil { + return x.refa69f7302, nil } - memdaf1185e := allocExternalMemoryImageCreateInfoMemory(1) - refdaf1185e := (*C.VkExternalMemoryImageCreateInfo)(memdaf1185e) - allocsdaf1185e := new(cgoAllocMap) - allocsdaf1185e.Add(memdaf1185e) + mema69f7302 := allocDisplayEventInfoMemory(1) + refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) + allocsa69f7302 := new(cgoAllocMap) + allocsa69f7302.Add(mema69f7302) var csType_allocs *cgoAllocMap - refdaf1185e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdaf1185e.Borrow(csType_allocs) + refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa69f7302.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdaf1185e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdaf1185e.Borrow(cpNext_allocs) + refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa69f7302.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - refdaf1185e.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocsdaf1185e.Borrow(chandleTypes_allocs) + var cdisplayEvent_allocs *cgoAllocMap + refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown + allocsa69f7302.Borrow(cdisplayEvent_allocs) - x.refdaf1185e = refdaf1185e - x.allocsdaf1185e = allocsdaf1185e - return refdaf1185e, allocsdaf1185e + 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 ExternalMemoryImageCreateInfo) PassValue() (C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { - if x.refdaf1185e != nil { - return *x.refdaf1185e, nil +func (x DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { + if x.refa69f7302 != nil { + return *x.refa69f7302, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18887,90 +43993,90 @@ 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 *DisplayEventInfo) Deref() { + if x.refa69f7302 == 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.refa69f7302.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa69f7302.pNext)) + x.DisplayEvent = (DisplayEventType)(x.refa69f7302.displayEvent) } -// allocExternalMemoryBufferCreateInfoMemory allocates memory for type C.VkExternalMemoryBufferCreateInfo in C. +// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT 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()) +func allocSwapchainCounterCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCounterCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalMemoryBufferCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryBufferCreateInfo{}) +const sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryBufferCreateInfo) Ref() *C.VkExternalMemoryBufferCreateInfo { +func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { if x == nil { return nil } - return x.refd33a9423 + 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 *ExternalMemoryBufferCreateInfo) Free() { - if x != nil && x.allocsd33a9423 != nil { - x.allocsd33a9423.(*cgoAllocMap).Free() - x.refd33a9423 = nil +func (x *SwapchainCounterCreateInfo) Free() { + if x != nil && x.allocs9f21eca6 != nil { + x.allocs9f21eca6.(*cgoAllocMap).Free() + x.ref9f21eca6 = nil } } -// NewExternalMemoryBufferCreateInfoRef 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 NewExternalMemoryBufferCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryBufferCreateInfo { +func NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { if ref == nil { return nil } - obj := new(ExternalMemoryBufferCreateInfo) - obj.refd33a9423 = (*C.VkExternalMemoryBufferCreateInfo)(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 *ExternalMemoryBufferCreateInfo) PassRef() (*C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { +func (x *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd33a9423 != nil { - return x.refd33a9423, nil + } else if x.ref9f21eca6 != nil { + return x.ref9f21eca6, nil } - memd33a9423 := allocExternalMemoryBufferCreateInfoMemory(1) - refd33a9423 := (*C.VkExternalMemoryBufferCreateInfo)(memd33a9423) - allocsd33a9423 := new(cgoAllocMap) - allocsd33a9423.Add(memd33a9423) + mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) + ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) + allocs9f21eca6 := new(cgoAllocMap) + allocs9f21eca6.Add(mem9f21eca6) var csType_allocs *cgoAllocMap - refd33a9423.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd33a9423.Borrow(csType_allocs) + ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9f21eca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd33a9423.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd33a9423.Borrow(cpNext_allocs) + ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9f21eca6.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - refd33a9423.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocsd33a9423.Borrow(chandleTypes_allocs) + var csurfaceCounters_allocs *cgoAllocMap + ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown + allocs9f21eca6.Borrow(csurfaceCounters_allocs) - x.refd33a9423 = refd33a9423 - x.allocsd33a9423 = allocsd33a9423 - return refd33a9423, allocsd33a9423 + 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 ExternalMemoryBufferCreateInfo) PassValue() (C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { - if x.refd33a9423 != nil { - return *x.refd33a9423, nil +func (x SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { + if x.ref9f21eca6 != nil { + return *x.ref9f21eca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18978,90 +44084,82 @@ 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 *SwapchainCounterCreateInfo) Deref() { + if x.ref9f21eca6 == nil { return } - x.SType = (StructureType)(x.refd33a9423.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd33a9423.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refd33a9423.handleTypes) + x.SType = (StructureType)(x.ref9f21eca6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9f21eca6.pNext)) + x.SurfaceCounters = (SurfaceCounterFlags)(x.ref9f21eca6.surfaceCounters) } -// allocExportMemoryAllocateInfoMemory allocates memory for type C.VkExportMemoryAllocateInfo in C. +// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE 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()) +func allocRefreshCycleDurationGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRefreshCycleDurationGOOGLEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExportMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfo{}) +const sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportMemoryAllocateInfo) Ref() *C.VkExportMemoryAllocateInfo { +func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { if x == nil { return nil } - return x.refeb76ec64 + 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 *ExportMemoryAllocateInfo) Free() { - if x != nil && x.allocseb76ec64 != nil { - x.allocseb76ec64.(*cgoAllocMap).Free() - x.refeb76ec64 = nil +func (x *RefreshCycleDurationGOOGLE) Free() { + if x != nil && x.allocs969cb55b != nil { + x.allocs969cb55b.(*cgoAllocMap).Free() + x.ref969cb55b = nil } } -// NewExportMemoryAllocateInfoRef 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 NewExportMemoryAllocateInfoRef(ref unsafe.Pointer) *ExportMemoryAllocateInfo { +func NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { if ref == nil { return nil } - obj := new(ExportMemoryAllocateInfo) - obj.refeb76ec64 = (*C.VkExportMemoryAllocateInfo)(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 *ExportMemoryAllocateInfo) PassRef() (*C.VkExportMemoryAllocateInfo, *cgoAllocMap) { +func (x *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeb76ec64 != nil { - return x.refeb76ec64, nil + } else if x.ref969cb55b != nil { + return x.ref969cb55b, 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) + mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) + ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) + allocs969cb55b := new(cgoAllocMap) + allocs969cb55b.Add(mem969cb55b) - var chandleTypes_allocs *cgoAllocMap - refeb76ec64.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocseb76ec64.Borrow(chandleTypes_allocs) + var crefreshDuration_allocs *cgoAllocMap + ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown + allocs969cb55b.Borrow(crefreshDuration_allocs) - x.refeb76ec64 = refeb76ec64 - x.allocseb76ec64 = allocseb76ec64 - return refeb76ec64, allocseb76ec64 + 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 ExportMemoryAllocateInfo) PassValue() (C.VkExportMemoryAllocateInfo, *cgoAllocMap) { - if x.refeb76ec64 != nil { - return *x.refeb76ec64, nil +func (x RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { + if x.ref969cb55b != nil { + return *x.ref969cb55b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19069,90 +44167,96 @@ 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 *RefreshCycleDurationGOOGLE) Deref() { + if x.ref969cb55b == nil { return } - x.SType = (StructureType)(x.refeb76ec64.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeb76ec64.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refeb76ec64.handleTypes) + x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) } -// allocPhysicalDeviceExternalFenceInfoMemory allocates memory for type C.VkPhysicalDeviceExternalFenceInfo in C. +// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE 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()) +func allocPastPresentationTimingGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPastPresentationTimingGOOGLEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExternalFenceInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalFenceInfo{}) +const sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalFenceInfo) Ref() *C.VkPhysicalDeviceExternalFenceInfo { +func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { if x == nil { return nil } - return x.ref9bb660cc + 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 *PhysicalDeviceExternalFenceInfo) Free() { - if x != nil && x.allocs9bb660cc != nil { - x.allocs9bb660cc.(*cgoAllocMap).Free() - x.ref9bb660cc = nil +func (x *PastPresentationTimingGOOGLE) Free() { + if x != nil && x.allocsac8cf1d8 != nil { + x.allocsac8cf1d8.(*cgoAllocMap).Free() + x.refac8cf1d8 = nil } } -// NewPhysicalDeviceExternalFenceInfoRef 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 NewPhysicalDeviceExternalFenceInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalFenceInfo { +func NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalFenceInfo) - obj.ref9bb660cc = (*C.VkPhysicalDeviceExternalFenceInfo)(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 *PhysicalDeviceExternalFenceInfo) PassRef() (*C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { +func (x *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9bb660cc != nil { - return x.ref9bb660cc, nil + } else if x.refac8cf1d8 != nil { + return x.refac8cf1d8, nil } - mem9bb660cc := allocPhysicalDeviceExternalFenceInfoMemory(1) - ref9bb660cc := (*C.VkPhysicalDeviceExternalFenceInfo)(mem9bb660cc) - allocs9bb660cc := new(cgoAllocMap) - allocs9bb660cc.Add(mem9bb660cc) + memac8cf1d8 := allocPastPresentationTimingGOOGLEMemory(1) + refac8cf1d8 := (*C.VkPastPresentationTimingGOOGLE)(memac8cf1d8) + allocsac8cf1d8 := new(cgoAllocMap) + allocsac8cf1d8.Add(memac8cf1d8) - var csType_allocs *cgoAllocMap - ref9bb660cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9bb660cc.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 - ref9bb660cc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9bb660cc.Borrow(cpNext_allocs) + var cdesiredPresentTime_allocs *cgoAllocMap + refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) + + var cactualPresentTime_allocs *cgoAllocMap + refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cactualPresentTime_allocs) + + var cearliestPresentTime_allocs *cgoAllocMap + refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) - var chandleType_allocs *cgoAllocMap - ref9bb660cc.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs9bb660cc.Borrow(chandleType_allocs) + var cpresentMargin_allocs *cgoAllocMap + refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cpresentMargin_allocs) - x.ref9bb660cc = ref9bb660cc - x.allocs9bb660cc = allocs9bb660cc - return ref9bb660cc, allocs9bb660cc + 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 PhysicalDeviceExternalFenceInfo) PassValue() (C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { - if x.ref9bb660cc != nil { - return *x.ref9bb660cc, nil +func (x PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { + if x.refac8cf1d8 != nil { + return *x.refac8cf1d8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19160,98 +44264,88 @@ 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 *PastPresentationTimingGOOGLE) Deref() { + if x.refac8cf1d8 == nil { return } - x.SType = (StructureType)(x.ref9bb660cc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9bb660cc.pNext)) - x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.ref9bb660cc.handleType) + 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) } -// allocExternalFencePropertiesMemory allocates memory for type C.VkExternalFenceProperties in C. +// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE 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()) +func allocPresentTimeGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimeGOOGLEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalFencePropertiesValue = unsafe.Sizeof([1]C.VkExternalFenceProperties{}) +const sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalFenceProperties) Ref() *C.VkExternalFenceProperties { +func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { if x == nil { return nil } - return x.ref18806773 + 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 *ExternalFenceProperties) Free() { - if x != nil && x.allocs18806773 != nil { - x.allocs18806773.(*cgoAllocMap).Free() - x.ref18806773 = nil +func (x *PresentTimeGOOGLE) Free() { + if x != nil && x.allocs9cd90ade != nil { + x.allocs9cd90ade.(*cgoAllocMap).Free() + x.ref9cd90ade = nil } } -// NewExternalFencePropertiesRef 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 NewExternalFencePropertiesRef(ref unsafe.Pointer) *ExternalFenceProperties { +func NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { if ref == nil { return nil } - obj := new(ExternalFenceProperties) - obj.ref18806773 = (*C.VkExternalFenceProperties)(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 *ExternalFenceProperties) PassRef() (*C.VkExternalFenceProperties, *cgoAllocMap) { +func (x *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref18806773 != nil { - return x.ref18806773, nil + } else if x.ref9cd90ade != nil { + return x.ref9cd90ade, 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) + mem9cd90ade := allocPresentTimeGOOGLEMemory(1) + ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) + allocs9cd90ade := new(cgoAllocMap) + allocs9cd90ade.Add(mem9cd90ade) - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref18806773.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs18806773.Borrow(ccompatibleHandleTypes_allocs) + var cpresentID_allocs *cgoAllocMap + ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown + allocs9cd90ade.Borrow(cpresentID_allocs) - var cexternalFenceFeatures_allocs *cgoAllocMap - ref18806773.externalFenceFeatures, cexternalFenceFeatures_allocs = (C.VkExternalFenceFeatureFlags)(x.ExternalFenceFeatures), cgoAllocsUnknown - allocs18806773.Borrow(cexternalFenceFeatures_allocs) + var cdesiredPresentTime_allocs *cgoAllocMap + ref9cd90ade.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocs9cd90ade.Borrow(cdesiredPresentTime_allocs) - x.ref18806773 = ref18806773 - x.allocs18806773 = allocs18806773 - return ref18806773, allocs18806773 + 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 ExternalFenceProperties) PassValue() (C.VkExternalFenceProperties, *cgoAllocMap) { - if x.ref18806773 != nil { - return *x.ref18806773, nil +func (x PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { + if x.ref9cd90ade != nil { + return *x.ref9cd90ade, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19259,92 +44353,131 @@ 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 *PresentTimeGOOGLE) Deref() { + if x.ref9cd90ade == 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.PresentID = (uint32)(x.ref9cd90ade.presentID) + x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) } -// allocExportFenceCreateInfoMemory allocates memory for type C.VkExportFenceCreateInfo in C. +// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE 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()) +func allocPresentTimesInfoGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimesInfoGOOGLEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExportFenceCreateInfoValue = unsafe.Sizeof([1]C.VkExportFenceCreateInfo{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *ExportFenceCreateInfo) Ref() *C.VkExportFenceCreateInfo { +func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { if x == nil { return nil } - return x.ref5fef8c3a + 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 *ExportFenceCreateInfo) Free() { - if x != nil && x.allocs5fef8c3a != nil { - x.allocs5fef8c3a.(*cgoAllocMap).Free() - x.ref5fef8c3a = nil +func (x *PresentTimesInfoGOOGLE) Free() { + if x != nil && x.allocs70eb8ab3 != nil { + x.allocs70eb8ab3.(*cgoAllocMap).Free() + x.ref70eb8ab3 = nil } } -// NewExportFenceCreateInfoRef 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 NewExportFenceCreateInfoRef(ref unsafe.Pointer) *ExportFenceCreateInfo { +func NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { if ref == nil { return nil } - obj := new(ExportFenceCreateInfo) - obj.ref5fef8c3a = (*C.VkExportFenceCreateInfo)(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 *ExportFenceCreateInfo) PassRef() (*C.VkExportFenceCreateInfo, *cgoAllocMap) { +func (x *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fef8c3a != nil { - return x.ref5fef8c3a, nil + } else if x.ref70eb8ab3 != nil { + return x.ref70eb8ab3, nil } - mem5fef8c3a := allocExportFenceCreateInfoMemory(1) - ref5fef8c3a := (*C.VkExportFenceCreateInfo)(mem5fef8c3a) - allocs5fef8c3a := new(cgoAllocMap) - allocs5fef8c3a.Add(mem5fef8c3a) + mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) + ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) + allocs70eb8ab3 := new(cgoAllocMap) + allocs70eb8ab3.Add(mem70eb8ab3) var csType_allocs *cgoAllocMap - ref5fef8c3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fef8c3a.Borrow(csType_allocs) + ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70eb8ab3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5fef8c3a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fef8c3a.Borrow(cpNext_allocs) + ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref5fef8c3a.handleTypes, chandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocs5fef8c3a.Borrow(chandleTypes_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cswapchainCount_allocs) - x.ref5fef8c3a = ref5fef8c3a - x.allocs5fef8c3a = allocs5fef8c3a - return ref5fef8c3a, allocs5fef8c3a + 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 ExportFenceCreateInfo) PassValue() (C.VkExportFenceCreateInfo, *cgoAllocMap) { - if x.ref5fef8c3a != nil { - return *x.ref5fef8c3a, nil +func (x PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { + if x.ref70eb8ab3 != nil { + return *x.ref70eb8ab3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19352,90 +44485,91 @@ 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 *PresentTimesInfoGOOGLE) Deref() { + if x.ref70eb8ab3 == 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.ref70eb8ab3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70eb8ab3.pNext)) + x.SwapchainCount = (uint32)(x.ref70eb8ab3.swapchainCount) + packSPresentTimeGOOGLE(x.PTimes, x.ref70eb8ab3.pTimes) } -// allocExportSemaphoreCreateInfoMemory allocates memory for type C.VkExportSemaphoreCreateInfo in C. +// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX 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()) +func allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExportSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkExportSemaphoreCreateInfo{}) +const sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportSemaphoreCreateInfo) Ref() *C.VkExportSemaphoreCreateInfo { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if x == nil { return nil } - return x.ref17b8d6c5 + 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 *ExportSemaphoreCreateInfo) Free() { - if x != nil && x.allocs17b8d6c5 != nil { - x.allocs17b8d6c5.(*cgoAllocMap).Free() - x.ref17b8d6c5 = nil +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { + if x != nil && x.allocsbaf399ad != nil { + x.allocsbaf399ad.(*cgoAllocMap).Free() + x.refbaf399ad = nil } } -// NewExportSemaphoreCreateInfoRef 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 NewExportSemaphoreCreateInfoRef(ref unsafe.Pointer) *ExportSemaphoreCreateInfo { +func NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if ref == nil { return nil } - obj := new(ExportSemaphoreCreateInfo) - obj.ref17b8d6c5 = (*C.VkExportSemaphoreCreateInfo)(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 *ExportSemaphoreCreateInfo) PassRef() (*C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref17b8d6c5 != nil { - return x.ref17b8d6c5, nil + } else if x.refbaf399ad != nil { + return x.refbaf399ad, nil } - mem17b8d6c5 := allocExportSemaphoreCreateInfoMemory(1) - ref17b8d6c5 := (*C.VkExportSemaphoreCreateInfo)(mem17b8d6c5) - allocs17b8d6c5 := new(cgoAllocMap) - allocs17b8d6c5.Add(mem17b8d6c5) + membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) + refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) + allocsbaf399ad := new(cgoAllocMap) + allocsbaf399ad.Add(membaf399ad) var csType_allocs *cgoAllocMap - ref17b8d6c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs17b8d6c5.Borrow(csType_allocs) + refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbaf399ad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref17b8d6c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs17b8d6c5.Borrow(cpNext_allocs) + refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbaf399ad.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref17b8d6c5.handleTypes, chandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocs17b8d6c5.Borrow(chandleTypes_allocs) + var cperViewPositionAllComponents_allocs *cgoAllocMap + refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown + allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) - x.ref17b8d6c5 = ref17b8d6c5 - x.allocs17b8d6c5 = allocs17b8d6c5 - return ref17b8d6c5, allocs17b8d6c5 + 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 ExportSemaphoreCreateInfo) PassValue() (C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { - if x.ref17b8d6c5 != nil { - return *x.ref17b8d6c5, nil +func (x PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { + if x.refbaf399ad != nil { + return *x.refbaf399ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19443,90 +44577,94 @@ 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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Deref() { + if x.refbaf399ad == 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.refbaf399ad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbaf399ad.pNext)) + x.PerViewPositionAllComponents = (Bool32)(x.refbaf399ad.perViewPositionAllComponents) } -// allocPhysicalDeviceExternalSemaphoreInfoMemory allocates memory for type C.VkPhysicalDeviceExternalSemaphoreInfo in C. +// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV 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()) +func allocViewportSwizzleNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportSwizzleNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExternalSemaphoreInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalSemaphoreInfo{}) +const sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalSemaphoreInfo) Ref() *C.VkPhysicalDeviceExternalSemaphoreInfo { +func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { if x == nil { return nil } - return x.ref5981d29e + 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 *PhysicalDeviceExternalSemaphoreInfo) Free() { - if x != nil && x.allocs5981d29e != nil { - x.allocs5981d29e.(*cgoAllocMap).Free() - x.ref5981d29e = nil +func (x *ViewportSwizzleNV) Free() { + if x != nil && x.allocs74ff2887 != nil { + x.allocs74ff2887.(*cgoAllocMap).Free() + x.ref74ff2887 = nil } } -// NewPhysicalDeviceExternalSemaphoreInfoRef 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 NewPhysicalDeviceExternalSemaphoreInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalSemaphoreInfo { +func NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalSemaphoreInfo) - obj.ref5981d29e = (*C.VkPhysicalDeviceExternalSemaphoreInfo)(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 *PhysicalDeviceExternalSemaphoreInfo) PassRef() (*C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { +func (x *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5981d29e != nil { - return x.ref5981d29e, nil + } else if x.ref74ff2887 != nil { + return x.ref74ff2887, nil } - mem5981d29e := allocPhysicalDeviceExternalSemaphoreInfoMemory(1) - ref5981d29e := (*C.VkPhysicalDeviceExternalSemaphoreInfo)(mem5981d29e) - allocs5981d29e := new(cgoAllocMap) - allocs5981d29e.Add(mem5981d29e) + mem74ff2887 := allocViewportSwizzleNVMemory(1) + ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) + allocs74ff2887 := new(cgoAllocMap) + allocs74ff2887.Add(mem74ff2887) - var csType_allocs *cgoAllocMap - ref5981d29e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5981d29e.Borrow(csType_allocs) + var cx_allocs *cgoAllocMap + ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown + allocs74ff2887.Borrow(cx_allocs) - var cpNext_allocs *cgoAllocMap - ref5981d29e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5981d29e.Borrow(cpNext_allocs) + var cy_allocs *cgoAllocMap + ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown + allocs74ff2887.Borrow(cy_allocs) - var chandleType_allocs *cgoAllocMap - ref5981d29e.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs5981d29e.Borrow(chandleType_allocs) + var cz_allocs *cgoAllocMap + ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown + allocs74ff2887.Borrow(cz_allocs) - x.ref5981d29e = ref5981d29e - x.allocs5981d29e = allocs5981d29e - return ref5981d29e, allocs5981d29e + var cw_allocs *cgoAllocMap + ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown + allocs74ff2887.Borrow(cw_allocs) + + 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 PhysicalDeviceExternalSemaphoreInfo) PassValue() (C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { - if x.ref5981d29e != nil { - return *x.ref5981d29e, nil +func (x ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { + if x.ref74ff2887 != nil { + return *x.ref74ff2887, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19534,98 +44672,137 @@ 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 *ViewportSwizzleNV) Deref() { + if x.ref74ff2887 == nil { return } - x.SType = (StructureType)(x.ref5981d29e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5981d29e.pNext)) - x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.ref5981d29e.handleType) + x.X = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.x) + x.Y = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.y) + x.Z = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.z) + x.W = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.w) } -// allocExternalSemaphorePropertiesMemory allocates memory for type C.VkExternalSemaphoreProperties in C. +// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV 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()) +func allocPipelineViewportSwizzleStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportSwizzleStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalSemaphorePropertiesValue = unsafe.Sizeof([1]C.VkExternalSemaphoreProperties{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *ExternalSemaphoreProperties) Ref() *C.VkExternalSemaphoreProperties { +func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { if x == nil { return nil } - return x.ref87ec1054 + 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 *ExternalSemaphoreProperties) Free() { - if x != nil && x.allocs87ec1054 != nil { - x.allocs87ec1054.(*cgoAllocMap).Free() - x.ref87ec1054 = nil +func (x *PipelineViewportSwizzleStateCreateInfoNV) Free() { + if x != nil && x.allocs5e90f24 != nil { + x.allocs5e90f24.(*cgoAllocMap).Free() + x.ref5e90f24 = nil } } -// NewExternalSemaphorePropertiesRef 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 NewExternalSemaphorePropertiesRef(ref unsafe.Pointer) *ExternalSemaphoreProperties { +func NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { if ref == nil { return nil } - obj := new(ExternalSemaphoreProperties) - obj.ref87ec1054 = (*C.VkExternalSemaphoreProperties)(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 *ExternalSemaphoreProperties) PassRef() (*C.VkExternalSemaphoreProperties, *cgoAllocMap) { +func (x *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref87ec1054 != nil { - return x.ref87ec1054, nil + } else if x.ref5e90f24 != nil { + return x.ref5e90f24, nil } - mem87ec1054 := allocExternalSemaphorePropertiesMemory(1) - ref87ec1054 := (*C.VkExternalSemaphoreProperties)(mem87ec1054) - allocs87ec1054 := new(cgoAllocMap) - allocs87ec1054.Add(mem87ec1054) + mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) + ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) + allocs5e90f24 := new(cgoAllocMap) + allocs5e90f24.Add(mem5e90f24) var csType_allocs *cgoAllocMap - ref87ec1054.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs87ec1054.Borrow(csType_allocs) + ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e90f24.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) + ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e90f24.Borrow(cpNext_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref87ec1054.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs87ec1054.Borrow(ccompatibleHandleTypes_allocs) + var cflags_allocs *cgoAllocMap + ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs5e90f24.Borrow(cflags_allocs) - var cexternalSemaphoreFeatures_allocs *cgoAllocMap - ref87ec1054.externalSemaphoreFeatures, cexternalSemaphoreFeatures_allocs = (C.VkExternalSemaphoreFeatureFlags)(x.ExternalSemaphoreFeatures), cgoAllocsUnknown - allocs87ec1054.Borrow(cexternalSemaphoreFeatures_allocs) + var cviewportCount_allocs *cgoAllocMap + ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs5e90f24.Borrow(cviewportCount_allocs) - x.ref87ec1054 = ref87ec1054 - x.allocs87ec1054 = allocs87ec1054 - return ref87ec1054, allocs87ec1054 + 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 ExternalSemaphoreProperties) PassValue() (C.VkExternalSemaphoreProperties, *cgoAllocMap) { - if x.ref87ec1054 != nil { - return *x.ref87ec1054, nil +func (x PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { + if x.ref5e90f24 != nil { + return *x.ref5e90f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19633,96 +44810,92 @@ 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 *PipelineViewportSwizzleStateCreateInfoNV) Deref() { + if x.ref5e90f24 == 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.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) } -// allocPhysicalDeviceMaintenance3PropertiesMemory allocates memory for type C.VkPhysicalDeviceMaintenance3Properties in C. +// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT 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()) +func allocPhysicalDeviceDiscardRectanglePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiscardRectanglePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMaintenance3PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance3Properties{}) +const sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMaintenance3Properties) Ref() *C.VkPhysicalDeviceMaintenance3Properties { +func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { if x == nil { return nil } - return x.ref12c07777 + 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 *PhysicalDeviceMaintenance3Properties) Free() { - if x != nil && x.allocs12c07777 != nil { - x.allocs12c07777.(*cgoAllocMap).Free() - x.ref12c07777 = nil +func (x *PhysicalDeviceDiscardRectangleProperties) Free() { + if x != nil && x.allocsfe8591da != nil { + x.allocsfe8591da.(*cgoAllocMap).Free() + x.reffe8591da = nil } } -// NewPhysicalDeviceMaintenance3PropertiesRef 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 NewPhysicalDeviceMaintenance3PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance3Properties { +func NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceMaintenance3Properties) - obj.ref12c07777 = (*C.VkPhysicalDeviceMaintenance3Properties)(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 *PhysicalDeviceMaintenance3Properties) PassRef() (*C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { +func (x *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref12c07777 != nil { - return x.ref12c07777, nil + } else if x.reffe8591da != nil { + return x.reffe8591da, nil } - mem12c07777 := allocPhysicalDeviceMaintenance3PropertiesMemory(1) - ref12c07777 := (*C.VkPhysicalDeviceMaintenance3Properties)(mem12c07777) - allocs12c07777 := new(cgoAllocMap) - allocs12c07777.Add(mem12c07777) + memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) + reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) + allocsfe8591da := new(cgoAllocMap) + allocsfe8591da.Add(memfe8591da) var csType_allocs *cgoAllocMap - ref12c07777.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs12c07777.Borrow(csType_allocs) + reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe8591da.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) + reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe8591da.Borrow(cpNext_allocs) - var cmaxMemoryAllocationSize_allocs *cgoAllocMap - ref12c07777.maxMemoryAllocationSize, cmaxMemoryAllocationSize_allocs = (C.VkDeviceSize)(x.MaxMemoryAllocationSize), cgoAllocsUnknown - allocs12c07777.Borrow(cmaxMemoryAllocationSize_allocs) + var cmaxDiscardRectangles_allocs *cgoAllocMap + reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown + allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) - x.ref12c07777 = ref12c07777 - x.allocs12c07777 = allocs12c07777 - return ref12c07777, allocs12c07777 + 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 PhysicalDeviceMaintenance3Properties) PassValue() (C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { - if x.ref12c07777 != nil { - return *x.ref12c07777, nil +func (x PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { + if x.reffe8591da != nil { + return *x.reffe8591da, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19730,91 +44903,102 @@ 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 *PhysicalDeviceDiscardRectangleProperties) Deref() { + if x.reffe8591da == 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.SType = (StructureType)(x.reffe8591da.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe8591da.pNext)) + x.MaxDiscardRectangles = (uint32)(x.reffe8591da.maxDiscardRectangles) } -// allocDescriptorSetLayoutSupportMemory allocates memory for type C.VkDescriptorSetLayoutSupport in C. +// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT 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()) +func allocPipelineDiscardRectangleStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDiscardRectangleStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutSupport{}) +const sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutSupport) Ref() *C.VkDescriptorSetLayoutSupport { +func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { if x == nil { return nil } - return x.ref5802686c + 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 *DescriptorSetLayoutSupport) Free() { - if x != nil && x.allocs5802686c != nil { - x.allocs5802686c.(*cgoAllocMap).Free() - x.ref5802686c = nil +func (x *PipelineDiscardRectangleStateCreateInfo) Free() { + if x != nil && x.allocscdbb125e != nil { + x.allocscdbb125e.(*cgoAllocMap).Free() + x.refcdbb125e = nil } } -// NewDescriptorSetLayoutSupportRef 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 NewDescriptorSetLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetLayoutSupport { +func NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { if ref == nil { return nil } - obj := new(DescriptorSetLayoutSupport) - obj.ref5802686c = (*C.VkDescriptorSetLayoutSupport)(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 *DescriptorSetLayoutSupport) PassRef() (*C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { +func (x *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5802686c != nil { - return x.ref5802686c, nil + } else if x.refcdbb125e != nil { + return x.refcdbb125e, nil } - mem5802686c := allocDescriptorSetLayoutSupportMemory(1) - ref5802686c := (*C.VkDescriptorSetLayoutSupport)(mem5802686c) - allocs5802686c := new(cgoAllocMap) - allocs5802686c.Add(mem5802686c) + memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) + refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) + allocscdbb125e := new(cgoAllocMap) + allocscdbb125e.Add(memcdbb125e) var csType_allocs *cgoAllocMap - ref5802686c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5802686c.Borrow(csType_allocs) + refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscdbb125e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5802686c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5802686c.Borrow(cpNext_allocs) + refcdbb125e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscdbb125e.Borrow(cpNext_allocs) - var csupported_allocs *cgoAllocMap - ref5802686c.supported, csupported_allocs = (C.VkBool32)(x.Supported), cgoAllocsUnknown - allocs5802686c.Borrow(csupported_allocs) + var cflags_allocs *cgoAllocMap + refcdbb125e.flags, cflags_allocs = (C.VkPipelineDiscardRectangleStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocscdbb125e.Borrow(cflags_allocs) - x.ref5802686c = ref5802686c - x.allocs5802686c = allocs5802686c - return ref5802686c, allocs5802686c + var cdiscardRectangleMode_allocs *cgoAllocMap + refcdbb125e.discardRectangleMode, cdiscardRectangleMode_allocs = (C.VkDiscardRectangleModeEXT)(x.DiscardRectangleMode), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleMode_allocs) + + var cdiscardRectangleCount_allocs *cgoAllocMap + refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) + + var cpDiscardRectangles_allocs *cgoAllocMap + refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) + allocscdbb125e.Borrow(cpDiscardRectangles_allocs) + + 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 DescriptorSetLayoutSupport) PassValue() (C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { - if x.ref5802686c != nil { - return *x.ref5802686c, nil +func (x PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { + if x.refcdbb125e != nil { + return *x.refcdbb125e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19822,90 +45006,125 @@ 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 *PipelineDiscardRectangleStateCreateInfo) Deref() { + if x.refcdbb125e == 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.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) } -// allocPhysicalDeviceShaderDrawParameterFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderDrawParameterFeatures in C. +// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceConservativeRasterizationPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShaderDrawParameterFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderDrawParameterFeatures{}) +const sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderDrawParameterFeatures) Ref() *C.VkPhysicalDeviceShaderDrawParameterFeatures { +func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { if x == nil { return nil } - return x.ref23259ea6 + 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 *PhysicalDeviceShaderDrawParameterFeatures) Free() { - if x != nil && x.allocs23259ea6 != nil { - x.allocs23259ea6.(*cgoAllocMap).Free() - x.ref23259ea6 = nil +func (x *PhysicalDeviceConservativeRasterizationProperties) Free() { + if x != nil && x.allocs878f819c != nil { + x.allocs878f819c.(*cgoAllocMap).Free() + x.ref878f819c = nil } } -// NewPhysicalDeviceShaderDrawParameterFeaturesRef 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 NewPhysicalDeviceShaderDrawParameterFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDrawParameterFeatures { +func NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderDrawParameterFeatures) - obj.ref23259ea6 = (*C.VkPhysicalDeviceShaderDrawParameterFeatures)(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 *PhysicalDeviceShaderDrawParameterFeatures) PassRef() (*C.VkPhysicalDeviceShaderDrawParameterFeatures, *cgoAllocMap) { +func (x *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref23259ea6 != nil { - return x.ref23259ea6, nil + } else if x.ref878f819c != nil { + return x.ref878f819c, nil } - mem23259ea6 := allocPhysicalDeviceShaderDrawParameterFeaturesMemory(1) - ref23259ea6 := (*C.VkPhysicalDeviceShaderDrawParameterFeatures)(mem23259ea6) - allocs23259ea6 := new(cgoAllocMap) - allocs23259ea6.Add(mem23259ea6) + mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) + ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) + allocs878f819c := new(cgoAllocMap) + allocs878f819c.Add(mem878f819c) var csType_allocs *cgoAllocMap - ref23259ea6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs23259ea6.Borrow(csType_allocs) + ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs878f819c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref23259ea6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs23259ea6.Borrow(cpNext_allocs) + ref878f819c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs878f819c.Borrow(cpNext_allocs) - var cshaderDrawParameters_allocs *cgoAllocMap - ref23259ea6.shaderDrawParameters, cshaderDrawParameters_allocs = (C.VkBool32)(x.ShaderDrawParameters), cgoAllocsUnknown - allocs23259ea6.Borrow(cshaderDrawParameters_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) + + 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.ref23259ea6 = ref23259ea6 - x.allocs23259ea6 = allocs23259ea6 - return ref23259ea6, allocs23259ea6 + 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 PhysicalDeviceShaderDrawParameterFeatures) PassValue() (C.VkPhysicalDeviceShaderDrawParameterFeatures, *cgoAllocMap) { - if x.ref23259ea6 != nil { - return *x.ref23259ea6, nil +func (x PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { + if x.ref878f819c != nil { + return *x.ref878f819c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19913,118 +45132,106 @@ 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 *PhysicalDeviceConservativeRasterizationProperties) Deref() { + if x.ref878f819c == 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.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) } -// allocSurfaceCapabilitiesMemory allocates memory for type C.VkSurfaceCapabilitiesKHR in C. +// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineRasterizationConservativeStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationConservativeStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesKHR{}) +const sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceCapabilities) Ref() *C.VkSurfaceCapabilitiesKHR { +func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { if x == nil { return nil } - return x.ref11d5f596 + 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 *SurfaceCapabilities) Free() { - if x != nil && x.allocs11d5f596 != nil { - x.allocs11d5f596.(*cgoAllocMap).Free() - x.ref11d5f596 = nil +func (x *PipelineRasterizationConservativeStateCreateInfo) Free() { + if x != nil && x.allocse3cd0046 != nil { + x.allocse3cd0046.(*cgoAllocMap).Free() + x.refe3cd0046 = nil } } -// NewSurfaceCapabilitiesRef 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 NewSurfaceCapabilitiesRef(ref unsafe.Pointer) *SurfaceCapabilities { +func NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { if ref == nil { return nil } - obj := new(SurfaceCapabilities) - obj.ref11d5f596 = (*C.VkSurfaceCapabilitiesKHR)(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 *SurfaceCapabilities) PassRef() (*C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { +func (x *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11d5f596 != nil { - return x.ref11d5f596, nil + } else if x.refe3cd0046 != nil { + return x.refe3cd0046, 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) + meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) + refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) + allocse3cd0046 := new(cgoAllocMap) + allocse3cd0046.Add(meme3cd0046) - var cmaxImageArrayLayers_allocs *cgoAllocMap - ref11d5f596.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown - allocs11d5f596.Borrow(cmaxImageArrayLayers_allocs) + var csType_allocs *cgoAllocMap + refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3cd0046.Borrow(csType_allocs) - var csupportedTransforms_allocs *cgoAllocMap - ref11d5f596.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedTransforms_allocs) + var cpNext_allocs *cgoAllocMap + refe3cd0046.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3cd0046.Borrow(cpNext_allocs) - var ccurrentTransform_allocs *cgoAllocMap - ref11d5f596.currentTransform, ccurrentTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.CurrentTransform), cgoAllocsUnknown - allocs11d5f596.Borrow(ccurrentTransform_allocs) + var cflags_allocs *cgoAllocMap + refe3cd0046.flags, cflags_allocs = (C.VkPipelineRasterizationConservativeStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse3cd0046.Borrow(cflags_allocs) - var csupportedCompositeAlpha_allocs *cgoAllocMap - ref11d5f596.supportedCompositeAlpha, csupportedCompositeAlpha_allocs = (C.VkCompositeAlphaFlagsKHR)(x.SupportedCompositeAlpha), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedCompositeAlpha_allocs) + var cconservativeRasterizationMode_allocs *cgoAllocMap + refe3cd0046.conservativeRasterizationMode, cconservativeRasterizationMode_allocs = (C.VkConservativeRasterizationModeEXT)(x.ConservativeRasterizationMode), cgoAllocsUnknown + allocse3cd0046.Borrow(cconservativeRasterizationMode_allocs) - var csupportedUsageFlags_allocs *cgoAllocMap - ref11d5f596.supportedUsageFlags, csupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SupportedUsageFlags), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedUsageFlags_allocs) + var cextraPrimitiveOverestimationSize_allocs *cgoAllocMap + refe3cd0046.extraPrimitiveOverestimationSize, cextraPrimitiveOverestimationSize_allocs = (C.float)(x.ExtraPrimitiveOverestimationSize), cgoAllocsUnknown + allocse3cd0046.Borrow(cextraPrimitiveOverestimationSize_allocs) - x.ref11d5f596 = ref11d5f596 - x.allocs11d5f596 = allocs11d5f596 - return ref11d5f596, allocs11d5f596 + 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 SurfaceCapabilities) PassValue() (C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { - if x.ref11d5f596 != nil { - return *x.ref11d5f596, nil +func (x PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { + if x.refe3cd0046 != nil { + return *x.refe3cd0046, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20032,93 +45239,92 @@ 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 *PipelineRasterizationConservativeStateCreateInfo) Deref() { + if x.refe3cd0046 == 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.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) } -// allocSurfaceFormatMemory allocates memory for type C.VkSurfaceFormatKHR in C. +// allocPhysicalDeviceDepthClipEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipEnableFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDepthClipEnableFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipEnableFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSurfaceFormatValue = unsafe.Sizeof([1]C.VkSurfaceFormatKHR{}) +const sizeOfPhysicalDeviceDepthClipEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipEnableFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceFormat) Ref() *C.VkSurfaceFormatKHR { +func (x *PhysicalDeviceDepthClipEnableFeatures) Ref() *C.VkPhysicalDeviceDepthClipEnableFeaturesEXT { if x == nil { return nil } - return x.refedaf82ca + 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 *SurfaceFormat) Free() { - if x != nil && x.allocsedaf82ca != nil { - x.allocsedaf82ca.(*cgoAllocMap).Free() - x.refedaf82ca = nil +func (x *PhysicalDeviceDepthClipEnableFeatures) Free() { + if x != nil && x.allocse0daf69c != nil { + x.allocse0daf69c.(*cgoAllocMap).Free() + x.refe0daf69c = nil } } -// NewSurfaceFormatRef 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 NewSurfaceFormatRef(ref unsafe.Pointer) *SurfaceFormat { +func NewPhysicalDeviceDepthClipEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipEnableFeatures { if ref == nil { return nil } - obj := new(SurfaceFormat) - obj.refedaf82ca = (*C.VkSurfaceFormatKHR)(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 *SurfaceFormat) PassRef() (*C.VkSurfaceFormatKHR, *cgoAllocMap) { +func (x *PhysicalDeviceDepthClipEnableFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refedaf82ca != nil { - return x.refedaf82ca, nil + } else if x.refe0daf69c != nil { + return x.refe0daf69c, nil } - memedaf82ca := allocSurfaceFormatMemory(1) - refedaf82ca := (*C.VkSurfaceFormatKHR)(memedaf82ca) - allocsedaf82ca := new(cgoAllocMap) - allocsedaf82ca.Add(memedaf82ca) + meme0daf69c := allocPhysicalDeviceDepthClipEnableFeaturesMemory(1) + refe0daf69c := (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(meme0daf69c) + allocse0daf69c := new(cgoAllocMap) + allocse0daf69c.Add(meme0daf69c) - var cformat_allocs *cgoAllocMap - refedaf82ca.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsedaf82ca.Borrow(cformat_allocs) + var csType_allocs *cgoAllocMap + refe0daf69c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse0daf69c.Borrow(csType_allocs) - var ccolorSpace_allocs *cgoAllocMap - refedaf82ca.colorSpace, ccolorSpace_allocs = (C.VkColorSpaceKHR)(x.ColorSpace), cgoAllocsUnknown - allocsedaf82ca.Borrow(ccolorSpace_allocs) + var cpNext_allocs *cgoAllocMap + refe0daf69c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse0daf69c.Borrow(cpNext_allocs) - x.refedaf82ca = refedaf82ca - x.allocsedaf82ca = allocsedaf82ca - return refedaf82ca, allocsedaf82ca + var cdepthClipEnable_allocs *cgoAllocMap + refe0daf69c.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocse0daf69c.Borrow(cdepthClipEnable_allocs) + + 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 SurfaceFormat) PassValue() (C.VkSurfaceFormatKHR, *cgoAllocMap) { - if x.refedaf82ca != nil { - return *x.refedaf82ca, nil +func (x PhysicalDeviceDepthClipEnableFeatures) PassValue() (C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { + if x.refe0daf69c != nil { + return *x.refe0daf69c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20126,149 +45332,182 @@ 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 *PhysicalDeviceDepthClipEnableFeatures) Deref() { + if x.refe0daf69c == nil { return } - x.Format = (Format)(x.refedaf82ca.format) - x.ColorSpace = (ColorSpace)(x.refedaf82ca.colorSpace) + x.SType = (StructureType)(x.refe0daf69c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0daf69c.pNext)) + x.DepthClipEnable = (Bool32)(x.refe0daf69c.depthClipEnable) } -// allocSwapchainCreateInfoMemory allocates memory for type C.VkSwapchainCreateInfoKHR in C. +// allocPipelineRasterizationDepthClipStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationDepthClipStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineRasterizationDepthClipStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationDepthClipStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCreateInfoKHR{}) +const sizeOfPipelineRasterizationDepthClipStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationDepthClipStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SwapchainCreateInfo) Ref() *C.VkSwapchainCreateInfoKHR { +func (x *PipelineRasterizationDepthClipStateCreateInfo) Ref() *C.VkPipelineRasterizationDepthClipStateCreateInfoEXT { if x == nil { return nil } - return x.refdb619e1c + 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 *SwapchainCreateInfo) Free() { - if x != nil && x.allocsdb619e1c != nil { - x.allocsdb619e1c.(*cgoAllocMap).Free() - x.refdb619e1c = nil +func (x *PipelineRasterizationDepthClipStateCreateInfo) Free() { + if x != nil && x.allocs38a864b5 != nil { + x.allocs38a864b5.(*cgoAllocMap).Free() + x.ref38a864b5 = nil } } -// NewSwapchainCreateInfoRef 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 NewSwapchainCreateInfoRef(ref unsafe.Pointer) *SwapchainCreateInfo { +func NewPipelineRasterizationDepthClipStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationDepthClipStateCreateInfo { if ref == nil { return nil } - obj := new(SwapchainCreateInfo) - obj.refdb619e1c = (*C.VkSwapchainCreateInfoKHR)(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 *SwapchainCreateInfo) PassRef() (*C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *PipelineRasterizationDepthClipStateCreateInfo) PassRef() (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdb619e1c != nil { - return x.refdb619e1c, nil + } else if x.ref38a864b5 != nil { + return x.ref38a864b5, nil } - memdb619e1c := allocSwapchainCreateInfoMemory(1) - refdb619e1c := (*C.VkSwapchainCreateInfoKHR)(memdb619e1c) - allocsdb619e1c := new(cgoAllocMap) - allocsdb619e1c.Add(memdb619e1c) + mem38a864b5 := allocPipelineRasterizationDepthClipStateCreateInfoMemory(1) + ref38a864b5 := (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(mem38a864b5) + allocs38a864b5 := new(cgoAllocMap) + allocs38a864b5.Add(mem38a864b5) var csType_allocs *cgoAllocMap - refdb619e1c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdb619e1c.Borrow(csType_allocs) + ref38a864b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs38a864b5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdb619e1c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpNext_allocs) + ref38a864b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs38a864b5.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) + ref38a864b5.flags, cflags_allocs = (C.VkPipelineRasterizationDepthClipStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs38a864b5.Borrow(cflags_allocs) - var cimageColorSpace_allocs *cgoAllocMap - refdb619e1c.imageColorSpace, cimageColorSpace_allocs = (C.VkColorSpaceKHR)(x.ImageColorSpace), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageColorSpace_allocs) + var cdepthClipEnable_allocs *cgoAllocMap + ref38a864b5.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocs38a864b5.Borrow(cdepthClipEnable_allocs) - var cimageExtent_allocs *cgoAllocMap - refdb619e1c.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocsdb619e1c.Borrow(cimageExtent_allocs) + x.ref38a864b5 = ref38a864b5 + x.allocs38a864b5 = allocs38a864b5 + return ref38a864b5, allocs38a864b5 - 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) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineRasterizationDepthClipStateCreateInfo) PassValue() (C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { + if x.ref38a864b5 != nil { + return *x.ref38a864b5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cimageSharingMode_allocs *cgoAllocMap - refdb619e1c.imageSharingMode, cimageSharingMode_allocs = (C.VkSharingMode)(x.ImageSharingMode), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageSharingMode_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 *PipelineRasterizationDepthClipStateCreateInfo) Deref() { + if x.ref38a864b5 == nil { + return + } + 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) +} - var cqueueFamilyIndexCount_allocs *cgoAllocMap - refdb619e1c.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsdb619e1c.Borrow(cqueueFamilyIndexCount_allocs) +// allocXYColorMemory allocates memory for type C.VkXYColorEXT 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)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cpQueueFamilyIndices_allocs *cgoAllocMap - refdb619e1c.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpQueueFamilyIndices_allocs) +const sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) - var cpreTransform_allocs *cgoAllocMap - refdb619e1c.preTransform, cpreTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.PreTransform), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpreTransform_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *XYColor) Ref() *C.VkXYColorEXT { + if x == nil { + return nil + } + return x.refb8efaa5c +} - var ccompositeAlpha_allocs *cgoAllocMap - refdb619e1c.compositeAlpha, ccompositeAlpha_allocs = (C.VkCompositeAlphaFlagBitsKHR)(x.CompositeAlpha), cgoAllocsUnknown - allocsdb619e1c.Borrow(ccompositeAlpha_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 *XYColor) Free() { + if x != nil && x.allocsb8efaa5c != nil { + x.allocsb8efaa5c.(*cgoAllocMap).Free() + x.refb8efaa5c = nil + } +} - var cpresentMode_allocs *cgoAllocMap - refdb619e1c.presentMode, cpresentMode_allocs = (C.VkPresentModeKHR)(x.PresentMode), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpresentMode_allocs) +// 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 NewXYColorRef(ref unsafe.Pointer) *XYColor { + if ref == nil { + return nil + } + obj := new(XYColor) + obj.refb8efaa5c = (*C.VkXYColorEXT)(unsafe.Pointer(ref)) + return obj +} - var cclipped_allocs *cgoAllocMap - refdb619e1c.clipped, cclipped_allocs = (C.VkBool32)(x.Clipped), cgoAllocsUnknown - allocsdb619e1c.Borrow(cclipped_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 *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb8efaa5c != nil { + return x.refb8efaa5c, nil + } + memb8efaa5c := allocXYColorMemory(1) + refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) + allocsb8efaa5c := new(cgoAllocMap) + allocsb8efaa5c.Add(memb8efaa5c) - var coldSwapchain_allocs *cgoAllocMap - refdb619e1c.oldSwapchain, coldSwapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.OldSwapchain)), cgoAllocsUnknown - allocsdb619e1c.Borrow(coldSwapchain_allocs) + var cx_allocs *cgoAllocMap + refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cx_allocs) - x.refdb619e1c = refdb619e1c - x.allocsdb619e1c = allocsdb619e1c - return refdb619e1c, allocsdb619e1c + var cy_allocs *cgoAllocMap + refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cy_allocs) + + 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 SwapchainCreateInfo) PassValue() (C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.refdb619e1c != nil { - return *x.refdb619e1c, nil +func (x XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { + if x.refb8efaa5c != nil { + return *x.refb8efaa5c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20276,129 +45515,117 @@ 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 *XYColor) Deref() { + if x.refb8efaa5c == 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.X = (float32)(x.refb8efaa5c.x) + x.Y = (float32)(x.refb8efaa5c.y) } -// allocPresentInfoMemory allocates memory for type C.VkPresentInfoKHR in C. +// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocHdrMetadataMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHdrMetadataValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPresentInfoValue = unsafe.Sizeof([1]C.VkPresentInfoKHR{}) +const sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentInfo) Ref() *C.VkPresentInfoKHR { +func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { if x == nil { return nil } - return x.ref1d0e82d4 + 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 *PresentInfo) Free() { - if x != nil && x.allocs1d0e82d4 != nil { - x.allocs1d0e82d4.(*cgoAllocMap).Free() - x.ref1d0e82d4 = nil +func (x *HdrMetadata) Free() { + if x != nil && x.allocs5fd28976 != nil { + x.allocs5fd28976.(*cgoAllocMap).Free() + x.ref5fd28976 = nil } } -// NewPresentInfoRef 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 NewPresentInfoRef(ref unsafe.Pointer) *PresentInfo { +func NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { if ref == nil { return nil } - obj := new(PresentInfo) - obj.ref1d0e82d4 = (*C.VkPresentInfoKHR)(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 *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *cgoAllocMap) { +func (x *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d0e82d4 != nil { - return x.ref1d0e82d4, nil + } else if x.ref5fd28976 != nil { + return x.ref5fd28976, nil } - mem1d0e82d4 := allocPresentInfoMemory(1) - ref1d0e82d4 := (*C.VkPresentInfoKHR)(mem1d0e82d4) - allocs1d0e82d4 := new(cgoAllocMap) - allocs1d0e82d4.Add(mem1d0e82d4) + mem5fd28976 := allocHdrMetadataMemory(1) + ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) + allocs5fd28976 := new(cgoAllocMap) + allocs5fd28976.Add(mem5fd28976) var csType_allocs *cgoAllocMap - ref1d0e82d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d0e82d4.Borrow(csType_allocs) + ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5fd28976.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1d0e82d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpNext_allocs) + ref5fd28976.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5fd28976.Borrow(cpNext_allocs) - var cwaitSemaphoreCount_allocs *cgoAllocMap - ref1d0e82d4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cwaitSemaphoreCount_allocs) + var cdisplayPrimaryRed_allocs *cgoAllocMap + ref5fd28976.displayPrimaryRed, cdisplayPrimaryRed_allocs = x.DisplayPrimaryRed.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryRed_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 cdisplayPrimaryGreen_allocs *cgoAllocMap + ref5fd28976.displayPrimaryGreen, cdisplayPrimaryGreen_allocs = x.DisplayPrimaryGreen.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryGreen_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref1d0e82d4.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cswapchainCount_allocs) + var cdisplayPrimaryBlue_allocs *cgoAllocMap + ref5fd28976.displayPrimaryBlue, cdisplayPrimaryBlue_allocs = x.DisplayPrimaryBlue.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryBlue_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 cwhitePoint_allocs *cgoAllocMap + ref5fd28976.whitePoint, cwhitePoint_allocs = x.WhitePoint.PassValue() + allocs5fd28976.Borrow(cwhitePoint_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 cmaxLuminance_allocs *cgoAllocMap + ref5fd28976.maxLuminance, cmaxLuminance_allocs = (C.float)(x.MaxLuminance), cgoAllocsUnknown + allocs5fd28976.Borrow(cmaxLuminance_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 cminLuminance_allocs *cgoAllocMap + ref5fd28976.minLuminance, cminLuminance_allocs = (C.float)(x.MinLuminance), cgoAllocsUnknown + allocs5fd28976.Borrow(cminLuminance_allocs) - x.ref1d0e82d4 = ref1d0e82d4 - x.allocs1d0e82d4 = allocs1d0e82d4 - return ref1d0e82d4, allocs1d0e82d4 + 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 PresentInfo) PassValue() (C.VkPresentInfoKHR, *cgoAllocMap) { - if x.ref1d0e82d4 != nil { - return *x.ref1d0e82d4, nil +func (x HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { + if x.ref5fd28976 != nil { + return *x.ref5fd28976, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20406,111 +45633,101 @@ 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 *HdrMetadata) Deref() { + if x.ref5fd28976 == 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.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) } -// allocImageSwapchainCreateInfoMemory allocates memory for type C.VkImageSwapchainCreateInfoKHR in C. +// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDebugUtilsLabelMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsLabelValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkImageSwapchainCreateInfoKHR{}) +const sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSwapchainCreateInfo) Ref() *C.VkImageSwapchainCreateInfoKHR { +func (x *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { if x == nil { return nil } - return x.refd83cc5d0 + 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 *ImageSwapchainCreateInfo) Free() { - if x != nil && x.allocsd83cc5d0 != nil { - x.allocsd83cc5d0.(*cgoAllocMap).Free() - x.refd83cc5d0 = nil +func (x *DebugUtilsLabel) Free() { + if x != nil && x.allocs8faaf7b1 != nil { + x.allocs8faaf7b1.(*cgoAllocMap).Free() + x.ref8faaf7b1 = nil } } -// NewImageSwapchainCreateInfoRef 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 NewImageSwapchainCreateInfoRef(ref unsafe.Pointer) *ImageSwapchainCreateInfo { +func NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { if ref == nil { return nil } - obj := new(ImageSwapchainCreateInfo) - obj.refd83cc5d0 = (*C.VkImageSwapchainCreateInfoKHR)(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 *ImageSwapchainCreateInfo) PassRef() (*C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd83cc5d0 != nil { - return x.refd83cc5d0, nil + } else if x.ref8faaf7b1 != nil { + return x.ref8faaf7b1, nil } - memd83cc5d0 := allocImageSwapchainCreateInfoMemory(1) - refd83cc5d0 := (*C.VkImageSwapchainCreateInfoKHR)(memd83cc5d0) - allocsd83cc5d0 := new(cgoAllocMap) - allocsd83cc5d0.Add(memd83cc5d0) + mem8faaf7b1 := allocDebugUtilsLabelMemory(1) + ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) + allocs8faaf7b1 := new(cgoAllocMap) + allocs8faaf7b1.Add(mem8faaf7b1) var csType_allocs *cgoAllocMap - refd83cc5d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd83cc5d0.Borrow(csType_allocs) + ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8faaf7b1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd83cc5d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd83cc5d0.Borrow(cpNext_allocs) + ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(cpNext_allocs) - var cswapchain_allocs *cgoAllocMap - refd83cc5d0.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocsd83cc5d0.Borrow(cswapchain_allocs) + var cpLabelName_allocs *cgoAllocMap + ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) + allocs8faaf7b1.Borrow(cpLabelName_allocs) - x.refd83cc5d0 = refd83cc5d0 - x.allocsd83cc5d0 = allocsd83cc5d0 - return refd83cc5d0, allocsd83cc5d0 + var ccolor_allocs *cgoAllocMap + ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(ccolor_allocs) + + 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 ImageSwapchainCreateInfo) PassValue() (C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.refd83cc5d0 != nil { - return *x.refd83cc5d0, nil +func (x DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { + if x.ref8faaf7b1 != nil { + return *x.ref8faaf7b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20518,94 +45735,99 @@ 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 *DebugUtilsLabel) Deref() { + if x.ref8faaf7b1 == 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.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)) } -// allocBindImageMemorySwapchainInfoMemory allocates memory for type C.VkBindImageMemorySwapchainInfoKHR in C. +// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDebugUtilsObjectNameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectNameInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindImageMemorySwapchainInfoValue = unsafe.Sizeof([1]C.VkBindImageMemorySwapchainInfoKHR{}) +const sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemorySwapchainInfo) Ref() *C.VkBindImageMemorySwapchainInfoKHR { +func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { if x == nil { return nil } - return x.ref1aa25cb6 + 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 *BindImageMemorySwapchainInfo) Free() { - if x != nil && x.allocs1aa25cb6 != nil { - x.allocs1aa25cb6.(*cgoAllocMap).Free() - x.ref1aa25cb6 = nil +func (x *DebugUtilsObjectNameInfo) Free() { + if x != nil && x.allocs5e73c2db != nil { + x.allocs5e73c2db.(*cgoAllocMap).Free() + x.ref5e73c2db = nil } } -// NewBindImageMemorySwapchainInfoRef 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 NewBindImageMemorySwapchainInfoRef(ref unsafe.Pointer) *BindImageMemorySwapchainInfo { +func NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { if ref == nil { return nil } - obj := new(BindImageMemorySwapchainInfo) - obj.ref1aa25cb6 = (*C.VkBindImageMemorySwapchainInfoKHR)(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 *BindImageMemorySwapchainInfo) PassRef() (*C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { +func (x *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1aa25cb6 != nil { - return x.ref1aa25cb6, nil + } else if x.ref5e73c2db != nil { + return x.ref5e73c2db, nil } - mem1aa25cb6 := allocBindImageMemorySwapchainInfoMemory(1) - ref1aa25cb6 := (*C.VkBindImageMemorySwapchainInfoKHR)(mem1aa25cb6) - allocs1aa25cb6 := new(cgoAllocMap) - allocs1aa25cb6.Add(mem1aa25cb6) + mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) + ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) + allocs5e73c2db := new(cgoAllocMap) + allocs5e73c2db.Add(mem5e73c2db) var csType_allocs *cgoAllocMap - ref1aa25cb6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1aa25cb6.Borrow(csType_allocs) + ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e73c2db.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1aa25cb6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cpNext_allocs) + ref5e73c2db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e73c2db.Borrow(cpNext_allocs) - var cswapchain_allocs *cgoAllocMap - ref1aa25cb6.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cswapchain_allocs) + var cobjectType_allocs *cgoAllocMap + ref5e73c2db.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectType_allocs) - var cimageIndex_allocs *cgoAllocMap - ref1aa25cb6.imageIndex, cimageIndex_allocs = (C.uint32_t)(x.ImageIndex), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cimageIndex_allocs) + var cobjectHandle_allocs *cgoAllocMap + ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectHandle_allocs) - x.ref1aa25cb6 = ref1aa25cb6 - x.allocs1aa25cb6 = allocs1aa25cb6 - return ref1aa25cb6, allocs1aa25cb6 + 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 BindImageMemorySwapchainInfo) PassValue() (C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { - if x.ref1aa25cb6 != nil { - return *x.ref1aa25cb6, nil +func (x DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { + if x.ref5e73c2db != nil { + return *x.ref5e73c2db, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20613,107 +45835,108 @@ 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 *DebugUtilsObjectNameInfo) Deref() { + if x.ref5e73c2db == 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.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) } -// allocAcquireNextImageInfoMemory allocates memory for type C.VkAcquireNextImageInfoKHR in C. +// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDebugUtilsObjectTagInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectTagInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAcquireNextImageInfoValue = unsafe.Sizeof([1]C.VkAcquireNextImageInfoKHR{}) +const sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AcquireNextImageInfo) Ref() *C.VkAcquireNextImageInfoKHR { +func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { if x == nil { return nil } - return x.ref588806a5 + 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 *AcquireNextImageInfo) Free() { - if x != nil && x.allocs588806a5 != nil { - x.allocs588806a5.(*cgoAllocMap).Free() - x.ref588806a5 = nil +func (x *DebugUtilsObjectTagInfo) Free() { + if x != nil && x.allocs9fd129cf != nil { + x.allocs9fd129cf.(*cgoAllocMap).Free() + x.ref9fd129cf = nil } } -// NewAcquireNextImageInfoRef 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 NewAcquireNextImageInfoRef(ref unsafe.Pointer) *AcquireNextImageInfo { +func NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { if ref == nil { return nil } - obj := new(AcquireNextImageInfo) - obj.ref588806a5 = (*C.VkAcquireNextImageInfoKHR)(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 *AcquireNextImageInfo) PassRef() (*C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { +func (x *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref588806a5 != nil { - return x.ref588806a5, nil + } else if x.ref9fd129cf != nil { + return x.ref9fd129cf, nil } - mem588806a5 := allocAcquireNextImageInfoMemory(1) - ref588806a5 := (*C.VkAcquireNextImageInfoKHR)(mem588806a5) - allocs588806a5 := new(cgoAllocMap) - allocs588806a5.Add(mem588806a5) + mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) + ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) + allocs9fd129cf := new(cgoAllocMap) + allocs9fd129cf.Add(mem9fd129cf) var csType_allocs *cgoAllocMap - ref588806a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs588806a5.Borrow(csType_allocs) + ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9fd129cf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref588806a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs588806a5.Borrow(cpNext_allocs) + ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9fd129cf.Borrow(cpNext_allocs) - var cswapchain_allocs *cgoAllocMap - ref588806a5.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocs588806a5.Borrow(cswapchain_allocs) + var cobjectType_allocs *cgoAllocMap + ref9fd129cf.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs9fd129cf.Borrow(cobjectType_allocs) - var ctimeout_allocs *cgoAllocMap - ref588806a5.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown - allocs588806a5.Borrow(ctimeout_allocs) + var cobjectHandle_allocs *cgoAllocMap + ref9fd129cf.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs9fd129cf.Borrow(cobjectHandle_allocs) - var csemaphore_allocs *cgoAllocMap - ref588806a5.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocs588806a5.Borrow(csemaphore_allocs) + var ctagName_allocs *cgoAllocMap + ref9fd129cf.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown + allocs9fd129cf.Borrow(ctagName_allocs) - var cfence_allocs *cgoAllocMap - ref588806a5.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown - allocs588806a5.Borrow(cfence_allocs) + var ctagSize_allocs *cgoAllocMap + ref9fd129cf.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown + allocs9fd129cf.Borrow(ctagSize_allocs) - var cdeviceMask_allocs *cgoAllocMap - ref588806a5.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocs588806a5.Borrow(cdeviceMask_allocs) + var cpTag_allocs *cgoAllocMap + ref9fd129cf.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown + allocs9fd129cf.Borrow(cpTag_allocs) - x.ref588806a5 = ref588806a5 - x.allocs588806a5 = allocs588806a5 - return ref588806a5, allocs588806a5 + 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 AcquireNextImageInfo) PassValue() (C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { - if x.ref588806a5 != nil { - return *x.ref588806a5, nil +func (x DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { + if x.ref9fd129cf != nil { + return *x.ref9fd129cf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20721,98 +45944,90 @@ 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 *DebugUtilsObjectTagInfo) Deref() { + if x.ref9fd129cf == 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.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 = (uint32)(x.ref9fd129cf.tagSize) + x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pTag)) } -// allocDeviceGroupPresentCapabilitiesMemory allocates memory for type C.VkDeviceGroupPresentCapabilitiesKHR in C. +// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSampleLocationMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupPresentCapabilitiesValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentCapabilitiesKHR{}) +const sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupPresentCapabilities) Ref() *C.VkDeviceGroupPresentCapabilitiesKHR { +func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { if x == nil { return nil } - return x.refa3962c81 + 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 *DeviceGroupPresentCapabilities) Free() { - if x != nil && x.allocsa3962c81 != nil { - x.allocsa3962c81.(*cgoAllocMap).Free() - x.refa3962c81 = nil +func (x *SampleLocation) Free() { + if x != nil && x.allocse7a2e761 != nil { + x.allocse7a2e761.(*cgoAllocMap).Free() + x.refe7a2e761 = nil } } -// NewDeviceGroupPresentCapabilitiesRef 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 NewDeviceGroupPresentCapabilitiesRef(ref unsafe.Pointer) *DeviceGroupPresentCapabilities { +func NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { if ref == nil { return nil } - obj := new(DeviceGroupPresentCapabilities) - obj.refa3962c81 = (*C.VkDeviceGroupPresentCapabilitiesKHR)(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 *DeviceGroupPresentCapabilities) PassRef() (*C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { +func (x *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa3962c81 != nil { - return x.refa3962c81, nil + } else if x.refe7a2e761 != nil { + return x.refe7a2e761, nil } - mema3962c81 := allocDeviceGroupPresentCapabilitiesMemory(1) - refa3962c81 := (*C.VkDeviceGroupPresentCapabilitiesKHR)(mema3962c81) - allocsa3962c81 := new(cgoAllocMap) - allocsa3962c81.Add(mema3962c81) - - var csType_allocs *cgoAllocMap - refa3962c81.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa3962c81.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa3962c81.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa3962c81.Borrow(cpNext_allocs) + meme7a2e761 := allocSampleLocationMemory(1) + refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) + allocse7a2e761 := new(cgoAllocMap) + allocse7a2e761.Add(meme7a2e761) - var cpresentMask_allocs *cgoAllocMap - refa3962c81.presentMask, cpresentMask_allocs = *(*[32]C.uint32_t)(unsafe.Pointer(&x.PresentMask)), cgoAllocsUnknown - allocsa3962c81.Borrow(cpresentMask_allocs) + var cx_allocs *cgoAllocMap + refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocse7a2e761.Borrow(cx_allocs) - var cmodes_allocs *cgoAllocMap - refa3962c81.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown - allocsa3962c81.Borrow(cmodes_allocs) + var cy_allocs *cgoAllocMap + refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocse7a2e761.Borrow(cy_allocs) - x.refa3962c81 = refa3962c81 - x.allocsa3962c81 = allocsa3962c81 - return refa3962c81, allocsa3962c81 + 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 DeviceGroupPresentCapabilities) PassValue() (C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { - if x.refa3962c81 != nil { - return *x.refa3962c81, nil +func (x SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { + if x.refe7a2e761 != nil { + return *x.refe7a2e761, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20820,99 +46035,139 @@ 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 *SampleLocation) Deref() { + if x.refe7a2e761 == 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.X = (float32)(x.refe7a2e761.x) + x.Y = (float32)(x.refe7a2e761.y) } -// allocDeviceGroupPresentInfoMemory allocates memory for type C.VkDeviceGroupPresentInfoKHR in C. +// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSampleLocationsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationsInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupPresentInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentInfoKHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *DeviceGroupPresentInfo) Ref() *C.VkDeviceGroupPresentInfoKHR { +func (x *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { if x == nil { return nil } - return x.reff6912d09 + 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 *DeviceGroupPresentInfo) Free() { - if x != nil && x.allocsf6912d09 != nil { - x.allocsf6912d09.(*cgoAllocMap).Free() - x.reff6912d09 = nil +func (x *SampleLocationsInfo) Free() { + if x != nil && x.allocsd8f3bd2d != nil { + x.allocsd8f3bd2d.(*cgoAllocMap).Free() + x.refd8f3bd2d = nil } } -// NewDeviceGroupPresentInfoRef 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 NewDeviceGroupPresentInfoRef(ref unsafe.Pointer) *DeviceGroupPresentInfo { +func NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { if ref == nil { return nil } - obj := new(DeviceGroupPresentInfo) - obj.reff6912d09 = (*C.VkDeviceGroupPresentInfoKHR)(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 *DeviceGroupPresentInfo) PassRef() (*C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { +func (x *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff6912d09 != nil { - return x.reff6912d09, nil + } else if x.refd8f3bd2d != nil { + return x.refd8f3bd2d, nil } - memf6912d09 := allocDeviceGroupPresentInfoMemory(1) - reff6912d09 := (*C.VkDeviceGroupPresentInfoKHR)(memf6912d09) - allocsf6912d09 := new(cgoAllocMap) - allocsf6912d09.Add(memf6912d09) + memd8f3bd2d := allocSampleLocationsInfoMemory(1) + refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) + allocsd8f3bd2d := new(cgoAllocMap) + allocsd8f3bd2d.Add(memd8f3bd2d) var csType_allocs *cgoAllocMap - reff6912d09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf6912d09.Borrow(csType_allocs) + refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff6912d09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf6912d09.Borrow(cpNext_allocs) + refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - reff6912d09.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocsf6912d09.Borrow(cswapchainCount_allocs) + var csampleLocationsPerPixel_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) - 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 csampleLocationGridSize_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() + allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) - var cmode_allocs *cgoAllocMap - reff6912d09.mode, cmode_allocs = (C.VkDeviceGroupPresentModeFlagBitsKHR)(x.Mode), cgoAllocsUnknown - allocsf6912d09.Borrow(cmode_allocs) + var csampleLocationsCount_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) - x.reff6912d09 = reff6912d09 - x.allocsf6912d09 = allocsf6912d09 - return reff6912d09, allocsf6912d09 + var cpSampleLocations_allocs *cgoAllocMap + refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) + allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) + + 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 DeviceGroupPresentInfo) PassValue() (C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { - if x.reff6912d09 != nil { - return *x.reff6912d09, nil +func (x SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { + if x.refd8f3bd2d != nil { + return *x.refd8f3bd2d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20920,96 +46175,89 @@ 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 *SampleLocationsInfo) Deref() { + if x.refd8f3bd2d == 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.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) } -// allocDeviceGroupSwapchainCreateInfoMemory allocates memory for type C.VkDeviceGroupSwapchainCreateInfoKHR in C. +// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocAttachmentSampleLocationsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleLocationsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGroupSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSwapchainCreateInfoKHR{}) +const sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupSwapchainCreateInfo) Ref() *C.VkDeviceGroupSwapchainCreateInfoKHR { +func (x *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { if x == nil { return nil } - return x.ref44ae0c0e + 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 *DeviceGroupSwapchainCreateInfo) Free() { - if x != nil && x.allocs44ae0c0e != nil { - x.allocs44ae0c0e.(*cgoAllocMap).Free() - x.ref44ae0c0e = nil +func (x *AttachmentSampleLocations) Free() { + if x != nil && x.allocs6a3dd41e != nil { + x.allocs6a3dd41e.(*cgoAllocMap).Free() + x.ref6a3dd41e = nil } } -// NewDeviceGroupSwapchainCreateInfoRef 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 NewDeviceGroupSwapchainCreateInfoRef(ref unsafe.Pointer) *DeviceGroupSwapchainCreateInfo { +func NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { if ref == nil { return nil } - obj := new(DeviceGroupSwapchainCreateInfo) - obj.ref44ae0c0e = (*C.VkDeviceGroupSwapchainCreateInfoKHR)(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 *DeviceGroupSwapchainCreateInfo) PassRef() (*C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref44ae0c0e != nil { - return x.ref44ae0c0e, nil + } else if x.ref6a3dd41e != nil { + return x.ref6a3dd41e, nil } - mem44ae0c0e := allocDeviceGroupSwapchainCreateInfoMemory(1) - ref44ae0c0e := (*C.VkDeviceGroupSwapchainCreateInfoKHR)(mem44ae0c0e) - allocs44ae0c0e := new(cgoAllocMap) - allocs44ae0c0e.Add(mem44ae0c0e) - - var csType_allocs *cgoAllocMap - ref44ae0c0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs44ae0c0e.Borrow(csType_allocs) + mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) + ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) + allocs6a3dd41e := new(cgoAllocMap) + allocs6a3dd41e.Add(mem6a3dd41e) - var cpNext_allocs *cgoAllocMap - ref44ae0c0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs44ae0c0e.Borrow(cpNext_allocs) + var cattachmentIndex_allocs *cgoAllocMap + ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown + allocs6a3dd41e.Borrow(cattachmentIndex_allocs) - var cmodes_allocs *cgoAllocMap - ref44ae0c0e.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown - allocs44ae0c0e.Borrow(cmodes_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) - x.ref44ae0c0e = ref44ae0c0e - x.allocs44ae0c0e = allocs44ae0c0e - return ref44ae0c0e, allocs44ae0c0e + 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 DeviceGroupSwapchainCreateInfo) PassValue() (C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.ref44ae0c0e != nil { - return *x.ref44ae0c0e, nil +func (x AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { + if x.ref6a3dd41e != nil { + return *x.ref6a3dd41e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21017,106 +46265,85 @@ 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 *AttachmentSampleLocations) Deref() { + if x.ref6a3dd41e == nil { return } - x.SType = (StructureType)(x.ref44ae0c0e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref44ae0c0e.pNext)) - x.Modes = (DeviceGroupPresentModeFlags)(x.ref44ae0c0e.modes) + x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) } -// allocDisplayPropertiesMemory allocates memory for type C.VkDisplayPropertiesKHR in C. +// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSubpassSampleLocationsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassSampleLocationsValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPropertiesValue = unsafe.Sizeof([1]C.VkDisplayPropertiesKHR{}) +const sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayProperties) Ref() *C.VkDisplayPropertiesKHR { +func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { if x == nil { return nil } - return x.reffe2a7187 + 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 *DisplayProperties) Free() { - if x != nil && x.allocsfe2a7187 != nil { - x.allocsfe2a7187.(*cgoAllocMap).Free() - x.reffe2a7187 = nil +func (x *SubpassSampleLocations) Free() { + if x != nil && x.allocs1f612812 != nil { + x.allocs1f612812.(*cgoAllocMap).Free() + x.ref1f612812 = nil } } -// NewDisplayPropertiesRef 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 NewDisplayPropertiesRef(ref unsafe.Pointer) *DisplayProperties { +func NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { if ref == nil { return nil } - obj := new(DisplayProperties) - obj.reffe2a7187 = (*C.VkDisplayPropertiesKHR)(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 *DisplayProperties) PassRef() (*C.VkDisplayPropertiesKHR, *cgoAllocMap) { +func (x *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe2a7187 != nil { - return x.reffe2a7187, nil + } else if x.ref1f612812 != nil { + return x.ref1f612812, 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) - - 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) + mem1f612812 := allocSubpassSampleLocationsMemory(1) + ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) + allocs1f612812 := new(cgoAllocMap) + allocs1f612812.Add(mem1f612812) - var cplaneReorderPossible_allocs *cgoAllocMap - reffe2a7187.planeReorderPossible, cplaneReorderPossible_allocs = (C.VkBool32)(x.PlaneReorderPossible), cgoAllocsUnknown - allocsfe2a7187.Borrow(cplaneReorderPossible_allocs) + var csubpassIndex_allocs *cgoAllocMap + ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown + allocs1f612812.Borrow(csubpassIndex_allocs) - var cpersistentContent_allocs *cgoAllocMap - reffe2a7187.persistentContent, cpersistentContent_allocs = (C.VkBool32)(x.PersistentContent), cgoAllocsUnknown - allocsfe2a7187.Borrow(cpersistentContent_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs1f612812.Borrow(csampleLocationsInfo_allocs) - x.reffe2a7187 = reffe2a7187 - x.allocsfe2a7187 = allocsfe2a7187 - return reffe2a7187, allocsfe2a7187 + 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 DisplayProperties) PassValue() (C.VkDisplayPropertiesKHR, *cgoAllocMap) { - if x.reffe2a7187 != nil { - return *x.reffe2a7187, nil +func (x SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { + if x.ref1f612812 != nil { + return *x.ref1f612812, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21124,90 +46351,177 @@ 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 *SubpassSampleLocations) Deref() { + if x.ref1f612812 == 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.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) } -// allocDisplayModeParametersMemory allocates memory for type C.VkDisplayModeParametersKHR in C. +// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocRenderPassSampleLocationsBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassSampleLocationsBeginInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayModeParametersValue = unsafe.Sizeof([1]C.VkDisplayModeParametersKHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 *DisplayModeParameters) Ref() *C.VkDisplayModeParametersKHR { +func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { if x == nil { return nil } - return x.refe016f77f + 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 *DisplayModeParameters) Free() { - if x != nil && x.allocse016f77f != nil { - x.allocse016f77f.(*cgoAllocMap).Free() - x.refe016f77f = nil +func (x *RenderPassSampleLocationsBeginInfo) Free() { + if x != nil && x.allocsb61b51d4 != nil { + x.allocsb61b51d4.(*cgoAllocMap).Free() + x.refb61b51d4 = nil } } -// NewDisplayModeParametersRef 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 NewDisplayModeParametersRef(ref unsafe.Pointer) *DisplayModeParameters { +func NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { if ref == nil { return nil } - obj := new(DisplayModeParameters) - obj.refe016f77f = (*C.VkDisplayModeParametersKHR)(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 *DisplayModeParameters) PassRef() (*C.VkDisplayModeParametersKHR, *cgoAllocMap) { +func (x *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe016f77f != nil { - return x.refe016f77f, nil + } else if x.refb61b51d4 != nil { + return x.refb61b51d4, nil } - meme016f77f := allocDisplayModeParametersMemory(1) - refe016f77f := (*C.VkDisplayModeParametersKHR)(meme016f77f) - allocse016f77f := new(cgoAllocMap) - allocse016f77f.Add(meme016f77f) + memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) + refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) + allocsb61b51d4 := new(cgoAllocMap) + allocsb61b51d4.Add(memb61b51d4) - var cvisibleRegion_allocs *cgoAllocMap - refe016f77f.visibleRegion, cvisibleRegion_allocs = x.VisibleRegion.PassValue() - allocse016f77f.Borrow(cvisibleRegion_allocs) + var csType_allocs *cgoAllocMap + refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb61b51d4.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 + refb61b51d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpNext_allocs) - x.refe016f77f = refe016f77f - x.allocse016f77f = allocse016f77f - return refe016f77f, allocse016f77f + var cattachmentInitialSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.attachmentInitialSampleLocationsCount, cattachmentInitialSampleLocationsCount_allocs = (C.uint32_t)(x.AttachmentInitialSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cattachmentInitialSampleLocationsCount_allocs) + + var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap + refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) + allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) + + var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) + + 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 DisplayModeParameters) PassValue() (C.VkDisplayModeParametersKHR, *cgoAllocMap) { - if x.refe016f77f != nil { - return *x.refe016f77f, nil +func (x RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { + if x.refb61b51d4 != nil { + return *x.refb61b51d4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21215,85 +46529,97 @@ 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 *RenderPassSampleLocationsBeginInfo) Deref() { + if x.refb61b51d4 == nil { return } - x.VisibleRegion = *NewExtent2DRef(unsafe.Pointer(&x.refe016f77f.visibleRegion)) - x.RefreshRate = (uint32)(x.refe016f77f.refreshRate) + 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) } -// allocDisplayModePropertiesMemory allocates memory for type C.VkDisplayModePropertiesKHR in C. +// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineSampleLocationsStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineSampleLocationsStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayModePropertiesValue = unsafe.Sizeof([1]C.VkDisplayModePropertiesKHR{}) +const sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeProperties) Ref() *C.VkDisplayModePropertiesKHR { +func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { if x == nil { return nil } - return x.ref5e3abaaa + 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 *DisplayModeProperties) Free() { - if x != nil && x.allocs5e3abaaa != nil { - x.allocs5e3abaaa.(*cgoAllocMap).Free() - x.ref5e3abaaa = nil +func (x *PipelineSampleLocationsStateCreateInfo) Free() { + if x != nil && x.allocs93a2968f != nil { + x.allocs93a2968f.(*cgoAllocMap).Free() + x.ref93a2968f = nil } } -// NewDisplayModePropertiesRef 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 NewDisplayModePropertiesRef(ref unsafe.Pointer) *DisplayModeProperties { +func NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { if ref == nil { return nil } - obj := new(DisplayModeProperties) - obj.ref5e3abaaa = (*C.VkDisplayModePropertiesKHR)(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 *DisplayModeProperties) PassRef() (*C.VkDisplayModePropertiesKHR, *cgoAllocMap) { +func (x *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e3abaaa != nil { - return x.ref5e3abaaa, nil + } else if x.ref93a2968f != nil { + return x.ref93a2968f, nil } - mem5e3abaaa := allocDisplayModePropertiesMemory(1) - ref5e3abaaa := (*C.VkDisplayModePropertiesKHR)(mem5e3abaaa) - allocs5e3abaaa := new(cgoAllocMap) - allocs5e3abaaa.Add(mem5e3abaaa) + mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) + ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) + allocs93a2968f := new(cgoAllocMap) + allocs93a2968f.Add(mem93a2968f) - var cdisplayMode_allocs *cgoAllocMap - ref5e3abaaa.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown - allocs5e3abaaa.Borrow(cdisplayMode_allocs) + var csType_allocs *cgoAllocMap + ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs93a2968f.Borrow(csType_allocs) - var cparameters_allocs *cgoAllocMap - ref5e3abaaa.parameters, cparameters_allocs = x.Parameters.PassValue() - allocs5e3abaaa.Borrow(cparameters_allocs) + var cpNext_allocs *cgoAllocMap + ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs93a2968f.Borrow(cpNext_allocs) - x.ref5e3abaaa = ref5e3abaaa - x.allocs5e3abaaa = allocs5e3abaaa - return ref5e3abaaa, allocs5e3abaaa + var csampleLocationsEnable_allocs *cgoAllocMap + ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown + allocs93a2968f.Borrow(csampleLocationsEnable_allocs) + + var csampleLocationsInfo_allocs *cgoAllocMap + ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs93a2968f.Borrow(csampleLocationsInfo_allocs) + + 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 DisplayModeProperties) PassValue() (C.VkDisplayModePropertiesKHR, *cgoAllocMap) { - if x.ref5e3abaaa != nil { - return *x.ref5e3abaaa, nil +func (x PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { + if x.ref93a2968f != nil { + return *x.ref93a2968f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21301,93 +46627,107 @@ 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 *PipelineSampleLocationsStateCreateInfo) Deref() { + if x.ref93a2968f == nil { return } - x.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref5e3abaaa.displayMode)) - x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref5e3abaaa.parameters)) + 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)) } -// allocDisplayModeCreateInfoMemory allocates memory for type C.VkDisplayModeCreateInfoKHR in C. +// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceSampleLocationsPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSampleLocationsPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayModeCreateInfoValue = unsafe.Sizeof([1]C.VkDisplayModeCreateInfoKHR{}) +const sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeCreateInfo) Ref() *C.VkDisplayModeCreateInfoKHR { +func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { if x == nil { return nil } - return x.ref392fca31 + 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 *DisplayModeCreateInfo) Free() { - if x != nil && x.allocs392fca31 != nil { - x.allocs392fca31.(*cgoAllocMap).Free() - x.ref392fca31 = nil +func (x *PhysicalDeviceSampleLocationsProperties) Free() { + if x != nil && x.allocsaf801323 != nil { + x.allocsaf801323.(*cgoAllocMap).Free() + x.refaf801323 = nil } } -// NewDisplayModeCreateInfoRef 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 NewDisplayModeCreateInfoRef(ref unsafe.Pointer) *DisplayModeCreateInfo { +func NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { if ref == nil { return nil } - obj := new(DisplayModeCreateInfo) - obj.ref392fca31 = (*C.VkDisplayModeCreateInfoKHR)(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 *DisplayModeCreateInfo) PassRef() (*C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref392fca31 != nil { - return x.ref392fca31, nil + } else if x.refaf801323 != nil { + return x.refaf801323, nil } - mem392fca31 := allocDisplayModeCreateInfoMemory(1) - ref392fca31 := (*C.VkDisplayModeCreateInfoKHR)(mem392fca31) - allocs392fca31 := new(cgoAllocMap) - allocs392fca31.Add(mem392fca31) + memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) + refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) + allocsaf801323 := new(cgoAllocMap) + allocsaf801323.Add(memaf801323) var csType_allocs *cgoAllocMap - ref392fca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs392fca31.Borrow(csType_allocs) + refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaf801323.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref392fca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs392fca31.Borrow(cpNext_allocs) + refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaf801323.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref392fca31.flags, cflags_allocs = (C.VkDisplayModeCreateFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs392fca31.Borrow(cflags_allocs) + var csampleLocationSampleCounts_allocs *cgoAllocMap + refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown + allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) - var cparameters_allocs *cgoAllocMap - ref392fca31.parameters, cparameters_allocs = x.Parameters.PassValue() - allocs392fca31.Borrow(cparameters_allocs) + var cmaxSampleLocationGridSize_allocs *cgoAllocMap + refaf801323.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() + allocsaf801323.Borrow(cmaxSampleLocationGridSize_allocs) - x.ref392fca31 = ref392fca31 - x.allocs392fca31 = allocs392fca31 - return ref392fca31, allocs392fca31 + 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 DisplayModeCreateInfo) PassValue() (C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { - if x.ref392fca31 != nil { - return *x.ref392fca31, nil +func (x PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { + if x.refaf801323 != nil { + return *x.refaf801323, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21395,115 +46735,94 @@ 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 *PhysicalDeviceSampleLocationsProperties) Deref() { + if x.refaf801323 == 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.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) } -// allocDisplayPlaneCapabilitiesMemory allocates memory for type C.VkDisplayPlaneCapabilitiesKHR in C. +// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMultisamplePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultisamplePropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPlaneCapabilitiesValue = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilitiesKHR{}) +const sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneCapabilities) Ref() *C.VkDisplayPlaneCapabilitiesKHR { +func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { if x == nil { return nil } - return x.ref6f31fcaf + 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 *DisplayPlaneCapabilities) Free() { - if x != nil && x.allocs6f31fcaf != nil { - x.allocs6f31fcaf.(*cgoAllocMap).Free() - x.ref6f31fcaf = nil +func (x *MultisampleProperties) Free() { + if x != nil && x.allocs3e47f337 != nil { + x.allocs3e47f337.(*cgoAllocMap).Free() + x.ref3e47f337 = nil } } -// NewDisplayPlaneCapabilitiesRef 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 NewDisplayPlaneCapabilitiesRef(ref unsafe.Pointer) *DisplayPlaneCapabilities { +func NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { if ref == nil { return nil } - obj := new(DisplayPlaneCapabilities) - obj.ref6f31fcaf = (*C.VkDisplayPlaneCapabilitiesKHR)(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 *DisplayPlaneCapabilities) PassRef() (*C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { +func (x *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f31fcaf != nil { - return x.ref6f31fcaf, nil + } else if x.ref3e47f337 != nil { + return x.ref3e47f337, 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) - - var cminSrcExtent_allocs *cgoAllocMap - ref6f31fcaf.minSrcExtent, cminSrcExtent_allocs = x.MinSrcExtent.PassValue() - allocs6f31fcaf.Borrow(cminSrcExtent_allocs) - - var cmaxSrcExtent_allocs *cgoAllocMap - ref6f31fcaf.maxSrcExtent, cmaxSrcExtent_allocs = x.MaxSrcExtent.PassValue() - allocs6f31fcaf.Borrow(cmaxSrcExtent_allocs) - - var cminDstPosition_allocs *cgoAllocMap - ref6f31fcaf.minDstPosition, cminDstPosition_allocs = x.MinDstPosition.PassValue() - allocs6f31fcaf.Borrow(cminDstPosition_allocs) + mem3e47f337 := allocMultisamplePropertiesMemory(1) + ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) + allocs3e47f337 := new(cgoAllocMap) + allocs3e47f337.Add(mem3e47f337) - var cmaxDstPosition_allocs *cgoAllocMap - ref6f31fcaf.maxDstPosition, cmaxDstPosition_allocs = x.MaxDstPosition.PassValue() - allocs6f31fcaf.Borrow(cmaxDstPosition_allocs) + var csType_allocs *cgoAllocMap + ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e47f337.Borrow(csType_allocs) - var cminDstExtent_allocs *cgoAllocMap - ref6f31fcaf.minDstExtent, cminDstExtent_allocs = x.MinDstExtent.PassValue() - allocs6f31fcaf.Borrow(cminDstExtent_allocs) + var cpNext_allocs *cgoAllocMap + ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e47f337.Borrow(cpNext_allocs) - var cmaxDstExtent_allocs *cgoAllocMap - ref6f31fcaf.maxDstExtent, cmaxDstExtent_allocs = x.MaxDstExtent.PassValue() - allocs6f31fcaf.Borrow(cmaxDstExtent_allocs) + var cmaxSampleLocationGridSize_allocs *cgoAllocMap + ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() + allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) - x.ref6f31fcaf = ref6f31fcaf - x.allocs6f31fcaf = allocs6f31fcaf - return ref6f31fcaf, allocs6f31fcaf + 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 DisplayPlaneCapabilities) PassValue() (C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { - if x.ref6f31fcaf != nil { - return *x.ref6f31fcaf, nil +func (x MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { + if x.ref3e47f337 != nil { + return *x.ref3e47f337, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21511,92 +46830,90 @@ 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 *MultisampleProperties) Deref() { + if x.ref3e47f337 == 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.ref3e47f337.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e47f337.pNext)) + x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.ref3e47f337.maxSampleLocationGridSize)) } -// allocDisplayPlanePropertiesMemory allocates memory for type C.VkDisplayPlanePropertiesKHR in C. +// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPlanePropertiesValue = unsafe.Sizeof([1]C.VkDisplayPlanePropertiesKHR{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneProperties) Ref() *C.VkDisplayPlanePropertiesKHR { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { if x == nil { return nil } - return x.refce3db3f6 + 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 *DisplayPlaneProperties) Free() { - if x != nil && x.allocsce3db3f6 != nil { - x.allocsce3db3f6.(*cgoAllocMap).Free() - x.refce3db3f6 = nil +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { + if x != nil && x.allocs8514bc93 != nil { + x.allocs8514bc93.(*cgoAllocMap).Free() + x.ref8514bc93 = nil } } -// NewDisplayPlanePropertiesRef 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 NewDisplayPlanePropertiesRef(ref unsafe.Pointer) *DisplayPlaneProperties { +func NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { if ref == nil { return nil } - obj := new(DisplayPlaneProperties) - obj.refce3db3f6 = (*C.VkDisplayPlanePropertiesKHR)(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 *DisplayPlaneProperties) PassRef() (*C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refce3db3f6 != nil { - return x.refce3db3f6, nil + } else if x.ref8514bc93 != nil { + return x.ref8514bc93, nil } - memce3db3f6 := allocDisplayPlanePropertiesMemory(1) - refce3db3f6 := (*C.VkDisplayPlanePropertiesKHR)(memce3db3f6) - allocsce3db3f6 := new(cgoAllocMap) - allocsce3db3f6.Add(memce3db3f6) + mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) + ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) + allocs8514bc93 := new(cgoAllocMap) + allocs8514bc93.Add(mem8514bc93) - var ccurrentDisplay_allocs *cgoAllocMap - refce3db3f6.currentDisplay, ccurrentDisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.CurrentDisplay)), cgoAllocsUnknown - allocsce3db3f6.Borrow(ccurrentDisplay_allocs) + var csType_allocs *cgoAllocMap + ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8514bc93.Borrow(csType_allocs) - var ccurrentStackIndex_allocs *cgoAllocMap - refce3db3f6.currentStackIndex, ccurrentStackIndex_allocs = (C.uint32_t)(x.CurrentStackIndex), cgoAllocsUnknown - allocsce3db3f6.Borrow(ccurrentStackIndex_allocs) + var cpNext_allocs *cgoAllocMap + ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8514bc93.Borrow(cpNext_allocs) - x.refce3db3f6 = refce3db3f6 - x.allocsce3db3f6 = allocsce3db3f6 - return refce3db3f6, allocsce3db3f6 + var cadvancedBlendCoherentOperations_allocs *cgoAllocMap + ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown + allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) + + 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 DisplayPlaneProperties) PassValue() (C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { - if x.refce3db3f6 != nil { - return *x.refce3db3f6, nil +func (x PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { + if x.ref8514bc93 != nil { + return *x.ref8514bc93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21604,117 +46921,110 @@ 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 *PhysicalDeviceBlendOperationAdvancedFeatures) Deref() { + if x.ref8514bc93 == nil { return } - x.CurrentDisplay = *(*Display)(unsafe.Pointer(&x.refce3db3f6.currentDisplay)) - x.CurrentStackIndex = (uint32)(x.refce3db3f6.currentStackIndex) + x.SType = (StructureType)(x.ref8514bc93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8514bc93.pNext)) + x.AdvancedBlendCoherentOperations = (Bool32)(x.ref8514bc93.advancedBlendCoherentOperations) } -// allocDisplaySurfaceCreateInfoMemory allocates memory for type C.VkDisplaySurfaceCreateInfoKHR in C. +// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplaySurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkDisplaySurfaceCreateInfoKHR{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplaySurfaceCreateInfo) Ref() *C.VkDisplaySurfaceCreateInfoKHR { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { if x == nil { return nil } - return x.ref58445c35 + 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 *DisplaySurfaceCreateInfo) Free() { - if x != nil && x.allocs58445c35 != nil { - x.allocs58445c35.(*cgoAllocMap).Free() - x.ref58445c35 = nil +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Free() { + if x != nil && x.allocs94cb3fa6 != nil { + x.allocs94cb3fa6.(*cgoAllocMap).Free() + x.ref94cb3fa6 = nil } } -// NewDisplaySurfaceCreateInfoRef 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 NewDisplaySurfaceCreateInfoRef(ref unsafe.Pointer) *DisplaySurfaceCreateInfo { +func NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { if ref == nil { return nil } - obj := new(DisplaySurfaceCreateInfo) - obj.ref58445c35 = (*C.VkDisplaySurfaceCreateInfoKHR)(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 *DisplaySurfaceCreateInfo) PassRef() (*C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58445c35 != nil { - return x.ref58445c35, nil + } else if x.ref94cb3fa6 != nil { + return x.ref94cb3fa6, nil } - mem58445c35 := allocDisplaySurfaceCreateInfoMemory(1) - ref58445c35 := (*C.VkDisplaySurfaceCreateInfoKHR)(mem58445c35) - allocs58445c35 := new(cgoAllocMap) - allocs58445c35.Add(mem58445c35) + mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) + ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) + allocs94cb3fa6 := new(cgoAllocMap) + allocs94cb3fa6.Add(mem94cb3fa6) var csType_allocs *cgoAllocMap - ref58445c35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs58445c35.Borrow(csType_allocs) + ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs94cb3fa6.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) + ref94cb3fa6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cpNext_allocs) - var cplaneIndex_allocs *cgoAllocMap - ref58445c35.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown - allocs58445c35.Borrow(cplaneIndex_allocs) + var cadvancedBlendMaxColorAttachments_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendMaxColorAttachments, cadvancedBlendMaxColorAttachments_allocs = (C.uint32_t)(x.AdvancedBlendMaxColorAttachments), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendMaxColorAttachments_allocs) - var cplaneStackIndex_allocs *cgoAllocMap - ref58445c35.planeStackIndex, cplaneStackIndex_allocs = (C.uint32_t)(x.PlaneStackIndex), cgoAllocsUnknown - allocs58445c35.Borrow(cplaneStackIndex_allocs) + var cadvancedBlendIndependentBlend_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendIndependentBlend, cadvancedBlendIndependentBlend_allocs = (C.VkBool32)(x.AdvancedBlendIndependentBlend), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendIndependentBlend_allocs) - var ctransform_allocs *cgoAllocMap - ref58445c35.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown - allocs58445c35.Borrow(ctransform_allocs) + var cadvancedBlendNonPremultipliedSrcColor_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendNonPremultipliedSrcColor, cadvancedBlendNonPremultipliedSrcColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedSrcColor), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedSrcColor_allocs) - var cglobalAlpha_allocs *cgoAllocMap - ref58445c35.globalAlpha, cglobalAlpha_allocs = (C.float)(x.GlobalAlpha), cgoAllocsUnknown - allocs58445c35.Borrow(cglobalAlpha_allocs) + var cadvancedBlendNonPremultipliedDstColor_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendNonPremultipliedDstColor, cadvancedBlendNonPremultipliedDstColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedDstColor), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedDstColor_allocs) - var calphaMode_allocs *cgoAllocMap - ref58445c35.alphaMode, calphaMode_allocs = (C.VkDisplayPlaneAlphaFlagBitsKHR)(x.AlphaMode), cgoAllocsUnknown - allocs58445c35.Borrow(calphaMode_allocs) + var cadvancedBlendCorrelatedOverlap_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendCorrelatedOverlap, cadvancedBlendCorrelatedOverlap_allocs = (C.VkBool32)(x.AdvancedBlendCorrelatedOverlap), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendCorrelatedOverlap_allocs) - var cimageExtent_allocs *cgoAllocMap - ref58445c35.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocs58445c35.Borrow(cimageExtent_allocs) + var cadvancedBlendAllOperations_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendAllOperations, cadvancedBlendAllOperations_allocs = (C.VkBool32)(x.AdvancedBlendAllOperations), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendAllOperations_allocs) - x.ref58445c35 = ref58445c35 - x.allocs58445c35 = allocs58445c35 - return ref58445c35, allocs58445c35 + 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 DisplaySurfaceCreateInfo) PassValue() (C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { - if x.ref58445c35 != nil { - return *x.ref58445c35, nil +func (x PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { + if x.ref94cb3fa6 != nil { + return *x.ref94cb3fa6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21722,105 +47032,103 @@ 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 *PhysicalDeviceBlendOperationAdvancedProperties) Deref() { + if x.ref94cb3fa6 == 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.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) } -// allocDisplayPresentInfoMemory allocates memory for type C.VkDisplayPresentInfoKHR in C. +// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineColorBlendAdvancedStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendAdvancedStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPresentInfoValue = unsafe.Sizeof([1]C.VkDisplayPresentInfoKHR{}) +const sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPresentInfo) Ref() *C.VkDisplayPresentInfoKHR { +func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { if x == nil { return nil } - return x.ref8d2571e4 + 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 *DisplayPresentInfo) Free() { - if x != nil && x.allocs8d2571e4 != nil { - x.allocs8d2571e4.(*cgoAllocMap).Free() - x.ref8d2571e4 = nil +func (x *PipelineColorBlendAdvancedStateCreateInfo) Free() { + if x != nil && x.allocscd374989 != nil { + x.allocscd374989.(*cgoAllocMap).Free() + x.refcd374989 = nil } } -// NewDisplayPresentInfoRef 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 NewDisplayPresentInfoRef(ref unsafe.Pointer) *DisplayPresentInfo { +func NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { if ref == nil { return nil } - obj := new(DisplayPresentInfo) - obj.ref8d2571e4 = (*C.VkDisplayPresentInfoKHR)(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 *DisplayPresentInfo) PassRef() (*C.VkDisplayPresentInfoKHR, *cgoAllocMap) { +func (x *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8d2571e4 != nil { - return x.ref8d2571e4, nil + } else if x.refcd374989 != nil { + return x.refcd374989, nil } - mem8d2571e4 := allocDisplayPresentInfoMemory(1) - ref8d2571e4 := (*C.VkDisplayPresentInfoKHR)(mem8d2571e4) - allocs8d2571e4 := new(cgoAllocMap) - allocs8d2571e4.Add(mem8d2571e4) + memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) + refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) + allocscd374989 := new(cgoAllocMap) + allocscd374989.Add(memcd374989) var csType_allocs *cgoAllocMap - ref8d2571e4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8d2571e4.Borrow(csType_allocs) + refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd374989.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8d2571e4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8d2571e4.Borrow(cpNext_allocs) + refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd374989.Borrow(cpNext_allocs) - var csrcRect_allocs *cgoAllocMap - ref8d2571e4.srcRect, csrcRect_allocs = x.SrcRect.PassValue() - allocs8d2571e4.Borrow(csrcRect_allocs) + var csrcPremultiplied_allocs *cgoAllocMap + refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(csrcPremultiplied_allocs) - var cdstRect_allocs *cgoAllocMap - ref8d2571e4.dstRect, cdstRect_allocs = x.DstRect.PassValue() - allocs8d2571e4.Borrow(cdstRect_allocs) + var cdstPremultiplied_allocs *cgoAllocMap + refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(cdstPremultiplied_allocs) - var cpersistent_allocs *cgoAllocMap - ref8d2571e4.persistent, cpersistent_allocs = (C.VkBool32)(x.Persistent), cgoAllocsUnknown - allocs8d2571e4.Borrow(cpersistent_allocs) + var cblendOverlap_allocs *cgoAllocMap + refcd374989.blendOverlap, cblendOverlap_allocs = (C.VkBlendOverlapEXT)(x.BlendOverlap), cgoAllocsUnknown + allocscd374989.Borrow(cblendOverlap_allocs) - x.ref8d2571e4 = ref8d2571e4 - x.allocs8d2571e4 = allocs8d2571e4 - return ref8d2571e4, allocs8d2571e4 + 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 DisplayPresentInfo) PassValue() (C.VkDisplayPresentInfoKHR, *cgoAllocMap) { - if x.ref8d2571e4 != nil { - return *x.ref8d2571e4, nil +func (x PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { + if x.refcd374989 != nil { + return *x.refcd374989, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21828,96 +47136,100 @@ 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 *PipelineColorBlendAdvancedStateCreateInfo) Deref() { + if x.refcd374989 == 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.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) } -// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR in C. +// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineCoverageToColorStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageToColorStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) +const sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { +func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { if x == nil { return nil } - return x.ref73f83287 + 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 *ImportMemoryFdInfo) Free() { - if x != nil && x.allocs73f83287 != nil { - x.allocs73f83287.(*cgoAllocMap).Free() - x.ref73f83287 = nil +func (x *PipelineCoverageToColorStateCreateInfoNV) Free() { + if x != nil && x.allocscc6b7b68 != nil { + x.allocscc6b7b68.(*cgoAllocMap).Free() + x.refcc6b7b68 = nil } } -// NewImportMemoryFdInfoRef 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 NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { +func NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { if ref == nil { return nil } - obj := new(ImportMemoryFdInfo) - obj.ref73f83287 = (*C.VkImportMemoryFdInfoKHR)(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 *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { +func (x *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref73f83287 != nil { - return x.ref73f83287, nil + } else if x.refcc6b7b68 != nil { + return x.refcc6b7b68, nil } - mem73f83287 := allocImportMemoryFdInfoMemory(1) - ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) - allocs73f83287 := new(cgoAllocMap) - allocs73f83287.Add(mem73f83287) + memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) + refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) + allocscc6b7b68 := new(cgoAllocMap) + allocscc6b7b68.Add(memcc6b7b68) var csType_allocs *cgoAllocMap - ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs73f83287.Borrow(csType_allocs) + refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscc6b7b68.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs73f83287.Borrow(cpNext_allocs) + refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscc6b7b68.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs73f83287.Borrow(chandleType_allocs) + var cflags_allocs *cgoAllocMap + refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocscc6b7b68.Borrow(cflags_allocs) - var cfd_allocs *cgoAllocMap - ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs73f83287.Borrow(cfd_allocs) + var ccoverageToColorEnable_allocs *cgoAllocMap + refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown + allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) - x.ref73f83287 = ref73f83287 - x.allocs73f83287 = allocs73f83287 - return ref73f83287, allocs73f83287 + 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 ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { - if x.ref73f83287 != nil { - return *x.ref73f83287, nil +func (x PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { + if x.refcc6b7b68 != nil { + return *x.refcc6b7b68, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21925,91 +47237,108 @@ 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 *PipelineCoverageToColorStateCreateInfoNV) Deref() { + if x.refcc6b7b68 == 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.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) } -// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR in C. +// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineCoverageModulationStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageModulationStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) +const sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { +func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { if x == nil { return nil } - return x.ref51e16d38 + 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 *MemoryFdProperties) Free() { - if x != nil && x.allocs51e16d38 != nil { - x.allocs51e16d38.(*cgoAllocMap).Free() - x.ref51e16d38 = nil +func (x *PipelineCoverageModulationStateCreateInfoNV) Free() { + if x != nil && x.allocsa081b0ea != nil { + x.allocsa081b0ea.(*cgoAllocMap).Free() + x.refa081b0ea = nil } } -// NewMemoryFdPropertiesRef 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 NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { +func NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { if ref == nil { return nil } - obj := new(MemoryFdProperties) - obj.ref51e16d38 = (*C.VkMemoryFdPropertiesKHR)(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 *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { +func (x *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51e16d38 != nil { - return x.ref51e16d38, nil + } else if x.refa081b0ea != nil { + return x.refa081b0ea, nil } - mem51e16d38 := allocMemoryFdPropertiesMemory(1) - ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) - allocs51e16d38 := new(cgoAllocMap) - allocs51e16d38.Add(mem51e16d38) + mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) + refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) + allocsa081b0ea := new(cgoAllocMap) + allocsa081b0ea.Add(mema081b0ea) var csType_allocs *cgoAllocMap - ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51e16d38.Borrow(csType_allocs) + refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa081b0ea.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51e16d38.Borrow(cpNext_allocs) + refa081b0ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa081b0ea.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocs51e16d38.Borrow(cmemoryTypeBits_allocs) + var cflags_allocs *cgoAllocMap + refa081b0ea.flags, cflags_allocs = (C.VkPipelineCoverageModulationStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocsa081b0ea.Borrow(cflags_allocs) - x.ref51e16d38 = ref51e16d38 - x.allocs51e16d38 = allocs51e16d38 - return ref51e16d38, allocs51e16d38 + 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 = copyPFloatBytes((*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable))) + 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 MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { - if x.ref51e16d38 != nil { - return *x.ref51e16d38, nil +func (x PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { + if x.refa081b0ea != nil { + return *x.refa081b0ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22017,94 +47346,102 @@ 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 *PipelineCoverageModulationStateCreateInfoNV) Deref() { + if x.refa081b0ea == 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.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 = ? + } -// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR in C. +// allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) +const sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { if x == nil { return nil } - return x.ref75a079b1 + 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 *MemoryGetFdInfo) Free() { - if x != nil && x.allocs75a079b1 != nil { - x.allocs75a079b1.(*cgoAllocMap).Free() - x.ref75a079b1 = nil +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Free() { + if x != nil && x.allocsc083cf09 != nil { + x.allocsc083cf09.(*cgoAllocMap).Free() + x.refc083cf09 = nil } } -// NewMemoryGetFdInfoRef 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 NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { +func NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsPropertiesNV { if ref == nil { return nil } - obj := new(MemoryGetFdInfo) - obj.ref75a079b1 = (*C.VkMemoryGetFdInfoKHR)(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 *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75a079b1 != nil { - return x.ref75a079b1, nil + } else if x.refc083cf09 != nil { + return x.refc083cf09, nil } - mem75a079b1 := allocMemoryGetFdInfoMemory(1) - ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) - allocs75a079b1 := new(cgoAllocMap) - allocs75a079b1.Add(mem75a079b1) + memc083cf09 := allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(1) + refc083cf09 := (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(memc083cf09) + allocsc083cf09 := new(cgoAllocMap) + allocsc083cf09.Add(memc083cf09) var csType_allocs *cgoAllocMap - ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75a079b1.Borrow(csType_allocs) + refc083cf09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc083cf09.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75a079b1.Borrow(cpNext_allocs) + refc083cf09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc083cf09.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs75a079b1.Borrow(cmemory_allocs) + var cshaderSMCount_allocs *cgoAllocMap + refc083cf09.shaderSMCount, cshaderSMCount_allocs = (C.uint32_t)(x.ShaderSMCount), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderSMCount_allocs) - var chandleType_allocs *cgoAllocMap - ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs75a079b1.Borrow(chandleType_allocs) + var cshaderWarpsPerSM_allocs *cgoAllocMap + refc083cf09.shaderWarpsPerSM, cshaderWarpsPerSM_allocs = (C.uint32_t)(x.ShaderWarpsPerSM), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderWarpsPerSM_allocs) - x.ref75a079b1 = ref75a079b1 - x.allocs75a079b1 = allocs75a079b1 - return ref75a079b1, allocs75a079b1 + 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 MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { - if x.ref75a079b1 != nil { - return *x.ref75a079b1, nil +func (x PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { + if x.refc083cf09 != nil { + return *x.refc083cf09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22112,103 +47449,91 @@ 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 *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Deref() { + if x.refc083cf09 == 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.refc083cf09.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc083cf09.pNext)) + x.ShaderSMCount = (uint32)(x.refc083cf09.shaderSMCount) + x.ShaderWarpsPerSM = (uint32)(x.refc083cf09.shaderWarpsPerSM) } -// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR in C. +// allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) +const sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { if x == nil { return nil } - return x.refbc2f829a + 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 *ImportSemaphoreFdInfo) Free() { - if x != nil && x.allocsbc2f829a != nil { - x.allocsbc2f829a.(*cgoAllocMap).Free() - x.refbc2f829a = nil +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Free() { + if x != nil && x.allocs1965c1d != nil { + x.allocs1965c1d.(*cgoAllocMap).Free() + x.ref1965c1d = nil } } -// NewImportSemaphoreFdInfoRef 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 NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { +func NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsFeaturesNV { if ref == nil { return nil } - obj := new(ImportSemaphoreFdInfo) - obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(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 *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc2f829a != nil { - return x.refbc2f829a, nil + } else if x.ref1965c1d != nil { + return x.ref1965c1d, nil } - membc2f829a := allocImportSemaphoreFdInfoMemory(1) - refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) - allocsbc2f829a := new(cgoAllocMap) - allocsbc2f829a.Add(membc2f829a) + mem1965c1d := allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(1) + ref1965c1d := (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(mem1965c1d) + allocs1965c1d := new(cgoAllocMap) + allocs1965c1d.Add(mem1965c1d) var csType_allocs *cgoAllocMap - refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc2f829a.Borrow(csType_allocs) + ref1965c1d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1965c1d.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) + ref1965c1d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1965c1d.Borrow(cpNext_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) + var cshaderSMBuiltins_allocs *cgoAllocMap + ref1965c1d.shaderSMBuiltins, cshaderSMBuiltins_allocs = (C.VkBool32)(x.ShaderSMBuiltins), cgoAllocsUnknown + allocs1965c1d.Borrow(cshaderSMBuiltins_allocs) - x.refbc2f829a = refbc2f829a - x.allocsbc2f829a = allocsbc2f829a - return refbc2f829a, allocsbc2f829a + 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 ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { - if x.refbc2f829a != nil { - return *x.refbc2f829a, nil +func (x PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { + if x.ref1965c1d != nil { + return *x.ref1965c1d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22216,97 +47541,90 @@ 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 *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Deref() { + if x.ref1965c1d == 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.ref1965c1d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1965c1d.pNext)) + x.ShaderSMBuiltins = (Bool32)(x.ref1965c1d.shaderSMBuiltins) } -// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR in C. +// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT 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()) +func allocDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSemaphoreGetFdInfoValue = unsafe.Sizeof([1]C.VkSemaphoreGetFdInfoKHR{}) +const sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SemaphoreGetFdInfo) Ref() *C.VkSemaphoreGetFdInfoKHR { +func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.refd9bd07cf + 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 *SemaphoreGetFdInfo) Free() { - if x != nil && x.allocsd9bd07cf != nil { - x.allocsd9bd07cf.(*cgoAllocMap).Free() - x.refd9bd07cf = nil +func (x *DrmFormatModifierProperties) Free() { + if x != nil && x.allocs7dcb7f85 != nil { + x.allocs7dcb7f85.(*cgoAllocMap).Free() + x.ref7dcb7f85 = nil } } -// NewSemaphoreGetFdInfoRef 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 NewSemaphoreGetFdInfoRef(ref unsafe.Pointer) *SemaphoreGetFdInfo { +func NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { if ref == nil { return nil } - obj := new(SemaphoreGetFdInfo) - obj.refd9bd07cf = (*C.VkSemaphoreGetFdInfoKHR)(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 *SemaphoreGetFdInfo) PassRef() (*C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { +func (x *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9bd07cf != nil { - return x.refd9bd07cf, nil + } else if x.ref7dcb7f85 != nil { + return x.ref7dcb7f85, nil } - memd9bd07cf := allocSemaphoreGetFdInfoMemory(1) - refd9bd07cf := (*C.VkSemaphoreGetFdInfoKHR)(memd9bd07cf) - allocsd9bd07cf := new(cgoAllocMap) - allocsd9bd07cf.Add(memd9bd07cf) - - var csType_allocs *cgoAllocMap - refd9bd07cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csType_allocs) + mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) + ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) + allocs7dcb7f85 := new(cgoAllocMap) + allocs7dcb7f85.Add(mem7dcb7f85) - var cpNext_allocs *cgoAllocMap - refd9bd07cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(cpNext_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) - var csemaphore_allocs *cgoAllocMap - refd9bd07cf.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csemaphore_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) - var chandleType_allocs *cgoAllocMap - refd9bd07cf.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(chandleType_allocs) + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refd9bd07cf = refd9bd07cf - x.allocsd9bd07cf = allocsd9bd07cf - return refd9bd07cf, allocsd9bd07cf + 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 SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { - if x.refd9bd07cf != nil { - return *x.refd9bd07cf, nil +func (x DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref7dcb7f85 != nil { + return *x.ref7dcb7f85, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22314,91 +47632,132 @@ 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 *DrmFormatModifierProperties) Deref() { + if x.ref7dcb7f85 == 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.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) } -// allocPhysicalDevicePushDescriptorPropertiesMemory allocates memory for type C.VkPhysicalDevicePushDescriptorPropertiesKHR in C. +// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDrmFormatModifierPropertiesListMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesListValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevicePushDescriptorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePushDescriptorPropertiesKHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePushDescriptorProperties) Ref() *C.VkPhysicalDevicePushDescriptorPropertiesKHR { +func (x *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { if x == nil { return nil } - return x.ref8c58a1a5 + 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 *PhysicalDevicePushDescriptorProperties) Free() { - if x != nil && x.allocs8c58a1a5 != nil { - x.allocs8c58a1a5.(*cgoAllocMap).Free() - x.ref8c58a1a5 = nil +func (x *DrmFormatModifierPropertiesList) Free() { + if x != nil && x.allocs7e3ede2 != nil { + x.allocs7e3ede2.(*cgoAllocMap).Free() + x.ref7e3ede2 = nil } } -// NewPhysicalDevicePushDescriptorPropertiesRef 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 NewPhysicalDevicePushDescriptorPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePushDescriptorProperties { +func NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { if ref == nil { return nil } - obj := new(PhysicalDevicePushDescriptorProperties) - obj.ref8c58a1a5 = (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(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 *PhysicalDevicePushDescriptorProperties) PassRef() (*C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8c58a1a5 != nil { - return x.ref8c58a1a5, nil + } else if x.ref7e3ede2 != nil { + return x.ref7e3ede2, nil } - mem8c58a1a5 := allocPhysicalDevicePushDescriptorPropertiesMemory(1) - ref8c58a1a5 := (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(mem8c58a1a5) - allocs8c58a1a5 := new(cgoAllocMap) - allocs8c58a1a5.Add(mem8c58a1a5) + mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) + ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) + allocs7e3ede2 := new(cgoAllocMap) + allocs7e3ede2.Add(mem7e3ede2) var csType_allocs *cgoAllocMap - ref8c58a1a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8c58a1a5.Borrow(csType_allocs) + ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7e3ede2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8c58a1a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cpNext_allocs) + ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7e3ede2.Borrow(cpNext_allocs) - var cmaxPushDescriptors_allocs *cgoAllocMap - ref8c58a1a5.maxPushDescriptors, cmaxPushDescriptors_allocs = (C.uint32_t)(x.MaxPushDescriptors), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cmaxPushDescriptors_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) - x.ref8c58a1a5 = ref8c58a1a5 - x.allocs8c58a1a5 = allocs8c58a1a5 - return ref8c58a1a5, allocs8c58a1a5 + var cpDrmFormatModifierProperties_allocs *cgoAllocMap + ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) + allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) + + 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 PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { - if x.ref8c58a1a5 != nil { - return *x.ref8c58a1a5, nil +func (x DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { + if x.ref7e3ede2 != nil { + return *x.ref7e3ede2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22406,90 +47765,103 @@ 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 *DrmFormatModifierPropertiesList) Deref() { + if x.ref7e3ede2 == 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.ref7e3ede2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7e3ede2.pNext)) + x.DrmFormatModifierCount = (uint32)(x.ref7e3ede2.drmFormatModifierCount) + packSDrmFormatModifierProperties(x.PDrmFormatModifierProperties, x.ref7e3ede2.pDrmFormatModifierProperties) } -// allocRectLayerMemory allocates memory for type C.VkRectLayerKHR in C. +// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceImageDrmFormatModifierInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRectLayerValue = unsafe.Sizeof([1]C.VkRectLayerKHR{}) +const sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RectLayer) Ref() *C.VkRectLayerKHR { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { if x == nil { return nil } - return x.refaf248476 + 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 *RectLayer) Free() { - if x != nil && x.allocsaf248476 != nil { - x.allocsaf248476.(*cgoAllocMap).Free() - x.refaf248476 = nil +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Free() { + if x != nil && x.allocsd7abef44 != nil { + x.allocsd7abef44.(*cgoAllocMap).Free() + x.refd7abef44 = nil } } -// NewRectLayerRef 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 NewRectLayerRef(ref unsafe.Pointer) *RectLayer { +func NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { if ref == nil { return nil } - obj := new(RectLayer) - obj.refaf248476 = (*C.VkRectLayerKHR)(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 *RectLayer) PassRef() (*C.VkRectLayerKHR, *cgoAllocMap) { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf248476 != nil { - return x.refaf248476, nil + } else if x.refd7abef44 != nil { + return x.refd7abef44, nil } - memaf248476 := allocRectLayerMemory(1) - refaf248476 := (*C.VkRectLayerKHR)(memaf248476) - allocsaf248476 := new(cgoAllocMap) - allocsaf248476.Add(memaf248476) + memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) + refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) + allocsd7abef44 := new(cgoAllocMap) + allocsd7abef44.Add(memd7abef44) - var coffset_allocs *cgoAllocMap - refaf248476.offset, coffset_allocs = x.Offset.PassValue() - allocsaf248476.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd7abef44.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - refaf248476.extent, cextent_allocs = x.Extent.PassValue() - allocsaf248476.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd7abef44.Borrow(cpNext_allocs) - var clayer_allocs *cgoAllocMap - refaf248476.layer, clayer_allocs = (C.uint32_t)(x.Layer), cgoAllocsUnknown - allocsaf248476.Borrow(clayer_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocsd7abef44.Borrow(cdrmFormatModifier_allocs) - x.refaf248476 = refaf248476 - x.allocsaf248476 = allocsaf248476 - return refaf248476, allocsaf248476 + var csharingMode_allocs *cgoAllocMap + refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown + allocsd7abef44.Borrow(csharingMode_allocs) + + var cqueueFamilyIndexCount_allocs *cgoAllocMap + refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) + + var cpQueueFamilyIndices_allocs *cgoAllocMap + refd7abef44.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + allocsd7abef44.Borrow(cpQueueFamilyIndices_allocs) + + 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 RectLayer) PassValue() (C.VkRectLayerKHR, *cgoAllocMap) { - if x.refaf248476 != nil { - return *x.refaf248476, nil +func (x PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { + if x.refd7abef44 != nil { + return *x.refd7abef44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22497,124 +47869,101 @@ func (x RectLayer) PassValue() (C.VkRectLayerKHR, *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 *RectLayer) Deref() { - if x.refaf248476 == nil { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { + if x.refd7abef44 == nil { return } - x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.refaf248476.offset)) - x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.refaf248476.extent)) - x.Layer = (uint32)(x.refaf248476.layer) + 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 = ? + } -// allocPresentRegionMemory allocates memory for type C.VkPresentRegionKHR in C. +// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT 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()) +func allocImageDrmFormatModifierListCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierListCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkRectLayerKHR)(h.Data) - return -} - -// 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)) - } -} +const sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentRegion) Ref() *C.VkPresentRegionKHR { +func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { if x == nil { return nil } - return x.refbbc0d1b9 + return x.ref544538ab } // Free invokes alloc map'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 *ImageDrmFormatModifierListCreateInfo) Free() { + if x != nil && x.allocs544538ab != nil { + x.allocs544538ab.(*cgoAllocMap).Free() + x.ref544538ab = nil } } -// NewPresentRegionRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPresentRegionRef(ref unsafe.Pointer) *PresentRegion { +func NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { if ref == nil { return nil } - obj := new(PresentRegion) - obj.refbbc0d1b9 = (*C.VkPresentRegionKHR)(unsafe.Pointer(ref)) + 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 *PresentRegion) PassRef() (*C.VkPresentRegionKHR, *cgoAllocMap) { +func (x *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbbc0d1b9 != nil { - return x.refbbc0d1b9, nil + } else if x.ref544538ab != nil { + return x.ref544538ab, nil } - membbc0d1b9 := allocPresentRegionMemory(1) - refbbc0d1b9 := (*C.VkPresentRegionKHR)(membbc0d1b9) - allocsbbc0d1b9 := new(cgoAllocMap) - allocsbbc0d1b9.Add(membbc0d1b9) + mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) + ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) + allocs544538ab := new(cgoAllocMap) + allocs544538ab.Add(mem544538ab) - var crectangleCount_allocs *cgoAllocMap - refbbc0d1b9.rectangleCount, crectangleCount_allocs = (C.uint32_t)(x.RectangleCount), cgoAllocsUnknown - allocsbbc0d1b9.Borrow(crectangleCount_allocs) + var csType_allocs *cgoAllocMap + ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs544538ab.Borrow(csType_allocs) - var cpRectangles_allocs *cgoAllocMap - refbbc0d1b9.pRectangles, cpRectangles_allocs = unpackSRectLayer(x.PRectangles) - allocsbbc0d1b9.Borrow(cpRectangles_allocs) + var cpNext_allocs *cgoAllocMap + ref544538ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs544538ab.Borrow(cpNext_allocs) - x.refbbc0d1b9 = refbbc0d1b9 - x.allocsbbc0d1b9 = allocsbbc0d1b9 - return refbbc0d1b9, allocsbbc0d1b9 + 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 = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers))) + allocs544538ab.Borrow(cpDrmFormatModifiers_allocs) + + x.ref544538ab = ref544538ab + x.allocs544538ab = allocs544538ab + return ref544538ab, allocs544538ab } // 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 ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { + if x.ref544538ab != nil { + return *x.ref544538ab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22622,131 +47971,141 @@ 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 *ImageDrmFormatModifierListCreateInfo) Deref() { + if x.ref544538ab == nil { return } - x.RectangleCount = (uint32)(x.refbbc0d1b9.rectangleCount) - packSRectLayer(x.PRectangles, x.refbbc0d1b9.pRectangles) + 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 = ? + } -// allocPresentRegionsMemory allocates memory for type C.VkPresentRegionsKHR in C. +// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocImageDrmFormatModifierExplicitCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierExplicitCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPresentRegionsValue = unsafe.Sizeof([1]C.VkPresentRegionsKHR{}) +const sizeOfImageDrmFormatModifierExplicitCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierExplicitCreateInfoEXT{}) -// unpackSPresentRegion transforms a sliced Go data structure into plain C format. -func unpackSPresentRegion(x []PresentRegion) (unpacked *C.VkPresentRegionKHR, allocs *cgoAllocMap) { +// 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.VkPresentRegionKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocPresentRegionMemory(len0) + mem0 := allocSubresourceLayoutMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkPresentRegionKHR)(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.VkPresentRegionKHR)(h.Data) + unpacked = (*C.VkSubresourceLayout)(h.Data) return } -// packSPresentRegion reads sliced Go data structure out from plain C format. -func packSPresentRegion(v []PresentRegion, ptr0 *C.VkPresentRegionKHR) { +// 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 / sizeOfPresentRegionValue]C.VkPresentRegionKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPresentRegionRef(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 *PresentRegions) Ref() *C.VkPresentRegionsKHR { +func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { if x == nil { return nil } - return x.ref62958060 + 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 *PresentRegions) Free() { - if x != nil && x.allocs62958060 != nil { - x.allocs62958060.(*cgoAllocMap).Free() - x.ref62958060 = nil +func (x *ImageDrmFormatModifierExplicitCreateInfo) Free() { + if x != nil && x.allocs8fb45ca9 != nil { + x.allocs8fb45ca9.(*cgoAllocMap).Free() + x.ref8fb45ca9 = nil } } -// NewPresentRegionsRef 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 NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { +func NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { if ref == nil { return nil } - obj := new(PresentRegions) - obj.ref62958060 = (*C.VkPresentRegionsKHR)(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 *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { +func (x *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref62958060 != nil { - return x.ref62958060, nil + } else if x.ref8fb45ca9 != nil { + return x.ref8fb45ca9, nil } - mem62958060 := allocPresentRegionsMemory(1) - ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) - allocs62958060 := new(cgoAllocMap) - allocs62958060.Add(mem62958060) + mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) + ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) + allocs8fb45ca9 := new(cgoAllocMap) + allocs8fb45ca9.Add(mem8fb45ca9) var csType_allocs *cgoAllocMap - ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs62958060.Borrow(csType_allocs) + ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8fb45ca9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs62958060.Borrow(cpNext_allocs) + ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs62958060.Borrow(cswapchainCount_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) - var cpRegions_allocs *cgoAllocMap - ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) - allocs62958060.Borrow(cpRegions_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) - x.ref62958060 = ref62958060 - x.allocs62958060 = allocs62958060 - return ref62958060, allocs62958060 + var cpPlaneLayouts_allocs *cgoAllocMap + ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) + allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) + + 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 PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { - if x.ref62958060 != nil { - return *x.ref62958060, nil +func (x ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { + if x.ref8fb45ca9 != nil { + return *x.ref8fb45ca9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22754,123 +48113,92 @@ 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 *ImageDrmFormatModifierExplicitCreateInfo) Deref() { + if x.ref8fb45ca9 == 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.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) } -// allocAttachmentDescription2Memory allocates memory for type C.VkAttachmentDescription2KHR in C. +// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT 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()) +func allocImageDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAttachmentDescription2Value = unsafe.Sizeof([1]C.VkAttachmentDescription2KHR{}) +const sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentDescription2) Ref() *C.VkAttachmentDescription2KHR { +func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.refe0fc3d48 + 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 *AttachmentDescription2) Free() { - if x != nil && x.allocse0fc3d48 != nil { - x.allocse0fc3d48.(*cgoAllocMap).Free() - x.refe0fc3d48 = nil +func (x *ImageDrmFormatModifierProperties) Free() { + if x != nil && x.allocs86a0f149 != nil { + x.allocs86a0f149.(*cgoAllocMap).Free() + x.ref86a0f149 = nil } } -// NewAttachmentDescription2Ref 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 NewAttachmentDescription2Ref(ref unsafe.Pointer) *AttachmentDescription2 { +func NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { if ref == nil { return nil } - obj := new(AttachmentDescription2) - obj.refe0fc3d48 = (*C.VkAttachmentDescription2KHR)(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 *AttachmentDescription2) PassRef() (*C.VkAttachmentDescription2KHR, *cgoAllocMap) { +func (x *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe0fc3d48 != nil { - return x.refe0fc3d48, nil + } else if x.ref86a0f149 != nil { + return x.ref86a0f149, nil } - meme0fc3d48 := allocAttachmentDescription2Memory(1) - refe0fc3d48 := (*C.VkAttachmentDescription2KHR)(meme0fc3d48) - allocse0fc3d48 := new(cgoAllocMap) - allocse0fc3d48.Add(meme0fc3d48) + mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) + ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) + allocs86a0f149 := new(cgoAllocMap) + allocs86a0f149.Add(mem86a0f149) var csType_allocs *cgoAllocMap - refe0fc3d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse0fc3d48.Borrow(csType_allocs) + ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86a0f149.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) - - 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) + ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86a0f149.Borrow(cpNext_allocs) - var cfinalLayout_allocs *cgoAllocMap - refe0fc3d48.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown - allocse0fc3d48.Borrow(cfinalLayout_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs86a0f149.Borrow(cdrmFormatModifier_allocs) - x.refe0fc3d48 = refe0fc3d48 - x.allocse0fc3d48 = allocse0fc3d48 - return refe0fc3d48, allocse0fc3d48 + 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 AttachmentDescription2) PassValue() (C.VkAttachmentDescription2KHR, *cgoAllocMap) { - if x.refe0fc3d48 != nil { - return *x.refe0fc3d48, nil +func (x ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref86a0f149 != nil { + return *x.ref86a0f149, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22878,106 +48206,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 *ImageDrmFormatModifierProperties) Deref() { + if x.ref86a0f149 == 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.ref86a0f149.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86a0f149.pNext)) + x.DrmFormatModifier = (uint64)(x.ref86a0f149.drmFormatModifier) } -// allocAttachmentReference2Memory allocates memory for type C.VkAttachmentReference2KHR in C. +// allocDrmFormatModifierProperties2Memory allocates memory for type C.VkDrmFormatModifierProperties2EXT 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()) +func allocDrmFormatModifierProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierProperties2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAttachmentReference2Value = unsafe.Sizeof([1]C.VkAttachmentReference2KHR{}) +const sizeOfDrmFormatModifierProperties2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierProperties2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentReference2) Ref() *C.VkAttachmentReference2KHR { +func (x *DrmFormatModifierProperties2) Ref() *C.VkDrmFormatModifierProperties2EXT { if x == nil { return nil } - return x.refa31684a1 + 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 *AttachmentReference2) Free() { - if x != nil && x.allocsa31684a1 != nil { - x.allocsa31684a1.(*cgoAllocMap).Free() - x.refa31684a1 = nil +func (x *DrmFormatModifierProperties2) Free() { + if x != nil && x.allocs6d0821ba != nil { + x.allocs6d0821ba.(*cgoAllocMap).Free() + x.ref6d0821ba = nil } } -// NewAttachmentReference2Ref 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 NewAttachmentReference2Ref(ref unsafe.Pointer) *AttachmentReference2 { +func NewDrmFormatModifierProperties2Ref(ref unsafe.Pointer) *DrmFormatModifierProperties2 { if ref == nil { return nil } - obj := new(AttachmentReference2) - obj.refa31684a1 = (*C.VkAttachmentReference2KHR)(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 *AttachmentReference2) PassRef() (*C.VkAttachmentReference2KHR, *cgoAllocMap) { +func (x *DrmFormatModifierProperties2) PassRef() (*C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa31684a1 != nil { - return x.refa31684a1, nil + } else if x.ref6d0821ba != nil { + return x.ref6d0821ba, 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) + mem6d0821ba := allocDrmFormatModifierProperties2Memory(1) + ref6d0821ba := (*C.VkDrmFormatModifierProperties2EXT)(mem6d0821ba) + allocs6d0821ba := new(cgoAllocMap) + allocs6d0821ba.Add(mem6d0821ba) - var cattachment_allocs *cgoAllocMap - refa31684a1.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown - allocsa31684a1.Borrow(cattachment_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifier_allocs) - var clayout_allocs *cgoAllocMap - refa31684a1.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown - allocsa31684a1.Borrow(clayout_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierPlaneCount_allocs) - var caspectMask_allocs *cgoAllocMap - refa31684a1.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocsa31684a1.Borrow(caspectMask_allocs) + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refa31684a1 = refa31684a1 - x.allocsa31684a1 = allocsa31684a1 - return refa31684a1, allocsa31684a1 + 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 AttachmentReference2) PassValue() (C.VkAttachmentReference2KHR, *cgoAllocMap) { - if x.refa31684a1 != nil { - return *x.refa31684a1, nil +func (x DrmFormatModifierProperties2) PassValue() (C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { + if x.ref6d0821ba != nil { + return *x.ref6d0821ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22985,170 +48297,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 *DrmFormatModifierProperties2) Deref() { + if x.ref6d0821ba == 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.ref6d0821ba.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref6d0821ba.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags2)(x.ref6d0821ba.drmFormatModifierTilingFeatures) } -// allocSubpassDescription2Memory allocates memory for type C.VkSubpassDescription2KHR in C. +// allocDrmFormatModifierPropertiesList2Memory allocates memory for type C.VkDrmFormatModifierPropertiesList2EXT 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()) +func allocDrmFormatModifierPropertiesList2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesList2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassDescription2Value = unsafe.Sizeof([1]C.VkSubpassDescription2KHR{}) +const sizeOfDrmFormatModifierPropertiesList2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesList2EXT{}) -// unpackSAttachmentReference2 transforms a sliced Go data structure into plain C format. -func unpackSAttachmentReference2(x []AttachmentReference2) (unpacked *C.VkAttachmentReference2KHR, allocs *cgoAllocMap) { +// 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.VkAttachmentReference2KHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocAttachmentReference2Memory(len0) + mem0 := allocDrmFormatModifierProperties2Memory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkAttachmentReference2KHR)(unsafe.Pointer(h0)) + 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.VkAttachmentReference2KHR)(h.Data) + unpacked = (*C.VkDrmFormatModifierProperties2EXT)(h.Data) return } -// packSAttachmentReference2 reads sliced Go data structure out from plain C format. -func packSAttachmentReference2(v []AttachmentReference2, ptr0 *C.VkAttachmentReference2KHR) { +// 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 / sizeOfAttachmentReference2Value]C.VkAttachmentReference2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentReference2Ref(unsafe.Pointer(&ptr1)) + 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 *SubpassDescription2) Ref() *C.VkSubpassDescription2KHR { +func (x *DrmFormatModifierPropertiesList2) Ref() *C.VkDrmFormatModifierPropertiesList2EXT { if x == nil { return nil } - return x.ref89a293f3 + 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 *SubpassDescription2) Free() { - if x != nil && x.allocs89a293f3 != nil { - x.allocs89a293f3.(*cgoAllocMap).Free() - x.ref89a293f3 = nil +func (x *DrmFormatModifierPropertiesList2) Free() { + if x != nil && x.allocsbea4fdd3 != nil { + x.allocsbea4fdd3.(*cgoAllocMap).Free() + x.refbea4fdd3 = nil } } -// NewSubpassDescription2Ref 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 NewSubpassDescription2Ref(ref unsafe.Pointer) *SubpassDescription2 { +func NewDrmFormatModifierPropertiesList2Ref(ref unsafe.Pointer) *DrmFormatModifierPropertiesList2 { if ref == nil { return nil } - obj := new(SubpassDescription2) - obj.ref89a293f3 = (*C.VkSubpassDescription2KHR)(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 *SubpassDescription2) PassRef() (*C.VkSubpassDescription2KHR, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList2) PassRef() (*C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89a293f3 != nil { - return x.ref89a293f3, nil + } else if x.refbea4fdd3 != nil { + return x.refbea4fdd3, nil } - mem89a293f3 := allocSubpassDescription2Memory(1) - ref89a293f3 := (*C.VkSubpassDescription2KHR)(mem89a293f3) - allocs89a293f3 := new(cgoAllocMap) - allocs89a293f3.Add(mem89a293f3) + membea4fdd3 := allocDrmFormatModifierPropertiesList2Memory(1) + refbea4fdd3 := (*C.VkDrmFormatModifierPropertiesList2EXT)(membea4fdd3) + allocsbea4fdd3 := new(cgoAllocMap) + allocsbea4fdd3.Add(membea4fdd3) var csType_allocs *cgoAllocMap - ref89a293f3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs89a293f3.Borrow(csType_allocs) + refbea4fdd3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbea4fdd3.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) + refbea4fdd3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbea4fdd3.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 + refbea4fdd3.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocsbea4fdd3.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 + refbea4fdd3.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties2(x.PDrmFormatModifierProperties) + allocsbea4fdd3.Borrow(cpDrmFormatModifierProperties_allocs) - x.ref89a293f3 = ref89a293f3 - x.allocs89a293f3 = allocs89a293f3 - return ref89a293f3, allocs89a293f3 + 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 SubpassDescription2) PassValue() (C.VkSubpassDescription2KHR, *cgoAllocMap) { - if x.ref89a293f3 != nil { - return *x.ref89a293f3, nil +func (x DrmFormatModifierPropertiesList2) PassValue() (C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { + if x.refbea4fdd3 != nil { + return *x.refbea4fdd3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23156,132 +48430,99 @@ 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 *DrmFormatModifierPropertiesList2) Deref() { + if x.refbea4fdd3 == nil { + return + } + 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) } -// allocSubpassDependency2Memory allocates memory for type C.VkSubpassDependency2KHR in C. +// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT 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()) +func allocValidationCacheCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationCacheCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassDependency2Value = unsafe.Sizeof([1]C.VkSubpassDependency2KHR{}) +const sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDependency2) Ref() *C.VkSubpassDependency2KHR { +func (x *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.ref985e0998 + 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 *SubpassDependency2) Free() { - if x != nil && x.allocs985e0998 != nil { - x.allocs985e0998.(*cgoAllocMap).Free() - x.ref985e0998 = nil +func (x *ValidationCacheCreateInfo) Free() { + if x != nil && x.allocs3d8ac8aa != nil { + x.allocs3d8ac8aa.(*cgoAllocMap).Free() + x.ref3d8ac8aa = nil } } -// NewSubpassDependency2Ref 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 NewSubpassDependency2Ref(ref unsafe.Pointer) *SubpassDependency2 { +func NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(SubpassDependency2) - obj.ref985e0998 = (*C.VkSubpassDependency2KHR)(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 *SubpassDependency2) PassRef() (*C.VkSubpassDependency2KHR, *cgoAllocMap) { +func (x *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref985e0998 != nil { - return x.ref985e0998, nil + } else if x.ref3d8ac8aa != nil { + return x.ref3d8ac8aa, nil } - mem985e0998 := allocSubpassDependency2Memory(1) - ref985e0998 := (*C.VkSubpassDependency2KHR)(mem985e0998) - allocs985e0998 := new(cgoAllocMap) - allocs985e0998.Add(mem985e0998) + mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) + ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) + allocs3d8ac8aa := new(cgoAllocMap) + allocs3d8ac8aa.Add(mem3d8ac8aa) var csType_allocs *cgoAllocMap - ref985e0998.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs985e0998.Borrow(csType_allocs) + ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3d8ac8aa.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) - - var csrcAccessMask_allocs *cgoAllocMap - ref985e0998.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocs985e0998.Borrow(csrcAccessMask_allocs) + ref3d8ac8aa.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cpNext_allocs) - var cdstAccessMask_allocs *cgoAllocMap - ref985e0998.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocs985e0998.Borrow(cdstAccessMask_allocs) + var cflags_allocs *cgoAllocMap + ref3d8ac8aa.flags, cflags_allocs = (C.VkValidationCacheCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cflags_allocs) - var cdependencyFlags_allocs *cgoAllocMap - ref985e0998.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown - allocs985e0998.Borrow(cdependencyFlags_allocs) + var cinitialDataSize_allocs *cgoAllocMap + ref3d8ac8aa.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cinitialDataSize_allocs) - var cviewOffset_allocs *cgoAllocMap - ref985e0998.viewOffset, cviewOffset_allocs = (C.int32_t)(x.ViewOffset), cgoAllocsUnknown - allocs985e0998.Borrow(cviewOffset_allocs) + var cpInitialData_allocs *cgoAllocMap + ref3d8ac8aa.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cpInitialData_allocs) - x.ref985e0998 = ref985e0998 - x.allocs985e0998 = allocs985e0998 - return ref985e0998, allocs985e0998 + 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 SubpassDependency2) PassValue() (C.VkSubpassDependency2KHR, *cgoAllocMap) { - if x.ref985e0998 != nil { - return *x.ref985e0998, nil +func (x ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref3d8ac8aa != nil { + return *x.ref3d8ac8aa, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23289,243 +48530,92 @@ 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 *ValidationCacheCreateInfo) Deref() { + if x.ref3d8ac8aa == 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.ref3d8ac8aa.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pNext)) + x.Flags = (ValidationCacheCreateFlags)(x.ref3d8ac8aa.flags) + x.InitialDataSize = (uint32)(x.ref3d8ac8aa.initialDataSize) + x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pInitialData)) } -// allocRenderPassCreateInfo2Memory allocates memory for type C.VkRenderPassCreateInfo2KHR in C. +// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT 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()) +func allocShaderModuleValidationCacheCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderModuleValidationCacheCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRenderPassCreateInfo2Value = unsafe.Sizeof([1]C.VkRenderPassCreateInfo2KHR{}) - -// unpackSAttachmentDescription2 transforms a sliced Go data structure into plain C format. -func unpackSAttachmentDescription2(x []AttachmentDescription2) (unpacked *C.VkAttachmentDescription2KHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription2KHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocAttachmentDescription2Memory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkAttachmentDescription2KHR)(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.VkAttachmentDescription2KHR)(h.Data) - return -} - -// 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 - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription2KHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSubpassDescription2Memory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSubpassDescription2KHR)(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.VkSubpassDescription2KHR)(h.Data) - return -} - -// unpackSSubpassDependency2 transforms a sliced Go data structure into plain C format. -func unpackSSubpassDependency2(x []SubpassDependency2) (unpacked *C.VkSubpassDependency2KHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency2KHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSubpassDependency2Memory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSubpassDependency2KHR)(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) - 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) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassDependency2Value]C.VkSubpassDependency2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassDependency2Ref(unsafe.Pointer(&ptr1)) - } -} +const sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassCreateInfo2) Ref() *C.VkRenderPassCreateInfo2KHR { +func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.ref1d4774de + 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 *RenderPassCreateInfo2) Free() { - if x != nil && x.allocs1d4774de != nil { - x.allocs1d4774de.(*cgoAllocMap).Free() - x.ref1d4774de = nil +func (x *ShaderModuleValidationCacheCreateInfo) Free() { + if x != nil && x.allocs37065f24 != nil { + x.allocs37065f24.(*cgoAllocMap).Free() + x.ref37065f24 = nil } } -// NewRenderPassCreateInfo2Ref 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 NewRenderPassCreateInfo2Ref(ref unsafe.Pointer) *RenderPassCreateInfo2 { +func NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(RenderPassCreateInfo2) - obj.ref1d4774de = (*C.VkRenderPassCreateInfo2KHR)(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 *RenderPassCreateInfo2) PassRef() (*C.VkRenderPassCreateInfo2KHR, *cgoAllocMap) { +func (x *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d4774de != nil { - return x.ref1d4774de, nil + } else if x.ref37065f24 != nil { + return x.ref37065f24, nil } - mem1d4774de := allocRenderPassCreateInfo2Memory(1) - ref1d4774de := (*C.VkRenderPassCreateInfo2KHR)(mem1d4774de) - allocs1d4774de := new(cgoAllocMap) - allocs1d4774de.Add(mem1d4774de) + mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) + ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) + allocs37065f24 := new(cgoAllocMap) + allocs37065f24.Add(mem37065f24) var csType_allocs *cgoAllocMap - ref1d4774de.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d4774de.Borrow(csType_allocs) + ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs37065f24.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) - - var cpDependencies_allocs *cgoAllocMap - ref1d4774de.pDependencies, cpDependencies_allocs = unpackSSubpassDependency2(x.PDependencies) - allocs1d4774de.Borrow(cpDependencies_allocs) - - var ccorrelatedViewMaskCount_allocs *cgoAllocMap - ref1d4774de.correlatedViewMaskCount, ccorrelatedViewMaskCount_allocs = (C.uint32_t)(x.CorrelatedViewMaskCount), cgoAllocsUnknown - allocs1d4774de.Borrow(ccorrelatedViewMaskCount_allocs) + ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs37065f24.Borrow(cpNext_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 cvalidationCache_allocs *cgoAllocMap + ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown + allocs37065f24.Borrow(cvalidationCache_allocs) - x.ref1d4774de = ref1d4774de - x.allocs1d4774de = allocs1d4774de - return ref1d4774de, allocs1d4774de + 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 RenderPassCreateInfo2) PassValue() (C.VkRenderPassCreateInfo2KHR, *cgoAllocMap) { - if x.ref1d4774de != nil { - return *x.ref1d4774de, nil +func (x ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref37065f24 != nil { + return *x.ref37065f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23533,102 +48623,115 @@ 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 *ShaderModuleValidationCacheCreateInfo) Deref() { + if x.ref37065f24 == 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)) +} +// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV 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)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) + +// copyPShadingRatePaletteEntryNVBytes copies the data from Go slice as *C.VkShadingRatePaletteEntryNV. +func copyPShadingRatePaletteEntryNVBytes(slice *sliceHeader) (*C.VkShadingRatePaletteEntryNV, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfShadingRatePaletteEntryNVValue) * slice.Len, + Cap: int(sizeOfShadingRatePaletteEntryNVValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkShadingRatePaletteEntryNV)(mem0), allocs } -// allocSubpassBeginInfoMemory allocates memory for type C.VkSubpassBeginInfoKHR in C. +// allocShadingRatePaletteEntryNVMemory allocates memory for type C.VkShadingRatePaletteEntryNV 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()) +func allocShadingRatePaletteEntryNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShadingRatePaletteEntryNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassBeginInfoValue = unsafe.Sizeof([1]C.VkSubpassBeginInfoKHR{}) +const sizeOfShadingRatePaletteEntryNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteEntryNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassBeginInfo) Ref() *C.VkSubpassBeginInfoKHR { +func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { if x == nil { return nil } - return x.ref7b9f19b8 + 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 *SubpassBeginInfo) Free() { - if x != nil && x.allocs7b9f19b8 != nil { - x.allocs7b9f19b8.(*cgoAllocMap).Free() - x.ref7b9f19b8 = nil +func (x *ShadingRatePaletteNV) Free() { + if x != nil && x.allocsa5c4ae3a != nil { + x.allocsa5c4ae3a.(*cgoAllocMap).Free() + x.refa5c4ae3a = nil } } -// NewSubpassBeginInfoRef 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 NewSubpassBeginInfoRef(ref unsafe.Pointer) *SubpassBeginInfo { +func NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { if ref == nil { return nil } - obj := new(SubpassBeginInfo) - obj.ref7b9f19b8 = (*C.VkSubpassBeginInfoKHR)(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 *SubpassBeginInfo) PassRef() (*C.VkSubpassBeginInfoKHR, *cgoAllocMap) { +func (x *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7b9f19b8 != nil { - return x.ref7b9f19b8, nil + } else if x.refa5c4ae3a != nil { + return x.refa5c4ae3a, nil } - mem7b9f19b8 := allocSubpassBeginInfoMemory(1) - ref7b9f19b8 := (*C.VkSubpassBeginInfoKHR)(mem7b9f19b8) - allocs7b9f19b8 := new(cgoAllocMap) - allocs7b9f19b8.Add(mem7b9f19b8) - - var csType_allocs *cgoAllocMap - ref7b9f19b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7b9f19b8.Borrow(csType_allocs) + mema5c4ae3a := allocShadingRatePaletteNVMemory(1) + refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) + allocsa5c4ae3a := new(cgoAllocMap) + allocsa5c4ae3a.Add(mema5c4ae3a) - var cpNext_allocs *cgoAllocMap - ref7b9f19b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7b9f19b8.Borrow(cpNext_allocs) + var cshadingRatePaletteEntryCount_allocs *cgoAllocMap + refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown + allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) - var ccontents_allocs *cgoAllocMap - ref7b9f19b8.contents, ccontents_allocs = (C.VkSubpassContents)(x.Contents), cgoAllocsUnknown - allocs7b9f19b8.Borrow(ccontents_allocs) + var cpShadingRatePaletteEntries_allocs *cgoAllocMap + refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = copyPShadingRatePaletteEntryNVBytes((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries))) + allocsa5c4ae3a.Borrow(cpShadingRatePaletteEntries_allocs) - x.ref7b9f19b8 = ref7b9f19b8 - x.allocs7b9f19b8 = allocs7b9f19b8 - return ref7b9f19b8, allocs7b9f19b8 + 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 SubpassBeginInfo) PassValue() (C.VkSubpassBeginInfoKHR, *cgoAllocMap) { - if x.ref7b9f19b8 != nil { - return *x.ref7b9f19b8, nil +func (x ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { + if x.refa5c4ae3a != nil { + return *x.refa5c4ae3a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23636,86 +48739,139 @@ 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 *ShadingRatePaletteNV) Deref() { + if x.refa5c4ae3a == nil { return } - x.SType = (StructureType)(x.ref7b9f19b8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7b9f19b8.pNext)) - x.Contents = (SubpassContents)(x.ref7b9f19b8.contents) + x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) + hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) + hxf4a9453.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) + hxf4a9453.Cap = 0x7fffffff + // hxf4a9453.Len = ? + } -// allocSubpassEndInfoMemory allocates memory for type C.VkSubpassEndInfoKHR in C. +// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV 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()) +func allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassEndInfoValue = unsafe.Sizeof([1]C.VkSubpassEndInfoKHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *SubpassEndInfo) Ref() *C.VkSubpassEndInfoKHR { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { if x == nil { return nil } - return x.refb755d027 + 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 *SubpassEndInfo) Free() { - if x != nil && x.allocsb755d027 != nil { - x.allocsb755d027.(*cgoAllocMap).Free() - x.refb755d027 = nil +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { + if x != nil && x.allocs6f2ec732 != nil { + x.allocs6f2ec732.(*cgoAllocMap).Free() + x.ref6f2ec732 = nil } } -// NewSubpassEndInfoRef 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 NewSubpassEndInfoRef(ref unsafe.Pointer) *SubpassEndInfo { +func NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { if ref == nil { return nil } - obj := new(SubpassEndInfo) - obj.refb755d027 = (*C.VkSubpassEndInfoKHR)(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 *SubpassEndInfo) PassRef() (*C.VkSubpassEndInfoKHR, *cgoAllocMap) { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb755d027 != nil { - return x.refb755d027, nil + } else if x.ref6f2ec732 != nil { + return x.ref6f2ec732, nil } - memb755d027 := allocSubpassEndInfoMemory(1) - refb755d027 := (*C.VkSubpassEndInfoKHR)(memb755d027) - allocsb755d027 := new(cgoAllocMap) - allocsb755d027.Add(memb755d027) + mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) + ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) + allocs6f2ec732 := new(cgoAllocMap) + allocs6f2ec732.Add(mem6f2ec732) var csType_allocs *cgoAllocMap - refb755d027.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb755d027.Borrow(csType_allocs) + ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6f2ec732.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb755d027.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb755d027.Borrow(cpNext_allocs) + ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6f2ec732.Borrow(cpNext_allocs) + + var cshadingRateImageEnable_allocs *cgoAllocMap + ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown + allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) - x.refb755d027 = refb755d027 - x.allocsb755d027 = allocsb755d027 - return refb755d027, allocsb755d027 + 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 SubpassEndInfo) PassValue() (C.VkSubpassEndInfoKHR, *cgoAllocMap) { - if x.refb755d027 != nil { - return *x.refb755d027, nil +func (x PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { + if x.ref6f2ec732 != nil { + return *x.ref6f2ec732, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23723,89 +48879,96 @@ 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 *PipelineViewportShadingRateImageStateCreateInfoNV) Deref() { + if x.ref6f2ec732 == nil { return } - x.SType = (StructureType)(x.refb755d027.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb755d027.pNext)) + 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) } -// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR in C. +// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShadingRateImageFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) +const sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { if x == nil { return nil } - return x.ref3f98a814 + 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 *SharedPresentSurfaceCapabilities) Free() { - if x != nil && x.allocs3f98a814 != nil { - x.allocs3f98a814.(*cgoAllocMap).Free() - x.ref3f98a814 = nil +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Free() { + if x != nil && x.allocs199a921b != nil { + x.allocs199a921b.(*cgoAllocMap).Free() + x.ref199a921b = nil } } -// NewSharedPresentSurfaceCapabilitiesRef 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 NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { +func NewPhysicalDeviceShadingRateImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImageFeaturesNV { if ref == nil { return nil } - obj := new(SharedPresentSurfaceCapabilities) - obj.ref3f98a814 = (*C.VkSharedPresentSurfaceCapabilitiesKHR)(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 *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3f98a814 != nil { - return x.ref3f98a814, nil + } else if x.ref199a921b != nil { + return x.ref199a921b, nil } - mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) - ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) - allocs3f98a814 := new(cgoAllocMap) - allocs3f98a814.Add(mem3f98a814) + mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) + ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) + allocs199a921b := new(cgoAllocMap) + allocs199a921b.Add(mem199a921b) var csType_allocs *cgoAllocMap - ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3f98a814.Borrow(csType_allocs) + ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs199a921b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3f98a814.Borrow(cpNext_allocs) + ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs199a921b.Borrow(cpNext_allocs) - var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap - ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown - allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) + var cshadingRateImage_allocs *cgoAllocMap + ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown + allocs199a921b.Borrow(cshadingRateImage_allocs) - x.ref3f98a814 = ref3f98a814 - x.allocs3f98a814 = allocs3f98a814 - return ref3f98a814, allocs3f98a814 + 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 SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { - if x.ref3f98a814 != nil { - return *x.ref3f98a814, nil +func (x PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { + if x.ref199a921b != nil { + return *x.ref199a921b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23813,102 +48976,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 *PhysicalDeviceShadingRateImageFeaturesNV) Deref() { + if x.ref199a921b == 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.ref199a921b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref199a921b.pNext)) + x.ShadingRateImage = (Bool32)(x.ref199a921b.shadingRateImage) + x.ShadingRateCoarseSampleOrder = (Bool32)(x.ref199a921b.shadingRateCoarseSampleOrder) } -// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR in C. +// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShadingRateImagePropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) +const sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { if x == nil { return nil } - return x.ref86ebd28c + 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 *ImportFenceFdInfo) Free() { - if x != nil && x.allocs86ebd28c != nil { - x.allocs86ebd28c.(*cgoAllocMap).Free() - x.ref86ebd28c = nil +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Free() { + if x != nil && x.allocsea059f34 != nil { + x.allocsea059f34.(*cgoAllocMap).Free() + x.refea059f34 = nil } } -// NewImportFenceFdInfoRef 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 NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { +func NewPhysicalDeviceShadingRateImagePropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImagePropertiesNV { if ref == nil { return nil } - obj := new(ImportFenceFdInfo) - obj.ref86ebd28c = (*C.VkImportFenceFdInfoKHR)(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 *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86ebd28c != nil { - return x.ref86ebd28c, nil + } else if x.refea059f34 != nil { + return x.refea059f34, nil } - mem86ebd28c := allocImportFenceFdInfoMemory(1) - ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) - allocs86ebd28c := new(cgoAllocMap) - allocs86ebd28c.Add(mem86ebd28c) + memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) + refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) + allocsea059f34 := new(cgoAllocMap) + allocsea059f34.Add(memea059f34) var csType_allocs *cgoAllocMap - ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86ebd28c.Borrow(csType_allocs) + refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea059f34.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) + refea059f34.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea059f34.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown - allocs86ebd28c.Borrow(cflags_allocs) + var cshadingRateTexelSize_allocs *cgoAllocMap + refea059f34.shadingRateTexelSize, cshadingRateTexelSize_allocs = x.ShadingRateTexelSize.PassValue() + allocsea059f34.Borrow(cshadingRateTexelSize_allocs) - var chandleType_allocs *cgoAllocMap - ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs86ebd28c.Borrow(chandleType_allocs) + var cshadingRatePaletteSize_allocs *cgoAllocMap + refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) - var cfd_allocs *cgoAllocMap - ref86ebd28c.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs86ebd28c.Borrow(cfd_allocs) + var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap + refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) - x.ref86ebd28c = ref86ebd28c - x.allocs86ebd28c = allocs86ebd28c - return ref86ebd28c, allocs86ebd28c + 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 ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { - if x.ref86ebd28c != nil { - return *x.ref86ebd28c, nil +func (x PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { + if x.refea059f34 != nil { + return *x.refea059f34, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23916,97 +49076,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 *PhysicalDeviceShadingRateImagePropertiesNV) Deref() { + if x.refea059f34 == 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.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) } -// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR in C. +// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCoarseSampleLocationNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleLocationNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) +const sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { +func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { if x == nil { return nil } - return x.refc2668bc3 + 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 *FenceGetFdInfo) Free() { - if x != nil && x.allocsc2668bc3 != nil { - x.allocsc2668bc3.(*cgoAllocMap).Free() - x.refc2668bc3 = nil +func (x *CoarseSampleLocationNV) Free() { + if x != nil && x.allocs2f447beb != nil { + x.allocs2f447beb.(*cgoAllocMap).Free() + x.ref2f447beb = nil } } -// NewFenceGetFdInfoRef 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 NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { +func NewCoarseSampleLocationNVRef(ref unsafe.Pointer) *CoarseSampleLocationNV { if ref == nil { return nil } - obj := new(FenceGetFdInfo) - obj.refc2668bc3 = (*C.VkFenceGetFdInfoKHR)(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 *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { +func (x *CoarseSampleLocationNV) PassRef() (*C.VkCoarseSampleLocationNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc2668bc3 != nil { - return x.refc2668bc3, nil + } else if x.ref2f447beb != nil { + return x.ref2f447beb, nil } - memc2668bc3 := allocFenceGetFdInfoMemory(1) - refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) - allocsc2668bc3 := new(cgoAllocMap) - allocsc2668bc3.Add(memc2668bc3) - - var csType_allocs *cgoAllocMap - refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc2668bc3.Borrow(csType_allocs) + mem2f447beb := allocCoarseSampleLocationNVMemory(1) + ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) + allocs2f447beb := new(cgoAllocMap) + allocs2f447beb.Add(mem2f447beb) - var cpNext_allocs *cgoAllocMap - refc2668bc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc2668bc3.Borrow(cpNext_allocs) + var cpixelX_allocs *cgoAllocMap + ref2f447beb.pixelX, cpixelX_allocs = (C.uint32_t)(x.PixelX), cgoAllocsUnknown + allocs2f447beb.Borrow(cpixelX_allocs) - var cfence_allocs *cgoAllocMap - refc2668bc3.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown - allocsc2668bc3.Borrow(cfence_allocs) + var cpixelY_allocs *cgoAllocMap + ref2f447beb.pixelY, cpixelY_allocs = (C.uint32_t)(x.PixelY), cgoAllocsUnknown + allocs2f447beb.Borrow(cpixelY_allocs) - var chandleType_allocs *cgoAllocMap - refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsc2668bc3.Borrow(chandleType_allocs) + var csample_allocs *cgoAllocMap + ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown + allocs2f447beb.Borrow(csample_allocs) - x.refc2668bc3 = refc2668bc3 - x.allocsc2668bc3 = allocsc2668bc3 - return refc2668bc3, allocsc2668bc3 + 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 FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { - if x.refc2668bc3 != nil { - return *x.refc2668bc3, nil +func (x CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAllocMap) { + if x.ref2f447beb != nil { + return *x.ref2f447beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24014,91 +49169,132 @@ 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 *CoarseSampleLocationNV) Deref() { + if x.ref2f447beb == 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.PixelX = (uint32)(x.ref2f447beb.pixelX) + x.PixelY = (uint32)(x.ref2f447beb.pixelY) + x.Sample = (uint32)(x.ref2f447beb.sample) } -// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR in C. +// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCoarseSampleOrderCustomNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleOrderCustomNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { +func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { if x == nil { return nil } - return x.refd22370ae + 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 *PhysicalDeviceSurfaceInfo2) Free() { - if x != nil && x.allocsd22370ae != nil { - x.allocsd22370ae.(*cgoAllocMap).Free() - x.refd22370ae = nil +func (x *CoarseSampleOrderCustomNV) Free() { + if x != nil && x.allocs4524fa09 != nil { + x.allocs4524fa09.(*cgoAllocMap).Free() + x.ref4524fa09 = nil } } -// NewPhysicalDeviceSurfaceInfo2Ref 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 NewPhysicalDeviceSurfaceInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSurfaceInfo2 { +func NewCoarseSampleOrderCustomNVRef(ref unsafe.Pointer) *CoarseSampleOrderCustomNV { if ref == nil { return nil } - obj := new(PhysicalDeviceSurfaceInfo2) - obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(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 *PhysicalDeviceSurfaceInfo2) PassRef() (*C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { +func (x *CoarseSampleOrderCustomNV) PassRef() (*C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd22370ae != nil { - return x.refd22370ae, nil + } else if x.ref4524fa09 != nil { + return x.ref4524fa09, nil } - memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) - refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) - allocsd22370ae := new(cgoAllocMap) - allocsd22370ae.Add(memd22370ae) + mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) + ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) + allocs4524fa09 := new(cgoAllocMap) + allocs4524fa09.Add(mem4524fa09) - var csType_allocs *cgoAllocMap - refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd22370ae.Borrow(csType_allocs) + var cshadingRate_allocs *cgoAllocMap + ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown + allocs4524fa09.Borrow(cshadingRate_allocs) - var cpNext_allocs *cgoAllocMap - refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd22370ae.Borrow(cpNext_allocs) + var csampleCount_allocs *cgoAllocMap + ref4524fa09.sampleCount, csampleCount_allocs = (C.uint32_t)(x.SampleCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleCount_allocs) - var csurface_allocs *cgoAllocMap - refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown - allocsd22370ae.Borrow(csurface_allocs) + var csampleLocationCount_allocs *cgoAllocMap + ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleLocationCount_allocs) - x.refd22370ae = refd22370ae - x.allocsd22370ae = allocsd22370ae - return refd22370ae, allocsd22370ae + 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 PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { - if x.refd22370ae != nil { - return *x.refd22370ae, nil +func (x CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { + if x.ref4524fa09 != nil { + return *x.ref4524fa09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24106,90 +49302,137 @@ 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 *CoarseSampleOrderCustomNV) Deref() { + if x.ref4524fa09 == 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.ShadingRate = (ShadingRatePaletteEntryNV)(x.ref4524fa09.shadingRate) + x.SampleCount = (uint32)(x.ref4524fa09.sampleCount) + x.SampleLocationCount = (uint32)(x.ref4524fa09.sampleLocationCount) + packSCoarseSampleLocationNV(x.PSampleLocations, x.ref4524fa09.pSampleLocations) } -// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR in C. +// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) +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(allocs, func(a *cgoAllocMap) { + go a.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 *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { if x == nil { return nil } - return x.refea469745 + 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 *SurfaceCapabilities2) Free() { - if x != nil && x.allocsea469745 != nil { - x.allocsea469745.(*cgoAllocMap).Free() - x.refea469745 = nil +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Free() { + if x != nil && x.allocs54de8ca6 != nil { + x.allocs54de8ca6.(*cgoAllocMap).Free() + x.ref54de8ca6 = nil } } -// NewSurfaceCapabilities2Ref 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 NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { +func NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportCoarseSampleOrderStateCreateInfoNV { if ref == nil { return nil } - obj := new(SurfaceCapabilities2) - obj.refea469745 = (*C.VkSurfaceCapabilities2KHR)(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 *SurfaceCapabilities2) PassRef() (*C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassRef() (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea469745 != nil { - return x.refea469745, nil + } else if x.ref54de8ca6 != nil { + return x.ref54de8ca6, nil } - memea469745 := allocSurfaceCapabilities2Memory(1) - refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) - allocsea469745 := new(cgoAllocMap) - allocsea469745.Add(memea469745) + mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) + ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) + allocs54de8ca6 := new(cgoAllocMap) + allocs54de8ca6.Add(mem54de8ca6) var csType_allocs *cgoAllocMap - refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea469745.Borrow(csType_allocs) + ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea469745.Borrow(cpNext_allocs) + ref54de8ca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs54de8ca6.Borrow(cpNext_allocs) - var csurfaceCapabilities_allocs *cgoAllocMap - refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() - allocsea469745.Borrow(csurfaceCapabilities_allocs) + var csampleOrderType_allocs *cgoAllocMap + ref54de8ca6.sampleOrderType, csampleOrderType_allocs = (C.VkCoarseSampleOrderTypeNV)(x.SampleOrderType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csampleOrderType_allocs) - x.refea469745 = refea469745 - x.allocsea469745 = allocsea469745 - return refea469745, allocsea469745 + var ccustomSampleOrderCount_allocs *cgoAllocMap + ref54de8ca6.customSampleOrderCount, ccustomSampleOrderCount_allocs = (C.uint32_t)(x.CustomSampleOrderCount), cgoAllocsUnknown + allocs54de8ca6.Borrow(ccustomSampleOrderCount_allocs) + + 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 SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { - if x.refea469745 != nil { - return *x.refea469745, nil +func (x PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { + if x.ref54de8ca6 != nil { + return *x.ref54de8ca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24197,90 +49440,92 @@ 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 *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Deref() { + if x.ref54de8ca6 == 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.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) } -// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR in C. +// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) +const sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { if x == nil { return nil } - return x.ref8867f0ed + 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 *SurfaceFormat2) Free() { - if x != nil && x.allocs8867f0ed != nil { - x.allocs8867f0ed.(*cgoAllocMap).Free() - x.ref8867f0ed = nil +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Free() { + if x != nil && x.allocsf1f69e03 != nil { + x.allocsf1f69e03.(*cgoAllocMap).Free() + x.reff1f69e03 = nil } } -// NewSurfaceFormat2Ref 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 NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { +func NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceRepresentativeFragmentTestFeaturesNV { if ref == nil { return nil } - obj := new(SurfaceFormat2) - obj.ref8867f0ed = (*C.VkSurfaceFormat2KHR)(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 *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassRef() (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8867f0ed != nil { - return x.ref8867f0ed, nil + } else if x.reff1f69e03 != nil { + return x.reff1f69e03, nil } - mem8867f0ed := allocSurfaceFormat2Memory(1) - ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) - allocs8867f0ed := new(cgoAllocMap) - allocs8867f0ed.Add(mem8867f0ed) + memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) + reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) + allocsf1f69e03 := new(cgoAllocMap) + allocsf1f69e03.Add(memf1f69e03) var csType_allocs *cgoAllocMap - ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8867f0ed.Borrow(csType_allocs) + reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf1f69e03.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8867f0ed.Borrow(cpNext_allocs) + reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf1f69e03.Borrow(cpNext_allocs) - var csurfaceFormat_allocs *cgoAllocMap - ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() - allocs8867f0ed.Borrow(csurfaceFormat_allocs) + var crepresentativeFragmentTest_allocs *cgoAllocMap + reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown + allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) - x.ref8867f0ed = ref8867f0ed - x.allocs8867f0ed = allocs8867f0ed - return ref8867f0ed, allocs8867f0ed + 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 SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { - if x.ref8867f0ed != nil { - return *x.ref8867f0ed, nil +func (x PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { + if x.reff1f69e03 != nil { + return *x.reff1f69e03, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24288,90 +49533,90 @@ 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 *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Deref() { + if x.reff1f69e03 == 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.reff1f69e03.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1f69e03.pNext)) + x.RepresentativeFragmentTest = (Bool32)(x.reff1f69e03.representativeFragmentTest) } -// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR in C. +// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) +const sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { if x == nil { return nil } - return x.ref80194833 + 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 *DisplayProperties2) Free() { - if x != nil && x.allocs80194833 != nil { - x.allocs80194833.(*cgoAllocMap).Free() - x.ref80194833 = nil +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Free() { + if x != nil && x.allocs9c224e21 != nil { + x.allocs9c224e21.(*cgoAllocMap).Free() + x.ref9c224e21 = nil } } -// NewDisplayProperties2Ref 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 NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { +func NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineRepresentativeFragmentTestStateCreateInfoNV { if ref == nil { return nil } - obj := new(DisplayProperties2) - obj.ref80194833 = (*C.VkDisplayProperties2KHR)(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 *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) PassRef() (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80194833 != nil { - return x.ref80194833, nil + } else if x.ref9c224e21 != nil { + return x.ref9c224e21, nil } - mem80194833 := allocDisplayProperties2Memory(1) - ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) - allocs80194833 := new(cgoAllocMap) - allocs80194833.Add(mem80194833) + mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) + ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) + allocs9c224e21 := new(cgoAllocMap) + allocs9c224e21.Add(mem9c224e21) var csType_allocs *cgoAllocMap - ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80194833.Borrow(csType_allocs) + ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9c224e21.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80194833.Borrow(cpNext_allocs) + ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9c224e21.Borrow(cpNext_allocs) - var cdisplayProperties_allocs *cgoAllocMap - ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() - allocs80194833.Borrow(cdisplayProperties_allocs) + var crepresentativeFragmentTestEnable_allocs *cgoAllocMap + ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown + allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) - x.ref80194833 = ref80194833 - x.allocs80194833 = allocs80194833 - return ref80194833, allocs80194833 + 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 DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { - if x.ref80194833 != nil { - return *x.ref80194833, nil +func (x PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { + if x.ref9c224e21 != nil { + return *x.ref9c224e21, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24379,90 +49624,90 @@ 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 *PipelineRepresentativeFragmentTestStateCreateInfoNV) Deref() { + if x.ref9c224e21 == 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.ref9c224e21.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c224e21.pNext)) + x.RepresentativeFragmentTestEnable = (Bool32)(x.ref9c224e21.representativeFragmentTestEnable) } -// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR in C. +// allocPhysicalDeviceImageViewImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceImageViewImageFormatInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceImageViewImageFormatInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewImageFormatInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) +const sizeOfPhysicalDeviceImageViewImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewImageFormatInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { +func (x *PhysicalDeviceImageViewImageFormatInfo) Ref() *C.VkPhysicalDeviceImageViewImageFormatInfoEXT { if x == nil { return nil } - return x.refa72b1e5b + 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 *DisplayPlaneProperties2) Free() { - if x != nil && x.allocsa72b1e5b != nil { - x.allocsa72b1e5b.(*cgoAllocMap).Free() - x.refa72b1e5b = nil +func (x *PhysicalDeviceImageViewImageFormatInfo) Free() { + if x != nil && x.allocs99e4ab46 != nil { + x.allocs99e4ab46.(*cgoAllocMap).Free() + x.ref99e4ab46 = nil } } -// NewDisplayPlaneProperties2Ref 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 NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { +func NewPhysicalDeviceImageViewImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageViewImageFormatInfo { if ref == nil { return nil } - obj := new(DisplayPlaneProperties2) - obj.refa72b1e5b = (*C.VkDisplayPlaneProperties2KHR)(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 *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceImageViewImageFormatInfo) PassRef() (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa72b1e5b != nil { - return x.refa72b1e5b, nil + } else if x.ref99e4ab46 != nil { + return x.ref99e4ab46, nil } - mema72b1e5b := allocDisplayPlaneProperties2Memory(1) - refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) - allocsa72b1e5b := new(cgoAllocMap) - allocsa72b1e5b.Add(mema72b1e5b) + mem99e4ab46 := allocPhysicalDeviceImageViewImageFormatInfoMemory(1) + ref99e4ab46 := (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(mem99e4ab46) + allocs99e4ab46 := new(cgoAllocMap) + allocs99e4ab46.Add(mem99e4ab46) var csType_allocs *cgoAllocMap - refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa72b1e5b.Borrow(csType_allocs) + ref99e4ab46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs99e4ab46.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa72b1e5b.Borrow(cpNext_allocs) + ref99e4ab46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs99e4ab46.Borrow(cpNext_allocs) - var cdisplayPlaneProperties_allocs *cgoAllocMap - refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() - allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) + var cimageViewType_allocs *cgoAllocMap + ref99e4ab46.imageViewType, cimageViewType_allocs = (C.VkImageViewType)(x.ImageViewType), cgoAllocsUnknown + allocs99e4ab46.Borrow(cimageViewType_allocs) - x.refa72b1e5b = refa72b1e5b - x.allocsa72b1e5b = allocsa72b1e5b - return refa72b1e5b, allocsa72b1e5b + 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 DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { - if x.refa72b1e5b != nil { - return *x.refa72b1e5b, nil +func (x PhysicalDeviceImageViewImageFormatInfo) PassValue() (C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { + if x.ref99e4ab46 != nil { + return *x.ref99e4ab46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24470,90 +49715,94 @@ 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 *PhysicalDeviceImageViewImageFormatInfo) Deref() { + if x.ref99e4ab46 == 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.SType = (StructureType)(x.ref99e4ab46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref99e4ab46.pNext)) + x.ImageViewType = (ImageViewType)(x.ref99e4ab46.imageViewType) } -// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR in C. +// allocFilterCubicImageViewImageFormatPropertiesMemory allocates memory for type C.VkFilterCubicImageViewImageFormatPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocFilterCubicImageViewImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFilterCubicImageViewImageFormatPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) +const sizeOfFilterCubicImageViewImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkFilterCubicImageViewImageFormatPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { +func (x *FilterCubicImageViewImageFormatProperties) Ref() *C.VkFilterCubicImageViewImageFormatPropertiesEXT { if x == nil { return nil } - return x.refc566048d + 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 *DisplayModeProperties2) Free() { - if x != nil && x.allocsc566048d != nil { - x.allocsc566048d.(*cgoAllocMap).Free() - x.refc566048d = nil +func (x *FilterCubicImageViewImageFormatProperties) Free() { + if x != nil && x.allocscf60927c != nil { + x.allocscf60927c.(*cgoAllocMap).Free() + x.refcf60927c = nil } } -// NewDisplayModeProperties2Ref 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 NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { +func NewFilterCubicImageViewImageFormatPropertiesRef(ref unsafe.Pointer) *FilterCubicImageViewImageFormatProperties { if ref == nil { return nil } - obj := new(DisplayModeProperties2) - obj.refc566048d = (*C.VkDisplayModeProperties2KHR)(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 *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { +func (x *FilterCubicImageViewImageFormatProperties) PassRef() (*C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc566048d != nil { - return x.refc566048d, nil + } else if x.refcf60927c != nil { + return x.refcf60927c, nil } - memc566048d := allocDisplayModeProperties2Memory(1) - refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) - allocsc566048d := new(cgoAllocMap) - allocsc566048d.Add(memc566048d) + memcf60927c := allocFilterCubicImageViewImageFormatPropertiesMemory(1) + refcf60927c := (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(memcf60927c) + allocscf60927c := new(cgoAllocMap) + allocscf60927c.Add(memcf60927c) var csType_allocs *cgoAllocMap - refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc566048d.Borrow(csType_allocs) + refcf60927c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscf60927c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc566048d.Borrow(cpNext_allocs) + refcf60927c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscf60927c.Borrow(cpNext_allocs) - var cdisplayModeProperties_allocs *cgoAllocMap - refc566048d.displayModeProperties, cdisplayModeProperties_allocs = x.DisplayModeProperties.PassValue() - allocsc566048d.Borrow(cdisplayModeProperties_allocs) + var cfilterCubic_allocs *cgoAllocMap + refcf60927c.filterCubic, cfilterCubic_allocs = (C.VkBool32)(x.FilterCubic), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubic_allocs) - x.refc566048d = refc566048d - x.allocsc566048d = allocsc566048d - return refc566048d, allocsc566048d + var cfilterCubicMinmax_allocs *cgoAllocMap + refcf60927c.filterCubicMinmax, cfilterCubicMinmax_allocs = (C.VkBool32)(x.FilterCubicMinmax), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubicMinmax_allocs) + + 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 DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { - if x.refc566048d != nil { - return *x.refc566048d, nil +func (x FilterCubicImageViewImageFormatProperties) PassValue() (C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { + if x.refcf60927c != nil { + return *x.refcf60927c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24561,94 +49810,95 @@ 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 *FilterCubicImageViewImageFormatProperties) Deref() { + if x.refcf60927c == 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.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) } -// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR in C. +// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT 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()) +func allocImportMemoryHostPointerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryHostPointerInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) +const sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { +func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { if x == nil { return nil } - return x.reff355ccbf + 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 *DisplayPlaneInfo2) Free() { - if x != nil && x.allocsf355ccbf != nil { - x.allocsf355ccbf.(*cgoAllocMap).Free() - x.reff355ccbf = nil +func (x *ImportMemoryHostPointerInfo) Free() { + if x != nil && x.allocsfe09253e != nil { + x.allocsfe09253e.(*cgoAllocMap).Free() + x.reffe09253e = nil } } -// NewDisplayPlaneInfo2Ref 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 NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { +func NewImportMemoryHostPointerInfoRef(ref unsafe.Pointer) *ImportMemoryHostPointerInfo { if ref == nil { return nil } - obj := new(DisplayPlaneInfo2) - obj.reff355ccbf = (*C.VkDisplayPlaneInfo2KHR)(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 *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { +func (x *ImportMemoryHostPointerInfo) PassRef() (*C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff355ccbf != nil { - return x.reff355ccbf, nil + } else if x.reffe09253e != nil { + return x.reffe09253e, nil } - memf355ccbf := allocDisplayPlaneInfo2Memory(1) - reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) - allocsf355ccbf := new(cgoAllocMap) - allocsf355ccbf.Add(memf355ccbf) + memfe09253e := allocImportMemoryHostPointerInfoMemory(1) + reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) + allocsfe09253e := new(cgoAllocMap) + allocsfe09253e.Add(memfe09253e) var csType_allocs *cgoAllocMap - reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf355ccbf.Borrow(csType_allocs) + reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe09253e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cpNext_allocs) + reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpNext_allocs) - var cmode_allocs *cgoAllocMap - reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cmode_allocs) + var chandleType_allocs *cgoAllocMap + reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsfe09253e.Borrow(chandleType_allocs) - var cplaneIndex_allocs *cgoAllocMap - reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown - allocsf355ccbf.Borrow(cplaneIndex_allocs) + var cpHostPointer_allocs *cgoAllocMap + reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpHostPointer_allocs) - x.reff355ccbf = reff355ccbf - x.allocsf355ccbf = allocsf355ccbf - return reff355ccbf, allocsf355ccbf + 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 DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { - if x.reff355ccbf != nil { - return *x.reff355ccbf, nil +func (x ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { + if x.reffe09253e != nil { + return *x.reffe09253e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24656,91 +49906,91 @@ 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 *ImportMemoryHostPointerInfo) Deref() { + if x.reffe09253e == 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.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)) } -// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR in C. +// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMemoryHostPointerPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryHostPointerPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) +const sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { +func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { if x == nil { return nil } - return x.refb53dfb44 + 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 *DisplayPlaneCapabilities2) Free() { - if x != nil && x.allocsb53dfb44 != nil { - x.allocsb53dfb44.(*cgoAllocMap).Free() - x.refb53dfb44 = nil +func (x *MemoryHostPointerProperties) Free() { + if x != nil && x.allocsebf46a84 != nil { + x.allocsebf46a84.(*cgoAllocMap).Free() + x.refebf46a84 = nil } } -// NewDisplayPlaneCapabilities2Ref 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 NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { +func NewMemoryHostPointerPropertiesRef(ref unsafe.Pointer) *MemoryHostPointerProperties { if ref == nil { return nil } - obj := new(DisplayPlaneCapabilities2) - obj.refb53dfb44 = (*C.VkDisplayPlaneCapabilities2KHR)(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 *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { +func (x *MemoryHostPointerProperties) PassRef() (*C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb53dfb44 != nil { - return x.refb53dfb44, nil + } else if x.refebf46a84 != nil { + return x.refebf46a84, nil } - memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) - refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) - allocsb53dfb44 := new(cgoAllocMap) - allocsb53dfb44.Add(memb53dfb44) + memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) + refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) + allocsebf46a84 := new(cgoAllocMap) + allocsebf46a84.Add(memebf46a84) var csType_allocs *cgoAllocMap - refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb53dfb44.Borrow(csType_allocs) + refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsebf46a84.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb53dfb44.Borrow(cpNext_allocs) + refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsebf46a84.Borrow(cpNext_allocs) - var ccapabilities_allocs *cgoAllocMap - refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() - allocsb53dfb44.Borrow(ccapabilities_allocs) + var cmemoryTypeBits_allocs *cgoAllocMap + refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocsebf46a84.Borrow(cmemoryTypeBits_allocs) - x.refb53dfb44 = refb53dfb44 - x.allocsb53dfb44 = allocsb53dfb44 - return refb53dfb44, allocsb53dfb44 + 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 DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { - if x.refb53dfb44 != nil { - return *x.refb53dfb44, nil +func (x MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { + if x.refebf46a84 != nil { + return *x.refebf46a84, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24748,94 +49998,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 *MemoryHostPointerProperties) Deref() { + if x.refebf46a84 == 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.refebf46a84.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refebf46a84.pNext)) + x.MemoryTypeBits = (uint32)(x.refebf46a84.memoryTypeBits) } -// allocImageFormatListCreateInfoMemory allocates memory for type C.VkImageFormatListCreateInfoKHR in C. +// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT 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()) +func allocPhysicalDeviceExternalMemoryHostPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageFormatListCreateInfoValue = unsafe.Sizeof([1]C.VkImageFormatListCreateInfoKHR{}) +const sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatListCreateInfo) Ref() *C.VkImageFormatListCreateInfoKHR { +func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { if x == nil { return nil } - return x.ref815daf8c + 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 *ImageFormatListCreateInfo) Free() { - if x != nil && x.allocs815daf8c != nil { - x.allocs815daf8c.(*cgoAllocMap).Free() - x.ref815daf8c = nil +func (x *PhysicalDeviceExternalMemoryHostProperties) Free() { + if x != nil && x.allocs7f697d15 != nil { + x.allocs7f697d15.(*cgoAllocMap).Free() + x.ref7f697d15 = nil } } -// NewImageFormatListCreateInfoRef 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 NewImageFormatListCreateInfoRef(ref unsafe.Pointer) *ImageFormatListCreateInfo { +func NewPhysicalDeviceExternalMemoryHostPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryHostProperties { if ref == nil { return nil } - obj := new(ImageFormatListCreateInfo) - obj.ref815daf8c = (*C.VkImageFormatListCreateInfoKHR)(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 *ImageFormatListCreateInfo) PassRef() (*C.VkImageFormatListCreateInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceExternalMemoryHostProperties) PassRef() (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref815daf8c != nil { - return x.ref815daf8c, nil + } else if x.ref7f697d15 != nil { + return x.ref7f697d15, nil } - mem815daf8c := allocImageFormatListCreateInfoMemory(1) - ref815daf8c := (*C.VkImageFormatListCreateInfoKHR)(mem815daf8c) - allocs815daf8c := new(cgoAllocMap) - allocs815daf8c.Add(mem815daf8c) + mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) + ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) + allocs7f697d15 := new(cgoAllocMap) + allocs7f697d15.Add(mem7f697d15) var csType_allocs *cgoAllocMap - ref815daf8c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs815daf8c.Borrow(csType_allocs) + ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7f697d15.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) + ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7f697d15.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 cminImportedHostPointerAlignment_allocs *cgoAllocMap + ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown + allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) - x.ref815daf8c = ref815daf8c - x.allocs815daf8c = allocs815daf8c - return ref815daf8c, allocs815daf8c + 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 ImageFormatListCreateInfo) PassValue() (C.VkImageFormatListCreateInfoKHR, *cgoAllocMap) { - if x.ref815daf8c != nil { - return *x.ref815daf8c, nil +func (x PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { + if x.ref7f697d15 != nil { + return *x.ref7f697d15, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24843,103 +50089,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 *PhysicalDeviceExternalMemoryHostProperties) Deref() { + if x.ref7f697d15 == 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.ref7f697d15.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7f697d15.pNext)) + x.MinImportedHostPointerAlignment = (DeviceSize)(x.ref7f697d15.minImportedHostPointerAlignment) } -// allocPhysicalDevice8BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice8BitStorageFeaturesKHR in C. +// allocPipelineCompilerControlCreateInfoAMDMemory allocates memory for type C.VkPipelineCompilerControlCreateInfoAMD 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()) +func allocPipelineCompilerControlCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCompilerControlCreateInfoAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevice8BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice8BitStorageFeaturesKHR{}) +const sizeOfPipelineCompilerControlCreateInfoAMDValue = unsafe.Sizeof([1]C.VkPipelineCompilerControlCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevice8BitStorageFeatures) Ref() *C.VkPhysicalDevice8BitStorageFeaturesKHR { +func (x *PipelineCompilerControlCreateInfoAMD) Ref() *C.VkPipelineCompilerControlCreateInfoAMD { if x == nil { return nil } - return x.ref906ef48e + 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 *PhysicalDevice8BitStorageFeatures) Free() { - if x != nil && x.allocs906ef48e != nil { - x.allocs906ef48e.(*cgoAllocMap).Free() - x.ref906ef48e = nil +func (x *PipelineCompilerControlCreateInfoAMD) Free() { + if x != nil && x.allocs46a09e46 != nil { + x.allocs46a09e46.(*cgoAllocMap).Free() + x.ref46a09e46 = nil } } -// NewPhysicalDevice8BitStorageFeaturesRef 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 NewPhysicalDevice8BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice8BitStorageFeatures { +func NewPipelineCompilerControlCreateInfoAMDRef(ref unsafe.Pointer) *PipelineCompilerControlCreateInfoAMD { if ref == nil { return nil } - obj := new(PhysicalDevice8BitStorageFeatures) - obj.ref906ef48e = (*C.VkPhysicalDevice8BitStorageFeaturesKHR)(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 *PhysicalDevice8BitStorageFeatures) PassRef() (*C.VkPhysicalDevice8BitStorageFeaturesKHR, *cgoAllocMap) { +func (x *PipelineCompilerControlCreateInfoAMD) PassRef() (*C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref906ef48e != nil { - return x.ref906ef48e, nil + } else if x.ref46a09e46 != nil { + return x.ref46a09e46, nil } - mem906ef48e := allocPhysicalDevice8BitStorageFeaturesMemory(1) - ref906ef48e := (*C.VkPhysicalDevice8BitStorageFeaturesKHR)(mem906ef48e) - allocs906ef48e := new(cgoAllocMap) - allocs906ef48e.Add(mem906ef48e) + mem46a09e46 := allocPipelineCompilerControlCreateInfoAMDMemory(1) + ref46a09e46 := (*C.VkPipelineCompilerControlCreateInfoAMD)(mem46a09e46) + allocs46a09e46 := new(cgoAllocMap) + allocs46a09e46.Add(mem46a09e46) var csType_allocs *cgoAllocMap - ref906ef48e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs906ef48e.Borrow(csType_allocs) + ref46a09e46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs46a09e46.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) + ref46a09e46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs46a09e46.Borrow(cpNext_allocs) - var cstoragePushConstant8_allocs *cgoAllocMap - ref906ef48e.storagePushConstant8, cstoragePushConstant8_allocs = (C.VkBool32)(x.StoragePushConstant8), cgoAllocsUnknown - allocs906ef48e.Borrow(cstoragePushConstant8_allocs) + var ccompilerControlFlags_allocs *cgoAllocMap + ref46a09e46.compilerControlFlags, ccompilerControlFlags_allocs = (C.VkPipelineCompilerControlFlagsAMD)(x.CompilerControlFlags), cgoAllocsUnknown + allocs46a09e46.Borrow(ccompilerControlFlags_allocs) - x.ref906ef48e = ref906ef48e - x.allocs906ef48e = allocs906ef48e - return ref906ef48e, allocs906ef48e + 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 PhysicalDevice8BitStorageFeatures) PassValue() (C.VkPhysicalDevice8BitStorageFeaturesKHR, *cgoAllocMap) { - if x.ref906ef48e != nil { - return *x.ref906ef48e, nil +func (x PipelineCompilerControlCreateInfoAMD) PassValue() (C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { + if x.ref46a09e46 != nil { + return *x.ref46a09e46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24947,96 +50180,90 @@ 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 *PipelineCompilerControlCreateInfoAMD) Deref() { + if x.ref46a09e46 == 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.ref46a09e46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref46a09e46.pNext)) + x.CompilerControlFlags = (PipelineCompilerControlFlagsAMD)(x.ref46a09e46.compilerControlFlags) } -// allocPhysicalDeviceShaderAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR in C. +// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT 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()) +func allocCalibratedTimestampInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCalibratedTimestampInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShaderAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR{}) +const sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { +func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { if x == nil { return nil } - return x.ref51c409c6 + 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 *PhysicalDeviceShaderAtomicInt64Features) Free() { - if x != nil && x.allocs51c409c6 != nil { - x.allocs51c409c6.(*cgoAllocMap).Free() - x.ref51c409c6 = nil +func (x *CalibratedTimestampInfo) Free() { + if x != nil && x.allocs5f061d2a != nil { + x.allocs5f061d2a.(*cgoAllocMap).Free() + x.ref5f061d2a = nil } } -// NewPhysicalDeviceShaderAtomicInt64FeaturesRef 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 NewPhysicalDeviceShaderAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicInt64Features { +func NewCalibratedTimestampInfoRef(ref unsafe.Pointer) *CalibratedTimestampInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderAtomicInt64Features) - obj.ref51c409c6 = (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)(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 *PhysicalDeviceShaderAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR, *cgoAllocMap) { +func (x *CalibratedTimestampInfo) PassRef() (*C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51c409c6 != nil { - return x.ref51c409c6, nil + } else if x.ref5f061d2a != nil { + return x.ref5f061d2a, nil } - mem51c409c6 := allocPhysicalDeviceShaderAtomicInt64FeaturesMemory(1) - ref51c409c6 := (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)(mem51c409c6) - allocs51c409c6 := new(cgoAllocMap) - allocs51c409c6.Add(mem51c409c6) + mem5f061d2a := allocCalibratedTimestampInfoMemory(1) + ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) + allocs5f061d2a := new(cgoAllocMap) + allocs5f061d2a.Add(mem5f061d2a) var csType_allocs *cgoAllocMap - ref51c409c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51c409c6.Borrow(csType_allocs) + ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5f061d2a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51c409c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51c409c6.Borrow(cpNext_allocs) - - var cshaderBufferInt64Atomics_allocs *cgoAllocMap - ref51c409c6.shaderBufferInt64Atomics, cshaderBufferInt64Atomics_allocs = (C.VkBool32)(x.ShaderBufferInt64Atomics), cgoAllocsUnknown - allocs51c409c6.Borrow(cshaderBufferInt64Atomics_allocs) + ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5f061d2a.Borrow(cpNext_allocs) - var cshaderSharedInt64Atomics_allocs *cgoAllocMap - ref51c409c6.shaderSharedInt64Atomics, cshaderSharedInt64Atomics_allocs = (C.VkBool32)(x.ShaderSharedInt64Atomics), cgoAllocsUnknown - allocs51c409c6.Borrow(cshaderSharedInt64Atomics_allocs) + var ctimeDomain_allocs *cgoAllocMap + ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown + allocs5f061d2a.Borrow(ctimeDomain_allocs) - x.ref51c409c6 = ref51c409c6 - x.allocs51c409c6 = allocs51c409c6 - return ref51c409c6, allocs51c409c6 + 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 PhysicalDeviceShaderAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR, *cgoAllocMap) { - if x.ref51c409c6 != nil { - return *x.ref51c409c6, nil +func (x CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { + if x.ref5f061d2a != nil { + return *x.ref5f061d2a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25044,95 +50271,142 @@ 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 *CalibratedTimestampInfo) Deref() { + if x.ref5f061d2a == 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.ref5f061d2a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5f061d2a.pNext)) + x.TimeDomain = (TimeDomain)(x.ref5f061d2a.timeDomain) } -// allocConformanceVersionMemory allocates memory for type C.VkConformanceVersionKHR in C. +// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD 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()) +func allocPhysicalDeviceShaderCorePropertiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCorePropertiesAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfConformanceVersionValue = unsafe.Sizeof([1]C.VkConformanceVersionKHR{}) +const sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ConformanceVersion) Ref() *C.VkConformanceVersionKHR { +func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { if x == nil { return nil } - return x.refe4627a5f + 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 *ConformanceVersion) Free() { - if x != nil && x.allocse4627a5f != nil { - x.allocse4627a5f.(*cgoAllocMap).Free() - x.refe4627a5f = nil +func (x *PhysicalDeviceShaderCorePropertiesAMD) Free() { + if x != nil && x.allocsde4b3b09 != nil { + x.allocsde4b3b09.(*cgoAllocMap).Free() + x.refde4b3b09 = nil } } -// NewConformanceVersionRef 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 NewConformanceVersionRef(ref unsafe.Pointer) *ConformanceVersion { +func NewPhysicalDeviceShaderCorePropertiesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCorePropertiesAMD { if ref == nil { return nil } - obj := new(ConformanceVersion) - obj.refe4627a5f = (*C.VkConformanceVersionKHR)(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 *ConformanceVersion) PassRef() (*C.VkConformanceVersionKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShaderCorePropertiesAMD) PassRef() (*C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe4627a5f != nil { - return x.refe4627a5f, nil + } else if x.refde4b3b09 != nil { + return x.refde4b3b09, nil } - meme4627a5f := allocConformanceVersionMemory(1) - refe4627a5f := (*C.VkConformanceVersionKHR)(meme4627a5f) - allocse4627a5f := new(cgoAllocMap) - allocse4627a5f.Add(meme4627a5f) + memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) + refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) + allocsde4b3b09 := new(cgoAllocMap) + allocsde4b3b09.Add(memde4b3b09) + + var csType_allocs *cgoAllocMap + refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsde4b3b09.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 cmajor_allocs *cgoAllocMap - refe4627a5f.major, cmajor_allocs = (C.uint8_t)(x.Major), cgoAllocsUnknown - allocse4627a5f.Borrow(cmajor_allocs) + var csgprAllocationGranularity_allocs *cgoAllocMap + refde4b3b09.sgprAllocationGranularity, csgprAllocationGranularity_allocs = (C.uint32_t)(x.SgprAllocationGranularity), cgoAllocsUnknown + allocsde4b3b09.Borrow(csgprAllocationGranularity_allocs) - var cminor_allocs *cgoAllocMap - refe4627a5f.minor, cminor_allocs = (C.uint8_t)(x.Minor), cgoAllocsUnknown - allocse4627a5f.Borrow(cminor_allocs) + var cvgprsPerSimd_allocs *cgoAllocMap + refde4b3b09.vgprsPerSimd, cvgprsPerSimd_allocs = (C.uint32_t)(x.VgprsPerSimd), cgoAllocsUnknown + allocsde4b3b09.Borrow(cvgprsPerSimd_allocs) - var csubminor_allocs *cgoAllocMap - refe4627a5f.subminor, csubminor_allocs = (C.uint8_t)(x.Subminor), cgoAllocsUnknown - allocse4627a5f.Borrow(csubminor_allocs) + var cminVgprAllocation_allocs *cgoAllocMap + refde4b3b09.minVgprAllocation, cminVgprAllocation_allocs = (C.uint32_t)(x.MinVgprAllocation), cgoAllocsUnknown + allocsde4b3b09.Borrow(cminVgprAllocation_allocs) - var cpatch_allocs *cgoAllocMap - refe4627a5f.patch, cpatch_allocs = (C.uint8_t)(x.Patch), cgoAllocsUnknown - allocse4627a5f.Borrow(cpatch_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.refe4627a5f = refe4627a5f - x.allocse4627a5f = allocse4627a5f - return refe4627a5f, allocse4627a5f + 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 ConformanceVersion) PassValue() (C.VkConformanceVersionKHR, *cgoAllocMap) { - if x.refe4627a5f != nil { - return *x.refe4627a5f, nil +func (x PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { + if x.refde4b3b09 != nil { + return *x.refde4b3b09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25140,103 +50414,103 @@ 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 *PhysicalDeviceShaderCorePropertiesAMD) Deref() { + if x.refde4b3b09 == 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.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) } -// allocPhysicalDeviceDriverPropertiesMemory allocates memory for type C.VkPhysicalDeviceDriverPropertiesKHR in C. +// allocDeviceMemoryOverallocationCreateInfoAMDMemory allocates memory for type C.VkDeviceMemoryOverallocationCreateInfoAMD 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()) +func allocDeviceMemoryOverallocationCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOverallocationCreateInfoAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceDriverPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDriverPropertiesKHR{}) +const sizeOfDeviceMemoryOverallocationCreateInfoAMDValue = unsafe.Sizeof([1]C.VkDeviceMemoryOverallocationCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDriverProperties) Ref() *C.VkPhysicalDeviceDriverPropertiesKHR { +func (x *DeviceMemoryOverallocationCreateInfoAMD) Ref() *C.VkDeviceMemoryOverallocationCreateInfoAMD { if x == nil { return nil } - return x.ref9220f954 + 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 *PhysicalDeviceDriverProperties) Free() { - if x != nil && x.allocs9220f954 != nil { - x.allocs9220f954.(*cgoAllocMap).Free() - x.ref9220f954 = nil +func (x *DeviceMemoryOverallocationCreateInfoAMD) Free() { + if x != nil && x.allocs5ccee475 != nil { + x.allocs5ccee475.(*cgoAllocMap).Free() + x.ref5ccee475 = nil } } -// NewPhysicalDeviceDriverPropertiesRef 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 NewPhysicalDeviceDriverPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDriverProperties { +func NewDeviceMemoryOverallocationCreateInfoAMDRef(ref unsafe.Pointer) *DeviceMemoryOverallocationCreateInfoAMD { if ref == nil { return nil } - obj := new(PhysicalDeviceDriverProperties) - obj.ref9220f954 = (*C.VkPhysicalDeviceDriverPropertiesKHR)(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 *PhysicalDeviceDriverProperties) PassRef() (*C.VkPhysicalDeviceDriverPropertiesKHR, *cgoAllocMap) { +func (x *DeviceMemoryOverallocationCreateInfoAMD) PassRef() (*C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9220f954 != nil { - return x.ref9220f954, nil + } else if x.ref5ccee475 != nil { + return x.ref5ccee475, nil } - mem9220f954 := allocPhysicalDeviceDriverPropertiesMemory(1) - ref9220f954 := (*C.VkPhysicalDeviceDriverPropertiesKHR)(mem9220f954) - allocs9220f954 := new(cgoAllocMap) - allocs9220f954.Add(mem9220f954) + mem5ccee475 := allocDeviceMemoryOverallocationCreateInfoAMDMemory(1) + ref5ccee475 := (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(mem5ccee475) + allocs5ccee475 := new(cgoAllocMap) + allocs5ccee475.Add(mem5ccee475) var csType_allocs *cgoAllocMap - ref9220f954.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9220f954.Borrow(csType_allocs) + ref5ccee475.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5ccee475.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) + ref5ccee475.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5ccee475.Borrow(cpNext_allocs) - var cdriverInfo_allocs *cgoAllocMap - ref9220f954.driverInfo, cdriverInfo_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverInfo)), cgoAllocsUnknown - allocs9220f954.Borrow(cdriverInfo_allocs) - - var cconformanceVersion_allocs *cgoAllocMap - ref9220f954.conformanceVersion, cconformanceVersion_allocs = x.ConformanceVersion.PassValue() - allocs9220f954.Borrow(cconformanceVersion_allocs) + var coverallocationBehavior_allocs *cgoAllocMap + ref5ccee475.overallocationBehavior, coverallocationBehavior_allocs = (C.VkMemoryOverallocationBehaviorAMD)(x.OverallocationBehavior), cgoAllocsUnknown + allocs5ccee475.Borrow(coverallocationBehavior_allocs) - x.ref9220f954 = ref9220f954 - x.allocs9220f954 = allocs9220f954 - return ref9220f954, allocs9220f954 + 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 PhysicalDeviceDriverProperties) PassValue() (C.VkPhysicalDeviceDriverPropertiesKHR, *cgoAllocMap) { - if x.ref9220f954 != nil { - return *x.ref9220f954, nil +func (x DeviceMemoryOverallocationCreateInfoAMD) PassValue() (C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { + if x.ref5ccee475 != nil { + return *x.ref5ccee475, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25244,97 +50518,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 *DeviceMemoryOverallocationCreateInfoAMD) Deref() { + if x.ref5ccee475 == 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.ref5ccee475.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ccee475.pNext)) + x.OverallocationBehavior = (MemoryOverallocationBehaviorAMD)(x.ref5ccee475.overallocationBehavior) } -// allocPhysicalDeviceVulkanMemoryModelFeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR in C. +// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT 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()) +func allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceVulkanMemoryModelFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVulkanMemoryModelFeatures) Ref() *C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { if x == nil { return nil } - return x.ref2b17642b + 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 *PhysicalDeviceVulkanMemoryModelFeatures) Free() { - if x != nil && x.allocs2b17642b != nil { - x.allocs2b17642b.(*cgoAllocMap).Free() - x.ref2b17642b = nil +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Free() { + if x != nil && x.allocsbd6b5075 != nil { + x.allocsbd6b5075.(*cgoAllocMap).Free() + x.refbd6b5075 = nil } } -// NewPhysicalDeviceVulkanMemoryModelFeaturesRef 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 NewPhysicalDeviceVulkanMemoryModelFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkanMemoryModelFeatures { +func NewPhysicalDeviceVertexAttributeDivisorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceVulkanMemoryModelFeatures) - obj.ref2b17642b = (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR)(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 *PhysicalDeviceVulkanMemoryModelFeatures) PassRef() (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b17642b != nil { - return x.ref2b17642b, nil + } else if x.refbd6b5075 != nil { + return x.refbd6b5075, nil } - mem2b17642b := allocPhysicalDeviceVulkanMemoryModelFeaturesMemory(1) - ref2b17642b := (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR)(mem2b17642b) - allocs2b17642b := new(cgoAllocMap) - allocs2b17642b.Add(mem2b17642b) + membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) + refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) + allocsbd6b5075 := new(cgoAllocMap) + allocsbd6b5075.Add(membd6b5075) var csType_allocs *cgoAllocMap - ref2b17642b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2b17642b.Borrow(csType_allocs) + refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbd6b5075.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) + refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbd6b5075.Borrow(cpNext_allocs) - var cvulkanMemoryModelDeviceScope_allocs *cgoAllocMap - ref2b17642b.vulkanMemoryModelDeviceScope, cvulkanMemoryModelDeviceScope_allocs = (C.VkBool32)(x.VulkanMemoryModelDeviceScope), cgoAllocsUnknown - allocs2b17642b.Borrow(cvulkanMemoryModelDeviceScope_allocs) + var cmaxVertexAttribDivisor_allocs *cgoAllocMap + refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown + allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) - x.ref2b17642b = ref2b17642b - x.allocs2b17642b = allocs2b17642b - return ref2b17642b, allocs2b17642b + 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 PhysicalDeviceVulkanMemoryModelFeatures) PassValue() (C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, *cgoAllocMap) { - if x.ref2b17642b != nil { - return *x.ref2b17642b, nil +func (x PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { + if x.refbd6b5075 != nil { + return *x.refbd6b5075, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25342,143 +50609,86 @@ 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 *PhysicalDeviceVertexAttributeDivisorProperties) Deref() { + if x.refbd6b5075 == 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.refbd6b5075.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd6b5075.pNext)) + x.MaxVertexAttribDivisor = (uint32)(x.refbd6b5075.maxVertexAttribDivisor) } -var debugReportCallbackFuncC918AAC4Func DebugReportCallbackFunc - -// allocDebugReportCallbackCreateInfoMemory allocates memory for type C.VkDebugReportCallbackCreateInfoEXT in C. +// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocVertexInputBindingDivisorDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDivisorDescriptionValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) +const sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { +func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { if x == nil { return nil } - return x.refc8238563 + 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 *DebugReportCallbackCreateInfo) Free() { - if x != nil && x.allocsc8238563 != nil { - x.allocsc8238563.(*cgoAllocMap).Free() - x.refc8238563 = nil +func (x *VertexInputBindingDivisorDescription) Free() { + if x != nil && x.allocsd64d4396 != nil { + x.allocsd64d4396.(*cgoAllocMap).Free() + x.refd64d4396 = nil } } -// NewDebugReportCallbackCreateInfoRef 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 NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { +func NewVertexInputBindingDivisorDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDivisorDescription { if ref == nil { return nil } - obj := new(DebugReportCallbackCreateInfo) - obj.refc8238563 = (*C.VkDebugReportCallbackCreateInfoEXT)(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 *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { +func (x *VertexInputBindingDivisorDescription) PassRef() (*C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc8238563 != nil { - return x.refc8238563, nil + } else if x.refd64d4396 != nil { + return x.refd64d4396, nil } - memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) - refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) - allocsc8238563 := new(cgoAllocMap) - allocsc8238563.Add(memc8238563) - - var csType_allocs *cgoAllocMap - refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc8238563.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) + memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) + refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) + allocsd64d4396 := new(cgoAllocMap) + allocsd64d4396.Add(memd64d4396) - var cpfnCallback_allocs *cgoAllocMap - refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() - allocsc8238563.Borrow(cpfnCallback_allocs) + var cbinding_allocs *cgoAllocMap + refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsd64d4396.Borrow(cbinding_allocs) - var cpUserData_allocs *cgoAllocMap - refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown - allocsc8238563.Borrow(cpUserData_allocs) + var cdivisor_allocs *cgoAllocMap + refd64d4396.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown + allocsd64d4396.Borrow(cdivisor_allocs) - x.refc8238563 = refc8238563 - x.allocsc8238563 = allocsc8238563 - return refc8238563, allocsc8238563 + 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 DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { - if x.refc8238563 != nil { - return *x.refc8238563, nil +func (x VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { + if x.refd64d4396 != nil { + return *x.refd64d4396, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25486,92 +50696,131 @@ 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 *VertexInputBindingDivisorDescription) Deref() { + if x.refd64d4396 == 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.Binding = (uint32)(x.refd64d4396.binding) + x.Divisor = (uint32)(x.refd64d4396.divisor) } -// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD in C. +// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineVertexInputDivisorStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineVertexInputDivisorStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) +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(allocs, func(a *cgoAllocMap) { + go a.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)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { +func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { if x == nil { return nil } - return x.ref5098cf82 + 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 *PipelineRasterizationStateRasterizationOrderAMD) Free() { - if x != nil && x.allocs5098cf82 != nil { - x.allocs5098cf82.(*cgoAllocMap).Free() - x.ref5098cf82 = nil +func (x *PipelineVertexInputDivisorStateCreateInfo) Free() { + if x != nil && x.allocs86096bfd != nil { + x.allocs86096bfd.(*cgoAllocMap).Free() + x.ref86096bfd = nil } } -// NewPipelineRasterizationStateRasterizationOrderAMDRef 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 NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { +func NewPipelineVertexInputDivisorStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputDivisorStateCreateInfo { if ref == nil { return nil } - obj := new(PipelineRasterizationStateRasterizationOrderAMD) - obj.ref5098cf82 = (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(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 *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { +func (x *PipelineVertexInputDivisorStateCreateInfo) PassRef() (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5098cf82 != nil { - return x.ref5098cf82, nil + } else if x.ref86096bfd != nil { + return x.ref86096bfd, nil } - mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) - ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) - allocs5098cf82 := new(cgoAllocMap) - allocs5098cf82.Add(mem5098cf82) + mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) + ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) + allocs86096bfd := new(cgoAllocMap) + allocs86096bfd.Add(mem86096bfd) var csType_allocs *cgoAllocMap - ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5098cf82.Borrow(csType_allocs) + ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86096bfd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5098cf82.Borrow(cpNext_allocs) + ref86096bfd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86096bfd.Borrow(cpNext_allocs) - var crasterizationOrder_allocs *cgoAllocMap - ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown - allocs5098cf82.Borrow(crasterizationOrder_allocs) + var cvertexBindingDivisorCount_allocs *cgoAllocMap + ref86096bfd.vertexBindingDivisorCount, cvertexBindingDivisorCount_allocs = (C.uint32_t)(x.VertexBindingDivisorCount), cgoAllocsUnknown + allocs86096bfd.Borrow(cvertexBindingDivisorCount_allocs) - x.ref5098cf82 = ref5098cf82 - x.allocs5098cf82 = allocs5098cf82 - return ref5098cf82, allocs5098cf82 + 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 PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { - if x.ref5098cf82 != nil { - return *x.ref5098cf82, nil +func (x PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { + if x.ref86096bfd != nil { + return *x.ref86096bfd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25579,98 +50828,95 @@ 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 *PipelineVertexInputDivisorStateCreateInfo) Deref() { + if x.ref86096bfd == 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.ref86096bfd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86096bfd.pNext)) + x.VertexBindingDivisorCount = (uint32)(x.ref86096bfd.vertexBindingDivisorCount) + packSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors, x.ref86096bfd.pVertexBindingDivisors) } -// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT in C. +// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { if x == nil { return nil } - return x.refe4983fab + 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 *DebugMarkerObjectNameInfo) Free() { - if x != nil && x.allocse4983fab != nil { - x.allocse4983fab.(*cgoAllocMap).Free() - x.refe4983fab = nil +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Free() { + if x != nil && x.allocsffe7619a != nil { + x.allocsffe7619a.(*cgoAllocMap).Free() + x.refffe7619a = nil } } -// NewDebugMarkerObjectNameInfoRef 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 NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { +func NewPhysicalDeviceVertexAttributeDivisorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorFeatures { if ref == nil { return nil } - obj := new(DebugMarkerObjectNameInfo) - obj.refe4983fab = (*C.VkDebugMarkerObjectNameInfoEXT)(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 *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe4983fab != nil { - return x.refe4983fab, nil + } else if x.refffe7619a != nil { + return x.refffe7619a, nil } - meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) - refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) - allocse4983fab := new(cgoAllocMap) - allocse4983fab.Add(meme4983fab) + memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) + refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) + allocsffe7619a := new(cgoAllocMap) + allocsffe7619a.Add(memffe7619a) var csType_allocs *cgoAllocMap - refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse4983fab.Borrow(csType_allocs) + refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe7619a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse4983fab.Borrow(cpNext_allocs) - - var cobjectType_allocs *cgoAllocMap - refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown - allocse4983fab.Borrow(cobjectType_allocs) + refffe7619a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe7619a.Borrow(cpNext_allocs) - var cobject_allocs *cgoAllocMap - refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown - allocse4983fab.Borrow(cobject_allocs) + var cvertexAttributeInstanceRateDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateDivisor, cvertexAttributeInstanceRateDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateDivisor_allocs) - var cpObjectName_allocs *cgoAllocMap - refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocse4983fab.Borrow(cpObjectName_allocs) + var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) - x.refe4983fab = refe4983fab - x.allocse4983fab = allocse4983fab - return refe4983fab, allocse4983fab + 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 DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { - if x.refe4983fab != nil { - return *x.refe4983fab, nil +func (x PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { + if x.refffe7619a != nil { + return *x.refffe7619a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25678,108 +50924,95 @@ 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 *PhysicalDeviceVertexAttributeDivisorFeatures) Deref() { + if x.refffe7619a == 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.refffe7619a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe7619a.pNext)) + x.VertexAttributeInstanceRateDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateDivisor) + x.VertexAttributeInstanceRateZeroDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateZeroDivisor) } -// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT in C. +// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) +const sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { if x == nil { return nil } - return x.refa41a5c3b + 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 *DebugMarkerObjectTagInfo) Free() { - if x != nil && x.allocsa41a5c3b != nil { - x.allocsa41a5c3b.(*cgoAllocMap).Free() - x.refa41a5c3b = nil +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Free() { + if x != nil && x.allocsf31d599c != nil { + x.allocsf31d599c.(*cgoAllocMap).Free() + x.reff31d599c = nil } } -// NewDebugMarkerObjectTagInfoRef 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 NewDebugMarkerObjectTagInfoRef(ref unsafe.Pointer) *DebugMarkerObjectTagInfo { +func NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceComputeShaderDerivativesFeaturesNV { if ref == nil { return nil } - obj := new(DebugMarkerObjectTagInfo) - obj.refa41a5c3b = (*C.VkDebugMarkerObjectTagInfoEXT)(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 *DebugMarkerObjectTagInfo) PassRef() (*C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassRef() (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa41a5c3b != nil { - return x.refa41a5c3b, nil + } else if x.reff31d599c != nil { + return x.reff31d599c, nil } - mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) - refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) - allocsa41a5c3b := new(cgoAllocMap) - allocsa41a5c3b.Add(mema41a5c3b) + memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) + reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) + allocsf31d599c := new(cgoAllocMap) + allocsf31d599c.Add(memf31d599c) var csType_allocs *cgoAllocMap - refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa41a5c3b.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) + reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf31d599c.Borrow(csType_allocs) - var ctagName_allocs *cgoAllocMap - refa41a5c3b.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown - allocsa41a5c3b.Borrow(ctagName_allocs) + var cpNext_allocs *cgoAllocMap + reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf31d599c.Borrow(cpNext_allocs) - var ctagSize_allocs *cgoAllocMap - refa41a5c3b.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown - allocsa41a5c3b.Borrow(ctagSize_allocs) + var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) - var cpTag_allocs *cgoAllocMap - refa41a5c3b.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cpTag_allocs) + var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) - x.refa41a5c3b = refa41a5c3b - x.allocsa41a5c3b = allocsa41a5c3b - return refa41a5c3b, allocsa41a5c3b + 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 DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { - if x.refa41a5c3b != nil { - return *x.refa41a5c3b, nil +func (x PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { + if x.reff31d599c != nil { + return *x.reff31d599c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25787,98 +51020,95 @@ 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 *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Deref() { + if x.reff31d599c == 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.reff31d599c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff31d599c.pNext)) + x.ComputeDerivativeGroupQuads = (Bool32)(x.reff31d599c.computeDerivativeGroupQuads) + x.ComputeDerivativeGroupLinear = (Bool32)(x.reff31d599c.computeDerivativeGroupLinear) } -// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT in C. +// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMeshShaderFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) +const sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { +func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { if x == nil { return nil } - return x.ref234b91fd + 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 *DebugMarkerMarkerInfo) Free() { - if x != nil && x.allocs234b91fd != nil { - x.allocs234b91fd.(*cgoAllocMap).Free() - x.ref234b91fd = nil +func (x *PhysicalDeviceMeshShaderFeaturesNV) Free() { + if x != nil && x.allocs802b98a != nil { + x.allocs802b98a.(*cgoAllocMap).Free() + x.ref802b98a = nil } } -// NewDebugMarkerMarkerInfoRef 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 NewDebugMarkerMarkerInfoRef(ref unsafe.Pointer) *DebugMarkerMarkerInfo { +func NewPhysicalDeviceMeshShaderFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderFeaturesNV { if ref == nil { return nil } - obj := new(DebugMarkerMarkerInfo) - obj.ref234b91fd = (*C.VkDebugMarkerMarkerInfoEXT)(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 *DebugMarkerMarkerInfo) PassRef() (*C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderFeaturesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref234b91fd != nil { - return x.ref234b91fd, nil + } else if x.ref802b98a != nil { + return x.ref802b98a, nil } - mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) - ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) - allocs234b91fd := new(cgoAllocMap) - allocs234b91fd.Add(mem234b91fd) + mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) + ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) + allocs802b98a := new(cgoAllocMap) + allocs802b98a.Add(mem802b98a) var csType_allocs *cgoAllocMap - ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs234b91fd.Borrow(csType_allocs) + ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs802b98a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref234b91fd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs234b91fd.Borrow(cpNext_allocs) + ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs802b98a.Borrow(cpNext_allocs) - var cpMarkerName_allocs *cgoAllocMap - ref234b91fd.pMarkerName, cpMarkerName_allocs = unpackPCharString(x.PMarkerName) - allocs234b91fd.Borrow(cpMarkerName_allocs) + var ctaskShader_allocs *cgoAllocMap + ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown + allocs802b98a.Borrow(ctaskShader_allocs) - var ccolor_allocs *cgoAllocMap - ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs234b91fd.Borrow(ccolor_allocs) + var cmeshShader_allocs *cgoAllocMap + ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown + allocs802b98a.Borrow(cmeshShader_allocs) - x.ref234b91fd = ref234b91fd - x.allocs234b91fd = allocs234b91fd - return ref234b91fd, allocs234b91fd + 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 DebugMarkerMarkerInfo) PassValue() (C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { - if x.ref234b91fd != nil { - return *x.ref234b91fd, nil +func (x PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { + if x.ref802b98a != nil { + return *x.ref802b98a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25886,91 +51116,139 @@ 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 *PhysicalDeviceMeshShaderFeaturesNV) Deref() { + if x.ref802b98a == 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.ref802b98a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref802b98a.pNext)) + x.TaskShader = (Bool32)(x.ref802b98a.taskShader) + x.MeshShader = (Bool32)(x.ref802b98a.meshShader) } -// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV in C. +// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMeshShaderPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) +const sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { +func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { if x == nil { return nil } - return x.ref685d878b + 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 *DedicatedAllocationImageCreateInfoNV) Free() { - if x != nil && x.allocs685d878b != nil { - x.allocs685d878b.(*cgoAllocMap).Free() - x.ref685d878b = nil +func (x *PhysicalDeviceMeshShaderPropertiesNV) Free() { + if x != nil && x.allocs2ee3ccb7 != nil { + x.allocs2ee3ccb7.(*cgoAllocMap).Free() + x.ref2ee3ccb7 = nil } } -// NewDedicatedAllocationImageCreateInfoNVRef 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 NewDedicatedAllocationImageCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationImageCreateInfoNV { +func NewPhysicalDeviceMeshShaderPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderPropertiesNV { if ref == nil { return nil } - obj := new(DedicatedAllocationImageCreateInfoNV) - obj.ref685d878b = (*C.VkDedicatedAllocationImageCreateInfoNV)(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 *DedicatedAllocationImageCreateInfoNV) PassRef() (*C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderPropertiesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref685d878b != nil { - return x.ref685d878b, nil + } else if x.ref2ee3ccb7 != nil { + return x.ref2ee3ccb7, nil } - mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) - ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) - allocs685d878b := new(cgoAllocMap) - allocs685d878b.Add(mem685d878b) + mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) + ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) + allocs2ee3ccb7 := new(cgoAllocMap) + allocs2ee3ccb7.Add(mem2ee3ccb7) var csType_allocs *cgoAllocMap - ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs685d878b.Borrow(csType_allocs) + ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs685d878b.Borrow(cpNext_allocs) + ref2ee3ccb7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cpNext_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocs685d878b.Borrow(cdedicatedAllocation_allocs) + var cmaxDrawMeshTasksCount_allocs *cgoAllocMap + ref2ee3ccb7.maxDrawMeshTasksCount, cmaxDrawMeshTasksCount_allocs = (C.uint32_t)(x.MaxDrawMeshTasksCount), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxDrawMeshTasksCount_allocs) - x.ref685d878b = ref685d878b - x.allocs685d878b = allocs685d878b - return ref685d878b, allocs685d878b + 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) + + var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap + ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) + + 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 DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { - if x.ref685d878b != nil { - return *x.ref685d878b, nil +func (x PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { + if x.ref2ee3ccb7 != nil { + return *x.ref2ee3ccb7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25978,90 +51256,98 @@ 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 *PhysicalDeviceMeshShaderPropertiesNV) Deref() { + if x.ref2ee3ccb7 == nil { return } - x.SType = (StructureType)(x.ref685d878b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) - x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) + 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) } -// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV in C. +// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV 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()) +func allocDrawMeshTasksIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawMeshTasksIndirectCommandNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) +const sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { +func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { if x == nil { return nil } - return x.refbc745a8 + 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 *DedicatedAllocationBufferCreateInfoNV) Free() { - if x != nil && x.allocsbc745a8 != nil { - x.allocsbc745a8.(*cgoAllocMap).Free() - x.refbc745a8 = nil +func (x *DrawMeshTasksIndirectCommandNV) Free() { + if x != nil && x.allocsda6c46ea != nil { + x.allocsda6c46ea.(*cgoAllocMap).Free() + x.refda6c46ea = nil } } -// NewDedicatedAllocationBufferCreateInfoNVRef 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 NewDedicatedAllocationBufferCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationBufferCreateInfoNV { +func NewDrawMeshTasksIndirectCommandNVRef(ref unsafe.Pointer) *DrawMeshTasksIndirectCommandNV { if ref == nil { return nil } - obj := new(DedicatedAllocationBufferCreateInfoNV) - obj.refbc745a8 = (*C.VkDedicatedAllocationBufferCreateInfoNV)(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 *DedicatedAllocationBufferCreateInfoNV) PassRef() (*C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { +func (x *DrawMeshTasksIndirectCommandNV) PassRef() (*C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc745a8 != nil { - return x.refbc745a8, nil + } else if x.refda6c46ea != nil { + return x.refda6c46ea, nil } - membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) - refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) - allocsbc745a8 := new(cgoAllocMap) - allocsbc745a8.Add(membc745a8) - - var csType_allocs *cgoAllocMap - refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc745a8.Borrow(csType_allocs) + memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) + refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) + allocsda6c46ea := new(cgoAllocMap) + allocsda6c46ea.Add(memda6c46ea) - var cpNext_allocs *cgoAllocMap - refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc745a8.Borrow(cpNext_allocs) + var ctaskCount_allocs *cgoAllocMap + refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown + allocsda6c46ea.Borrow(ctaskCount_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocsbc745a8.Borrow(cdedicatedAllocation_allocs) + var cfirstTask_allocs *cgoAllocMap + refda6c46ea.firstTask, cfirstTask_allocs = (C.uint32_t)(x.FirstTask), cgoAllocsUnknown + allocsda6c46ea.Borrow(cfirstTask_allocs) - x.refbc745a8 = refbc745a8 - x.allocsbc745a8 = allocsbc745a8 - return refbc745a8, allocsbc745a8 + 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 DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { - if x.refbc745a8 != nil { - return *x.refbc745a8, nil +func (x DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { + if x.refda6c46ea != nil { + return *x.refda6c46ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26069,94 +51355,89 @@ 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 *DrawMeshTasksIndirectCommandNV) Deref() { + if x.refda6c46ea == nil { return } - x.SType = (StructureType)(x.refbc745a8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc745a8.pNext)) - x.DedicatedAllocation = (Bool32)(x.refbc745a8.dedicatedAllocation) + x.TaskCount = (uint32)(x.refda6c46ea.taskCount) + x.FirstTask = (uint32)(x.refda6c46ea.firstTask) } -// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV in C. +// allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) +const sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { if x == nil { return nil } - return x.ref9a72b107 + return x.ref191b97c6 } // Free invokes alloc map'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 *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Free() { + if x != nil && x.allocs191b97c6 != nil { + x.allocs191b97c6.(*cgoAllocMap).Free() + x.ref191b97c6 = nil } } -// NewDedicatedAllocationMemoryAllocateInfoNVRef 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 NewDedicatedAllocationMemoryAllocateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationMemoryAllocateInfoNV { +func NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeaturesNV { if ref == nil { return nil } - obj := new(DedicatedAllocationMemoryAllocateInfoNV) - obj.ref9a72b107 = (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShaderBarycentricFeaturesNV) + obj.ref191b97c6 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a72b107 != nil { - return x.ref9a72b107, nil + } else if x.ref191b97c6 != nil { + return x.ref191b97c6, nil } - mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) - ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) - allocs9a72b107 := new(cgoAllocMap) - allocs9a72b107.Add(mem9a72b107) + mem191b97c6 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(1) + ref191b97c6 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(mem191b97c6) + allocs191b97c6 := new(cgoAllocMap) + allocs191b97c6.Add(mem191b97c6) var csType_allocs *cgoAllocMap - ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a72b107.Borrow(csType_allocs) + ref191b97c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs191b97c6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a72b107.Borrow(cpNext_allocs) - - var cimage_allocs *cgoAllocMap - ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs9a72b107.Borrow(cimage_allocs) + ref191b97c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs191b97c6.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs9a72b107.Borrow(cbuffer_allocs) + var cfragmentShaderBarycentric_allocs *cgoAllocMap + ref191b97c6.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown + allocs191b97c6.Borrow(cfragmentShaderBarycentric_allocs) - x.ref9a72b107 = ref9a72b107 - x.allocs9a72b107 = allocs9a72b107 - return ref9a72b107, allocs9a72b107 + x.ref191b97c6 = ref191b97c6 + x.allocs191b97c6 = allocs191b97c6 + return ref191b97c6, allocs191b97c6 } // 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 PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { + if x.ref191b97c6 != nil { + return *x.ref191b97c6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26164,95 +51445,90 @@ 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 *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Deref() { + if x.ref191b97c6 == 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.ref191b97c6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref191b97c6.pNext)) + x.FragmentShaderBarycentric = (Bool32)(x.ref191b97c6.fragmentShaderBarycentric) } -// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT in C. +// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) +const sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { if x == nil { return nil } - return x.ref64b2a913 + 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 *PhysicalDeviceTransformFeedbackFeatures) Free() { - if x != nil && x.allocs64b2a913 != nil { - x.allocs64b2a913.(*cgoAllocMap).Free() - x.ref64b2a913 = nil +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Free() { + if x != nil && x.allocs9d61e1b2 != nil { + x.allocs9d61e1b2.(*cgoAllocMap).Free() + x.ref9d61e1b2 = nil } } -// NewPhysicalDeviceTransformFeedbackFeaturesRef 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 NewPhysicalDeviceTransformFeedbackFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackFeatures { +func NewPhysicalDeviceShaderImageFootprintFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageFootprintFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackFeatures) - obj.ref64b2a913 = (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(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 *PhysicalDeviceTransformFeedbackFeatures) PassRef() (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref64b2a913 != nil { - return x.ref64b2a913, nil + } else if x.ref9d61e1b2 != nil { + return x.ref9d61e1b2, nil } - mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) - ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) - allocs64b2a913 := new(cgoAllocMap) - allocs64b2a913.Add(mem64b2a913) + mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) + ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) + allocs9d61e1b2 := new(cgoAllocMap) + allocs9d61e1b2.Add(mem9d61e1b2) var csType_allocs *cgoAllocMap - ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64b2a913.Borrow(csType_allocs) + ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9d61e1b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64b2a913.Borrow(cpNext_allocs) - - var ctransformFeedback_allocs *cgoAllocMap - ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown - allocs64b2a913.Borrow(ctransformFeedback_allocs) + ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cpNext_allocs) - var cgeometryStreams_allocs *cgoAllocMap - ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown - allocs64b2a913.Borrow(cgeometryStreams_allocs) + var cimageFootprint_allocs *cgoAllocMap + ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cimageFootprint_allocs) - x.ref64b2a913 = ref64b2a913 - x.allocs64b2a913 = allocs64b2a913 - return ref64b2a913, allocs64b2a913 + 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 PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { - if x.ref64b2a913 != nil { - return *x.ref64b2a913, nil +func (x PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { + if x.ref9d61e1b2 != nil { + return *x.ref9d61e1b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26260,127 +51536,94 @@ 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 *PhysicalDeviceShaderImageFootprintFeaturesNV) Deref() { + if x.ref9d61e1b2 == 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.ref9d61e1b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9d61e1b2.pNext)) + x.ImageFootprint = (Bool32)(x.ref9d61e1b2.imageFootprint) } -// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT in C. +// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) +const sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { if x == nil { return nil } - return x.refc295a2a0 + 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 *PhysicalDeviceTransformFeedbackProperties) Free() { - if x != nil && x.allocsc295a2a0 != nil { - x.allocsc295a2a0.(*cgoAllocMap).Free() - x.refc295a2a0 = nil +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Free() { + if x != nil && x.allocsa8715ba6 != nil { + x.allocsa8715ba6.(*cgoAllocMap).Free() + x.refa8715ba6 = nil } } -// NewPhysicalDeviceTransformFeedbackPropertiesRef 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 NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { +func NewPipelineViewportExclusiveScissorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportExclusiveScissorStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackProperties) - obj.refc295a2a0 = (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(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 *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) PassRef() (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc295a2a0 != nil { - return x.refc295a2a0, nil + } else if x.refa8715ba6 != nil { + return x.refa8715ba6, nil } - memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) - refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) - allocsc295a2a0 := new(cgoAllocMap) - allocsc295a2a0.Add(memc295a2a0) + mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) + refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) + allocsa8715ba6 := new(cgoAllocMap) + allocsa8715ba6.Add(mema8715ba6) var csType_allocs *cgoAllocMap - refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc295a2a0.Borrow(csType_allocs) + refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8715ba6.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) + refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8715ba6.Borrow(cpNext_allocs) - var ctransformFeedbackRasterizationStreamSelect_allocs *cgoAllocMap - refc295a2a0.transformFeedbackRasterizationStreamSelect, ctransformFeedbackRasterizationStreamSelect_allocs = (C.VkBool32)(x.TransformFeedbackRasterizationStreamSelect), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackRasterizationStreamSelect_allocs) + var cexclusiveScissorCount_allocs *cgoAllocMap + refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown + allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) - var ctransformFeedbackDraw_allocs *cgoAllocMap - refc295a2a0.transformFeedbackDraw, ctransformFeedbackDraw_allocs = (C.VkBool32)(x.TransformFeedbackDraw), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackDraw_allocs) + var cpExclusiveScissors_allocs *cgoAllocMap + refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) + allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) - x.refc295a2a0 = refc295a2a0 - x.allocsc295a2a0 = allocsc295a2a0 - return refc295a2a0, allocsc295a2a0 + 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 PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { - if x.refc295a2a0 != nil { - return *x.refc295a2a0, nil +func (x PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { + if x.refa8715ba6 != nil { + return *x.refa8715ba6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26388,103 +51631,91 @@ 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 *PipelineViewportExclusiveScissorStateCreateInfoNV) Deref() { + if x.refa8715ba6 == 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.refa8715ba6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8715ba6.pNext)) + x.ExclusiveScissorCount = (uint32)(x.refa8715ba6.exclusiveScissorCount) + packSRect2D(x.PExclusiveScissors, x.refa8715ba6.pExclusiveScissors) } -// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT in C. +// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) +const sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { if x == nil { return nil } - return x.refed6e1fb9 + 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 *PipelineRasterizationStateStreamCreateInfo) Free() { - if x != nil && x.allocsed6e1fb9 != nil { - x.allocsed6e1fb9.(*cgoAllocMap).Free() - x.refed6e1fb9 = nil +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Free() { + if x != nil && x.allocs52c9fcfc != nil { + x.allocs52c9fcfc.(*cgoAllocMap).Free() + x.ref52c9fcfc = nil } } -// NewPipelineRasterizationStateStreamCreateInfoRef 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 NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { +func NewPhysicalDeviceExclusiveScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExclusiveScissorFeaturesNV { if ref == nil { return nil } - obj := new(PipelineRasterizationStateStreamCreateInfo) - obj.refed6e1fb9 = (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(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 *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refed6e1fb9 != nil { - return x.refed6e1fb9, nil + } else if x.ref52c9fcfc != nil { + return x.ref52c9fcfc, nil } - memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) - refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) - allocsed6e1fb9 := new(cgoAllocMap) - allocsed6e1fb9.Add(memed6e1fb9) + mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) + ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) + allocs52c9fcfc := new(cgoAllocMap) + allocs52c9fcfc.Add(mem52c9fcfc) var csType_allocs *cgoAllocMap - refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsed6e1fb9.Borrow(csType_allocs) + ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs52c9fcfc.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) + ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cpNext_allocs) - var crasterizationStream_allocs *cgoAllocMap - refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown - allocsed6e1fb9.Borrow(crasterizationStream_allocs) + var cexclusiveScissor_allocs *cgoAllocMap + ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) - x.refed6e1fb9 = refed6e1fb9 - x.allocsed6e1fb9 = allocsed6e1fb9 - return refed6e1fb9, allocsed6e1fb9 + 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 PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { - if x.refed6e1fb9 != nil { - return *x.refed6e1fb9, nil +func (x PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { + if x.ref52c9fcfc != nil { + return *x.ref52c9fcfc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26492,91 +51723,90 @@ func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRas // Deref uses the underlying reference to C object and fills the wrapping struct with 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 { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Deref() { + if x.ref52c9fcfc == 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) + x.SType = (StructureType)(x.ref52c9fcfc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref52c9fcfc.pNext)) + x.ExclusiveScissor = (Bool32)(x.ref52c9fcfc.exclusiveScissor) } -// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD in C. +// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV 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()) +func allocQueueFamilyCheckpointPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) +const sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { +func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { if x == nil { return nil } - return x.ref519ba3a9 + 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 *TextureLODGatherFormatPropertiesAMD) Free() { - if x != nil && x.allocs519ba3a9 != nil { - x.allocs519ba3a9.(*cgoAllocMap).Free() - x.ref519ba3a9 = nil +func (x *QueueFamilyCheckpointPropertiesNV) Free() { + if x != nil && x.allocs351f58c6 != nil { + x.allocs351f58c6.(*cgoAllocMap).Free() + x.ref351f58c6 = nil } } -// NewTextureLODGatherFormatPropertiesAMDRef 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 NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { +func NewQueueFamilyCheckpointPropertiesNVRef(ref unsafe.Pointer) *QueueFamilyCheckpointPropertiesNV { if ref == nil { return nil } - obj := new(TextureLODGatherFormatPropertiesAMD) - obj.ref519ba3a9 = (*C.VkTextureLODGatherFormatPropertiesAMD)(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 *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { +func (x *QueueFamilyCheckpointPropertiesNV) PassRef() (*C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref519ba3a9 != nil { - return x.ref519ba3a9, nil + } else if x.ref351f58c6 != nil { + return x.ref351f58c6, nil } - mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) - ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) - allocs519ba3a9 := new(cgoAllocMap) - allocs519ba3a9.Add(mem519ba3a9) + mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) + ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) + allocs351f58c6 := new(cgoAllocMap) + allocs351f58c6.Add(mem351f58c6) var csType_allocs *cgoAllocMap - ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs519ba3a9.Borrow(csType_allocs) + ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs351f58c6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs519ba3a9.Borrow(cpNext_allocs) + ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs351f58c6.Borrow(cpNext_allocs) - var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap - ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown - allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) - x.ref519ba3a9 = ref519ba3a9 - x.allocs519ba3a9 = allocs519ba3a9 - return ref519ba3a9, allocs519ba3a9 + 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 TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { - if x.ref519ba3a9 != nil { - return *x.ref519ba3a9, nil +func (x QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { + if x.ref351f58c6 != nil { + return *x.ref351f58c6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26584,98 +51814,94 @@ 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 *QueueFamilyCheckpointPropertiesNV) Deref() { + if x.ref351f58c6 == 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.ref351f58c6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref351f58c6.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags)(x.ref351f58c6.checkpointExecutionStageMask) } -// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD in C. +// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCheckpointDataNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointDataNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) +const sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { +func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { if x == nil { return nil } - return x.ref8a688131 + 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 *ShaderResourceUsageAMD) Free() { - if x != nil && x.allocs8a688131 != nil { - x.allocs8a688131.(*cgoAllocMap).Free() - x.ref8a688131 = nil +func (x *CheckpointDataNV) Free() { + if x != nil && x.allocsd1c9224b != nil { + x.allocsd1c9224b.(*cgoAllocMap).Free() + x.refd1c9224b = nil } } -// NewShaderResourceUsageAMDRef 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 NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { +func NewCheckpointDataNVRef(ref unsafe.Pointer) *CheckpointDataNV { if ref == nil { return nil } - obj := new(ShaderResourceUsageAMD) - obj.ref8a688131 = (*C.VkShaderResourceUsageAMD)(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 *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { +func (x *CheckpointDataNV) PassRef() (*C.VkCheckpointDataNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a688131 != nil { - return x.ref8a688131, nil + } else if x.refd1c9224b != nil { + return x.refd1c9224b, 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) + memd1c9224b := allocCheckpointDataNVMemory(1) + refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) + allocsd1c9224b := new(cgoAllocMap) + allocsd1c9224b.Add(memd1c9224b) - var cnumUsedSgprs_allocs *cgoAllocMap - ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown - allocs8a688131.Borrow(cnumUsedSgprs_allocs) + var csType_allocs *cgoAllocMap + refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd1c9224b.Borrow(csType_allocs) - var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap - ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown - allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) + var cpNext_allocs *cgoAllocMap + refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpNext_allocs) - var cldsUsageSizeInBytes_allocs *cgoAllocMap - ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) + var cstage_allocs *cgoAllocMap + refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown + allocsd1c9224b.Borrow(cstage_allocs) - var cscratchMemUsageInBytes_allocs *cgoAllocMap - ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) + var cpCheckpointMarker_allocs *cgoAllocMap + refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpCheckpointMarker_allocs) - x.ref8a688131 = ref8a688131 - x.allocs8a688131 = allocs8a688131 - return ref8a688131, allocs8a688131 + 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 ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { - if x.ref8a688131 != nil { - return *x.ref8a688131, nil +func (x CheckpointDataNV) PassValue() (C.VkCheckpointDataNV, *cgoAllocMap) { + if x.refd1c9224b != nil { + return *x.refd1c9224b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26683,108 +51909,91 @@ 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 *CheckpointDataNV) Deref() { + if x.refd1c9224b == 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) + 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)) } -// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD in C. +// allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL 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()) +func allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) +const sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Ref() *C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if x == nil { return nil } - return x.ref896a52bf + 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 *ShaderStatisticsInfoAMD) Free() { - if x != nil && x.allocs896a52bf != nil { - x.allocs896a52bf.(*cgoAllocMap).Free() - x.ref896a52bf = nil +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Free() { + if x != nil && x.allocsff2cd6c != nil { + x.allocsff2cd6c.(*cgoAllocMap).Free() + x.refff2cd6c = nil } } -// NewShaderStatisticsInfoAMDRef 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 NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { +func NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if ref == nil { return nil } - obj := new(ShaderStatisticsInfoAMD) - obj.ref896a52bf = (*C.VkShaderStatisticsInfoAMD)(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 *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassRef() (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref896a52bf != nil { - return x.ref896a52bf, nil + } else if x.refff2cd6c != nil { + return x.refff2cd6c, nil } - mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) - ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) - allocs896a52bf := new(cgoAllocMap) - allocs896a52bf.Add(mem896a52bf) - - 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) + memff2cd6c := allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(1) + refff2cd6c := (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(memff2cd6c) + allocsff2cd6c := new(cgoAllocMap) + allocsff2cd6c.Add(memff2cd6c) - var cnumAvailableVgprs_allocs *cgoAllocMap - ref896a52bf.numAvailableVgprs, cnumAvailableVgprs_allocs = (C.uint32_t)(x.NumAvailableVgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumAvailableVgprs_allocs) + var csType_allocs *cgoAllocMap + refff2cd6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff2cd6c.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 + refff2cd6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff2cd6c.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 cshaderIntegerFunctions2_allocs *cgoAllocMap + refff2cd6c.shaderIntegerFunctions2, cshaderIntegerFunctions2_allocs = (C.VkBool32)(x.ShaderIntegerFunctions2), cgoAllocsUnknown + allocsff2cd6c.Borrow(cshaderIntegerFunctions2_allocs) - x.ref896a52bf = ref896a52bf - x.allocs896a52bf = allocs896a52bf - return ref896a52bf, allocs896a52bf + 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 ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { - if x.ref896a52bf != nil { - return *x.ref896a52bf, nil +func (x PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassValue() (C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { + if x.refff2cd6c != nil { + return *x.refff2cd6c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26792,94 +52001,86 @@ 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 *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Deref() { + if x.refff2cd6c == 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.refff2cd6c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff2cd6c.pNext)) + x.ShaderIntegerFunctions2 = (Bool32)(x.refff2cd6c.shaderIntegerFunctions2) } -// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV in C. +// allocPerformanceValueINTELMemory allocates memory for type C.VkPerformanceValueINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPerformanceValueINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceValueINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) +const sizeOfPerformanceValueINTELValue = unsafe.Sizeof([1]C.VkPerformanceValueINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { +func (x *PerformanceValueINTEL) Ref() *C.VkPerformanceValueINTEL { if x == nil { return nil } - return x.refdf4a62d1 + 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 *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { - if x != nil && x.allocsdf4a62d1 != nil { - x.allocsdf4a62d1.(*cgoAllocMap).Free() - x.refdf4a62d1 = nil +func (x *PerformanceValueINTEL) Free() { + if x != nil && x.allocse6a134ae != nil { + x.allocse6a134ae.(*cgoAllocMap).Free() + x.refe6a134ae = nil } } -// NewPhysicalDeviceCornerSampledImageFeaturesNVRef 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 NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { +func NewPerformanceValueINTELRef(ref unsafe.Pointer) *PerformanceValueINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceCornerSampledImageFeaturesNV) - obj.refdf4a62d1 = (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(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 *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { +func (x *PerformanceValueINTEL) PassRef() (*C.VkPerformanceValueINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdf4a62d1 != nil { - return x.refdf4a62d1, nil + } else if x.refe6a134ae != nil { + return x.refe6a134ae, nil } - memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) - refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) - allocsdf4a62d1 := new(cgoAllocMap) - allocsdf4a62d1.Add(memdf4a62d1) - - var csType_allocs *cgoAllocMap - refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdf4a62d1.Borrow(csType_allocs) + meme6a134ae := allocPerformanceValueINTELMemory(1) + refe6a134ae := (*C.VkPerformanceValueINTEL)(meme6a134ae) + allocse6a134ae := new(cgoAllocMap) + allocse6a134ae.Add(meme6a134ae) - var cpNext_allocs *cgoAllocMap - refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdf4a62d1.Borrow(cpNext_allocs) + var c_type_allocs *cgoAllocMap + refe6a134ae._type, c_type_allocs = (C.VkPerformanceValueTypeINTEL)(x.Type), cgoAllocsUnknown + allocse6a134ae.Borrow(c_type_allocs) - var ccornerSampledImage_allocs *cgoAllocMap - refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown - allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) + var cdata_allocs *cgoAllocMap + refe6a134ae.data, cdata_allocs = *(*C.VkPerformanceValueDataINTEL)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown + allocse6a134ae.Borrow(cdata_allocs) - x.refdf4a62d1 = refdf4a62d1 - x.allocsdf4a62d1 = allocsdf4a62d1 - return refdf4a62d1, allocsdf4a62d1 + 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 PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { - if x.refdf4a62d1 != nil { - return *x.refdf4a62d1, nil +func (x PerformanceValueINTEL) PassValue() (C.VkPerformanceValueINTEL, *cgoAllocMap) { + if x.refe6a134ae != nil { + return *x.refe6a134ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26887,94 +52088,89 @@ 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 *PerformanceValueINTEL) Deref() { + if x.refe6a134ae == nil { return } - x.SType = (StructureType)(x.refdf4a62d1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf4a62d1.pNext)) - x.CornerSampledImage = (Bool32)(x.refdf4a62d1.cornerSampledImage) + x.Type = (PerformanceValueTypeINTEL)(x.refe6a134ae._type) + x.Data = *(*PerformanceValueDataINTEL)(unsafe.Pointer(&x.refe6a134ae.data)) } -// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV in C. +// allocInitializePerformanceApiInfoINTELMemory allocates memory for type C.VkInitializePerformanceApiInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocInitializePerformanceApiInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInitializePerformanceApiInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) +const sizeOfInitializePerformanceApiInfoINTELValue = unsafe.Sizeof([1]C.VkInitializePerformanceApiInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { +func (x *InitializePerformanceApiInfoINTEL) Ref() *C.VkInitializePerformanceApiInfoINTEL { if x == nil { return nil } - return x.refa8900ce5 + 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 *ExternalImageFormatPropertiesNV) Free() { - if x != nil && x.allocsa8900ce5 != nil { - x.allocsa8900ce5.(*cgoAllocMap).Free() - x.refa8900ce5 = nil +func (x *InitializePerformanceApiInfoINTEL) Free() { + if x != nil && x.allocsb72b1cf3 != nil { + x.allocsb72b1cf3.(*cgoAllocMap).Free() + x.refb72b1cf3 = nil } } -// NewExternalImageFormatPropertiesNVRef 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 NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { +func NewInitializePerformanceApiInfoINTELRef(ref unsafe.Pointer) *InitializePerformanceApiInfoINTEL { if ref == nil { return nil } - obj := new(ExternalImageFormatPropertiesNV) - obj.refa8900ce5 = (*C.VkExternalImageFormatPropertiesNV)(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 *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refa8900ce5 != nil { - return x.refa8900ce5, nil - } - mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) - refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) - allocsa8900ce5 := new(cgoAllocMap) - allocsa8900ce5.Add(mema8900ce5) +} - var cimageFormatProperties_allocs *cgoAllocMap - refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() - allocsa8900ce5.Borrow(cimageFormatProperties_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 *InitializePerformanceApiInfoINTEL) PassRef() (*C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb72b1cf3 != nil { + return x.refb72b1cf3, nil + } + memb72b1cf3 := allocInitializePerformanceApiInfoINTELMemory(1) + refb72b1cf3 := (*C.VkInitializePerformanceApiInfoINTEL)(memb72b1cf3) + allocsb72b1cf3 := new(cgoAllocMap) + allocsb72b1cf3.Add(memb72b1cf3) - var cexternalMemoryFeatures_allocs *cgoAllocMap - refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) + var csType_allocs *cgoAllocMap + refb72b1cf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb72b1cf3.Borrow(csType_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) + var cpNext_allocs *cgoAllocMap + refb72b1cf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpNext_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - refa8900ce5.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(ccompatibleHandleTypes_allocs) + var cpUserData_allocs *cgoAllocMap + refb72b1cf3.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpUserData_allocs) - x.refa8900ce5 = refa8900ce5 - x.allocsa8900ce5 = allocsa8900ce5 - return refa8900ce5, allocsa8900ce5 + 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 ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { - if x.refa8900ce5 != nil { - return *x.refa8900ce5, nil +func (x InitializePerformanceApiInfoINTEL) PassValue() (C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { + if x.refb72b1cf3 != nil { + return *x.refb72b1cf3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26982,91 +52178,90 @@ 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 *InitializePerformanceApiInfoINTEL) Deref() { + if x.refb72b1cf3 == 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.refb72b1cf3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pNext)) + x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pUserData)) } -// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV in C. +// allocQueryPoolPerformanceQueryCreateInfoINTELMemory allocates memory for type C.VkQueryPoolPerformanceQueryCreateInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocQueryPoolPerformanceQueryCreateInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) +const sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceQueryCreateInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.ref9a7fb6c8 + 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 *ExternalMemoryImageCreateInfoNV) Free() { - if x != nil && x.allocs9a7fb6c8 != nil { - x.allocs9a7fb6c8.(*cgoAllocMap).Free() - x.ref9a7fb6c8 = nil +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewExternalMemoryImageCreateInfoNVRef 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 NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { +func NewQueryPoolPerformanceQueryCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolPerformanceQueryCreateInfoINTEL { if ref == nil { return nil } - obj := new(ExternalMemoryImageCreateInfoNV) - obj.ref9a7fb6c8 = (*C.VkExternalMemoryImageCreateInfoNV)(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 *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a7fb6c8 != nil { - return x.ref9a7fb6c8, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) - ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) - allocs9a7fb6c8 := new(cgoAllocMap) - allocs9a7fb6c8.Add(mem9a7fb6c8) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(cpNext_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(chandleTypes_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.ref9a7fb6c8 = ref9a7fb6c8 - x.allocs9a7fb6c8 = allocs9a7fb6c8 - return ref9a7fb6c8, allocs9a7fb6c8 + 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 ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { - if x.ref9a7fb6c8 != nil { - return *x.ref9a7fb6c8, nil +func (x QueryPoolPerformanceQueryCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27074,90 +52269,78 @@ 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 *QueryPoolPerformanceQueryCreateInfoINTEL) Deref() { + if x.refb8883992 == nil { return } - x.SType = (StructureType)(x.ref9a7fb6c8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a7fb6c8.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref9a7fb6c8.handleTypes) -} - -// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV 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)) - 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 sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { +func (x *QueryPoolCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.ref5066f33 + 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 *ExportMemoryAllocateInfoNV) Free() { - if x != nil && x.allocs5066f33 != nil { - x.allocs5066f33.(*cgoAllocMap).Free() - x.ref5066f33 = nil +func (x *QueryPoolCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewExportMemoryAllocateInfoNVRef 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 NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { +func NewQueryPoolCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolCreateInfoINTEL { if ref == nil { return nil } - obj := new(ExportMemoryAllocateInfoNV) - obj.ref5066f33 = (*C.VkExportMemoryAllocateInfoNV)(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 *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { +func (x *QueryPoolCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5066f33 != nil { - return x.ref5066f33, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) - ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) - allocs5066f33 := new(cgoAllocMap) - allocs5066f33.Add(mem5066f33) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5066f33.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5066f33.Borrow(cpNext_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs5066f33.Borrow(chandleTypes_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.ref5066f33 = ref5066f33 - x.allocs5066f33 = allocs5066f33 - return ref5066f33, allocs5066f33 + 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 ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { - if x.ref5066f33 != nil { - return *x.ref5066f33, nil +func (x QueryPoolCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27165,94 +52348,90 @@ 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 *QueryPoolCreateInfoINTEL) Deref() { + if x.refb8883992 == 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.refb8883992.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) + x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) } -// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT in C. +// allocPerformanceMarkerInfoINTELMemory allocates memory for type C.VkPerformanceMarkerInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPerformanceMarkerInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceMarkerInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) +const sizeOfPerformanceMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { +func (x *PerformanceMarkerInfoINTEL) Ref() *C.VkPerformanceMarkerInfoINTEL { if x == nil { return nil } - return x.refffe080ad + 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 *ValidationFlags) Free() { - if x != nil && x.allocsffe080ad != nil { - x.allocsffe080ad.(*cgoAllocMap).Free() - x.refffe080ad = nil +func (x *PerformanceMarkerInfoINTEL) Free() { + if x != nil && x.allocsbf575d93 != nil { + x.allocsbf575d93.(*cgoAllocMap).Free() + x.refbf575d93 = nil } } -// NewValidationFlagsRef 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 NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { +func NewPerformanceMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceMarkerInfoINTEL { if ref == nil { return nil } - obj := new(ValidationFlags) - obj.refffe080ad = (*C.VkValidationFlagsEXT)(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 *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { +func (x *PerformanceMarkerInfoINTEL) PassRef() (*C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe080ad != nil { - return x.refffe080ad, nil + } else if x.refbf575d93 != nil { + return x.refbf575d93, nil } - memffe080ad := allocValidationFlagsMemory(1) - refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) - allocsffe080ad := new(cgoAllocMap) - allocsffe080ad.Add(memffe080ad) + membf575d93 := allocPerformanceMarkerInfoINTELMemory(1) + refbf575d93 := (*C.VkPerformanceMarkerInfoINTEL)(membf575d93) + allocsbf575d93 := new(cgoAllocMap) + allocsbf575d93.Add(membf575d93) var csType_allocs *cgoAllocMap - refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe080ad.Borrow(csType_allocs) + refbf575d93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbf575d93.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffe080ad.Borrow(cpNext_allocs) - - var cdisabledValidationCheckCount_allocs *cgoAllocMap - refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown - allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) + refbf575d93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbf575d93.Borrow(cpNext_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 cmarker_allocs *cgoAllocMap + refbf575d93.marker, cmarker_allocs = (C.uint64_t)(x.Marker), cgoAllocsUnknown + allocsbf575d93.Borrow(cmarker_allocs) - x.refffe080ad = refffe080ad - x.allocsffe080ad = allocsffe080ad - return refffe080ad, allocsffe080ad + 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 ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { - if x.refffe080ad != nil { - return *x.refffe080ad, nil +func (x PerformanceMarkerInfoINTEL) PassValue() (C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { + if x.refbf575d93 != nil { + return *x.refbf575d93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27260,95 +52439,90 @@ 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 *PerformanceMarkerInfoINTEL) Deref() { + if x.refbf575d93 == 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.refbf575d93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbf575d93.pNext)) + x.Marker = (uint64)(x.refbf575d93.marker) } -// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT in C. +// allocPerformanceStreamMarkerInfoINTELMemory allocates memory for type C.VkPerformanceStreamMarkerInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPerformanceStreamMarkerInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceStreamMarkerInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) +const sizeOfPerformanceStreamMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceStreamMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { +func (x *PerformanceStreamMarkerInfoINTEL) Ref() *C.VkPerformanceStreamMarkerInfoINTEL { if x == nil { return nil } - return x.ref3a973fc0 + 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 *ImageViewASTCDecodeMode) Free() { - if x != nil && x.allocs3a973fc0 != nil { - x.allocs3a973fc0.(*cgoAllocMap).Free() - x.ref3a973fc0 = nil +func (x *PerformanceStreamMarkerInfoINTEL) Free() { + if x != nil && x.allocsaaf8355c != nil { + x.allocsaaf8355c.(*cgoAllocMap).Free() + x.refaaf8355c = nil } } -// NewImageViewASTCDecodeModeRef 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 NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { +func NewPerformanceStreamMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceStreamMarkerInfoINTEL { if ref == nil { return nil } - obj := new(ImageViewASTCDecodeMode) - obj.ref3a973fc0 = (*C.VkImageViewASTCDecodeModeEXT)(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 *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { +func (x *PerformanceStreamMarkerInfoINTEL) PassRef() (*C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3a973fc0 != nil { - return x.ref3a973fc0, nil + } else if x.refaaf8355c != nil { + return x.refaaf8355c, nil } - mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) - ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) - allocs3a973fc0 := new(cgoAllocMap) - allocs3a973fc0.Add(mem3a973fc0) + memaaf8355c := allocPerformanceStreamMarkerInfoINTELMemory(1) + refaaf8355c := (*C.VkPerformanceStreamMarkerInfoINTEL)(memaaf8355c) + allocsaaf8355c := new(cgoAllocMap) + allocsaaf8355c.Add(memaaf8355c) var csType_allocs *cgoAllocMap - ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3a973fc0.Borrow(csType_allocs) + refaaf8355c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaaf8355c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3a973fc0.Borrow(cpNext_allocs) + refaaf8355c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaaf8355c.Borrow(cpNext_allocs) - var cdecodeMode_allocs *cgoAllocMap - ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown - allocs3a973fc0.Borrow(cdecodeMode_allocs) + var cmarker_allocs *cgoAllocMap + refaaf8355c.marker, cmarker_allocs = (C.uint32_t)(x.Marker), cgoAllocsUnknown + allocsaaf8355c.Borrow(cmarker_allocs) - x.ref3a973fc0 = ref3a973fc0 - x.allocs3a973fc0 = allocs3a973fc0 - return ref3a973fc0, allocs3a973fc0 + 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 ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { - if x.ref3a973fc0 != nil { - return *x.ref3a973fc0, nil +func (x PerformanceStreamMarkerInfoINTEL) PassValue() (C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { + if x.refaaf8355c != nil { + return *x.refaaf8355c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27356,90 +52530,98 @@ 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 *PerformanceStreamMarkerInfoINTEL) Deref() { + if x.refaaf8355c == 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.refaaf8355c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaaf8355c.pNext)) + x.Marker = (uint32)(x.refaaf8355c.marker) } -// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT in C. +// allocPerformanceOverrideInfoINTELMemory allocates memory for type C.VkPerformanceOverrideInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPerformanceOverrideInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceOverrideInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) +const sizeOfPerformanceOverrideInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceOverrideInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { +func (x *PerformanceOverrideInfoINTEL) Ref() *C.VkPerformanceOverrideInfoINTEL { if x == nil { return nil } - return x.refd8af7d5a + 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 *PhysicalDeviceASTCDecodeFeatures) Free() { - if x != nil && x.allocsd8af7d5a != nil { - x.allocsd8af7d5a.(*cgoAllocMap).Free() - x.refd8af7d5a = nil +func (x *PerformanceOverrideInfoINTEL) Free() { + if x != nil && x.allocs1cdbce31 != nil { + x.allocs1cdbce31.(*cgoAllocMap).Free() + x.ref1cdbce31 = nil } } -// NewPhysicalDeviceASTCDecodeFeaturesRef 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 NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { +func NewPerformanceOverrideInfoINTELRef(ref unsafe.Pointer) *PerformanceOverrideInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceASTCDecodeFeatures) - obj.refd8af7d5a = (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(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 *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { +func (x *PerformanceOverrideInfoINTEL) PassRef() (*C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8af7d5a != nil { - return x.refd8af7d5a, nil + } else if x.ref1cdbce31 != nil { + return x.ref1cdbce31, nil } - memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) - refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) - allocsd8af7d5a := new(cgoAllocMap) - allocsd8af7d5a.Add(memd8af7d5a) + mem1cdbce31 := allocPerformanceOverrideInfoINTELMemory(1) + ref1cdbce31 := (*C.VkPerformanceOverrideInfoINTEL)(mem1cdbce31) + allocs1cdbce31 := new(cgoAllocMap) + allocs1cdbce31.Add(mem1cdbce31) var csType_allocs *cgoAllocMap - refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8af7d5a.Borrow(csType_allocs) + ref1cdbce31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cdbce31.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cpNext_allocs) + ref1cdbce31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cdbce31.Borrow(cpNext_allocs) - var cdecodeModeSharedExponent_allocs *cgoAllocMap - refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) + var c_type_allocs *cgoAllocMap + ref1cdbce31._type, c_type_allocs = (C.VkPerformanceOverrideTypeINTEL)(x.Type), cgoAllocsUnknown + allocs1cdbce31.Borrow(c_type_allocs) - x.refd8af7d5a = refd8af7d5a - x.allocsd8af7d5a = allocsd8af7d5a - return refd8af7d5a, allocsd8af7d5a + var cenable_allocs *cgoAllocMap + ref1cdbce31.enable, cenable_allocs = (C.VkBool32)(x.Enable), cgoAllocsUnknown + allocs1cdbce31.Borrow(cenable_allocs) + + 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 PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { - if x.refd8af7d5a != nil { - return *x.refd8af7d5a, nil +func (x PerformanceOverrideInfoINTEL) PassValue() (C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { + if x.ref1cdbce31 != nil { + return *x.ref1cdbce31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27447,98 +52629,92 @@ 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 *PerformanceOverrideInfoINTEL) Deref() { + if x.ref1cdbce31 == nil { return } - x.SType = (StructureType)(x.refd8af7d5a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) - x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) + 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) } -// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT in C. +// allocPerformanceConfigurationAcquireInfoINTELMemory allocates memory for type C.VkPerformanceConfigurationAcquireInfoINTEL 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPerformanceConfigurationAcquireInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceConfigurationAcquireInfoINTELValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) +const sizeOfPerformanceConfigurationAcquireInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceConfigurationAcquireInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { +func (x *PerformanceConfigurationAcquireInfoINTEL) Ref() *C.VkPerformanceConfigurationAcquireInfoINTEL { if x == nil { return nil } - return x.ref82da87c9 + 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 *ConditionalRenderingBeginInfo) Free() { - if x != nil && x.allocs82da87c9 != nil { - x.allocs82da87c9.(*cgoAllocMap).Free() - x.ref82da87c9 = nil +func (x *PerformanceConfigurationAcquireInfoINTEL) Free() { + if x != nil && x.allocs16c1d105 != nil { + x.allocs16c1d105.(*cgoAllocMap).Free() + x.ref16c1d105 = nil } } -// NewConditionalRenderingBeginInfoRef 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 NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { +func NewPerformanceConfigurationAcquireInfoINTELRef(ref unsafe.Pointer) *PerformanceConfigurationAcquireInfoINTEL { if ref == nil { return nil } - obj := new(ConditionalRenderingBeginInfo) - obj.ref82da87c9 = (*C.VkConditionalRenderingBeginInfoEXT)(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 *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { +func (x *PerformanceConfigurationAcquireInfoINTEL) PassRef() (*C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref82da87c9 != nil { - return x.ref82da87c9, nil + } else if x.ref16c1d105 != nil { + return x.ref16c1d105, nil } - mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) - ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) - allocs82da87c9 := new(cgoAllocMap) - allocs82da87c9.Add(mem82da87c9) + mem16c1d105 := allocPerformanceConfigurationAcquireInfoINTELMemory(1) + ref16c1d105 := (*C.VkPerformanceConfigurationAcquireInfoINTEL)(mem16c1d105) + allocs16c1d105 := new(cgoAllocMap) + allocs16c1d105.Add(mem16c1d105) var csType_allocs *cgoAllocMap - ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs82da87c9.Borrow(csType_allocs) + ref16c1d105.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs16c1d105.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) + ref16c1d105.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs16c1d105.Borrow(cpNext_allocs) - 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) + var c_type_allocs *cgoAllocMap + ref16c1d105._type, c_type_allocs = (C.VkPerformanceConfigurationTypeINTEL)(x.Type), cgoAllocsUnknown + allocs16c1d105.Borrow(c_type_allocs) - x.ref82da87c9 = ref82da87c9 - x.allocs82da87c9 = allocs82da87c9 - return ref82da87c9, allocs82da87c9 + 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 ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { - if x.ref82da87c9 != nil { - return *x.ref82da87c9, nil +func (x PerformanceConfigurationAcquireInfoINTEL) PassValue() (C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { + if x.ref16c1d105 != nil { + return *x.ref16c1d105, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27546,96 +52722,102 @@ 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 *PerformanceConfigurationAcquireInfoINTEL) Deref() { + if x.ref16c1d105 == 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.ref16c1d105.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref16c1d105.pNext)) + x.Type = (PerformanceConfigurationTypeINTEL)(x.ref16c1d105._type) } -// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT in C. +// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevicePCIBusInfoPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePCIBusInfoPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) +const sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { +func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { if x == nil { return nil } - return x.ref89d2a224 + 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 *PhysicalDeviceConditionalRenderingFeatures) Free() { - if x != nil && x.allocs89d2a224 != nil { - x.allocs89d2a224.(*cgoAllocMap).Free() - x.ref89d2a224 = nil +func (x *PhysicalDevicePCIBusInfoProperties) Free() { + if x != nil && x.allocsdd9947ff != nil { + x.allocsdd9947ff.(*cgoAllocMap).Free() + x.refdd9947ff = nil } } -// NewPhysicalDeviceConditionalRenderingFeaturesRef 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 NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { +func NewPhysicalDevicePCIBusInfoPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePCIBusInfoProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceConditionalRenderingFeatures) - obj.ref89d2a224 = (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(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 *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDevicePCIBusInfoProperties) PassRef() (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89d2a224 != nil { - return x.ref89d2a224, nil + } else if x.refdd9947ff != nil { + return x.refdd9947ff, nil } - mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) - ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) - allocs89d2a224 := new(cgoAllocMap) - allocs89d2a224.Add(mem89d2a224) + memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) + refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) + allocsdd9947ff := new(cgoAllocMap) + allocsdd9947ff.Add(memdd9947ff) var csType_allocs *cgoAllocMap - ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs89d2a224.Borrow(csType_allocs) + refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdd9947ff.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs89d2a224.Borrow(cpNext_allocs) + refdd9947ff.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpNext_allocs) - var cconditionalRendering_allocs *cgoAllocMap - ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cconditionalRendering_allocs) + var cpciDomain_allocs *cgoAllocMap + refdd9947ff.pciDomain, cpciDomain_allocs = (C.uint32_t)(x.PciDomain), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDomain_allocs) - var cinheritedConditionalRendering_allocs *cgoAllocMap - ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) + var cpciBus_allocs *cgoAllocMap + refdd9947ff.pciBus, cpciBus_allocs = (C.uint32_t)(x.PciBus), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciBus_allocs) - x.ref89d2a224 = ref89d2a224 - x.allocs89d2a224 = allocs89d2a224 - return ref89d2a224, allocs89d2a224 + var cpciDevice_allocs *cgoAllocMap + refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint32_t)(x.PciDevice), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDevice_allocs) + + var cpciFunction_allocs *cgoAllocMap + refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint32_t)(x.PciFunction), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciFunction_allocs) + + 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 PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { - if x.ref89d2a224 != nil { - return *x.ref89d2a224, nil +func (x PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { + if x.refdd9947ff != nil { + return *x.refdd9947ff, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27643,91 +52825,93 @@ 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 *PhysicalDevicePCIBusInfoProperties) Deref() { + if x.refdd9947ff == 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) + 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) } -// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT in C. +// allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory allocates memory for type C.VkDisplayNativeHdrSurfaceCapabilitiesAMD 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()) +func allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) +const sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue = unsafe.Sizeof([1]C.VkDisplayNativeHdrSurfaceCapabilitiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Ref() *C.VkDisplayNativeHdrSurfaceCapabilitiesAMD { if x == nil { return nil } - return x.ref7155f49c + 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 *CommandBufferInheritanceConditionalRenderingInfo) Free() { - if x != nil && x.allocs7155f49c != nil { - x.allocs7155f49c.(*cgoAllocMap).Free() - x.ref7155f49c = nil +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Free() { + if x != nil && x.allocs2521293a != nil { + x.allocs2521293a.(*cgoAllocMap).Free() + x.ref2521293a = nil } } -// NewCommandBufferInheritanceConditionalRenderingInfoRef 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 NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { +func NewDisplayNativeHdrSurfaceCapabilitiesAMDRef(ref unsafe.Pointer) *DisplayNativeHdrSurfaceCapabilitiesAMD { if ref == nil { return nil } - obj := new(CommandBufferInheritanceConditionalRenderingInfo) - obj.ref7155f49c = (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(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 *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) PassRef() (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7155f49c != nil { - return x.ref7155f49c, nil + } else if x.ref2521293a != nil { + return x.ref2521293a, nil } - mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) - ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) - allocs7155f49c := new(cgoAllocMap) - allocs7155f49c.Add(mem7155f49c) + mem2521293a := allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(1) + ref2521293a := (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(mem2521293a) + allocs2521293a := new(cgoAllocMap) + allocs2521293a.Add(mem2521293a) var csType_allocs *cgoAllocMap - ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7155f49c.Borrow(csType_allocs) + ref2521293a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2521293a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7155f49c.Borrow(cpNext_allocs) + ref2521293a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2521293a.Borrow(cpNext_allocs) - var cconditionalRenderingEnable_allocs *cgoAllocMap - ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown - allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) + var clocalDimmingSupport_allocs *cgoAllocMap + ref2521293a.localDimmingSupport, clocalDimmingSupport_allocs = (C.VkBool32)(x.LocalDimmingSupport), cgoAllocsUnknown + allocs2521293a.Borrow(clocalDimmingSupport_allocs) - x.ref7155f49c = ref7155f49c - x.allocs7155f49c = allocs7155f49c - return ref7155f49c, allocs7155f49c + 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 CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { - if x.ref7155f49c != nil { - return *x.ref7155f49c, nil +func (x DisplayNativeHdrSurfaceCapabilitiesAMD) PassValue() (C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { + if x.ref2521293a != nil { + return *x.ref2521293a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27735,90 +52919,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 *DisplayNativeHdrSurfaceCapabilitiesAMD) Deref() { + if x.ref2521293a == 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.ref2521293a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2521293a.pNext)) + x.LocalDimmingSupport = (Bool32)(x.ref2521293a.localDimmingSupport) } -// allocDeviceGeneratedCommandsFeaturesNVXMemory allocates memory for type C.VkDeviceGeneratedCommandsFeaturesNVX in C. +// allocSwapchainDisplayNativeHdrCreateInfoAMDMemory allocates memory for type C.VkSwapchainDisplayNativeHdrCreateInfoAMD 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGeneratedCommandsFeaturesNVXValue = unsafe.Sizeof([1]C.VkDeviceGeneratedCommandsFeaturesNVX{}) +const sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue = unsafe.Sizeof([1]C.VkSwapchainDisplayNativeHdrCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGeneratedCommandsFeaturesNVX) Ref() *C.VkDeviceGeneratedCommandsFeaturesNVX { +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Ref() *C.VkSwapchainDisplayNativeHdrCreateInfoAMD { if x == nil { return nil } - return x.ref489899be + 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 *DeviceGeneratedCommandsFeaturesNVX) Free() { - if x != nil && x.allocs489899be != nil { - x.allocs489899be.(*cgoAllocMap).Free() - x.ref489899be = nil +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Free() { + if x != nil && x.allocsffbe2634 != nil { + x.allocsffbe2634.(*cgoAllocMap).Free() + x.refffbe2634 = nil } } -// NewDeviceGeneratedCommandsFeaturesNVXRef 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 NewDeviceGeneratedCommandsFeaturesNVXRef(ref unsafe.Pointer) *DeviceGeneratedCommandsFeaturesNVX { +func NewSwapchainDisplayNativeHdrCreateInfoAMDRef(ref unsafe.Pointer) *SwapchainDisplayNativeHdrCreateInfoAMD { if ref == nil { return nil } - obj := new(DeviceGeneratedCommandsFeaturesNVX) - obj.ref489899be = (*C.VkDeviceGeneratedCommandsFeaturesNVX)(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 *DeviceGeneratedCommandsFeaturesNVX) PassRef() (*C.VkDeviceGeneratedCommandsFeaturesNVX, *cgoAllocMap) { +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) PassRef() (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref489899be != nil { - return x.ref489899be, nil + } else if x.refffbe2634 != nil { + return x.refffbe2634, nil } - mem489899be := allocDeviceGeneratedCommandsFeaturesNVXMemory(1) - ref489899be := (*C.VkDeviceGeneratedCommandsFeaturesNVX)(mem489899be) - allocs489899be := new(cgoAllocMap) - allocs489899be.Add(mem489899be) + memffbe2634 := allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(1) + refffbe2634 := (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(memffbe2634) + allocsffbe2634 := new(cgoAllocMap) + allocsffbe2634.Add(memffbe2634) var csType_allocs *cgoAllocMap - ref489899be.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs489899be.Borrow(csType_allocs) + refffbe2634.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffbe2634.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref489899be.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs489899be.Borrow(cpNext_allocs) + refffbe2634.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffbe2634.Borrow(cpNext_allocs) - var ccomputeBindingPointSupport_allocs *cgoAllocMap - ref489899be.computeBindingPointSupport, ccomputeBindingPointSupport_allocs = (C.VkBool32)(x.ComputeBindingPointSupport), cgoAllocsUnknown - allocs489899be.Borrow(ccomputeBindingPointSupport_allocs) + var clocalDimmingEnable_allocs *cgoAllocMap + refffbe2634.localDimmingEnable, clocalDimmingEnable_allocs = (C.VkBool32)(x.LocalDimmingEnable), cgoAllocsUnknown + allocsffbe2634.Borrow(clocalDimmingEnable_allocs) - x.ref489899be = ref489899be - x.allocs489899be = allocs489899be - return ref489899be, allocs489899be + 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 DeviceGeneratedCommandsFeaturesNVX) PassValue() (C.VkDeviceGeneratedCommandsFeaturesNVX, *cgoAllocMap) { - if x.ref489899be != nil { - return *x.ref489899be, nil +func (x SwapchainDisplayNativeHdrCreateInfoAMD) PassValue() (C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { + if x.refffbe2634 != nil { + return *x.refffbe2634, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27826,106 +53010,98 @@ 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 *SwapchainDisplayNativeHdrCreateInfoAMD) Deref() { + if x.refffbe2634 == 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.refffbe2634.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffbe2634.pNext)) + x.LocalDimmingEnable = (Bool32)(x.refffbe2634.localDimmingEnable) } -// allocDeviceGeneratedCommandsLimitsNVXMemory allocates memory for type C.VkDeviceGeneratedCommandsLimitsNVX in C. +// allocPhysicalDeviceFragmentDensityMapFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentDensityMapFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceGeneratedCommandsLimitsNVXValue = unsafe.Sizeof([1]C.VkDeviceGeneratedCommandsLimitsNVX{}) +const sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGeneratedCommandsLimitsNVX) Ref() *C.VkDeviceGeneratedCommandsLimitsNVX { +func (x *PhysicalDeviceFragmentDensityMapFeatures) Ref() *C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT { if x == nil { return nil } - return x.refb2b76f40 + 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 *DeviceGeneratedCommandsLimitsNVX) Free() { - if x != nil && x.allocsb2b76f40 != nil { - x.allocsb2b76f40.(*cgoAllocMap).Free() - x.refb2b76f40 = nil +func (x *PhysicalDeviceFragmentDensityMapFeatures) Free() { + if x != nil && x.allocsfa0bb2d9 != nil { + x.allocsfa0bb2d9.(*cgoAllocMap).Free() + x.reffa0bb2d9 = nil } } -// NewDeviceGeneratedCommandsLimitsNVXRef 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 NewDeviceGeneratedCommandsLimitsNVXRef(ref unsafe.Pointer) *DeviceGeneratedCommandsLimitsNVX { +func NewPhysicalDeviceFragmentDensityMapFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapFeatures { if ref == nil { return nil } - obj := new(DeviceGeneratedCommandsLimitsNVX) - obj.refb2b76f40 = (*C.VkDeviceGeneratedCommandsLimitsNVX)(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 *DeviceGeneratedCommandsLimitsNVX) PassRef() (*C.VkDeviceGeneratedCommandsLimitsNVX, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMapFeatures) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb2b76f40 != nil { - return x.refb2b76f40, nil + } else if x.reffa0bb2d9 != nil { + return x.reffa0bb2d9, nil } - memb2b76f40 := allocDeviceGeneratedCommandsLimitsNVXMemory(1) - refb2b76f40 := (*C.VkDeviceGeneratedCommandsLimitsNVX)(memb2b76f40) - allocsb2b76f40 := new(cgoAllocMap) - allocsb2b76f40.Add(memb2b76f40) + memfa0bb2d9 := allocPhysicalDeviceFragmentDensityMapFeaturesMemory(1) + reffa0bb2d9 := (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(memfa0bb2d9) + allocsfa0bb2d9 := new(cgoAllocMap) + allocsfa0bb2d9.Add(memfa0bb2d9) var csType_allocs *cgoAllocMap - refb2b76f40.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb2b76f40.Borrow(csType_allocs) + reffa0bb2d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb2b76f40.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb2b76f40.Borrow(cpNext_allocs) + reffa0bb2d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cpNext_allocs) - var cmaxIndirectCommandsLayoutTokenCount_allocs *cgoAllocMap - refb2b76f40.maxIndirectCommandsLayoutTokenCount, cmaxIndirectCommandsLayoutTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsLayoutTokenCount), cgoAllocsUnknown - allocsb2b76f40.Borrow(cmaxIndirectCommandsLayoutTokenCount_allocs) + var cfragmentDensityMap_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMap, cfragmentDensityMap_allocs = (C.VkBool32)(x.FragmentDensityMap), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMap_allocs) - var cmaxObjectEntryCounts_allocs *cgoAllocMap - refb2b76f40.maxObjectEntryCounts, cmaxObjectEntryCounts_allocs = (C.uint32_t)(x.MaxObjectEntryCounts), cgoAllocsUnknown - allocsb2b76f40.Borrow(cmaxObjectEntryCounts_allocs) + var cfragmentDensityMapDynamic_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapDynamic, cfragmentDensityMapDynamic_allocs = (C.VkBool32)(x.FragmentDensityMapDynamic), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapDynamic_allocs) - var cminSequenceCountBufferOffsetAlignment_allocs *cgoAllocMap - refb2b76f40.minSequenceCountBufferOffsetAlignment, cminSequenceCountBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinSequenceCountBufferOffsetAlignment), cgoAllocsUnknown - allocsb2b76f40.Borrow(cminSequenceCountBufferOffsetAlignment_allocs) + var cfragmentDensityMapNonSubsampledImages_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapNonSubsampledImages, cfragmentDensityMapNonSubsampledImages_allocs = (C.VkBool32)(x.FragmentDensityMapNonSubsampledImages), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapNonSubsampledImages_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.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 DeviceGeneratedCommandsLimitsNVX) PassValue() (C.VkDeviceGeneratedCommandsLimitsNVX, *cgoAllocMap) { - if x.refb2b76f40 != nil { - return *x.refb2b76f40, nil +func (x PhysicalDeviceFragmentDensityMapFeatures) PassValue() (C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { + if x.reffa0bb2d9 != nil { + return *x.reffa0bb2d9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27933,94 +53109,100 @@ 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 *PhysicalDeviceFragmentDensityMapFeatures) Deref() { + if x.reffa0bb2d9 == 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.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) } -// allocIndirectCommandsTokenNVXMemory allocates memory for type C.VkIndirectCommandsTokenNVX in C. +// allocPhysicalDeviceFragmentDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentDensityMapPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfIndirectCommandsTokenNVXValue = unsafe.Sizeof([1]C.VkIndirectCommandsTokenNVX{}) +const sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsTokenNVX) Ref() *C.VkIndirectCommandsTokenNVX { +func (x *PhysicalDeviceFragmentDensityMapProperties) Ref() *C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT { if x == nil { return nil } - return x.ref8a2daca5 + 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 *IndirectCommandsTokenNVX) Free() { - if x != nil && x.allocs8a2daca5 != nil { - x.allocs8a2daca5.(*cgoAllocMap).Free() - x.ref8a2daca5 = nil +func (x *PhysicalDeviceFragmentDensityMapProperties) Free() { + if x != nil && x.allocs79e5ca31 != nil { + x.allocs79e5ca31.(*cgoAllocMap).Free() + x.ref79e5ca31 = nil } } -// NewIndirectCommandsTokenNVXRef 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 NewIndirectCommandsTokenNVXRef(ref unsafe.Pointer) *IndirectCommandsTokenNVX { +func NewPhysicalDeviceFragmentDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapProperties { if ref == nil { return nil } - obj := new(IndirectCommandsTokenNVX) - obj.ref8a2daca5 = (*C.VkIndirectCommandsTokenNVX)(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 *IndirectCommandsTokenNVX) PassRef() (*C.VkIndirectCommandsTokenNVX, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMapProperties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a2daca5 != nil { - return x.ref8a2daca5, nil + } else if x.ref79e5ca31 != nil { + return x.ref79e5ca31, nil } - mem8a2daca5 := allocIndirectCommandsTokenNVXMemory(1) - ref8a2daca5 := (*C.VkIndirectCommandsTokenNVX)(mem8a2daca5) - allocs8a2daca5 := new(cgoAllocMap) - allocs8a2daca5.Add(mem8a2daca5) + mem79e5ca31 := allocPhysicalDeviceFragmentDensityMapPropertiesMemory(1) + ref79e5ca31 := (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(mem79e5ca31) + allocs79e5ca31 := new(cgoAllocMap) + allocs79e5ca31.Add(mem79e5ca31) - var ctokenType_allocs *cgoAllocMap - ref8a2daca5.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNVX)(x.TokenType), cgoAllocsUnknown - allocs8a2daca5.Borrow(ctokenType_allocs) + var csType_allocs *cgoAllocMap + ref79e5ca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs79e5ca31.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 + ref79e5ca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs79e5ca31.Borrow(cpNext_allocs) - var coffset_allocs *cgoAllocMap - ref8a2daca5.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs8a2daca5.Borrow(coffset_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) - x.ref8a2daca5 = ref8a2daca5 - x.allocs8a2daca5 = allocs8a2daca5 - return ref8a2daca5, allocs8a2daca5 + var cfragmentDensityInvocations_allocs *cgoAllocMap + ref79e5ca31.fragmentDensityInvocations, cfragmentDensityInvocations_allocs = (C.VkBool32)(x.FragmentDensityInvocations), cgoAllocsUnknown + allocs79e5ca31.Borrow(cfragmentDensityInvocations_allocs) + + 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 IndirectCommandsTokenNVX) PassValue() (C.VkIndirectCommandsTokenNVX, *cgoAllocMap) { - if x.ref8a2daca5 != nil { - return *x.ref8a2daca5, nil +func (x PhysicalDeviceFragmentDensityMapProperties) PassValue() (C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { + if x.ref79e5ca31 != nil { + return *x.ref79e5ca31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28028,94 +53210,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 *PhysicalDeviceFragmentDensityMapProperties) Deref() { + if x.ref79e5ca31 == 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.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) } -// allocIndirectCommandsLayoutTokenNVXMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNVX in C. +// allocRenderPassFragmentDensityMapCreateInfoMemory allocates memory for type C.VkRenderPassFragmentDensityMapCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocRenderPassFragmentDensityMapCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassFragmentDensityMapCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfIndirectCommandsLayoutTokenNVXValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNVX{}) +const sizeOfRenderPassFragmentDensityMapCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassFragmentDensityMapCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutTokenNVX) Ref() *C.VkIndirectCommandsLayoutTokenNVX { +func (x *RenderPassFragmentDensityMapCreateInfo) Ref() *C.VkRenderPassFragmentDensityMapCreateInfoEXT { if x == nil { return nil } - return x.refe421769 + 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 *IndirectCommandsLayoutTokenNVX) Free() { - if x != nil && x.allocse421769 != nil { - x.allocse421769.(*cgoAllocMap).Free() - x.refe421769 = nil +func (x *RenderPassFragmentDensityMapCreateInfo) Free() { + if x != nil && x.allocs76b25671 != nil { + x.allocs76b25671.(*cgoAllocMap).Free() + x.ref76b25671 = nil } } -// NewIndirectCommandsLayoutTokenNVXRef 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 NewIndirectCommandsLayoutTokenNVXRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNVX { +func NewRenderPassFragmentDensityMapCreateInfoRef(ref unsafe.Pointer) *RenderPassFragmentDensityMapCreateInfo { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutTokenNVX) - obj.refe421769 = (*C.VkIndirectCommandsLayoutTokenNVX)(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 *IndirectCommandsLayoutTokenNVX) PassRef() (*C.VkIndirectCommandsLayoutTokenNVX, *cgoAllocMap) { +func (x *RenderPassFragmentDensityMapCreateInfo) PassRef() (*C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe421769 != nil { - return x.refe421769, nil + } else if x.ref76b25671 != nil { + return x.ref76b25671, 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) + mem76b25671 := allocRenderPassFragmentDensityMapCreateInfoMemory(1) + ref76b25671 := (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(mem76b25671) + allocs76b25671 := new(cgoAllocMap) + allocs76b25671.Add(mem76b25671) - var cbindingUnit_allocs *cgoAllocMap - refe421769.bindingUnit, cbindingUnit_allocs = (C.uint32_t)(x.BindingUnit), cgoAllocsUnknown - allocse421769.Borrow(cbindingUnit_allocs) + var csType_allocs *cgoAllocMap + ref76b25671.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs76b25671.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 + ref76b25671.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs76b25671.Borrow(cpNext_allocs) - var cdivisor_allocs *cgoAllocMap - refe421769.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown - allocse421769.Borrow(cdivisor_allocs) + var cfragmentDensityMapAttachment_allocs *cgoAllocMap + ref76b25671.fragmentDensityMapAttachment, cfragmentDensityMapAttachment_allocs = x.FragmentDensityMapAttachment.PassValue() + allocs76b25671.Borrow(cfragmentDensityMapAttachment_allocs) - x.refe421769 = refe421769 - x.allocse421769 = allocse421769 - return refe421769, allocse421769 + 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 IndirectCommandsLayoutTokenNVX) PassValue() (C.VkIndirectCommandsLayoutTokenNVX, *cgoAllocMap) { - if x.refe421769 != nil { - return *x.refe421769, nil +func (x RenderPassFragmentDensityMapCreateInfo) PassValue() (C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { + if x.ref76b25671 != nil { + return *x.ref76b25671, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28123,141 +53303,94 @@ 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 *RenderPassFragmentDensityMapCreateInfo) Deref() { + if x.ref76b25671 == 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.ref76b25671.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76b25671.pNext)) + x.FragmentDensityMapAttachment = *NewAttachmentReferenceRef(unsafe.Pointer(&x.ref76b25671.fragmentDensityMapAttachment)) } -// allocIndirectCommandsLayoutCreateInfoNVXMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNVX in C. +// allocPhysicalDeviceShaderCoreProperties2AMDMemory allocates memory for type C.VkPhysicalDeviceShaderCoreProperties2AMD 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderCoreProperties2AMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCoreProperties2AMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceShaderCoreProperties2AMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCoreProperties2AMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutCreateInfoNVX) Ref() *C.VkIndirectCommandsLayoutCreateInfoNVX { +func (x *PhysicalDeviceShaderCoreProperties2AMD) Ref() *C.VkPhysicalDeviceShaderCoreProperties2AMD { if x == nil { return nil } - return x.ref2a2866d5 + 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 *IndirectCommandsLayoutCreateInfoNVX) Free() { - if x != nil && x.allocs2a2866d5 != nil { - x.allocs2a2866d5.(*cgoAllocMap).Free() - x.ref2a2866d5 = nil +func (x *PhysicalDeviceShaderCoreProperties2AMD) Free() { + if x != nil && x.allocs7be3d4c4 != nil { + x.allocs7be3d4c4.(*cgoAllocMap).Free() + x.ref7be3d4c4 = nil } } -// NewIndirectCommandsLayoutCreateInfoNVXRef 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 NewIndirectCommandsLayoutCreateInfoNVXRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNVX { +func NewPhysicalDeviceShaderCoreProperties2AMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCoreProperties2AMD { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutCreateInfoNVX) - obj.ref2a2866d5 = (*C.VkIndirectCommandsLayoutCreateInfoNVX)(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 *IndirectCommandsLayoutCreateInfoNVX) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceShaderCoreProperties2AMD) PassRef() (*C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2a2866d5 != nil { - return x.ref2a2866d5, nil + } else if x.ref7be3d4c4 != nil { + return x.ref7be3d4c4, nil } - mem2a2866d5 := allocIndirectCommandsLayoutCreateInfoNVXMemory(1) - ref2a2866d5 := (*C.VkIndirectCommandsLayoutCreateInfoNVX)(mem2a2866d5) - allocs2a2866d5 := new(cgoAllocMap) - allocs2a2866d5.Add(mem2a2866d5) + mem7be3d4c4 := allocPhysicalDeviceShaderCoreProperties2AMDMemory(1) + ref7be3d4c4 := (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(mem7be3d4c4) + allocs7be3d4c4 := new(cgoAllocMap) + allocs7be3d4c4.Add(mem7be3d4c4) var csType_allocs *cgoAllocMap - ref2a2866d5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2a2866d5.Borrow(csType_allocs) + ref7be3d4c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7be3d4c4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2a2866d5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2a2866d5.Borrow(cpNext_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - ref2a2866d5.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs2a2866d5.Borrow(cpipelineBindPoint_allocs) - - var cflags_allocs *cgoAllocMap - ref2a2866d5.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs2a2866d5.Borrow(cflags_allocs) + ref7be3d4c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cpNext_allocs) - var ctokenCount_allocs *cgoAllocMap - ref2a2866d5.tokenCount, ctokenCount_allocs = (C.uint32_t)(x.TokenCount), cgoAllocsUnknown - allocs2a2866d5.Borrow(ctokenCount_allocs) + var cshaderCoreFeatures_allocs *cgoAllocMap + ref7be3d4c4.shaderCoreFeatures, cshaderCoreFeatures_allocs = (C.VkShaderCorePropertiesFlagsAMD)(x.ShaderCoreFeatures), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cshaderCoreFeatures_allocs) - var cpTokens_allocs *cgoAllocMap - ref2a2866d5.pTokens, cpTokens_allocs = unpackSIndirectCommandsLayoutTokenNVX(x.PTokens) - allocs2a2866d5.Borrow(cpTokens_allocs) + var cactiveComputeUnitCount_allocs *cgoAllocMap + ref7be3d4c4.activeComputeUnitCount, cactiveComputeUnitCount_allocs = (C.uint32_t)(x.ActiveComputeUnitCount), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cactiveComputeUnitCount_allocs) - x.ref2a2866d5 = ref2a2866d5 - x.allocs2a2866d5 = allocs2a2866d5 - return ref2a2866d5, allocs2a2866d5 + 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 IndirectCommandsLayoutCreateInfoNVX) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNVX, *cgoAllocMap) { - if x.ref2a2866d5 != nil { - return *x.ref2a2866d5, nil +func (x PhysicalDeviceShaderCoreProperties2AMD) PassValue() (C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { + if x.ref7be3d4c4 != nil { + return *x.ref7be3d4c4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28265,167 +53398,91 @@ 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 *PhysicalDeviceShaderCoreProperties2AMD) Deref() { + if x.ref7be3d4c4 == 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.ref7be3d4c4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7be3d4c4.pNext)) + x.ShaderCoreFeatures = (ShaderCorePropertiesFlagsAMD)(x.ref7be3d4c4.shaderCoreFeatures) + x.ActiveComputeUnitCount = (uint32)(x.ref7be3d4c4.activeComputeUnitCount) } -// allocCmdProcessCommandsInfoNVXMemory allocates memory for type C.VkCmdProcessCommandsInfoNVX in C. +// allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceCoherentMemoryFeaturesAMD 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoherentMemoryFeaturesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CmdProcessCommandsInfoNVX) Ref() *C.VkCmdProcessCommandsInfoNVX { +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Ref() *C.VkPhysicalDeviceCoherentMemoryFeaturesAMD { if x == nil { return nil } - return x.refcd94895d + 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 *CmdProcessCommandsInfoNVX) Free() { - if x != nil && x.allocscd94895d != nil { - x.allocscd94895d.(*cgoAllocMap).Free() - x.refcd94895d = nil +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Free() { + if x != nil && x.allocs34cb87b4 != nil { + x.allocs34cb87b4.(*cgoAllocMap).Free() + x.ref34cb87b4 = nil } } -// NewCmdProcessCommandsInfoNVXRef 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 NewCmdProcessCommandsInfoNVXRef(ref unsafe.Pointer) *CmdProcessCommandsInfoNVX { +func NewPhysicalDeviceCoherentMemoryFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceCoherentMemoryFeaturesAMD { if ref == nil { return nil } - obj := new(CmdProcessCommandsInfoNVX) - obj.refcd94895d = (*C.VkCmdProcessCommandsInfoNVX)(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 *CmdProcessCommandsInfoNVX) PassRef() (*C.VkCmdProcessCommandsInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) PassRef() (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd94895d != nil { - return x.refcd94895d, nil + } else if x.ref34cb87b4 != nil { + return x.ref34cb87b4, nil } - memcd94895d := allocCmdProcessCommandsInfoNVXMemory(1) - refcd94895d := (*C.VkCmdProcessCommandsInfoNVX)(memcd94895d) - allocscd94895d := new(cgoAllocMap) - allocscd94895d.Add(memcd94895d) + mem34cb87b4 := allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(1) + ref34cb87b4 := (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(mem34cb87b4) + allocs34cb87b4 := new(cgoAllocMap) + allocs34cb87b4.Add(mem34cb87b4) var csType_allocs *cgoAllocMap - refcd94895d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd94895d.Borrow(csType_allocs) + ref34cb87b4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34cb87b4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd94895d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd94895d.Borrow(cpNext_allocs) - - var cobjectTable_allocs *cgoAllocMap - refcd94895d.objectTable, cobjectTable_allocs = *(*C.VkObjectTableNVX)(unsafe.Pointer(&x.ObjectTable)), cgoAllocsUnknown - allocscd94895d.Borrow(cobjectTable_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) + ref34cb87b4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34cb87b4.Borrow(cpNext_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) + var cdeviceCoherentMemory_allocs *cgoAllocMap + ref34cb87b4.deviceCoherentMemory, cdeviceCoherentMemory_allocs = (C.VkBool32)(x.DeviceCoherentMemory), cgoAllocsUnknown + allocs34cb87b4.Borrow(cdeviceCoherentMemory_allocs) - x.refcd94895d = refcd94895d - x.allocscd94895d = allocscd94895d - return refcd94895d, allocscd94895d + 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 CmdProcessCommandsInfoNVX) PassValue() (C.VkCmdProcessCommandsInfoNVX, *cgoAllocMap) { - if x.refcd94895d != nil { - return *x.refcd94895d, nil +func (x PhysicalDeviceCoherentMemoryFeaturesAMD) PassValue() (C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { + if x.ref34cb87b4 != nil { + return *x.ref34cb87b4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28433,107 +53490,94 @@ 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) Deref() { + if x.ref34cb87b4 == 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.ref34cb87b4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34cb87b4.pNext)) + x.DeviceCoherentMemory = (Bool32)(x.ref34cb87b4.deviceCoherentMemory) } -// allocCmdReserveSpaceForCommandsInfoNVXMemory allocates memory for type C.VkCmdReserveSpaceForCommandsInfoNVX in C. +// allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCmdReserveSpaceForCommandsInfoNVXValue = unsafe.Sizeof([1]C.VkCmdReserveSpaceForCommandsInfoNVX{}) +const sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CmdReserveSpaceForCommandsInfoNVX) Ref() *C.VkCmdReserveSpaceForCommandsInfoNVX { +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { if x == nil { return nil } - return x.ref900bfee5 + 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 *CmdReserveSpaceForCommandsInfoNVX) Free() { - if x != nil && x.allocs900bfee5 != nil { - x.allocs900bfee5.(*cgoAllocMap).Free() - x.ref900bfee5 = nil +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Free() { + if x != nil && x.allocs1b0fbd != nil { + x.allocs1b0fbd.(*cgoAllocMap).Free() + x.ref1b0fbd = nil } } -// NewCmdReserveSpaceForCommandsInfoNVXRef 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 NewCmdReserveSpaceForCommandsInfoNVXRef(ref unsafe.Pointer) *CmdReserveSpaceForCommandsInfoNVX { +func NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageAtomicInt64Features { if ref == nil { return nil } - obj := new(CmdReserveSpaceForCommandsInfoNVX) - obj.ref900bfee5 = (*C.VkCmdReserveSpaceForCommandsInfoNVX)(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 *CmdReserveSpaceForCommandsInfoNVX) PassRef() (*C.VkCmdReserveSpaceForCommandsInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceShaderImageAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref900bfee5 != nil { - return x.ref900bfee5, nil + } else if x.ref1b0fbd != nil { + return x.ref1b0fbd, nil } - mem900bfee5 := allocCmdReserveSpaceForCommandsInfoNVXMemory(1) - ref900bfee5 := (*C.VkCmdReserveSpaceForCommandsInfoNVX)(mem900bfee5) - allocs900bfee5 := new(cgoAllocMap) - allocs900bfee5.Add(mem900bfee5) + mem1b0fbd := allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(1) + ref1b0fbd := (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(mem1b0fbd) + allocs1b0fbd := new(cgoAllocMap) + allocs1b0fbd.Add(mem1b0fbd) var csType_allocs *cgoAllocMap - ref900bfee5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs900bfee5.Borrow(csType_allocs) + ref1b0fbd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1b0fbd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref900bfee5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs900bfee5.Borrow(cpNext_allocs) - - var cobjectTable_allocs *cgoAllocMap - ref900bfee5.objectTable, cobjectTable_allocs = *(*C.VkObjectTableNVX)(unsafe.Pointer(&x.ObjectTable)), cgoAllocsUnknown - allocs900bfee5.Borrow(cobjectTable_allocs) + ref1b0fbd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1b0fbd.Borrow(cpNext_allocs) - var cindirectCommandsLayout_allocs *cgoAllocMap - ref900bfee5.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNVX)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown - allocs900bfee5.Borrow(cindirectCommandsLayout_allocs) + var cshaderImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.shaderImageInt64Atomics, cshaderImageInt64Atomics_allocs = (C.VkBool32)(x.ShaderImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(cshaderImageInt64Atomics_allocs) - var cmaxSequencesCount_allocs *cgoAllocMap - ref900bfee5.maxSequencesCount, cmaxSequencesCount_allocs = (C.uint32_t)(x.MaxSequencesCount), cgoAllocsUnknown - allocs900bfee5.Borrow(cmaxSequencesCount_allocs) + var csparseImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.sparseImageInt64Atomics, csparseImageInt64Atomics_allocs = (C.VkBool32)(x.SparseImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(csparseImageInt64Atomics_allocs) - x.ref900bfee5 = ref900bfee5 - x.allocs900bfee5 = allocs900bfee5 - return ref900bfee5, allocs900bfee5 + 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 CmdReserveSpaceForCommandsInfoNVX) PassValue() (C.VkCmdReserveSpaceForCommandsInfoNVX, *cgoAllocMap) { - if x.ref900bfee5 != nil { - return *x.ref900bfee5, nil +func (x PhysicalDeviceShaderImageAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { + if x.ref1b0fbd != nil { + return *x.ref1b0fbd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28541,124 +53585,95 @@ 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 *PhysicalDeviceShaderImageAtomicInt64Features) Deref() { + if x.ref1b0fbd == 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.ref1b0fbd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1b0fbd.pNext)) + x.ShaderImageInt64Atomics = (Bool32)(x.ref1b0fbd.shaderImageInt64Atomics) + x.SparseImageInt64Atomics = (Bool32)(x.ref1b0fbd.sparseImageInt64Atomics) } -// allocObjectTableCreateInfoNVXMemory allocates memory for type C.VkObjectTableCreateInfoNVX in C. +// allocPhysicalDeviceMemoryBudgetPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryBudgetPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMemoryBudgetPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryBudgetPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTableCreateInfoNVXValue = unsafe.Sizeof([1]C.VkObjectTableCreateInfoNVX{}) +const sizeOfPhysicalDeviceMemoryBudgetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryBudgetPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableCreateInfoNVX) Ref() *C.VkObjectTableCreateInfoNVX { +func (x *PhysicalDeviceMemoryBudgetProperties) Ref() *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT { if x == nil { return nil } - return x.refb4a6c9e1 + 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 *ObjectTableCreateInfoNVX) Free() { - if x != nil && x.allocsb4a6c9e1 != nil { - x.allocsb4a6c9e1.(*cgoAllocMap).Free() - x.refb4a6c9e1 = nil +func (x *PhysicalDeviceMemoryBudgetProperties) Free() { + if x != nil && x.allocsa7406c48 != nil { + x.allocsa7406c48.(*cgoAllocMap).Free() + x.refa7406c48 = nil } } -// NewObjectTableCreateInfoNVXRef 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 NewObjectTableCreateInfoNVXRef(ref unsafe.Pointer) *ObjectTableCreateInfoNVX { +func NewPhysicalDeviceMemoryBudgetPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryBudgetProperties { if ref == nil { return nil } - obj := new(ObjectTableCreateInfoNVX) - obj.refb4a6c9e1 = (*C.VkObjectTableCreateInfoNVX)(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 *ObjectTableCreateInfoNVX) PassRef() (*C.VkObjectTableCreateInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceMemoryBudgetProperties) PassRef() (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb4a6c9e1 != nil { - return x.refb4a6c9e1, nil + } else if x.refa7406c48 != nil { + return x.refa7406c48, nil } - memb4a6c9e1 := allocObjectTableCreateInfoNVXMemory(1) - refb4a6c9e1 := (*C.VkObjectTableCreateInfoNVX)(memb4a6c9e1) - allocsb4a6c9e1 := new(cgoAllocMap) - allocsb4a6c9e1.Add(memb4a6c9e1) + mema7406c48 := allocPhysicalDeviceMemoryBudgetPropertiesMemory(1) + refa7406c48 := (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(mema7406c48) + allocsa7406c48 := new(cgoAllocMap) + allocsa7406c48.Add(mema7406c48) var csType_allocs *cgoAllocMap - refb4a6c9e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(csType_allocs) + refa7406c48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa7406c48.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb4a6c9e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cpNext_allocs) + refa7406c48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa7406c48.Borrow(cpNext_allocs) - var cobjectCount_allocs *cgoAllocMap - refb4a6c9e1.objectCount, cobjectCount_allocs = (C.uint32_t)(x.ObjectCount), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cobjectCount_allocs) + var cheapBudget_allocs *cgoAllocMap + refa7406c48.heapBudget, cheapBudget_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapBudget)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapBudget_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 cheapUsage_allocs *cgoAllocMap + refa7406c48.heapUsage, cheapUsage_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapUsage)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapUsage_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) - - var cmaxStorageImagesPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxStorageImagesPerDescriptor, cmaxStorageImagesPerDescriptor_allocs = (C.uint32_t)(x.MaxStorageImagesPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxStorageImagesPerDescriptor_allocs) - - var cmaxSampledImagesPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxSampledImagesPerDescriptor, cmaxSampledImagesPerDescriptor_allocs = (C.uint32_t)(x.MaxSampledImagesPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxSampledImagesPerDescriptor_allocs) - - var cmaxPipelineLayouts_allocs *cgoAllocMap - refb4a6c9e1.maxPipelineLayouts, cmaxPipelineLayouts_allocs = (C.uint32_t)(x.MaxPipelineLayouts), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxPipelineLayouts_allocs) - - x.refb4a6c9e1 = refb4a6c9e1 - x.allocsb4a6c9e1 = allocsb4a6c9e1 - return refb4a6c9e1, allocsb4a6c9e1 + 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 ObjectTableCreateInfoNVX) PassValue() (C.VkObjectTableCreateInfoNVX, *cgoAllocMap) { - if x.refb4a6c9e1 != nil { - return *x.refb4a6c9e1, nil +func (x PhysicalDeviceMemoryBudgetProperties) PassValue() (C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { + if x.refa7406c48 != nil { + return *x.refa7406c48, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28666,106 +53681,91 @@ 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 *PhysicalDeviceMemoryBudgetProperties) Deref() { + if x.refa7406c48 == 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.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)) } -// allocObjectTableEntryNVXMemory allocates memory for type C.VkObjectTableEntryNVX in C. +// allocPhysicalDeviceMemoryPriorityFeaturesMemory allocates memory for type C.VkPhysicalDeviceMemoryPriorityFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMemoryPriorityFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPriorityFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTableEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableEntryNVX{}) +const sizeOfPhysicalDeviceMemoryPriorityFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryPriorityFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableEntryNVX) Ref() *C.VkObjectTableEntryNVX { +func (x *PhysicalDeviceMemoryPriorityFeatures) Ref() *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT { if x == nil { return nil } - return x.refb8f7ffef + 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 *ObjectTableEntryNVX) Free() { - if x != nil && x.allocsb8f7ffef != nil { - x.allocsb8f7ffef.(*cgoAllocMap).Free() - x.refb8f7ffef = nil +func (x *PhysicalDeviceMemoryPriorityFeatures) Free() { + if x != nil && x.allocs24f8641c != nil { + x.allocs24f8641c.(*cgoAllocMap).Free() + x.ref24f8641c = nil } } -// NewObjectTableEntryNVXRef 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 NewObjectTableEntryNVXRef(ref unsafe.Pointer) *ObjectTableEntryNVX { +func NewPhysicalDeviceMemoryPriorityFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryPriorityFeatures { if ref == nil { return nil } - obj := new(ObjectTableEntryNVX) - obj.refb8f7ffef = (*C.VkObjectTableEntryNVX)(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 *ObjectTableEntryNVX) PassRef() (*C.VkObjectTableEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceMemoryPriorityFeatures) PassRef() (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8f7ffef != nil { - return x.refb8f7ffef, nil + } else if x.ref24f8641c != nil { + return x.ref24f8641c, nil } - memb8f7ffef := allocObjectTableEntryNVXMemory(1) - refb8f7ffef := (*C.VkObjectTableEntryNVX)(memb8f7ffef) - allocsb8f7ffef := new(cgoAllocMap) - allocsb8f7ffef.Add(memb8f7ffef) + mem24f8641c := allocPhysicalDeviceMemoryPriorityFeaturesMemory(1) + ref24f8641c := (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(mem24f8641c) + allocs24f8641c := new(cgoAllocMap) + allocs24f8641c.Add(mem24f8641c) - var c_type_allocs *cgoAllocMap - refb8f7ffef._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocsb8f7ffef.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref24f8641c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs24f8641c.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - refb8f7ffef.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocsb8f7ffef.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref24f8641c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs24f8641c.Borrow(cpNext_allocs) + + var cmemoryPriority_allocs *cgoAllocMap + ref24f8641c.memoryPriority, cmemoryPriority_allocs = (C.VkBool32)(x.MemoryPriority), cgoAllocsUnknown + allocs24f8641c.Borrow(cmemoryPriority_allocs) - x.refb8f7ffef = refb8f7ffef - x.allocsb8f7ffef = allocsb8f7ffef - return refb8f7ffef, allocsb8f7ffef + 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 ObjectTableEntryNVX) PassValue() (C.VkObjectTableEntryNVX, *cgoAllocMap) { - if x.refb8f7ffef != nil { - return *x.refb8f7ffef, nil +func (x PhysicalDeviceMemoryPriorityFeatures) PassValue() (C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { + if x.ref24f8641c != nil { + return *x.ref24f8641c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28773,89 +53773,90 @@ 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 *PhysicalDeviceMemoryPriorityFeatures) Deref() { + if x.ref24f8641c == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.refb8f7ffef._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.refb8f7ffef.flags) + x.SType = (StructureType)(x.ref24f8641c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f8641c.pNext)) + x.MemoryPriority = (Bool32)(x.ref24f8641c.memoryPriority) } -// allocObjectTablePipelineEntryNVXMemory allocates memory for type C.VkObjectTablePipelineEntryNVX in C. +// allocMemoryPriorityAllocateInfoMemory allocates memory for type C.VkMemoryPriorityAllocateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMemoryPriorityAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryPriorityAllocateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTablePipelineEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTablePipelineEntryNVX{}) +const sizeOfMemoryPriorityAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryPriorityAllocateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTablePipelineEntryNVX) Ref() *C.VkObjectTablePipelineEntryNVX { +func (x *MemoryPriorityAllocateInfo) Ref() *C.VkMemoryPriorityAllocateInfoEXT { if x == nil { return nil } - return x.ref8112859b + 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 *ObjectTablePipelineEntryNVX) Free() { - if x != nil && x.allocs8112859b != nil { - x.allocs8112859b.(*cgoAllocMap).Free() - x.ref8112859b = nil +func (x *MemoryPriorityAllocateInfo) Free() { + if x != nil && x.allocsd3540846 != nil { + x.allocsd3540846.(*cgoAllocMap).Free() + x.refd3540846 = nil } } -// NewObjectTablePipelineEntryNVXRef 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 NewObjectTablePipelineEntryNVXRef(ref unsafe.Pointer) *ObjectTablePipelineEntryNVX { +func NewMemoryPriorityAllocateInfoRef(ref unsafe.Pointer) *MemoryPriorityAllocateInfo { if ref == nil { return nil } - obj := new(ObjectTablePipelineEntryNVX) - obj.ref8112859b = (*C.VkObjectTablePipelineEntryNVX)(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 *ObjectTablePipelineEntryNVX) PassRef() (*C.VkObjectTablePipelineEntryNVX, *cgoAllocMap) { +func (x *MemoryPriorityAllocateInfo) PassRef() (*C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8112859b != nil { - return x.ref8112859b, nil + } else if x.refd3540846 != nil { + return x.refd3540846, nil } - mem8112859b := allocObjectTablePipelineEntryNVXMemory(1) - ref8112859b := (*C.VkObjectTablePipelineEntryNVX)(mem8112859b) - allocs8112859b := new(cgoAllocMap) - allocs8112859b.Add(mem8112859b) + memd3540846 := allocMemoryPriorityAllocateInfoMemory(1) + refd3540846 := (*C.VkMemoryPriorityAllocateInfoEXT)(memd3540846) + allocsd3540846 := new(cgoAllocMap) + allocsd3540846.Add(memd3540846) - var c_type_allocs *cgoAllocMap - ref8112859b._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs8112859b.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + refd3540846.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd3540846.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref8112859b.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs8112859b.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + refd3540846.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd3540846.Borrow(cpNext_allocs) - var cpipeline_allocs *cgoAllocMap - ref8112859b.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocs8112859b.Borrow(cpipeline_allocs) + var cpriority_allocs *cgoAllocMap + refd3540846.priority, cpriority_allocs = (C.float)(x.Priority), cgoAllocsUnknown + allocsd3540846.Borrow(cpriority_allocs) - x.ref8112859b = ref8112859b - x.allocs8112859b = allocs8112859b - return ref8112859b, allocs8112859b + 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 ObjectTablePipelineEntryNVX) PassValue() (C.VkObjectTablePipelineEntryNVX, *cgoAllocMap) { - if x.ref8112859b != nil { - return *x.ref8112859b, nil +func (x MemoryPriorityAllocateInfo) PassValue() (C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { + if x.refd3540846 != nil { + return *x.refd3540846, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28863,94 +53864,90 @@ 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 *MemoryPriorityAllocateInfo) Deref() { + if x.refd3540846 == 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.refd3540846.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd3540846.pNext)) + x.Priority = (float32)(x.refd3540846.priority) } -// allocObjectTableDescriptorSetEntryNVXMemory allocates memory for type C.VkObjectTableDescriptorSetEntryNVX in C. +// allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTableDescriptorSetEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableDescriptorSetEntryNVX{}) +const sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableDescriptorSetEntryNVX) Ref() *C.VkObjectTableDescriptorSetEntryNVX { +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Ref() *C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { if x == nil { return nil } - return x.ref6fc0d42f + 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 *ObjectTableDescriptorSetEntryNVX) Free() { - if x != nil && x.allocs6fc0d42f != nil { - x.allocs6fc0d42f.(*cgoAllocMap).Free() - x.ref6fc0d42f = nil +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Free() { + if x != nil && x.allocsade17227 != nil { + x.allocsade17227.(*cgoAllocMap).Free() + x.refade17227 = nil } } -// NewObjectTableDescriptorSetEntryNVXRef 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 NewObjectTableDescriptorSetEntryNVXRef(ref unsafe.Pointer) *ObjectTableDescriptorSetEntryNVX { +func NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { if ref == nil { return nil } - obj := new(ObjectTableDescriptorSetEntryNVX) - obj.ref6fc0d42f = (*C.VkObjectTableDescriptorSetEntryNVX)(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 *ObjectTableDescriptorSetEntryNVX) PassRef() (*C.VkObjectTableDescriptorSetEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassRef() (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6fc0d42f != nil { - return x.ref6fc0d42f, nil + } else if x.refade17227 != nil { + return x.refade17227, nil } - mem6fc0d42f := allocObjectTableDescriptorSetEntryNVXMemory(1) - ref6fc0d42f := (*C.VkObjectTableDescriptorSetEntryNVX)(mem6fc0d42f) - allocs6fc0d42f := new(cgoAllocMap) - allocs6fc0d42f.Add(mem6fc0d42f) + memade17227 := allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(1) + refade17227 := (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(memade17227) + allocsade17227 := new(cgoAllocMap) + allocsade17227.Add(memade17227) - var c_type_allocs *cgoAllocMap - ref6fc0d42f._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs6fc0d42f.Borrow(c_type_allocs) - - var cflags_allocs *cgoAllocMap - ref6fc0d42f.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cflags_allocs) + var csType_allocs *cgoAllocMap + refade17227.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsade17227.Borrow(csType_allocs) - var cpipelineLayout_allocs *cgoAllocMap - ref6fc0d42f.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cpipelineLayout_allocs) + var cpNext_allocs *cgoAllocMap + refade17227.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsade17227.Borrow(cpNext_allocs) - var cdescriptorSet_allocs *cgoAllocMap - ref6fc0d42f.descriptorSet, cdescriptorSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DescriptorSet)), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cdescriptorSet_allocs) + var cdedicatedAllocationImageAliasing_allocs *cgoAllocMap + refade17227.dedicatedAllocationImageAliasing, cdedicatedAllocationImageAliasing_allocs = (C.VkBool32)(x.DedicatedAllocationImageAliasing), cgoAllocsUnknown + allocsade17227.Borrow(cdedicatedAllocationImageAliasing_allocs) - x.ref6fc0d42f = ref6fc0d42f - x.allocs6fc0d42f = allocs6fc0d42f - return ref6fc0d42f, allocs6fc0d42f + 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 ObjectTableDescriptorSetEntryNVX) PassValue() (C.VkObjectTableDescriptorSetEntryNVX, *cgoAllocMap) { - if x.ref6fc0d42f != nil { - return *x.ref6fc0d42f, nil +func (x PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassValue() (C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { + if x.refade17227 != nil { + return *x.refade17227, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28958,91 +53955,86 @@ 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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Deref() { + if x.refade17227 == 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.refade17227.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refade17227.pNext)) + x.DedicatedAllocationImageAliasing = (Bool32)(x.refade17227.dedicatedAllocationImageAliasing) } -// allocObjectTableVertexBufferEntryNVXMemory allocates memory for type C.VkObjectTableVertexBufferEntryNVX 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfObjectTableVertexBufferEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableVertexBufferEntryNVX{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableVertexBufferEntryNVX) Ref() *C.VkObjectTableVertexBufferEntryNVX { +func (x *PhysicalDeviceBufferAddressFeatures) Ref() *C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { if x == nil { return nil } - return x.refe8a5908b + 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 *ObjectTableVertexBufferEntryNVX) Free() { - if x != nil && x.allocse8a5908b != nil { - x.allocse8a5908b.(*cgoAllocMap).Free() - x.refe8a5908b = nil +func (x *PhysicalDeviceBufferAddressFeatures) Free() { + if x != nil && x.allocse3bd03a5 != nil { + x.allocse3bd03a5.(*cgoAllocMap).Free() + x.refe3bd03a5 = nil } } -// NewObjectTableVertexBufferEntryNVXRef 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 NewObjectTableVertexBufferEntryNVXRef(ref unsafe.Pointer) *ObjectTableVertexBufferEntryNVX { +func NewPhysicalDeviceBufferAddressFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBufferAddressFeatures { if ref == nil { return nil } - obj := new(ObjectTableVertexBufferEntryNVX) - obj.refe8a5908b = (*C.VkObjectTableVertexBufferEntryNVX)(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 *ObjectTableVertexBufferEntryNVX) PassRef() (*C.VkObjectTableVertexBufferEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceBufferAddressFeatures) PassRef() (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe8a5908b != nil { - return x.refe8a5908b, nil + } else if x.refe3bd03a5 != nil { + return x.refe3bd03a5, nil } - meme8a5908b := allocObjectTableVertexBufferEntryNVXMemory(1) - refe8a5908b := (*C.VkObjectTableVertexBufferEntryNVX)(meme8a5908b) - allocse8a5908b := new(cgoAllocMap) - allocse8a5908b.Add(meme8a5908b) + meme3bd03a5 := allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(1) + refe3bd03a5 := (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(meme3bd03a5) + allocse3bd03a5 := new(cgoAllocMap) + allocse3bd03a5.Add(meme3bd03a5) - var c_type_allocs *cgoAllocMap - refe8a5908b._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocse8a5908b.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + refe3bd03a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3bd03a5.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - refe8a5908b.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocse8a5908b.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + refe3bd03a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3bd03a5.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - refe8a5908b.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocse8a5908b.Borrow(cbuffer_allocs) + var cbufferDeviceAddress_allocs *cgoAllocMap + refe3bd03a5.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocse3bd03a5.Borrow(cbufferDeviceAddress_allocs) - x.refe8a5908b = refe8a5908b - x.allocse8a5908b = allocse8a5908b - return refe8a5908b, allocse8a5908b + 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 ObjectTableVertexBufferEntryNVX) PassValue() (C.VkObjectTableVertexBufferEntryNVX, *cgoAllocMap) { - if x.refe8a5908b != nil { - return *x.refe8a5908b, nil +func (x PhysicalDeviceBufferAddressFeatures) PassValue() (C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { + if x.refe3bd03a5 != nil { + return *x.refe3bd03a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29050,94 +54042,92 @@ 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 *PhysicalDeviceBufferAddressFeatures) Deref() { + if x.refe3bd03a5 == 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.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) } -// allocObjectTableIndexBufferEntryNVXMemory allocates memory for type C.VkObjectTableIndexBufferEntryNVX in C. +// allocBufferDeviceAddressCreateInfoMemory allocates memory for type C.VkBufferDeviceAddressCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocBufferDeviceAddressCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferDeviceAddressCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTableIndexBufferEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableIndexBufferEntryNVX{}) +const sizeOfBufferDeviceAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableIndexBufferEntryNVX) Ref() *C.VkObjectTableIndexBufferEntryNVX { +func (x *BufferDeviceAddressCreateInfo) Ref() *C.VkBufferDeviceAddressCreateInfoEXT { if x == nil { return nil } - return x.ref58a08650 + 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 *ObjectTableIndexBufferEntryNVX) Free() { - if x != nil && x.allocs58a08650 != nil { - x.allocs58a08650.(*cgoAllocMap).Free() - x.ref58a08650 = nil +func (x *BufferDeviceAddressCreateInfo) Free() { + if x != nil && x.allocs4c6937a9 != nil { + x.allocs4c6937a9.(*cgoAllocMap).Free() + x.ref4c6937a9 = nil } } -// NewObjectTableIndexBufferEntryNVXRef 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 NewObjectTableIndexBufferEntryNVXRef(ref unsafe.Pointer) *ObjectTableIndexBufferEntryNVX { +func NewBufferDeviceAddressCreateInfoRef(ref unsafe.Pointer) *BufferDeviceAddressCreateInfo { if ref == nil { return nil } - obj := new(ObjectTableIndexBufferEntryNVX) - obj.ref58a08650 = (*C.VkObjectTableIndexBufferEntryNVX)(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 *ObjectTableIndexBufferEntryNVX) PassRef() (*C.VkObjectTableIndexBufferEntryNVX, *cgoAllocMap) { +func (x *BufferDeviceAddressCreateInfo) PassRef() (*C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58a08650 != nil { - return x.ref58a08650, nil + } else if x.ref4c6937a9 != nil { + return x.ref4c6937a9, nil } - mem58a08650 := allocObjectTableIndexBufferEntryNVXMemory(1) - ref58a08650 := (*C.VkObjectTableIndexBufferEntryNVX)(mem58a08650) - allocs58a08650 := new(cgoAllocMap) - allocs58a08650.Add(mem58a08650) + mem4c6937a9 := allocBufferDeviceAddressCreateInfoMemory(1) + ref4c6937a9 := (*C.VkBufferDeviceAddressCreateInfoEXT)(mem4c6937a9) + allocs4c6937a9 := new(cgoAllocMap) + allocs4c6937a9.Add(mem4c6937a9) - var c_type_allocs *cgoAllocMap - ref58a08650._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs58a08650.Borrow(c_type_allocs) - - var cflags_allocs *cgoAllocMap - ref58a08650.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs58a08650.Borrow(cflags_allocs) + var csType_allocs *cgoAllocMap + ref4c6937a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4c6937a9.Borrow(csType_allocs) - var cbuffer_allocs *cgoAllocMap - ref58a08650.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs58a08650.Borrow(cbuffer_allocs) + var cpNext_allocs *cgoAllocMap + ref4c6937a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4c6937a9.Borrow(cpNext_allocs) - var cindexType_allocs *cgoAllocMap - ref58a08650.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown - allocs58a08650.Borrow(cindexType_allocs) + var cdeviceAddress_allocs *cgoAllocMap + ref4c6937a9.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocs4c6937a9.Borrow(cdeviceAddress_allocs) - x.ref58a08650 = ref58a08650 - x.allocs58a08650 = allocs58a08650 - return ref58a08650, allocs58a08650 + 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 ObjectTableIndexBufferEntryNVX) PassValue() (C.VkObjectTableIndexBufferEntryNVX, *cgoAllocMap) { - if x.ref58a08650 != nil { - return *x.ref58a08650, nil +func (x BufferDeviceAddressCreateInfo) PassValue() (C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { + if x.ref4c6937a9 != nil { + return *x.ref4c6937a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29145,95 +54135,160 @@ 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 *BufferDeviceAddressCreateInfo) Deref() { + if x.ref4c6937a9 == 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.ref4c6937a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4c6937a9.pNext)) + x.DeviceAddress = (DeviceAddress)(x.ref4c6937a9.deviceAddress) } -// allocObjectTablePushConstantEntryNVXMemory allocates memory for type C.VkObjectTablePushConstantEntryNVX in C. +// allocValidationFeaturesMemory allocates memory for type C.VkValidationFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocValidationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfObjectTablePushConstantEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTablePushConstantEntryNVX{}) +const sizeOfValidationFeaturesValue = unsafe.Sizeof([1]C.VkValidationFeaturesEXT{}) + +// copyPValidationFeatureEnableBytes copies the data from Go slice as *C.VkValidationFeatureEnableEXT. +func copyPValidationFeatureEnableBytes(slice *sliceHeader) (*C.VkValidationFeatureEnableEXT, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfValidationFeatureEnableValue) * slice.Len, + Cap: int(sizeOfValidationFeatureEnableValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkValidationFeatureEnableEXT)(mem0), allocs +} + +// allocValidationFeatureEnableMemory allocates memory for type C.VkValidationFeatureEnableEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocValidationFeatureEnableMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeatureEnableValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfValidationFeatureEnableValue = unsafe.Sizeof([1]C.VkValidationFeatureEnableEXT{}) + +// copyPValidationFeatureDisableBytes copies the data from Go slice as *C.VkValidationFeatureDisableEXT. +func copyPValidationFeatureDisableBytes(slice *sliceHeader) (*C.VkValidationFeatureDisableEXT, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfValidationFeatureDisableValue) * slice.Len, + Cap: int(sizeOfValidationFeatureDisableValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkValidationFeatureDisableEXT)(mem0), allocs +} + +// allocValidationFeatureDisableMemory allocates memory for type C.VkValidationFeatureDisableEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocValidationFeatureDisableMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeatureDisableValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfValidationFeatureDisableValue = unsafe.Sizeof([1]C.VkValidationFeatureDisableEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTablePushConstantEntryNVX) Ref() *C.VkObjectTablePushConstantEntryNVX { +func (x *ValidationFeatures) Ref() *C.VkValidationFeaturesEXT { if x == nil { return nil } - return x.ref8c8421e0 + 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 *ObjectTablePushConstantEntryNVX) Free() { - if x != nil && x.allocs8c8421e0 != nil { - x.allocs8c8421e0.(*cgoAllocMap).Free() - x.ref8c8421e0 = nil +func (x *ValidationFeatures) Free() { + if x != nil && x.allocscd8794ea != nil { + x.allocscd8794ea.(*cgoAllocMap).Free() + x.refcd8794ea = nil } } -// NewObjectTablePushConstantEntryNVXRef 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 NewObjectTablePushConstantEntryNVXRef(ref unsafe.Pointer) *ObjectTablePushConstantEntryNVX { +func NewValidationFeaturesRef(ref unsafe.Pointer) *ValidationFeatures { if ref == nil { return nil } - obj := new(ObjectTablePushConstantEntryNVX) - obj.ref8c8421e0 = (*C.VkObjectTablePushConstantEntryNVX)(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 *ObjectTablePushConstantEntryNVX) PassRef() (*C.VkObjectTablePushConstantEntryNVX, *cgoAllocMap) { +func (x *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8c8421e0 != nil { - return x.ref8c8421e0, nil + } else if x.refcd8794ea != nil { + return x.refcd8794ea, nil } - mem8c8421e0 := allocObjectTablePushConstantEntryNVXMemory(1) - ref8c8421e0 := (*C.VkObjectTablePushConstantEntryNVX)(mem8c8421e0) - allocs8c8421e0 := new(cgoAllocMap) - allocs8c8421e0.Add(mem8c8421e0) + memcd8794ea := allocValidationFeaturesMemory(1) + refcd8794ea := (*C.VkValidationFeaturesEXT)(memcd8794ea) + allocscd8794ea := new(cgoAllocMap) + allocscd8794ea.Add(memcd8794ea) - var c_type_allocs *cgoAllocMap - ref8c8421e0._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs8c8421e0.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + refcd8794ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd8794ea.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref8c8421e0.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs8c8421e0.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + refcd8794ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd8794ea.Borrow(cpNext_allocs) - var cpipelineLayout_allocs *cgoAllocMap - ref8c8421e0.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs8c8421e0.Borrow(cpipelineLayout_allocs) + var cenabledValidationFeatureCount_allocs *cgoAllocMap + refcd8794ea.enabledValidationFeatureCount, cenabledValidationFeatureCount_allocs = (C.uint32_t)(x.EnabledValidationFeatureCount), cgoAllocsUnknown + allocscd8794ea.Borrow(cenabledValidationFeatureCount_allocs) - var cstageFlags_allocs *cgoAllocMap - ref8c8421e0.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown - allocs8c8421e0.Borrow(cstageFlags_allocs) + var cpEnabledValidationFeatures_allocs *cgoAllocMap + refcd8794ea.pEnabledValidationFeatures, cpEnabledValidationFeatures_allocs = copyPValidationFeatureEnableBytes((*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures))) + allocscd8794ea.Borrow(cpEnabledValidationFeatures_allocs) + + var cdisabledValidationFeatureCount_allocs *cgoAllocMap + refcd8794ea.disabledValidationFeatureCount, cdisabledValidationFeatureCount_allocs = (C.uint32_t)(x.DisabledValidationFeatureCount), cgoAllocsUnknown + allocscd8794ea.Borrow(cdisabledValidationFeatureCount_allocs) - x.ref8c8421e0 = ref8c8421e0 - x.allocs8c8421e0 = allocs8c8421e0 - return ref8c8421e0, allocs8c8421e0 + var cpDisabledValidationFeatures_allocs *cgoAllocMap + refcd8794ea.pDisabledValidationFeatures, cpDisabledValidationFeatures_allocs = copyPValidationFeatureDisableBytes((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures))) + 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 ObjectTablePushConstantEntryNVX) PassValue() (C.VkObjectTablePushConstantEntryNVX, *cgoAllocMap) { - if x.ref8c8421e0 != nil { - return *x.ref8c8421e0, nil +func (x ValidationFeatures) PassValue() (C.VkValidationFeaturesEXT, *cgoAllocMap) { + if x.refcd8794ea != nil { + return *x.refcd8794ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29241,87 +54296,129 @@ 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 *ValidationFeatures) Deref() { + if x.refcd8794ea == 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.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 = ? + } -// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV in C. +// allocCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkCooperativeMatrixPropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCooperativeMatrixPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) +const sizeOfCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkCooperativeMatrixPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { +func (x *CooperativeMatrixPropertiesNV) Ref() *C.VkCooperativeMatrixPropertiesNV { if x == nil { return nil } - return x.ref7ea4590f + 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 *ViewportWScalingNV) Free() { - if x != nil && x.allocs7ea4590f != nil { - x.allocs7ea4590f.(*cgoAllocMap).Free() - x.ref7ea4590f = nil +func (x *CooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs4302be60 != nil { + x.allocs4302be60.(*cgoAllocMap).Free() + x.ref4302be60 = nil } } -// NewViewportWScalingNVRef 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 NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { +func NewCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *CooperativeMatrixPropertiesNV { if ref == nil { return nil } - obj := new(ViewportWScalingNV) - obj.ref7ea4590f = (*C.VkViewportWScalingNV)(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 *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { +func (x *CooperativeMatrixPropertiesNV) PassRef() (*C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ea4590f != nil { - return x.ref7ea4590f, nil + } else if x.ref4302be60 != nil { + return x.ref4302be60, nil } - mem7ea4590f := allocViewportWScalingNVMemory(1) - ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) - allocs7ea4590f := new(cgoAllocMap) - allocs7ea4590f.Add(mem7ea4590f) + mem4302be60 := allocCooperativeMatrixPropertiesNVMemory(1) + ref4302be60 := (*C.VkCooperativeMatrixPropertiesNV)(mem4302be60) + allocs4302be60 := new(cgoAllocMap) + allocs4302be60.Add(mem4302be60) - var cxcoeff_allocs *cgoAllocMap - ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cxcoeff_allocs) + var csType_allocs *cgoAllocMap + ref4302be60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4302be60.Borrow(csType_allocs) - var cycoeff_allocs *cgoAllocMap - ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cycoeff_allocs) + var cpNext_allocs *cgoAllocMap + ref4302be60.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4302be60.Borrow(cpNext_allocs) - x.ref7ea4590f = ref7ea4590f - x.allocs7ea4590f = allocs7ea4590f - return ref7ea4590f, allocs7ea4590f + 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 ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { - if x.ref7ea4590f != nil { - return *x.ref7ea4590f, nil +func (x CooperativeMatrixPropertiesNV) PassValue() (C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref4302be60 != nil { + return *x.ref4302be60, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29329,135 +54426,101 @@ 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 *CooperativeMatrixPropertiesNV) Deref() { + if x.ref4302be60 == nil { return } - x.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) - x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) + 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) } -// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV in C. +// allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixFeaturesNV { if x == nil { return nil } - return x.ref3e532c0b + 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 *PipelineViewportWScalingStateCreateInfoNV) Free() { - if x != nil && x.allocs3e532c0b != nil { - x.allocs3e532c0b.(*cgoAllocMap).Free() - x.ref3e532c0b = nil +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Free() { + if x != nil && x.allocsff45ea3f != nil { + x.allocsff45ea3f.(*cgoAllocMap).Free() + x.refff45ea3f = nil } } -// NewPipelineViewportWScalingStateCreateInfoNVRef 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 NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { +func NewPhysicalDeviceCooperativeMatrixFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixFeaturesNV { if ref == nil { return nil } - obj := new(PipelineViewportWScalingStateCreateInfoNV) - obj.ref3e532c0b = (*C.VkPipelineViewportWScalingStateCreateInfoNV)(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 *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e532c0b != nil { - return x.ref3e532c0b, nil + } else if x.refff45ea3f != nil { + return x.refff45ea3f, nil } - mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) - ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) - allocs3e532c0b := new(cgoAllocMap) - allocs3e532c0b.Add(mem3e532c0b) + memff45ea3f := allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(1) + refff45ea3f := (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(memff45ea3f) + allocsff45ea3f := new(cgoAllocMap) + allocsff45ea3f.Add(memff45ea3f) var csType_allocs *cgoAllocMap - ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e532c0b.Borrow(csType_allocs) + refff45ea3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff45ea3f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e532c0b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e532c0b.Borrow(cpNext_allocs) + refff45ea3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff45ea3f.Borrow(cpNext_allocs) - var cviewportWScalingEnable_allocs *cgoAllocMap - ref3e532c0b.viewportWScalingEnable, cviewportWScalingEnable_allocs = (C.VkBool32)(x.ViewportWScalingEnable), cgoAllocsUnknown - allocs3e532c0b.Borrow(cviewportWScalingEnable_allocs) + var ccooperativeMatrix_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrix, ccooperativeMatrix_allocs = (C.VkBool32)(x.CooperativeMatrix), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrix_allocs) - var cviewportCount_allocs *cgoAllocMap - ref3e532c0b.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs3e532c0b.Borrow(cviewportCount_allocs) + var ccooperativeMatrixRobustBufferAccess_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrixRobustBufferAccess, ccooperativeMatrixRobustBufferAccess_allocs = (C.VkBool32)(x.CooperativeMatrixRobustBufferAccess), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrixRobustBufferAccess_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 + 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 PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { - if x.ref3e532c0b != nil { - return *x.ref3e532c0b, nil +func (x PhysicalDeviceCooperativeMatrixFeaturesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { + if x.refff45ea3f != nil { + return *x.refff45ea3f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29465,92 +54528,91 @@ 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) Deref() { + if x.refff45ea3f == 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.refff45ea3f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff45ea3f.pNext)) + x.CooperativeMatrix = (Bool32)(x.refff45ea3f.cooperativeMatrix) + x.CooperativeMatrixRobustBufferAccess = (Bool32)(x.refff45ea3f.cooperativeMatrixRobustBufferAccess) } -// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT in C. +// allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixPropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) +const sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixPropertiesNV { if x == nil { return nil } - return x.ref80fed52f + 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 *DisplayPowerInfo) Free() { - if x != nil && x.allocs80fed52f != nil { - x.allocs80fed52f.(*cgoAllocMap).Free() - x.ref80fed52f = nil +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs45336143 != nil { + x.allocs45336143.(*cgoAllocMap).Free() + x.ref45336143 = nil } } -// NewDisplayPowerInfoRef 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 NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { +func NewPhysicalDeviceCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixPropertiesNV { if ref == nil { return nil } - obj := new(DisplayPowerInfo) - obj.ref80fed52f = (*C.VkDisplayPowerInfoEXT)(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 *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80fed52f != nil { - return x.ref80fed52f, nil + } else if x.ref45336143 != nil { + return x.ref45336143, nil } - mem80fed52f := allocDisplayPowerInfoMemory(1) - ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) - allocs80fed52f := new(cgoAllocMap) - allocs80fed52f.Add(mem80fed52f) + mem45336143 := allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(1) + ref45336143 := (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(mem45336143) + allocs45336143 := new(cgoAllocMap) + allocs45336143.Add(mem45336143) var csType_allocs *cgoAllocMap - ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80fed52f.Borrow(csType_allocs) + ref45336143.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs45336143.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80fed52f.Borrow(cpNext_allocs) + ref45336143.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs45336143.Borrow(cpNext_allocs) - var cpowerState_allocs *cgoAllocMap - ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown - allocs80fed52f.Borrow(cpowerState_allocs) + var ccooperativeMatrixSupportedStages_allocs *cgoAllocMap + ref45336143.cooperativeMatrixSupportedStages, ccooperativeMatrixSupportedStages_allocs = (C.VkShaderStageFlags)(x.CooperativeMatrixSupportedStages), cgoAllocsUnknown + allocs45336143.Borrow(ccooperativeMatrixSupportedStages_allocs) - x.ref80fed52f = ref80fed52f - x.allocs80fed52f = allocs80fed52f - return ref80fed52f, allocs80fed52f + 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 DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { - if x.ref80fed52f != nil { - return *x.ref80fed52f, nil +func (x PhysicalDeviceCooperativeMatrixPropertiesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref45336143 != nil { + return *x.ref45336143, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29558,90 +54620,90 @@ 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) Deref() { + if x.ref45336143 == nil { return } - x.SType = (StructureType)(x.ref80fed52f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) - x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) + x.SType = (StructureType)(x.ref45336143.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref45336143.pNext)) + x.CooperativeMatrixSupportedStages = (ShaderStageFlags)(x.ref45336143.cooperativeMatrixSupportedStages) } -// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT in C. +// allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCoverageReductionModeFeaturesNV 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()) +func allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) +const sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoverageReductionModeFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Ref() *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV { if x == nil { return nil } - return x.ref394b3fcb + 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 *DeviceEventInfo) Free() { - if x != nil && x.allocs394b3fcb != nil { - x.allocs394b3fcb.(*cgoAllocMap).Free() - x.ref394b3fcb = nil +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Free() { + if x != nil && x.allocs1066c79 != nil { + x.allocs1066c79.(*cgoAllocMap).Free() + x.ref1066c79 = nil } } -// NewDeviceEventInfoRef 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 NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { +func NewPhysicalDeviceCoverageReductionModeFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCoverageReductionModeFeaturesNV { if ref == nil { return nil } - obj := new(DeviceEventInfo) - obj.ref394b3fcb = (*C.VkDeviceEventInfoEXT)(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 *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) PassRef() (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref394b3fcb != nil { - return x.ref394b3fcb, nil + } else if x.ref1066c79 != nil { + return x.ref1066c79, nil } - mem394b3fcb := allocDeviceEventInfoMemory(1) - ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) - allocs394b3fcb := new(cgoAllocMap) - allocs394b3fcb.Add(mem394b3fcb) + mem1066c79 := allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(1) + ref1066c79 := (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(mem1066c79) + allocs1066c79 := new(cgoAllocMap) + allocs1066c79.Add(mem1066c79) var csType_allocs *cgoAllocMap - ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs394b3fcb.Borrow(csType_allocs) + ref1066c79.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1066c79.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs394b3fcb.Borrow(cpNext_allocs) + ref1066c79.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1066c79.Borrow(cpNext_allocs) - var cdeviceEvent_allocs *cgoAllocMap - ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown - allocs394b3fcb.Borrow(cdeviceEvent_allocs) + var ccoverageReductionMode_allocs *cgoAllocMap + ref1066c79.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkBool32)(x.CoverageReductionMode), cgoAllocsUnknown + allocs1066c79.Borrow(ccoverageReductionMode_allocs) - x.ref394b3fcb = ref394b3fcb - x.allocs394b3fcb = allocs394b3fcb - return ref394b3fcb, allocs394b3fcb + 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 DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { - if x.ref394b3fcb != nil { - return *x.ref394b3fcb, nil +func (x PhysicalDeviceCoverageReductionModeFeaturesNV) PassValue() (C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { + if x.ref1066c79 != nil { + return *x.ref1066c79, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29649,90 +54711,94 @@ 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 *PhysicalDeviceCoverageReductionModeFeaturesNV) Deref() { + if x.ref1066c79 == 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.ref1066c79.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1066c79.pNext)) + x.CoverageReductionMode = (Bool32)(x.ref1066c79.coverageReductionMode) } -// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT in C. +// allocPipelineCoverageReductionStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageReductionStateCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineCoverageReductionStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageReductionStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) +const sizeOfPipelineCoverageReductionStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageReductionStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { +func (x *PipelineCoverageReductionStateCreateInfoNV) Ref() *C.VkPipelineCoverageReductionStateCreateInfoNV { if x == nil { return nil } - return x.refa69f7302 + 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 *DisplayEventInfo) Free() { - if x != nil && x.allocsa69f7302 != nil { - x.allocsa69f7302.(*cgoAllocMap).Free() - x.refa69f7302 = nil +func (x *PipelineCoverageReductionStateCreateInfoNV) Free() { + if x != nil && x.allocs39db618c != nil { + x.allocs39db618c.(*cgoAllocMap).Free() + x.ref39db618c = nil } } -// NewDisplayEventInfoRef 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 NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { +func NewPipelineCoverageReductionStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageReductionStateCreateInfoNV { if ref == nil { return nil } - obj := new(DisplayEventInfo) - obj.refa69f7302 = (*C.VkDisplayEventInfoEXT)(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 *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { +func (x *PipelineCoverageReductionStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa69f7302 != nil { - return x.refa69f7302, nil + } else if x.ref39db618c != nil { + return x.ref39db618c, nil } - mema69f7302 := allocDisplayEventInfoMemory(1) - refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) - allocsa69f7302 := new(cgoAllocMap) - allocsa69f7302.Add(mema69f7302) + mem39db618c := allocPipelineCoverageReductionStateCreateInfoNVMemory(1) + ref39db618c := (*C.VkPipelineCoverageReductionStateCreateInfoNV)(mem39db618c) + allocs39db618c := new(cgoAllocMap) + allocs39db618c.Add(mem39db618c) var csType_allocs *cgoAllocMap - refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa69f7302.Borrow(csType_allocs) + ref39db618c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs39db618c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa69f7302.Borrow(cpNext_allocs) + ref39db618c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs39db618c.Borrow(cpNext_allocs) - var cdisplayEvent_allocs *cgoAllocMap - refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown - allocsa69f7302.Borrow(cdisplayEvent_allocs) + var cflags_allocs *cgoAllocMap + ref39db618c.flags, cflags_allocs = (C.VkPipelineCoverageReductionStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs39db618c.Borrow(cflags_allocs) - x.refa69f7302 = refa69f7302 - x.allocsa69f7302 = allocsa69f7302 - return refa69f7302, allocsa69f7302 + 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 DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { - if x.refa69f7302 != nil { - return *x.refa69f7302, nil +func (x PipelineCoverageReductionStateCreateInfoNV) PassValue() (C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { + if x.ref39db618c != nil { + return *x.ref39db618c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29740,90 +54806,103 @@ 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 *PipelineCoverageReductionStateCreateInfoNV) Deref() { + if x.ref39db618c == 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.ref39db618c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref39db618c.pNext)) + x.Flags = (PipelineCoverageReductionStateCreateFlagsNV)(x.ref39db618c.flags) + x.CoverageReductionMode = (CoverageReductionModeNV)(x.ref39db618c.coverageReductionMode) } -// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT in C. +// allocFramebufferMixedSamplesCombinationNVMemory allocates memory for type C.VkFramebufferMixedSamplesCombinationNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocFramebufferMixedSamplesCombinationNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferMixedSamplesCombinationNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) +const sizeOfFramebufferMixedSamplesCombinationNVValue = unsafe.Sizeof([1]C.VkFramebufferMixedSamplesCombinationNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { +func (x *FramebufferMixedSamplesCombinationNV) Ref() *C.VkFramebufferMixedSamplesCombinationNV { if x == nil { return nil } - return x.ref9f21eca6 + 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 *SwapchainCounterCreateInfo) Free() { - if x != nil && x.allocs9f21eca6 != nil { - x.allocs9f21eca6.(*cgoAllocMap).Free() - x.ref9f21eca6 = nil +func (x *FramebufferMixedSamplesCombinationNV) Free() { + if x != nil && x.allocs75affbab != nil { + x.allocs75affbab.(*cgoAllocMap).Free() + x.ref75affbab = nil } } -// NewSwapchainCounterCreateInfoRef 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 NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { +func NewFramebufferMixedSamplesCombinationNVRef(ref unsafe.Pointer) *FramebufferMixedSamplesCombinationNV { if ref == nil { return nil } - obj := new(SwapchainCounterCreateInfo) - obj.ref9f21eca6 = (*C.VkSwapchainCounterCreateInfoEXT)(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 *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { +func (x *FramebufferMixedSamplesCombinationNV) PassRef() (*C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9f21eca6 != nil { - return x.ref9f21eca6, nil + } else if x.ref75affbab != nil { + return x.ref75affbab, nil } - mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) - ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) - allocs9f21eca6 := new(cgoAllocMap) - allocs9f21eca6.Add(mem9f21eca6) + mem75affbab := allocFramebufferMixedSamplesCombinationNVMemory(1) + ref75affbab := (*C.VkFramebufferMixedSamplesCombinationNV)(mem75affbab) + allocs75affbab := new(cgoAllocMap) + allocs75affbab.Add(mem75affbab) var csType_allocs *cgoAllocMap - ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9f21eca6.Borrow(csType_allocs) + ref75affbab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75affbab.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9f21eca6.Borrow(cpNext_allocs) + ref75affbab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75affbab.Borrow(cpNext_allocs) - var csurfaceCounters_allocs *cgoAllocMap - ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown - allocs9f21eca6.Borrow(csurfaceCounters_allocs) + var ccoverageReductionMode_allocs *cgoAllocMap + ref75affbab.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown + allocs75affbab.Borrow(ccoverageReductionMode_allocs) - x.ref9f21eca6 = ref9f21eca6 - x.allocs9f21eca6 = allocs9f21eca6 - return ref9f21eca6, allocs9f21eca6 + var crasterizationSamples_allocs *cgoAllocMap + ref75affbab.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocs75affbab.Borrow(crasterizationSamples_allocs) + + 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 SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { - if x.ref9f21eca6 != nil { - return *x.ref9f21eca6, nil +func (x FramebufferMixedSamplesCombinationNV) PassValue() (C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { + if x.ref75affbab != nil { + return *x.ref75affbab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29831,82 +54910,101 @@ 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 *FramebufferMixedSamplesCombinationNV) Deref() { + if x.ref75affbab == 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.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) } -// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE in C. +// allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) +const sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { if x == nil { return nil } - return x.ref969cb55b + 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 *RefreshCycleDurationGOOGLE) Free() { - if x != nil && x.allocs969cb55b != nil { - x.allocs969cb55b.(*cgoAllocMap).Free() - x.ref969cb55b = nil +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Free() { + if x != nil && x.allocs1ed4955d != nil { + x.allocs1ed4955d.(*cgoAllocMap).Free() + x.ref1ed4955d = nil } } -// NewRefreshCycleDurationGOOGLERef 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 NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { +func NewPhysicalDeviceFragmentShaderInterlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderInterlockFeatures { if ref == nil { return nil } - obj := new(RefreshCycleDurationGOOGLE) - obj.ref969cb55b = (*C.VkRefreshCycleDurationGOOGLE)(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 *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref969cb55b != nil { - return x.ref969cb55b, nil + } else if x.ref1ed4955d != nil { + return x.ref1ed4955d, nil } - mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) - ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) - allocs969cb55b := new(cgoAllocMap) - allocs969cb55b.Add(mem969cb55b) + mem1ed4955d := allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(1) + ref1ed4955d := (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(mem1ed4955d) + allocs1ed4955d := new(cgoAllocMap) + allocs1ed4955d.Add(mem1ed4955d) - var crefreshDuration_allocs *cgoAllocMap - ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown - allocs969cb55b.Borrow(crefreshDuration_allocs) + var csType_allocs *cgoAllocMap + ref1ed4955d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1ed4955d.Borrow(csType_allocs) - x.ref969cb55b = ref969cb55b - x.allocs969cb55b = allocs969cb55b - return ref969cb55b, allocs969cb55b + var cpNext_allocs *cgoAllocMap + ref1ed4955d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1ed4955d.Borrow(cpNext_allocs) + + var cfragmentShaderSampleInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderSampleInterlock, cfragmentShaderSampleInterlock_allocs = (C.VkBool32)(x.FragmentShaderSampleInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderSampleInterlock_allocs) + + var cfragmentShaderPixelInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderPixelInterlock, cfragmentShaderPixelInterlock_allocs = (C.VkBool32)(x.FragmentShaderPixelInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderPixelInterlock_allocs) + + var cfragmentShaderShadingRateInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderShadingRateInterlock, cfragmentShaderShadingRateInterlock_allocs = (C.VkBool32)(x.FragmentShaderShadingRateInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderShadingRateInterlock_allocs) + + 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 RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { - if x.ref969cb55b != nil { - return *x.ref969cb55b, nil +func (x PhysicalDeviceFragmentShaderInterlockFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { + if x.ref1ed4955d != nil { + return *x.ref1ed4955d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29914,96 +55012,92 @@ 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 *PhysicalDeviceFragmentShaderInterlockFeatures) Deref() { + if x.ref1ed4955d == nil { return } - x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) + 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) } -// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE in C. +// allocPhysicalDeviceYcbcrImageArraysFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) +const sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Ref() *C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { if x == nil { return nil } - return x.refac8cf1d8 + 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 *PastPresentationTimingGOOGLE) Free() { - if x != nil && x.allocsac8cf1d8 != nil { - x.allocsac8cf1d8.(*cgoAllocMap).Free() - x.refac8cf1d8 = nil +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Free() { + if x != nil && x.allocs3198007 != nil { + x.allocs3198007.(*cgoAllocMap).Free() + x.ref3198007 = nil } } -// NewPastPresentationTimingGOOGLERef 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 NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { +func NewPhysicalDeviceYcbcrImageArraysFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcrImageArraysFeatures { if ref == nil { return nil } - obj := new(PastPresentationTimingGOOGLE) - obj.refac8cf1d8 = (*C.VkPastPresentationTimingGOOGLE)(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 *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceYcbcrImageArraysFeatures) PassRef() (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac8cf1d8 != nil { - return x.refac8cf1d8, nil + } else if x.ref3198007 != nil { + return x.ref3198007, 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) - - var cdesiredPresentTime_allocs *cgoAllocMap - refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) + mem3198007 := allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(1) + ref3198007 := (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(mem3198007) + allocs3198007 := new(cgoAllocMap) + allocs3198007.Add(mem3198007) - var cactualPresentTime_allocs *cgoAllocMap - refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cactualPresentTime_allocs) + var csType_allocs *cgoAllocMap + ref3198007.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3198007.Borrow(csType_allocs) - var cearliestPresentTime_allocs *cgoAllocMap - refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) + var cpNext_allocs *cgoAllocMap + ref3198007.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3198007.Borrow(cpNext_allocs) - var cpresentMargin_allocs *cgoAllocMap - refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cpresentMargin_allocs) + var cycbcrImageArrays_allocs *cgoAllocMap + ref3198007.ycbcrImageArrays, cycbcrImageArrays_allocs = (C.VkBool32)(x.YcbcrImageArrays), cgoAllocsUnknown + allocs3198007.Borrow(cycbcrImageArrays_allocs) - x.refac8cf1d8 = refac8cf1d8 - x.allocsac8cf1d8 = allocsac8cf1d8 - return refac8cf1d8, allocsac8cf1d8 + 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 PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { - if x.refac8cf1d8 != nil { - return *x.refac8cf1d8, nil +func (x PhysicalDeviceYcbcrImageArraysFeatures) PassValue() (C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { + if x.ref3198007 != nil { + return *x.ref3198007, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30011,88 +55105,94 @@ 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 *PhysicalDeviceYcbcrImageArraysFeatures) Deref() { + if x.ref3198007 == 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.ref3198007.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3198007.pNext)) + x.YcbcrImageArrays = (Bool32)(x.ref3198007.ycbcrImageArrays) } -// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE in C. +// allocPhysicalDeviceProvokingVertexFeaturesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceProvokingVertexFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) +const sizeOfPhysicalDeviceProvokingVertexFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { +func (x *PhysicalDeviceProvokingVertexFeatures) Ref() *C.VkPhysicalDeviceProvokingVertexFeaturesEXT { if x == nil { return nil } - return x.ref9cd90ade + 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 *PresentTimeGOOGLE) Free() { - if x != nil && x.allocs9cd90ade != nil { - x.allocs9cd90ade.(*cgoAllocMap).Free() - x.ref9cd90ade = nil +func (x *PhysicalDeviceProvokingVertexFeatures) Free() { + if x != nil && x.allocs3e34d575 != nil { + x.allocs3e34d575.(*cgoAllocMap).Free() + x.ref3e34d575 = nil } } -// NewPresentTimeGOOGLERef 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 NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { +func NewPhysicalDeviceProvokingVertexFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexFeatures { if ref == nil { return nil } - obj := new(PresentTimeGOOGLE) - obj.ref9cd90ade = (*C.VkPresentTimeGOOGLE)(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 *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceProvokingVertexFeatures) PassRef() (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9cd90ade != nil { - return x.ref9cd90ade, nil + } else if x.ref3e34d575 != nil { + return x.ref3e34d575, nil } - mem9cd90ade := allocPresentTimeGOOGLEMemory(1) - ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) - allocs9cd90ade := new(cgoAllocMap) - allocs9cd90ade.Add(mem9cd90ade) + mem3e34d575 := allocPhysicalDeviceProvokingVertexFeaturesMemory(1) + ref3e34d575 := (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(mem3e34d575) + allocs3e34d575 := new(cgoAllocMap) + allocs3e34d575.Add(mem3e34d575) - var cpresentID_allocs *cgoAllocMap - ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown - allocs9cd90ade.Borrow(cpresentID_allocs) + var csType_allocs *cgoAllocMap + ref3e34d575.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e34d575.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 + ref3e34d575.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e34d575.Borrow(cpNext_allocs) - x.ref9cd90ade = ref9cd90ade - x.allocs9cd90ade = allocs9cd90ade - return ref9cd90ade, allocs9cd90ade + var cprovokingVertexLast_allocs *cgoAllocMap + ref3e34d575.provokingVertexLast, cprovokingVertexLast_allocs = (C.VkBool32)(x.ProvokingVertexLast), cgoAllocsUnknown + allocs3e34d575.Borrow(cprovokingVertexLast_allocs) + + var ctransformFeedbackPreservesProvokingVertex_allocs *cgoAllocMap + ref3e34d575.transformFeedbackPreservesProvokingVertex, ctransformFeedbackPreservesProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesProvokingVertex), cgoAllocsUnknown + allocs3e34d575.Borrow(ctransformFeedbackPreservesProvokingVertex_allocs) + + 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 PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { - if x.ref9cd90ade != nil { - return *x.ref9cd90ade, nil +func (x PhysicalDeviceProvokingVertexFeatures) PassValue() (C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { + if x.ref3e34d575 != nil { + return *x.ref3e34d575, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30100,131 +55200,95 @@ 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 *PhysicalDeviceProvokingVertexFeatures) Deref() { + if x.ref3e34d575 == nil { return } - x.PresentID = (uint32)(x.ref9cd90ade.presentID) - x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) + 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) } -// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE in C. +// allocPhysicalDeviceProvokingVertexPropertiesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceProvokingVertexPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceProvokingVertexPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { +func (x *PhysicalDeviceProvokingVertexProperties) Ref() *C.VkPhysicalDeviceProvokingVertexPropertiesEXT { if x == nil { return nil } - return x.ref70eb8ab3 + 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 *PresentTimesInfoGOOGLE) Free() { - if x != nil && x.allocs70eb8ab3 != nil { - x.allocs70eb8ab3.(*cgoAllocMap).Free() - x.ref70eb8ab3 = nil +func (x *PhysicalDeviceProvokingVertexProperties) Free() { + if x != nil && x.allocsa8810910 != nil { + x.allocsa8810910.(*cgoAllocMap).Free() + x.refa8810910 = nil } } -// NewPresentTimesInfoGOOGLERef 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 NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { +func NewPhysicalDeviceProvokingVertexPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexProperties { if ref == nil { return nil } - obj := new(PresentTimesInfoGOOGLE) - obj.ref70eb8ab3 = (*C.VkPresentTimesInfoGOOGLE)(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 *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceProvokingVertexProperties) PassRef() (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref70eb8ab3 != nil { - return x.ref70eb8ab3, nil + } else if x.refa8810910 != nil { + return x.refa8810910, nil } - mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) - ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) - allocs70eb8ab3 := new(cgoAllocMap) - allocs70eb8ab3.Add(mem70eb8ab3) + mema8810910 := allocPhysicalDeviceProvokingVertexPropertiesMemory(1) + refa8810910 := (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(mema8810910) + allocsa8810910 := new(cgoAllocMap) + allocsa8810910.Add(mema8810910) var csType_allocs *cgoAllocMap - ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs70eb8ab3.Borrow(csType_allocs) + refa8810910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8810910.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cpNext_allocs) + refa8810910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8810910.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cswapchainCount_allocs) + var cprovokingVertexModePerPipeline_allocs *cgoAllocMap + refa8810910.provokingVertexModePerPipeline, cprovokingVertexModePerPipeline_allocs = (C.VkBool32)(x.ProvokingVertexModePerPipeline), cgoAllocsUnknown + allocsa8810910.Borrow(cprovokingVertexModePerPipeline_allocs) - var cpTimes_allocs *cgoAllocMap - ref70eb8ab3.pTimes, cpTimes_allocs = unpackSPresentTimeGOOGLE(x.PTimes) - allocs70eb8ab3.Borrow(cpTimes_allocs) + var ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs *cgoAllocMap + refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex, ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesTriangleFanProvokingVertex), cgoAllocsUnknown + allocsa8810910.Borrow(ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs) - x.ref70eb8ab3 = ref70eb8ab3 - x.allocs70eb8ab3 = allocs70eb8ab3 - return ref70eb8ab3, allocs70eb8ab3 + 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 PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { - if x.ref70eb8ab3 != nil { - return *x.ref70eb8ab3, nil +func (x PhysicalDeviceProvokingVertexProperties) PassValue() (C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { + if x.refa8810910 != nil { + return *x.refa8810910, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30232,91 +55296,91 @@ 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 *PhysicalDeviceProvokingVertexProperties) Deref() { + if x.refa8810910 == 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.refa8810910.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8810910.pNext)) + x.ProvokingVertexModePerPipeline = (Bool32)(x.refa8810910.provokingVertexModePerPipeline) + x.TransformFeedbackPreservesTriangleFanProvokingVertex = (Bool32)(x.refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex) } -// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX in C. +// allocPipelineRasterizationProvokingVertexStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) +const sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Ref() *C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { if x == nil { return nil } - return x.refbaf399ad + 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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { - if x != nil && x.allocsbaf399ad != nil { - x.allocsbaf399ad.(*cgoAllocMap).Free() - x.refbaf399ad = nil +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Free() { + if x != nil && x.allocs367b4d68 != nil { + x.allocs367b4d68.(*cgoAllocMap).Free() + x.ref367b4d68 = nil } } -// NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef 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 NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func NewPipelineRasterizationProvokingVertexStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationProvokingVertexStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) - obj.refbaf399ad = (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) PassRef() (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbaf399ad != nil { - return x.refbaf399ad, nil + } else if x.ref367b4d68 != nil { + return x.ref367b4d68, nil } - membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) - refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) - allocsbaf399ad := new(cgoAllocMap) - allocsbaf399ad.Add(membaf399ad) + mem367b4d68 := allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(1) + ref367b4d68 := (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(mem367b4d68) + allocs367b4d68 := new(cgoAllocMap) + allocs367b4d68.Add(mem367b4d68) var csType_allocs *cgoAllocMap - refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbaf399ad.Borrow(csType_allocs) + ref367b4d68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs367b4d68.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbaf399ad.Borrow(cpNext_allocs) + ref367b4d68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs367b4d68.Borrow(cpNext_allocs) - var cperViewPositionAllComponents_allocs *cgoAllocMap - refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown - allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) + var cprovokingVertexMode_allocs *cgoAllocMap + ref367b4d68.provokingVertexMode, cprovokingVertexMode_allocs = (C.VkProvokingVertexModeEXT)(x.ProvokingVertexMode), cgoAllocsUnknown + allocs367b4d68.Borrow(cprovokingVertexMode_allocs) - x.refbaf399ad = refbaf399ad - x.allocsbaf399ad = allocsbaf399ad - return refbaf399ad, allocsbaf399ad + 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 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { - if x.refbaf399ad != nil { - return *x.refbaf399ad, nil +func (x PipelineRasterizationProvokingVertexStateCreateInfo) PassValue() (C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { + if x.ref367b4d68 != nil { + return *x.ref367b4d68, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30324,94 +55388,90 @@ 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 *PipelineRasterizationProvokingVertexStateCreateInfo) Deref() { + if x.ref367b4d68 == 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.ref367b4d68.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref367b4d68.pNext)) + x.ProvokingVertexMode = (ProvokingVertexMode)(x.ref367b4d68.provokingVertexMode) } -// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV in C. +// allocHeadlessSurfaceCreateInfoMemory allocates memory for type C.VkHeadlessSurfaceCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocHeadlessSurfaceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHeadlessSurfaceCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) +const sizeOfHeadlessSurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkHeadlessSurfaceCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { +func (x *HeadlessSurfaceCreateInfo) Ref() *C.VkHeadlessSurfaceCreateInfoEXT { if x == nil { return nil } - return x.ref74ff2887 + 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 *ViewportSwizzleNV) Free() { - if x != nil && x.allocs74ff2887 != nil { - x.allocs74ff2887.(*cgoAllocMap).Free() - x.ref74ff2887 = nil +func (x *HeadlessSurfaceCreateInfo) Free() { + if x != nil && x.allocsed88b258 != nil { + x.allocsed88b258.(*cgoAllocMap).Free() + x.refed88b258 = nil } } -// NewViewportSwizzleNVRef 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 NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { +func NewHeadlessSurfaceCreateInfoRef(ref unsafe.Pointer) *HeadlessSurfaceCreateInfo { if ref == nil { return nil } - obj := new(ViewportSwizzleNV) - obj.ref74ff2887 = (*C.VkViewportSwizzleNV)(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 *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { +func (x *HeadlessSurfaceCreateInfo) PassRef() (*C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref74ff2887 != nil { - return x.ref74ff2887, nil + } else if x.refed88b258 != nil { + return x.refed88b258, nil } - mem74ff2887 := allocViewportSwizzleNVMemory(1) - ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) - allocs74ff2887 := new(cgoAllocMap) - allocs74ff2887.Add(mem74ff2887) - - var cx_allocs *cgoAllocMap - ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown - allocs74ff2887.Borrow(cx_allocs) + memed88b258 := allocHeadlessSurfaceCreateInfoMemory(1) + refed88b258 := (*C.VkHeadlessSurfaceCreateInfoEXT)(memed88b258) + allocsed88b258 := new(cgoAllocMap) + allocsed88b258.Add(memed88b258) - var cy_allocs *cgoAllocMap - ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown - allocs74ff2887.Borrow(cy_allocs) + var csType_allocs *cgoAllocMap + refed88b258.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed88b258.Borrow(csType_allocs) - var cz_allocs *cgoAllocMap - ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown - allocs74ff2887.Borrow(cz_allocs) + var cpNext_allocs *cgoAllocMap + refed88b258.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed88b258.Borrow(cpNext_allocs) - var cw_allocs *cgoAllocMap - ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown - allocs74ff2887.Borrow(cw_allocs) + var cflags_allocs *cgoAllocMap + refed88b258.flags, cflags_allocs = (C.VkHeadlessSurfaceCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsed88b258.Borrow(cflags_allocs) - x.ref74ff2887 = ref74ff2887 - x.allocs74ff2887 = allocs74ff2887 - return ref74ff2887, allocs74ff2887 + 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 ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { - if x.ref74ff2887 != nil { - return *x.ref74ff2887, nil +func (x HeadlessSurfaceCreateInfo) PassValue() (C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { + if x.refed88b258 != nil { + return *x.refed88b258, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30419,137 +55479,110 @@ 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 *HeadlessSurfaceCreateInfo) Deref() { + if x.refed88b258 == 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.refed88b258.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed88b258.pNext)) + x.Flags = (HeadlessSurfaceCreateFlags)(x.refed88b258.flags) } -// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV in C. +// allocPhysicalDeviceLineRasterizationFeaturesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceLineRasterizationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceLineRasterizationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { +func (x *PhysicalDeviceLineRasterizationFeatures) Ref() *C.VkPhysicalDeviceLineRasterizationFeaturesEXT { if x == nil { return nil } - return x.ref5e90f24 + 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 *PipelineViewportSwizzleStateCreateInfoNV) Free() { - if x != nil && x.allocs5e90f24 != nil { - x.allocs5e90f24.(*cgoAllocMap).Free() - x.ref5e90f24 = nil +func (x *PhysicalDeviceLineRasterizationFeatures) Free() { + if x != nil && x.allocsdb9049a7 != nil { + x.allocsdb9049a7.(*cgoAllocMap).Free() + x.refdb9049a7 = nil } } -// NewPipelineViewportSwizzleStateCreateInfoNVRef 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 NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { +func NewPhysicalDeviceLineRasterizationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationFeatures { if ref == nil { return nil } - obj := new(PipelineViewportSwizzleStateCreateInfoNV) - obj.ref5e90f24 = (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(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 *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceLineRasterizationFeatures) PassRef() (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e90f24 != nil { - return x.ref5e90f24, nil + } else if x.refdb9049a7 != nil { + return x.refdb9049a7, nil } - mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) - ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) - allocs5e90f24 := new(cgoAllocMap) - allocs5e90f24.Add(mem5e90f24) + memdb9049a7 := allocPhysicalDeviceLineRasterizationFeaturesMemory(1) + refdb9049a7 := (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(memdb9049a7) + allocsdb9049a7 := new(cgoAllocMap) + allocsdb9049a7.Add(memdb9049a7) var csType_allocs *cgoAllocMap - ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e90f24.Borrow(csType_allocs) + refdb9049a7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdb9049a7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5e90f24.Borrow(cpNext_allocs) + refdb9049a7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdb9049a7.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocs5e90f24.Borrow(cflags_allocs) + var crectangularLines_allocs *cgoAllocMap + refdb9049a7.rectangularLines, crectangularLines_allocs = (C.VkBool32)(x.RectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(crectangularLines_allocs) - var cviewportCount_allocs *cgoAllocMap - ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs5e90f24.Borrow(cviewportCount_allocs) + var cbresenhamLines_allocs *cgoAllocMap + refdb9049a7.bresenhamLines, cbresenhamLines_allocs = (C.VkBool32)(x.BresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cbresenhamLines_allocs) - var cpViewportSwizzles_allocs *cgoAllocMap - ref5e90f24.pViewportSwizzles, cpViewportSwizzles_allocs = unpackSViewportSwizzleNV(x.PViewportSwizzles) - allocs5e90f24.Borrow(cpViewportSwizzles_allocs) + var csmoothLines_allocs *cgoAllocMap + refdb9049a7.smoothLines, csmoothLines_allocs = (C.VkBool32)(x.SmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(csmoothLines_allocs) - x.ref5e90f24 = ref5e90f24 - x.allocs5e90f24 = allocs5e90f24 - return ref5e90f24, allocs5e90f24 + var cstippledRectangularLines_allocs *cgoAllocMap + refdb9049a7.stippledRectangularLines, cstippledRectangularLines_allocs = (C.VkBool32)(x.StippledRectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledRectangularLines_allocs) + + var cstippledBresenhamLines_allocs *cgoAllocMap + refdb9049a7.stippledBresenhamLines, cstippledBresenhamLines_allocs = (C.VkBool32)(x.StippledBresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledBresenhamLines_allocs) + + var cstippledSmoothLines_allocs *cgoAllocMap + refdb9049a7.stippledSmoothLines, cstippledSmoothLines_allocs = (C.VkBool32)(x.StippledSmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledSmoothLines_allocs) + + 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 PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { - if x.ref5e90f24 != nil { - return *x.ref5e90f24, nil +func (x PhysicalDeviceLineRasterizationFeatures) PassValue() (C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { + if x.refdb9049a7 != nil { + return *x.refdb9049a7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30557,92 +55590,95 @@ 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 *PhysicalDeviceLineRasterizationFeatures) Deref() { + if x.refdb9049a7 == 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.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) } -// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT in C. +// allocPhysicalDeviceLineRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceLineRasterizationPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) +const sizeOfPhysicalDeviceLineRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { +func (x *PhysicalDeviceLineRasterizationProperties) Ref() *C.VkPhysicalDeviceLineRasterizationPropertiesEXT { if x == nil { return nil } - return x.reffe8591da + 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 *PhysicalDeviceDiscardRectangleProperties) Free() { - if x != nil && x.allocsfe8591da != nil { - x.allocsfe8591da.(*cgoAllocMap).Free() - x.reffe8591da = nil +func (x *PhysicalDeviceLineRasterizationProperties) Free() { + if x != nil && x.allocse2369446 != nil { + x.allocse2369446.(*cgoAllocMap).Free() + x.refe2369446 = nil } } -// NewPhysicalDeviceDiscardRectanglePropertiesRef 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 NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { +func NewPhysicalDeviceLineRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceDiscardRectangleProperties) - obj.reffe8591da = (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(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 *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceLineRasterizationProperties) PassRef() (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe8591da != nil { - return x.reffe8591da, nil + } else if x.refe2369446 != nil { + return x.refe2369446, nil } - memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) - reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) - allocsfe8591da := new(cgoAllocMap) - allocsfe8591da.Add(memfe8591da) + meme2369446 := allocPhysicalDeviceLineRasterizationPropertiesMemory(1) + refe2369446 := (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(meme2369446) + allocse2369446 := new(cgoAllocMap) + allocse2369446.Add(meme2369446) var csType_allocs *cgoAllocMap - reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe8591da.Borrow(csType_allocs) + refe2369446.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse2369446.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe8591da.Borrow(cpNext_allocs) + refe2369446.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse2369446.Borrow(cpNext_allocs) - var cmaxDiscardRectangles_allocs *cgoAllocMap - reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown - allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) + var clineSubPixelPrecisionBits_allocs *cgoAllocMap + refe2369446.lineSubPixelPrecisionBits, clineSubPixelPrecisionBits_allocs = (C.uint32_t)(x.LineSubPixelPrecisionBits), cgoAllocsUnknown + allocse2369446.Borrow(clineSubPixelPrecisionBits_allocs) - x.reffe8591da = reffe8591da - x.allocsfe8591da = allocsfe8591da - return reffe8591da, allocsfe8591da + 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 PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { - if x.reffe8591da != nil { - return *x.reffe8591da, nil +func (x PhysicalDeviceLineRasterizationProperties) PassValue() (C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { + if x.refe2369446 != nil { + return *x.refe2369446, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30650,102 +55686,102 @@ 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 *PhysicalDeviceLineRasterizationProperties) Deref() { + if x.refe2369446 == 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.refe2369446.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2369446.pNext)) + x.LineSubPixelPrecisionBits = (uint32)(x.refe2369446.lineSubPixelPrecisionBits) } -// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT in C. +// allocPipelineRasterizationLineStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationLineStateCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineRasterizationLineStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationLineStateCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) +const sizeOfPipelineRasterizationLineStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationLineStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { +func (x *PipelineRasterizationLineStateCreateInfo) Ref() *C.VkPipelineRasterizationLineStateCreateInfoEXT { if x == nil { return nil } - return x.refcdbb125e + 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 *PipelineDiscardRectangleStateCreateInfo) Free() { - if x != nil && x.allocscdbb125e != nil { - x.allocscdbb125e.(*cgoAllocMap).Free() - x.refcdbb125e = nil +func (x *PipelineRasterizationLineStateCreateInfo) Free() { + if x != nil && x.allocs649f4226 != nil { + x.allocs649f4226.(*cgoAllocMap).Free() + x.ref649f4226 = nil } } -// NewPipelineDiscardRectangleStateCreateInfoRef 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 NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { +func NewPipelineRasterizationLineStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationLineStateCreateInfo { if ref == nil { return nil } - obj := new(PipelineDiscardRectangleStateCreateInfo) - obj.refcdbb125e = (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(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 *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { +func (x *PipelineRasterizationLineStateCreateInfo) PassRef() (*C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcdbb125e != nil { - return x.refcdbb125e, nil + } else if x.ref649f4226 != nil { + return x.ref649f4226, nil } - memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) - refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) - allocscdbb125e := new(cgoAllocMap) - allocscdbb125e.Add(memcdbb125e) + mem649f4226 := allocPipelineRasterizationLineStateCreateInfoMemory(1) + ref649f4226 := (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(mem649f4226) + allocs649f4226 := new(cgoAllocMap) + allocs649f4226.Add(mem649f4226) var csType_allocs *cgoAllocMap - refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscdbb125e.Borrow(csType_allocs) + ref649f4226.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs649f4226.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcdbb125e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscdbb125e.Borrow(cpNext_allocs) + ref649f4226.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs649f4226.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refcdbb125e.flags, cflags_allocs = (C.VkPipelineDiscardRectangleStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocscdbb125e.Borrow(cflags_allocs) + var clineRasterizationMode_allocs *cgoAllocMap + ref649f4226.lineRasterizationMode, clineRasterizationMode_allocs = (C.VkLineRasterizationModeEXT)(x.LineRasterizationMode), cgoAllocsUnknown + allocs649f4226.Borrow(clineRasterizationMode_allocs) - var cdiscardRectangleMode_allocs *cgoAllocMap - refcdbb125e.discardRectangleMode, cdiscardRectangleMode_allocs = (C.VkDiscardRectangleModeEXT)(x.DiscardRectangleMode), cgoAllocsUnknown - allocscdbb125e.Borrow(cdiscardRectangleMode_allocs) + var cstippledLineEnable_allocs *cgoAllocMap + ref649f4226.stippledLineEnable, cstippledLineEnable_allocs = (C.VkBool32)(x.StippledLineEnable), cgoAllocsUnknown + allocs649f4226.Borrow(cstippledLineEnable_allocs) - var cdiscardRectangleCount_allocs *cgoAllocMap - refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown - allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) + var clineStippleFactor_allocs *cgoAllocMap + ref649f4226.lineStippleFactor, clineStippleFactor_allocs = (C.uint32_t)(x.LineStippleFactor), cgoAllocsUnknown + allocs649f4226.Borrow(clineStippleFactor_allocs) - var cpDiscardRectangles_allocs *cgoAllocMap - refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) - allocscdbb125e.Borrow(cpDiscardRectangles_allocs) + var clineStipplePattern_allocs *cgoAllocMap + ref649f4226.lineStipplePattern, clineStipplePattern_allocs = (C.uint16_t)(x.LineStipplePattern), cgoAllocsUnknown + allocs649f4226.Borrow(clineStipplePattern_allocs) - x.refcdbb125e = refcdbb125e - x.allocscdbb125e = allocscdbb125e - return refcdbb125e, allocscdbb125e + 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 PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { - if x.refcdbb125e != nil { - return *x.refcdbb125e, nil +func (x PipelineRasterizationLineStateCreateInfo) PassValue() (C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { + if x.ref649f4226 != nil { + return *x.ref649f4226, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30753,125 +55789,137 @@ 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 *PipelineRasterizationLineStateCreateInfo) Deref() { + if x.ref649f4226 == 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.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) } -// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT in C. +// allocPhysicalDeviceShaderAtomicFloatFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) +const sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Ref() *C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { if x == nil { return nil } - return x.ref878f819c + 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 *PhysicalDeviceConservativeRasterizationProperties) Free() { - if x != nil && x.allocs878f819c != nil { - x.allocs878f819c.(*cgoAllocMap).Free() - x.ref878f819c = nil +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Free() { + if x != nil && x.allocsb387c45b != nil { + x.allocsb387c45b.(*cgoAllocMap).Free() + x.refb387c45b = nil } } -// NewPhysicalDeviceConservativeRasterizationPropertiesRef 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 NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { +func NewPhysicalDeviceShaderAtomicFloatFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloatFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceConservativeRasterizationProperties) - obj.ref878f819c = (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(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 *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderAtomicFloatFeatures) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref878f819c != nil { - return x.ref878f819c, nil + } else if x.refb387c45b != nil { + return x.refb387c45b, nil } - mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) - ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) - allocs878f819c := new(cgoAllocMap) - allocs878f819c.Add(mem878f819c) + memb387c45b := allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(1) + refb387c45b := (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(memb387c45b) + allocsb387c45b := new(cgoAllocMap) + allocsb387c45b.Add(memb387c45b) var csType_allocs *cgoAllocMap - ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs878f819c.Borrow(csType_allocs) + refb387c45b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb387c45b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref878f819c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs878f819c.Borrow(cpNext_allocs) + refb387c45b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb387c45b.Borrow(cpNext_allocs) - var cprimitiveOverestimationSize_allocs *cgoAllocMap - ref878f819c.primitiveOverestimationSize, cprimitiveOverestimationSize_allocs = (C.float)(x.PrimitiveOverestimationSize), cgoAllocsUnknown - allocs878f819c.Borrow(cprimitiveOverestimationSize_allocs) + var cshaderBufferFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32Atomics, cshaderBufferFloat32Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32Atomics_allocs) - var cmaxExtraPrimitiveOverestimationSize_allocs *cgoAllocMap - ref878f819c.maxExtraPrimitiveOverestimationSize, cmaxExtraPrimitiveOverestimationSize_allocs = (C.float)(x.MaxExtraPrimitiveOverestimationSize), cgoAllocsUnknown - allocs878f819c.Borrow(cmaxExtraPrimitiveOverestimationSize_allocs) + var cshaderBufferFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32AtomicAdd, cshaderBufferFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32AtomicAdd_allocs) - var cextraPrimitiveOverestimationSizeGranularity_allocs *cgoAllocMap - ref878f819c.extraPrimitiveOverestimationSizeGranularity, cextraPrimitiveOverestimationSizeGranularity_allocs = (C.float)(x.ExtraPrimitiveOverestimationSizeGranularity), cgoAllocsUnknown - allocs878f819c.Borrow(cextraPrimitiveOverestimationSizeGranularity_allocs) + var cshaderBufferFloat64Atomics_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat64Atomics, cshaderBufferFloat64Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat64Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat64Atomics_allocs) - var cprimitiveUnderestimation_allocs *cgoAllocMap - ref878f819c.primitiveUnderestimation, cprimitiveUnderestimation_allocs = (C.VkBool32)(x.PrimitiveUnderestimation), cgoAllocsUnknown - allocs878f819c.Borrow(cprimitiveUnderestimation_allocs) + var cshaderBufferFloat64AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat64AtomicAdd, cshaderBufferFloat64AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat64AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat64AtomicAdd_allocs) - var cconservativePointAndLineRasterization_allocs *cgoAllocMap - ref878f819c.conservativePointAndLineRasterization, cconservativePointAndLineRasterization_allocs = (C.VkBool32)(x.ConservativePointAndLineRasterization), cgoAllocsUnknown - allocs878f819c.Borrow(cconservativePointAndLineRasterization_allocs) + var cshaderSharedFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat32Atomics, cshaderSharedFloat32Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat32Atomics_allocs) - var cdegenerateTrianglesRasterized_allocs *cgoAllocMap - ref878f819c.degenerateTrianglesRasterized, cdegenerateTrianglesRasterized_allocs = (C.VkBool32)(x.DegenerateTrianglesRasterized), cgoAllocsUnknown - allocs878f819c.Borrow(cdegenerateTrianglesRasterized_allocs) + var cshaderSharedFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat32AtomicAdd, cshaderSharedFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat32AtomicAdd_allocs) - var cdegenerateLinesRasterized_allocs *cgoAllocMap - ref878f819c.degenerateLinesRasterized, cdegenerateLinesRasterized_allocs = (C.VkBool32)(x.DegenerateLinesRasterized), cgoAllocsUnknown - allocs878f819c.Borrow(cdegenerateLinesRasterized_allocs) + var cshaderSharedFloat64Atomics_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat64Atomics, cshaderSharedFloat64Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat64Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat64Atomics_allocs) - var cfullyCoveredFragmentShaderInputVariable_allocs *cgoAllocMap - ref878f819c.fullyCoveredFragmentShaderInputVariable, cfullyCoveredFragmentShaderInputVariable_allocs = (C.VkBool32)(x.FullyCoveredFragmentShaderInputVariable), cgoAllocsUnknown - allocs878f819c.Borrow(cfullyCoveredFragmentShaderInputVariable_allocs) + var cshaderSharedFloat64AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat64AtomicAdd, cshaderSharedFloat64AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat64AtomicAdd_allocs) - var cconservativeRasterizationPostDepthCoverage_allocs *cgoAllocMap - ref878f819c.conservativeRasterizationPostDepthCoverage, cconservativeRasterizationPostDepthCoverage_allocs = (C.VkBool32)(x.ConservativeRasterizationPostDepthCoverage), cgoAllocsUnknown - allocs878f819c.Borrow(cconservativeRasterizationPostDepthCoverage_allocs) + var cshaderImageFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderImageFloat32Atomics, cshaderImageFloat32Atomics_allocs = (C.VkBool32)(x.ShaderImageFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderImageFloat32Atomics_allocs) - x.ref878f819c = ref878f819c - x.allocs878f819c = allocs878f819c - return ref878f819c, allocs878f819c + 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 PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { - if x.ref878f819c != nil { - return *x.ref878f819c, nil +func (x PhysicalDeviceShaderAtomicFloatFeatures) PassValue() (C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { + if x.refb387c45b != nil { + return *x.refb387c45b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30879,106 +55927,101 @@ 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 *PhysicalDeviceShaderAtomicFloatFeatures) Deref() { + if x.refb387c45b == 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) -} - -// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT 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 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()) +func allocPhysicalDeviceIndexTypeUint8FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) +const sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { +func (x *PhysicalDeviceIndexTypeUint8Features) Ref() *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT { if x == nil { return nil } - return x.refe3cd0046 + 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 *PipelineRasterizationConservativeStateCreateInfo) Free() { - if x != nil && x.allocse3cd0046 != nil { - x.allocse3cd0046.(*cgoAllocMap).Free() - x.refe3cd0046 = nil +func (x *PhysicalDeviceIndexTypeUint8Features) Free() { + if x != nil && x.allocsd29dc94 != nil { + x.allocsd29dc94.(*cgoAllocMap).Free() + x.refd29dc94 = nil } } -// NewPipelineRasterizationConservativeStateCreateInfoRef 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 NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { +func NewPhysicalDeviceIndexTypeUint8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceIndexTypeUint8Features { if ref == nil { return nil } - obj := new(PipelineRasterizationConservativeStateCreateInfo) - obj.refe3cd0046 = (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(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 *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceIndexTypeUint8Features) PassRef() (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe3cd0046 != nil { - return x.refe3cd0046, nil + } else if x.refd29dc94 != nil { + return x.refd29dc94, nil } - meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) - refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) - allocse3cd0046 := new(cgoAllocMap) - allocse3cd0046.Add(meme3cd0046) + memd29dc94 := allocPhysicalDeviceIndexTypeUint8FeaturesMemory(1) + refd29dc94 := (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(memd29dc94) + allocsd29dc94 := new(cgoAllocMap) + allocsd29dc94.Add(memd29dc94) var csType_allocs *cgoAllocMap - refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse3cd0046.Borrow(csType_allocs) + refd29dc94.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd29dc94.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) + refd29dc94.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd29dc94.Borrow(cpNext_allocs) - var cextraPrimitiveOverestimationSize_allocs *cgoAllocMap - refe3cd0046.extraPrimitiveOverestimationSize, cextraPrimitiveOverestimationSize_allocs = (C.float)(x.ExtraPrimitiveOverestimationSize), cgoAllocsUnknown - allocse3cd0046.Borrow(cextraPrimitiveOverestimationSize_allocs) + var cindexTypeUint8_allocs *cgoAllocMap + refd29dc94.indexTypeUint8, cindexTypeUint8_allocs = (C.VkBool32)(x.IndexTypeUint8), cgoAllocsUnknown + allocsd29dc94.Borrow(cindexTypeUint8_allocs) - x.refe3cd0046 = refe3cd0046 - x.allocse3cd0046 = allocse3cd0046 - return refe3cd0046, allocse3cd0046 + 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 PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { - if x.refe3cd0046 != nil { - return *x.refe3cd0046, nil +func (x PhysicalDeviceIndexTypeUint8Features) PassValue() (C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { + if x.refd29dc94 != nil { + return *x.refd29dc94, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30986,88 +56029,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 *PhysicalDeviceIndexTypeUint8Features) Deref() { + if x.refd29dc94 == 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.refd29dc94.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd29dc94.pNext)) + x.IndexTypeUint8 = (Bool32)(x.refd29dc94.indexTypeUint8) } -// allocXYColorMemory allocates memory for type C.VkXYColorEXT in C. +// allocPhysicalDeviceExtendedDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) +const sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *XYColor) Ref() *C.VkXYColorEXT { +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Ref() *C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { if x == nil { return nil } - return x.refb8efaa5c + 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 *XYColor) Free() { - if x != nil && x.allocsb8efaa5c != nil { - x.allocsb8efaa5c.(*cgoAllocMap).Free() - x.refb8efaa5c = nil +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Free() { + if x != nil && x.allocsf7bd87ab != nil { + x.allocsf7bd87ab.(*cgoAllocMap).Free() + x.reff7bd87ab = nil } } -// NewXYColorRef 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 NewXYColorRef(ref unsafe.Pointer) *XYColor { +func NewPhysicalDeviceExtendedDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicStateFeatures { if ref == nil { return nil } - obj := new(XYColor) - obj.refb8efaa5c = (*C.VkXYColorEXT)(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 *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { +func (x *PhysicalDeviceExtendedDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8efaa5c != nil { - return x.refb8efaa5c, nil + } else if x.reff7bd87ab != nil { + return x.reff7bd87ab, nil } - memb8efaa5c := allocXYColorMemory(1) - refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) - allocsb8efaa5c := new(cgoAllocMap) - allocsb8efaa5c.Add(memb8efaa5c) + memf7bd87ab := allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(1) + reff7bd87ab := (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(memf7bd87ab) + allocsf7bd87ab := new(cgoAllocMap) + allocsf7bd87ab.Add(memf7bd87ab) - var cx_allocs *cgoAllocMap - refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + reff7bd87ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7bd87ab.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + reff7bd87ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cpNext_allocs) - x.refb8efaa5c = refb8efaa5c - x.allocsb8efaa5c = allocsb8efaa5c - return refb8efaa5c, allocsb8efaa5c + var cextendedDynamicState_allocs *cgoAllocMap + reff7bd87ab.extendedDynamicState, cextendedDynamicState_allocs = (C.VkBool32)(x.ExtendedDynamicState), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cextendedDynamicState_allocs) + + 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 XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { - if x.refb8efaa5c != nil { - return *x.refb8efaa5c, nil +func (x PhysicalDeviceExtendedDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { + if x.reff7bd87ab != nil { + return *x.reff7bd87ab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31075,117 +56120,134 @@ 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 *PhysicalDeviceExtendedDynamicStateFeatures) Deref() { + if x.reff7bd87ab == nil { return } - x.X = (float32)(x.refb8efaa5c.x) - x.Y = (float32)(x.refb8efaa5c.y) + x.SType = (StructureType)(x.reff7bd87ab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7bd87ab.pNext)) + x.ExtendedDynamicState = (Bool32)(x.reff7bd87ab.extendedDynamicState) } -// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT in C. +// allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) +const sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { +func (x *PhysicalDeviceShaderAtomicFloat2Features) Ref() *C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { if x == nil { return nil } - return x.ref5fd28976 + 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 *HdrMetadata) Free() { - if x != nil && x.allocs5fd28976 != nil { - x.allocs5fd28976.(*cgoAllocMap).Free() - x.ref5fd28976 = nil +func (x *PhysicalDeviceShaderAtomicFloat2Features) Free() { + if x != nil && x.allocsf53782 != nil { + x.allocsf53782.(*cgoAllocMap).Free() + x.reff53782 = nil } } -// NewHdrMetadataRef 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 NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { +func NewPhysicalDeviceShaderAtomicFloat2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloat2Features { if ref == nil { return nil } - obj := new(HdrMetadata) - obj.ref5fd28976 = (*C.VkHdrMetadataEXT)(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 *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderAtomicFloat2Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fd28976 != nil { - return x.ref5fd28976, nil + } else if x.reff53782 != nil { + return x.reff53782, nil } - mem5fd28976 := allocHdrMetadataMemory(1) - ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) - allocs5fd28976 := new(cgoAllocMap) - allocs5fd28976.Add(mem5fd28976) + memf53782 := allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(1) + reff53782 := (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)(memf53782) + allocsf53782 := new(cgoAllocMap) + allocsf53782.Add(memf53782) var csType_allocs *cgoAllocMap - ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fd28976.Borrow(csType_allocs) + reff53782.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf53782.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5fd28976.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fd28976.Borrow(cpNext_allocs) + reff53782.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf53782.Borrow(cpNext_allocs) - var cdisplayPrimaryRed_allocs *cgoAllocMap - ref5fd28976.displayPrimaryRed, cdisplayPrimaryRed_allocs = x.DisplayPrimaryRed.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryRed_allocs) + var cshaderBufferFloat16Atomics_allocs *cgoAllocMap + reff53782.shaderBufferFloat16Atomics, cshaderBufferFloat16Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat16Atomics), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16Atomics_allocs) - var cdisplayPrimaryGreen_allocs *cgoAllocMap - ref5fd28976.displayPrimaryGreen, cdisplayPrimaryGreen_allocs = x.DisplayPrimaryGreen.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryGreen_allocs) + var cshaderBufferFloat16AtomicAdd_allocs *cgoAllocMap + reff53782.shaderBufferFloat16AtomicAdd, cshaderBufferFloat16AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat16AtomicAdd), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16AtomicAdd_allocs) - var cdisplayPrimaryBlue_allocs *cgoAllocMap - ref5fd28976.displayPrimaryBlue, cdisplayPrimaryBlue_allocs = x.DisplayPrimaryBlue.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryBlue_allocs) + var cshaderBufferFloat16AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat16AtomicMinMax, cshaderBufferFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat16AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16AtomicMinMax_allocs) - var cwhitePoint_allocs *cgoAllocMap - ref5fd28976.whitePoint, cwhitePoint_allocs = x.WhitePoint.PassValue() - allocs5fd28976.Borrow(cwhitePoint_allocs) + var cshaderBufferFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat32AtomicMinMax, cshaderBufferFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat32AtomicMinMax_allocs) - var cmaxLuminance_allocs *cgoAllocMap - ref5fd28976.maxLuminance, cmaxLuminance_allocs = (C.float)(x.MaxLuminance), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxLuminance_allocs) + var cshaderBufferFloat64AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat64AtomicMinMax, cshaderBufferFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat64AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat64AtomicMinMax_allocs) - var cminLuminance_allocs *cgoAllocMap - ref5fd28976.minLuminance, cminLuminance_allocs = (C.float)(x.MinLuminance), cgoAllocsUnknown - allocs5fd28976.Borrow(cminLuminance_allocs) + var cshaderSharedFloat16Atomics_allocs *cgoAllocMap + reff53782.shaderSharedFloat16Atomics, cshaderSharedFloat16Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat16Atomics), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16Atomics_allocs) - var cmaxContentLightLevel_allocs *cgoAllocMap - ref5fd28976.maxContentLightLevel, cmaxContentLightLevel_allocs = (C.float)(x.MaxContentLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxContentLightLevel_allocs) + var cshaderSharedFloat16AtomicAdd_allocs *cgoAllocMap + reff53782.shaderSharedFloat16AtomicAdd, cshaderSharedFloat16AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicAdd), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16AtomicAdd_allocs) - var cmaxFrameAverageLightLevel_allocs *cgoAllocMap - ref5fd28976.maxFrameAverageLightLevel, cmaxFrameAverageLightLevel_allocs = (C.float)(x.MaxFrameAverageLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxFrameAverageLightLevel_allocs) + var cshaderSharedFloat16AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat16AtomicMinMax, cshaderSharedFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16AtomicMinMax_allocs) - x.ref5fd28976 = ref5fd28976 - x.allocs5fd28976 = allocs5fd28976 - return ref5fd28976, allocs5fd28976 + var cshaderSharedFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat32AtomicMinMax, cshaderSharedFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat32AtomicMinMax_allocs) + + var cshaderSharedFloat64AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat64AtomicMinMax, cshaderSharedFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat64AtomicMinMax_allocs) + + var cshaderImageFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderImageFloat32AtomicMinMax, cshaderImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderImageFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderImageFloat32AtomicMinMax_allocs) + + 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 HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { - if x.ref5fd28976 != nil { - return *x.ref5fd28976, nil +func (x PhysicalDeviceShaderAtomicFloat2Features) PassValue() (C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { + if x.reff53782 != nil { + return *x.reff53782, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31193,105 +56255,133 @@ 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 *PhysicalDeviceShaderAtomicFloat2Features) Deref() { + if x.reff53782 == 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) -} - -// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT 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) +} + +// allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) +const sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { if x == nil { return nil } - return x.ref5e73c2db + 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 *DebugUtilsObjectNameInfo) Free() { - if x != nil && x.allocs5e73c2db != nil { - x.allocs5e73c2db.(*cgoAllocMap).Free() - x.ref5e73c2db = nil +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Free() { + if x != nil && x.allocs569def06 != nil { + x.allocs569def06.(*cgoAllocMap).Free() + x.ref569def06 = nil } } -// NewDebugUtilsObjectNameInfoRef 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 NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { +func NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV { if ref == nil { return nil } - obj := new(DebugUtilsObjectNameInfo) - obj.ref5e73c2db = (*C.VkDebugUtilsObjectNameInfoEXT)(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 *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e73c2db != nil { - return x.ref5e73c2db, nil + } else if x.ref569def06 != nil { + return x.ref569def06, nil } - mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) - ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) - allocs5e73c2db := new(cgoAllocMap) - allocs5e73c2db.Add(mem5e73c2db) + mem569def06 := allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(1) + ref569def06 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(mem569def06) + allocs569def06 := new(cgoAllocMap) + allocs569def06.Add(mem569def06) var csType_allocs *cgoAllocMap - ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e73c2db.Borrow(csType_allocs) + ref569def06.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs569def06.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5e73c2db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5e73c2db.Borrow(cpNext_allocs) + ref569def06.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs569def06.Borrow(cpNext_allocs) - var cobjectType_allocs *cgoAllocMap - ref5e73c2db.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown - allocs5e73c2db.Borrow(cobjectType_allocs) + var cmaxGraphicsShaderGroupCount_allocs *cgoAllocMap + ref569def06.maxGraphicsShaderGroupCount, cmaxGraphicsShaderGroupCount_allocs = (C.uint32_t)(x.MaxGraphicsShaderGroupCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxGraphicsShaderGroupCount_allocs) - var cobjectHandle_allocs *cgoAllocMap - ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown - allocs5e73c2db.Borrow(cobjectHandle_allocs) + var cmaxIndirectSequenceCount_allocs *cgoAllocMap + ref569def06.maxIndirectSequenceCount, cmaxIndirectSequenceCount_allocs = (C.uint32_t)(x.MaxIndirectSequenceCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectSequenceCount_allocs) - var cpObjectName_allocs *cgoAllocMap - ref5e73c2db.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocs5e73c2db.Borrow(cpObjectName_allocs) + var cmaxIndirectCommandsTokenCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenCount, cmaxIndirectCommandsTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenCount_allocs) - x.ref5e73c2db = ref5e73c2db - x.allocs5e73c2db = allocs5e73c2db - return ref5e73c2db, allocs5e73c2db + var cmaxIndirectCommandsStreamCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsStreamCount, cmaxIndirectCommandsStreamCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsStreamCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsStreamCount_allocs) + + var cmaxIndirectCommandsTokenOffset_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenOffset, cmaxIndirectCommandsTokenOffset_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenOffset), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenOffset_allocs) + + 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 DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { - if x.ref5e73c2db != nil { - return *x.ref5e73c2db, nil +func (x PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { + if x.ref569def06 != nil { + return *x.ref569def06, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31299,108 +56389,98 @@ 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Deref() { + if x.ref569def06 == 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.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) } -// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT in C. +// allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) +const sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { if x == nil { return nil } - return x.ref9fd129cf + 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 *DebugUtilsObjectTagInfo) Free() { - if x != nil && x.allocs9fd129cf != nil { - x.allocs9fd129cf.(*cgoAllocMap).Free() - x.ref9fd129cf = nil +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Free() { + if x != nil && x.allocs3ea95583 != nil { + x.allocs3ea95583.(*cgoAllocMap).Free() + x.ref3ea95583 = nil } } -// NewDebugUtilsObjectTagInfoRef 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 NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { +func NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV { if ref == nil { return nil } - obj := new(DebugUtilsObjectTagInfo) - obj.ref9fd129cf = (*C.VkDebugUtilsObjectTagInfoEXT)(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 *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9fd129cf != nil { - return x.ref9fd129cf, nil + } else if x.ref3ea95583 != nil { + return x.ref3ea95583, nil } - mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) - ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) - allocs9fd129cf := new(cgoAllocMap) - allocs9fd129cf.Add(mem9fd129cf) + mem3ea95583 := allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(1) + ref3ea95583 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(mem3ea95583) + allocs3ea95583 := new(cgoAllocMap) + allocs3ea95583.Add(mem3ea95583) var csType_allocs *cgoAllocMap - ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9fd129cf.Borrow(csType_allocs) + ref3ea95583.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3ea95583.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9fd129cf.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 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) + ref3ea95583.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3ea95583.Borrow(cpNext_allocs) - var cpTag_allocs *cgoAllocMap - ref9fd129cf.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown - allocs9fd129cf.Borrow(cpTag_allocs) + var cdeviceGeneratedCommands_allocs *cgoAllocMap + ref3ea95583.deviceGeneratedCommands, cdeviceGeneratedCommands_allocs = (C.VkBool32)(x.DeviceGeneratedCommands), cgoAllocsUnknown + allocs3ea95583.Borrow(cdeviceGeneratedCommands_allocs) - x.ref9fd129cf = ref9fd129cf - x.allocs9fd129cf = allocs9fd129cf - return ref9fd129cf, allocs9fd129cf + 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 DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { - if x.ref9fd129cf != nil { - return *x.ref9fd129cf, nil +func (x PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { + if x.ref3ea95583 != nil { + return *x.ref3ea95583, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31408,98 +56488,178 @@ 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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Deref() { + if x.ref3ea95583 == 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.ref3ea95583.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ea95583.pNext)) + x.DeviceGeneratedCommands = (Bool32)(x.ref3ea95583.deviceGeneratedCommands) } -// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT in C. +// allocGraphicsShaderGroupCreateInfoNVMemory allocates memory for type C.VkGraphicsShaderGroupCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocGraphicsShaderGroupCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsShaderGroupCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) +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(allocs, func(a *cgoAllocMap) { + go a.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(allocs, func(a *cgoAllocMap) { + go a.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 *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { +func (x *GraphicsShaderGroupCreateInfoNV) Ref() *C.VkGraphicsShaderGroupCreateInfoNV { if x == nil { return nil } - return x.ref8faaf7b1 + 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 *DebugUtilsLabel) Free() { - if x != nil && x.allocs8faaf7b1 != nil { - x.allocs8faaf7b1.(*cgoAllocMap).Free() - x.ref8faaf7b1 = nil +func (x *GraphicsShaderGroupCreateInfoNV) Free() { + if x != nil && x.allocsa9d954e5 != nil { + x.allocsa9d954e5.(*cgoAllocMap).Free() + x.refa9d954e5 = nil } } -// NewDebugUtilsLabelRef 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 NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { +func NewGraphicsShaderGroupCreateInfoNVRef(ref unsafe.Pointer) *GraphicsShaderGroupCreateInfoNV { if ref == nil { return nil } - obj := new(DebugUtilsLabel) - obj.ref8faaf7b1 = (*C.VkDebugUtilsLabelEXT)(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 *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { +func (x *GraphicsShaderGroupCreateInfoNV) PassRef() (*C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8faaf7b1 != nil { - return x.ref8faaf7b1, nil + } else if x.refa9d954e5 != nil { + return x.refa9d954e5, nil } - mem8faaf7b1 := allocDebugUtilsLabelMemory(1) - ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) - allocs8faaf7b1 := new(cgoAllocMap) - allocs8faaf7b1.Add(mem8faaf7b1) + mema9d954e5 := allocGraphicsShaderGroupCreateInfoNVMemory(1) + refa9d954e5 := (*C.VkGraphicsShaderGroupCreateInfoNV)(mema9d954e5) + allocsa9d954e5 := new(cgoAllocMap) + allocsa9d954e5.Add(mema9d954e5) var csType_allocs *cgoAllocMap - ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8faaf7b1.Borrow(csType_allocs) + refa9d954e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa9d954e5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(cpNext_allocs) + refa9d954e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa9d954e5.Borrow(cpNext_allocs) - var cpLabelName_allocs *cgoAllocMap - ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) - allocs8faaf7b1.Borrow(cpLabelName_allocs) + var cstageCount_allocs *cgoAllocMap + refa9d954e5.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown + allocsa9d954e5.Borrow(cstageCount_allocs) - var ccolor_allocs *cgoAllocMap - ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(ccolor_allocs) + var cpStages_allocs *cgoAllocMap + refa9d954e5.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) + allocsa9d954e5.Borrow(cpStages_allocs) - x.ref8faaf7b1 = ref8faaf7b1 - x.allocs8faaf7b1 = allocs8faaf7b1 - return ref8faaf7b1, allocs8faaf7b1 + 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 DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { - if x.ref8faaf7b1 != nil { - return *x.ref8faaf7b1, nil +func (x GraphicsShaderGroupCreateInfoNV) PassValue() (C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { + if x.refa9d954e5 != nil { + return *x.refa9d954e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31507,91 +56667,143 @@ 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 *GraphicsShaderGroupCreateInfoNV) Deref() { + if x.refa9d954e5 == 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)) + 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) +} + +// allocGraphicsPipelineShaderGroupsCreateInfoNVMemory allocates memory for type C.VkGraphicsPipelineShaderGroupsCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +func allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +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(allocs, func(a *cgoAllocMap) { + go a.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 } -// allocSamplerReductionModeCreateInfoMemory allocates memory for type C.VkSamplerReductionModeCreateInfoEXT 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()) +// 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)) } - return mem } -const sizeOfSamplerReductionModeCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerReductionModeCreateInfoEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerReductionModeCreateInfo) Ref() *C.VkSamplerReductionModeCreateInfoEXT { +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Ref() *C.VkGraphicsPipelineShaderGroupsCreateInfoNV { if x == nil { return nil } - return x.reff1cfd4e3 + 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 *SamplerReductionModeCreateInfo) Free() { - if x != nil && x.allocsf1cfd4e3 != nil { - x.allocsf1cfd4e3.(*cgoAllocMap).Free() - x.reff1cfd4e3 = nil +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Free() { + if x != nil && x.allocsabf1b7d9 != nil { + x.allocsabf1b7d9.(*cgoAllocMap).Free() + x.refabf1b7d9 = nil } } -// NewSamplerReductionModeCreateInfoRef 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 NewSamplerReductionModeCreateInfoRef(ref unsafe.Pointer) *SamplerReductionModeCreateInfo { +func NewGraphicsPipelineShaderGroupsCreateInfoNVRef(ref unsafe.Pointer) *GraphicsPipelineShaderGroupsCreateInfoNV { if ref == nil { return nil } - obj := new(SamplerReductionModeCreateInfo) - obj.reff1cfd4e3 = (*C.VkSamplerReductionModeCreateInfoEXT)(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 *SamplerReductionModeCreateInfo) PassRef() (*C.VkSamplerReductionModeCreateInfoEXT, *cgoAllocMap) { +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) PassRef() (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff1cfd4e3 != nil { - return x.reff1cfd4e3, nil + } else if x.refabf1b7d9 != nil { + return x.refabf1b7d9, nil } - memf1cfd4e3 := allocSamplerReductionModeCreateInfoMemory(1) - reff1cfd4e3 := (*C.VkSamplerReductionModeCreateInfoEXT)(memf1cfd4e3) - allocsf1cfd4e3 := new(cgoAllocMap) - allocsf1cfd4e3.Add(memf1cfd4e3) + memabf1b7d9 := allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(1) + refabf1b7d9 := (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(memabf1b7d9) + allocsabf1b7d9 := new(cgoAllocMap) + allocsabf1b7d9.Add(memabf1b7d9) var csType_allocs *cgoAllocMap - reff1cfd4e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(csType_allocs) + refabf1b7d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsabf1b7d9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff1cfd4e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(cpNext_allocs) + refabf1b7d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpNext_allocs) - var creductionMode_allocs *cgoAllocMap - reff1cfd4e3.reductionMode, creductionMode_allocs = (C.VkSamplerReductionModeEXT)(x.ReductionMode), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(creductionMode_allocs) + var cgroupCount_allocs *cgoAllocMap + refabf1b7d9.groupCount, cgroupCount_allocs = (C.uint32_t)(x.GroupCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cgroupCount_allocs) + + var cpGroups_allocs *cgoAllocMap + refabf1b7d9.pGroups, cpGroups_allocs = unpackSGraphicsShaderGroupCreateInfoNV(x.PGroups) + allocsabf1b7d9.Borrow(cpGroups_allocs) + + var cpipelineCount_allocs *cgoAllocMap + refabf1b7d9.pipelineCount, cpipelineCount_allocs = (C.uint32_t)(x.PipelineCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpipelineCount_allocs) + + var cpPipelines_allocs *cgoAllocMap + refabf1b7d9.pPipelines, cpPipelines_allocs = copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&x.PPipelines))) + allocsabf1b7d9.Borrow(cpPipelines_allocs) - x.reff1cfd4e3 = reff1cfd4e3 - x.allocsf1cfd4e3 = allocsf1cfd4e3 - return reff1cfd4e3, allocsf1cfd4e3 + 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 SamplerReductionModeCreateInfo) PassValue() (C.VkSamplerReductionModeCreateInfoEXT, *cgoAllocMap) { - if x.reff1cfd4e3 != nil { - return *x.reff1cfd4e3, nil +func (x GraphicsPipelineShaderGroupsCreateInfoNV) PassValue() (C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { + if x.refabf1b7d9 != nil { + return *x.refabf1b7d9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31599,94 +56811,89 @@ 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 *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { + if x.refabf1b7d9 == 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.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) + hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) + hxf4b5187.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) + hxf4b5187.Cap = 0x7fffffff + // hxf4b5187.Len = ? + } -// allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory allocates memory for type C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT in C. +// allocBindShaderGroupIndirectCommandNVMemory allocates memory for type C.VkBindShaderGroupIndirectCommandNV 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()) +func allocBindShaderGroupIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindShaderGroupIndirectCommandNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSamplerFilterMinmaxPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT{}) +const sizeOfBindShaderGroupIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindShaderGroupIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Ref() *C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { +func (x *BindShaderGroupIndirectCommandNV) Ref() *C.VkBindShaderGroupIndirectCommandNV { if x == nil { return nil } - return x.refcc32d100 + 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 *PhysicalDeviceSamplerFilterMinmaxProperties) Free() { - if x != nil && x.allocscc32d100 != nil { - x.allocscc32d100.(*cgoAllocMap).Free() - x.refcc32d100 = nil +func (x *BindShaderGroupIndirectCommandNV) Free() { + if x != nil && x.allocs4b098fa3 != nil { + x.allocs4b098fa3.(*cgoAllocMap).Free() + x.ref4b098fa3 = nil } } -// NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef 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 NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerFilterMinmaxProperties { +func NewBindShaderGroupIndirectCommandNVRef(ref unsafe.Pointer) *BindShaderGroupIndirectCommandNV { if ref == nil { return nil } - obj := new(PhysicalDeviceSamplerFilterMinmaxProperties) - obj.refcc32d100 = (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT)(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 *PhysicalDeviceSamplerFilterMinmaxProperties) PassRef() (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, *cgoAllocMap) { +func (x *BindShaderGroupIndirectCommandNV) PassRef() (*C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcc32d100 != nil { - return x.refcc32d100, nil + } else if x.ref4b098fa3 != nil { + return x.ref4b098fa3, nil } - memcc32d100 := allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory(1) - refcc32d100 := (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT)(memcc32d100) - allocscc32d100 := new(cgoAllocMap) - allocscc32d100.Add(memcc32d100) - - var csType_allocs *cgoAllocMap - refcc32d100.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscc32d100.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refcc32d100.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscc32d100.Borrow(cpNext_allocs) + mem4b098fa3 := allocBindShaderGroupIndirectCommandNVMemory(1) + ref4b098fa3 := (*C.VkBindShaderGroupIndirectCommandNV)(mem4b098fa3) + allocs4b098fa3 := new(cgoAllocMap) + allocs4b098fa3.Add(mem4b098fa3) - var cfilterMinmaxSingleComponentFormats_allocs *cgoAllocMap - refcc32d100.filterMinmaxSingleComponentFormats, cfilterMinmaxSingleComponentFormats_allocs = (C.VkBool32)(x.FilterMinmaxSingleComponentFormats), cgoAllocsUnknown - allocscc32d100.Borrow(cfilterMinmaxSingleComponentFormats_allocs) - - var cfilterMinmaxImageComponentMapping_allocs *cgoAllocMap - refcc32d100.filterMinmaxImageComponentMapping, cfilterMinmaxImageComponentMapping_allocs = (C.VkBool32)(x.FilterMinmaxImageComponentMapping), cgoAllocsUnknown - allocscc32d100.Borrow(cfilterMinmaxImageComponentMapping_allocs) + var cgroupIndex_allocs *cgoAllocMap + ref4b098fa3.groupIndex, cgroupIndex_allocs = (C.uint32_t)(x.GroupIndex), cgoAllocsUnknown + allocs4b098fa3.Borrow(cgroupIndex_allocs) - x.refcc32d100 = refcc32d100 - x.allocscc32d100 = allocscc32d100 - return refcc32d100, allocscc32d100 + 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 PhysicalDeviceSamplerFilterMinmaxProperties) PassValue() (C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, *cgoAllocMap) { - if x.refcc32d100 != nil { - return *x.refcc32d100, nil +func (x BindShaderGroupIndirectCommandNV) PassValue() (C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { + if x.ref4b098fa3 != nil { + return *x.ref4b098fa3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31694,95 +56901,88 @@ 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 *BindShaderGroupIndirectCommandNV) Deref() { + if x.ref4b098fa3 == 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.GroupIndex = (uint32)(x.ref4b098fa3.groupIndex) } -// allocPhysicalDeviceInlineUniformBlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT in C. +// allocBindIndexBufferIndirectCommandNVMemory allocates memory for type C.VkBindIndexBufferIndirectCommandNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocBindIndexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindIndexBufferIndirectCommandNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT{}) +const sizeOfBindIndexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindIndexBufferIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInlineUniformBlockFeatures) Ref() *C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT { +func (x *BindIndexBufferIndirectCommandNV) Ref() *C.VkBindIndexBufferIndirectCommandNV { if x == nil { return nil } - return x.ref5054bc6c + 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 *PhysicalDeviceInlineUniformBlockFeatures) Free() { - if x != nil && x.allocs5054bc6c != nil { - x.allocs5054bc6c.(*cgoAllocMap).Free() - x.ref5054bc6c = nil +func (x *BindIndexBufferIndirectCommandNV) Free() { + if x != nil && x.allocs74143926 != nil { + x.allocs74143926.(*cgoAllocMap).Free() + x.ref74143926 = nil } } -// NewPhysicalDeviceInlineUniformBlockFeaturesRef 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 NewPhysicalDeviceInlineUniformBlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockFeatures { +func NewBindIndexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindIndexBufferIndirectCommandNV { if ref == nil { return nil } - obj := new(PhysicalDeviceInlineUniformBlockFeatures) - obj.ref5054bc6c = (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT)(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 *PhysicalDeviceInlineUniformBlockFeatures) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT, *cgoAllocMap) { +func (x *BindIndexBufferIndirectCommandNV) PassRef() (*C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5054bc6c != nil { - return x.ref5054bc6c, nil + } else if x.ref74143926 != nil { + return x.ref74143926, nil } - mem5054bc6c := allocPhysicalDeviceInlineUniformBlockFeaturesMemory(1) - ref5054bc6c := (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT)(mem5054bc6c) - allocs5054bc6c := new(cgoAllocMap) - allocs5054bc6c.Add(mem5054bc6c) - - var csType_allocs *cgoAllocMap - ref5054bc6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5054bc6c.Borrow(csType_allocs) + mem74143926 := allocBindIndexBufferIndirectCommandNVMemory(1) + ref74143926 := (*C.VkBindIndexBufferIndirectCommandNV)(mem74143926) + allocs74143926 := new(cgoAllocMap) + allocs74143926.Add(mem74143926) - var cpNext_allocs *cgoAllocMap - ref5054bc6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5054bc6c.Borrow(cpNext_allocs) + var cbufferAddress_allocs *cgoAllocMap + ref74143926.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocs74143926.Borrow(cbufferAddress_allocs) - var cinlineUniformBlock_allocs *cgoAllocMap - ref5054bc6c.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown - allocs5054bc6c.Borrow(cinlineUniformBlock_allocs) + var csize_allocs *cgoAllocMap + ref74143926.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocs74143926.Borrow(csize_allocs) - var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap - ref5054bc6c.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown - allocs5054bc6c.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) + var cindexType_allocs *cgoAllocMap + ref74143926.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown + allocs74143926.Borrow(cindexType_allocs) - x.ref5054bc6c = ref5054bc6c - x.allocs5054bc6c = allocs5054bc6c - return ref5054bc6c, allocs5054bc6c + 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 PhysicalDeviceInlineUniformBlockFeatures) PassValue() (C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT, *cgoAllocMap) { - if x.ref5054bc6c != nil { - return *x.ref5054bc6c, nil +func (x BindIndexBufferIndirectCommandNV) PassValue() (C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { + if x.ref74143926 != nil { + return *x.ref74143926, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31790,107 +56990,90 @@ 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 *BindIndexBufferIndirectCommandNV) Deref() { + if x.ref74143926 == 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) + x.BufferAddress = (DeviceAddress)(x.ref74143926.bufferAddress) + x.Size = (uint32)(x.ref74143926.size) + x.IndexType = (IndexType)(x.ref74143926.indexType) } -// allocPhysicalDeviceInlineUniformBlockPropertiesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT in C. +// allocBindVertexBufferIndirectCommandNVMemory allocates memory for type C.VkBindVertexBufferIndirectCommandNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocBindVertexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindVertexBufferIndirectCommandNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT{}) +const sizeOfBindVertexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindVertexBufferIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInlineUniformBlockProperties) Ref() *C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT { +func (x *BindVertexBufferIndirectCommandNV) Ref() *C.VkBindVertexBufferIndirectCommandNV { if x == nil { return nil } - return x.ref7ef1794 + 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 *PhysicalDeviceInlineUniformBlockProperties) Free() { - if x != nil && x.allocs7ef1794 != nil { - x.allocs7ef1794.(*cgoAllocMap).Free() - x.ref7ef1794 = nil +func (x *BindVertexBufferIndirectCommandNV) Free() { + if x != nil && x.allocsca56f95c != nil { + x.allocsca56f95c.(*cgoAllocMap).Free() + x.refca56f95c = nil } } -// NewPhysicalDeviceInlineUniformBlockPropertiesRef 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 NewPhysicalDeviceInlineUniformBlockPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockProperties { +func NewBindVertexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindVertexBufferIndirectCommandNV { if ref == nil { return nil } - obj := new(PhysicalDeviceInlineUniformBlockProperties) - obj.ref7ef1794 = (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT)(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 *PhysicalDeviceInlineUniformBlockProperties) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT, *cgoAllocMap) { +func (x *BindVertexBufferIndirectCommandNV) PassRef() (*C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ef1794 != nil { - return x.ref7ef1794, nil + } else if x.refca56f95c != nil { + return x.refca56f95c, nil } - mem7ef1794 := allocPhysicalDeviceInlineUniformBlockPropertiesMemory(1) - ref7ef1794 := (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT)(mem7ef1794) - allocs7ef1794 := new(cgoAllocMap) - allocs7ef1794.Add(mem7ef1794) + memca56f95c := allocBindVertexBufferIndirectCommandNVMemory(1) + refca56f95c := (*C.VkBindVertexBufferIndirectCommandNV)(memca56f95c) + allocsca56f95c := new(cgoAllocMap) + allocsca56f95c.Add(memca56f95c) - var csType_allocs *cgoAllocMap - ref7ef1794.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7ef1794.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) - - 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 cbufferAddress_allocs *cgoAllocMap + refca56f95c.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocsca56f95c.Borrow(cbufferAddress_allocs) - var cmaxDescriptorSetInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxDescriptorSetInlineUniformBlocks, cmaxDescriptorSetInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxDescriptorSetInlineUniformBlocks_allocs) + var csize_allocs *cgoAllocMap + refca56f95c.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocsca56f95c.Borrow(csize_allocs) - var cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxDescriptorSetUpdateAfterBindInlineUniformBlocks, cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs) + var cstride_allocs *cgoAllocMap + refca56f95c.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown + allocsca56f95c.Borrow(cstride_allocs) - x.ref7ef1794 = ref7ef1794 - x.allocs7ef1794 = allocs7ef1794 - return ref7ef1794, allocs7ef1794 + 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 PhysicalDeviceInlineUniformBlockProperties) PassValue() (C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT, *cgoAllocMap) { - if x.ref7ef1794 != nil { - return *x.ref7ef1794, nil +func (x BindVertexBufferIndirectCommandNV) PassValue() (C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { + if x.refca56f95c != nil { + return *x.refca56f95c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31898,98 +57081,82 @@ 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 *BindVertexBufferIndirectCommandNV) Deref() { + if x.refca56f95c == 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.BufferAddress = (DeviceAddress)(x.refca56f95c.bufferAddress) + x.Size = (uint32)(x.refca56f95c.size) + x.Stride = (uint32)(x.refca56f95c.stride) } -// allocWriteDescriptorSetInlineUniformBlockMemory allocates memory for type C.VkWriteDescriptorSetInlineUniformBlockEXT in C. +// allocSetStateFlagsIndirectCommandNVMemory allocates memory for type C.VkSetStateFlagsIndirectCommandNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSetStateFlagsIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSetStateFlagsIndirectCommandNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfWriteDescriptorSetInlineUniformBlockValue = unsafe.Sizeof([1]C.VkWriteDescriptorSetInlineUniformBlockEXT{}) +const sizeOfSetStateFlagsIndirectCommandNVValue = unsafe.Sizeof([1]C.VkSetStateFlagsIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *WriteDescriptorSetInlineUniformBlock) Ref() *C.VkWriteDescriptorSetInlineUniformBlockEXT { +func (x *SetStateFlagsIndirectCommandNV) Ref() *C.VkSetStateFlagsIndirectCommandNV { if x == nil { return nil } - return x.ref18d00656 + 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 *WriteDescriptorSetInlineUniformBlock) Free() { - if x != nil && x.allocs18d00656 != nil { - x.allocs18d00656.(*cgoAllocMap).Free() - x.ref18d00656 = nil +func (x *SetStateFlagsIndirectCommandNV) Free() { + if x != nil && x.allocs89ae676d != nil { + x.allocs89ae676d.(*cgoAllocMap).Free() + x.ref89ae676d = nil } } -// NewWriteDescriptorSetInlineUniformBlockRef 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 NewWriteDescriptorSetInlineUniformBlockRef(ref unsafe.Pointer) *WriteDescriptorSetInlineUniformBlock { +func NewSetStateFlagsIndirectCommandNVRef(ref unsafe.Pointer) *SetStateFlagsIndirectCommandNV { if ref == nil { return nil } - obj := new(WriteDescriptorSetInlineUniformBlock) - obj.ref18d00656 = (*C.VkWriteDescriptorSetInlineUniformBlockEXT)(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 *WriteDescriptorSetInlineUniformBlock) PassRef() (*C.VkWriteDescriptorSetInlineUniformBlockEXT, *cgoAllocMap) { +func (x *SetStateFlagsIndirectCommandNV) PassRef() (*C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref18d00656 != nil { - return x.ref18d00656, nil + } else if x.ref89ae676d != nil { + return x.ref89ae676d, nil } - mem18d00656 := allocWriteDescriptorSetInlineUniformBlockMemory(1) - ref18d00656 := (*C.VkWriteDescriptorSetInlineUniformBlockEXT)(mem18d00656) - allocs18d00656 := new(cgoAllocMap) - allocs18d00656.Add(mem18d00656) - - var csType_allocs *cgoAllocMap - ref18d00656.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs18d00656.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref18d00656.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs18d00656.Borrow(cpNext_allocs) + mem89ae676d := allocSetStateFlagsIndirectCommandNVMemory(1) + ref89ae676d := (*C.VkSetStateFlagsIndirectCommandNV)(mem89ae676d) + allocs89ae676d := new(cgoAllocMap) + allocs89ae676d.Add(mem89ae676d) - var cdataSize_allocs *cgoAllocMap - ref18d00656.dataSize, cdataSize_allocs = (C.uint32_t)(x.DataSize), cgoAllocsUnknown - allocs18d00656.Borrow(cdataSize_allocs) - - var cpData_allocs *cgoAllocMap - ref18d00656.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown - allocs18d00656.Borrow(cpData_allocs) + var cdata_allocs *cgoAllocMap + ref89ae676d.data, cdata_allocs = (C.uint32_t)(x.Data), cgoAllocsUnknown + allocs89ae676d.Borrow(cdata_allocs) - x.ref18d00656 = ref18d00656 - x.allocs18d00656 = allocs18d00656 - return ref18d00656, allocs18d00656 + 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 WriteDescriptorSetInlineUniformBlock) PassValue() (C.VkWriteDescriptorSetInlineUniformBlockEXT, *cgoAllocMap) { - if x.ref18d00656 != nil { - return *x.ref18d00656, nil +func (x SetStateFlagsIndirectCommandNV) PassValue() (C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { + if x.ref89ae676d != nil { + return *x.ref89ae676d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31997,91 +57164,84 @@ 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 *SetStateFlagsIndirectCommandNV) Deref() { + if x.ref89ae676d == 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.Data = (uint32)(x.ref89ae676d.data) } -// allocDescriptorPoolInlineUniformBlockCreateInfoMemory allocates memory for type C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT in C. +// allocIndirectCommandsStreamNVMemory allocates memory for type C.VkIndirectCommandsStreamNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocIndirectCommandsStreamNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsStreamNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT{}) +const sizeOfIndirectCommandsStreamNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsStreamNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolInlineUniformBlockCreateInfo) Ref() *C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT { +func (x *IndirectCommandsStreamNV) Ref() *C.VkIndirectCommandsStreamNV { if x == nil { return nil } - return x.refbc7edaa3 + 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 *DescriptorPoolInlineUniformBlockCreateInfo) Free() { - if x != nil && x.allocsbc7edaa3 != nil { - x.allocsbc7edaa3.(*cgoAllocMap).Free() - x.refbc7edaa3 = nil +func (x *IndirectCommandsStreamNV) Free() { + if x != nil && x.allocsc623636a != nil { + x.allocsc623636a.(*cgoAllocMap).Free() + x.refc623636a = nil } } -// NewDescriptorPoolInlineUniformBlockCreateInfoRef 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 NewDescriptorPoolInlineUniformBlockCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolInlineUniformBlockCreateInfo { +func NewIndirectCommandsStreamNVRef(ref unsafe.Pointer) *IndirectCommandsStreamNV { if ref == nil { return nil } - obj := new(DescriptorPoolInlineUniformBlockCreateInfo) - obj.refbc7edaa3 = (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT)(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 *DescriptorPoolInlineUniformBlockCreateInfo) PassRef() (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT, *cgoAllocMap) { +func (x *IndirectCommandsStreamNV) PassRef() (*C.VkIndirectCommandsStreamNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc7edaa3 != nil { - return x.refbc7edaa3, nil + } else if x.refc623636a != nil { + return x.refc623636a, nil } - membc7edaa3 := allocDescriptorPoolInlineUniformBlockCreateInfoMemory(1) - refbc7edaa3 := (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT)(membc7edaa3) - allocsbc7edaa3 := new(cgoAllocMap) - allocsbc7edaa3.Add(membc7edaa3) - - var csType_allocs *cgoAllocMap - refbc7edaa3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc7edaa3.Borrow(csType_allocs) + memc623636a := allocIndirectCommandsStreamNVMemory(1) + refc623636a := (*C.VkIndirectCommandsStreamNV)(memc623636a) + allocsc623636a := new(cgoAllocMap) + allocsc623636a.Add(memc623636a) - var cpNext_allocs *cgoAllocMap - refbc7edaa3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc7edaa3.Borrow(cpNext_allocs) + var cbuffer_allocs *cgoAllocMap + refc623636a.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsc623636a.Borrow(cbuffer_allocs) - var cmaxInlineUniformBlockBindings_allocs *cgoAllocMap - refbc7edaa3.maxInlineUniformBlockBindings, cmaxInlineUniformBlockBindings_allocs = (C.uint32_t)(x.MaxInlineUniformBlockBindings), cgoAllocsUnknown - allocsbc7edaa3.Borrow(cmaxInlineUniformBlockBindings_allocs) + var coffset_allocs *cgoAllocMap + refc623636a.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocsc623636a.Borrow(coffset_allocs) - x.refbc7edaa3 = refbc7edaa3 - x.allocsbc7edaa3 = allocsbc7edaa3 - return refbc7edaa3, allocsbc7edaa3 + 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 DescriptorPoolInlineUniformBlockCreateInfo) PassValue() (C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT, *cgoAllocMap) { - if x.refbc7edaa3 != nil { - return *x.refbc7edaa3, nil +func (x IndirectCommandsStreamNV) PassValue() (C.VkIndirectCommandsStreamNV, *cgoAllocMap) { + if x.refc623636a != nil { + return *x.refc623636a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32089,86 +57249,166 @@ 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 *IndirectCommandsStreamNV) Deref() { + if x.refc623636a == nil { return } - x.SType = (StructureType)(x.refbc7edaa3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc7edaa3.pNext)) - x.MaxInlineUniformBlockBindings = (uint32)(x.refbc7edaa3.maxInlineUniformBlockBindings) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refc623636a.buffer)) + x.Offset = (DeviceSize)(x.refc623636a.offset) } -// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT in C. +// allocIndirectCommandsLayoutTokenNVMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocIndirectCommandsLayoutTokenNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutTokenNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) +const sizeOfIndirectCommandsLayoutTokenNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNV{}) + +// copyPIndexTypeBytes copies the data from Go slice as *C.VkIndexType. +func copyPIndexTypeBytes(slice *sliceHeader) (*C.VkIndexType, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfIndexTypeValue) * slice.Len, + Cap: int(sizeOfIndexTypeValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkIndexType)(mem0), allocs +} + +// allocIndexTypeMemory allocates memory for type C.VkIndexType in C. +// The caller is responsible for freeing the this memory via C.free. +func allocIndexTypeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndexTypeValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfIndexTypeValue = unsafe.Sizeof([1]C.VkIndexType{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { +func (x *IndirectCommandsLayoutTokenNV) Ref() *C.VkIndirectCommandsLayoutTokenNV { if x == nil { return nil } - return x.refe7a2e761 + 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 *SampleLocation) Free() { - if x != nil && x.allocse7a2e761 != nil { - x.allocse7a2e761.(*cgoAllocMap).Free() - x.refe7a2e761 = nil +func (x *IndirectCommandsLayoutTokenNV) Free() { + if x != nil && x.allocs96f52b76 != nil { + x.allocs96f52b76.(*cgoAllocMap).Free() + x.ref96f52b76 = nil } } -// NewSampleLocationRef 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 NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { +func NewIndirectCommandsLayoutTokenNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNV { if ref == nil { return nil } - obj := new(SampleLocation) - obj.refe7a2e761 = (*C.VkSampleLocationEXT)(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 *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { +func (x *IndirectCommandsLayoutTokenNV) PassRef() (*C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe7a2e761 != nil { - return x.refe7a2e761, nil + } else if x.ref96f52b76 != nil { + return x.ref96f52b76, nil } - meme7a2e761 := allocSampleLocationMemory(1) - refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) - allocse7a2e761 := new(cgoAllocMap) - allocse7a2e761.Add(meme7a2e761) + mem96f52b76 := allocIndirectCommandsLayoutTokenNVMemory(1) + ref96f52b76 := (*C.VkIndirectCommandsLayoutTokenNV)(mem96f52b76) + allocs96f52b76 := new(cgoAllocMap) + allocs96f52b76.Add(mem96f52b76) - var cx_allocs *cgoAllocMap - refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocse7a2e761.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref96f52b76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs96f52b76.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocse7a2e761.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + ref96f52b76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpNext_allocs) - x.refe7a2e761 = refe7a2e761 - x.allocse7a2e761 = allocse7a2e761 - return refe7a2e761, allocse7a2e761 + var ctokenType_allocs *cgoAllocMap + ref96f52b76.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNV)(x.TokenType), cgoAllocsUnknown + allocs96f52b76.Borrow(ctokenType_allocs) + + var cstream_allocs *cgoAllocMap + ref96f52b76.stream, cstream_allocs = (C.uint32_t)(x.Stream), cgoAllocsUnknown + allocs96f52b76.Borrow(cstream_allocs) + + var coffset_allocs *cgoAllocMap + ref96f52b76.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocs96f52b76.Borrow(coffset_allocs) + + var cvertexBindingUnit_allocs *cgoAllocMap + ref96f52b76.vertexBindingUnit, cvertexBindingUnit_allocs = (C.uint32_t)(x.VertexBindingUnit), cgoAllocsUnknown + allocs96f52b76.Borrow(cvertexBindingUnit_allocs) + + 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 = copyPIndexTypeBytes((*sliceHeader)(unsafe.Pointer(&x.PIndexTypes))) + allocs96f52b76.Borrow(cpIndexTypes_allocs) + + var cpIndexTypeValues_allocs *cgoAllocMap + ref96f52b76.pIndexTypeValues, cpIndexTypeValues_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues))) + 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 SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { - if x.refe7a2e761 != nil { - return *x.refe7a2e761, nil +func (x IndirectCommandsLayoutTokenNV) PassValue() (C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { + if x.ref96f52b76 != nil { + return *x.ref96f52b76, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32176,139 +57416,168 @@ 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 *IndirectCommandsLayoutTokenNV) Deref() { + if x.ref96f52b76 == nil { return } - x.X = (float32)(x.refe7a2e761.x) - x.Y = (float32)(x.refe7a2e761.y) -} - -// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT 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) + hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) + hxf177f79.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) + hxf177f79.Cap = 0x7fffffff + // hxf177f79.Len = ? + + hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) + hxfaa359c.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) + hxfaa359c.Cap = 0x7fffffff + // hxfaa359c.Len = ? + +} + +// allocIndirectCommandsLayoutCreateInfoNVMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocIndirectCommandsLayoutCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSampleLocationsInfoValue = unsafe.Sizeof([1]C.VkSampleLocationsInfoEXT{}) +const sizeOfIndirectCommandsLayoutCreateInfoNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutCreateInfoNV{}) -// unpackSSampleLocation transforms a sliced Go data structure into plain C format. -func unpackSSampleLocation(x []SampleLocation) (unpacked *C.VkSampleLocationEXT, allocs *cgoAllocMap) { +// 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.VkSampleLocationEXT) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocSampleLocationMemory(len0) + mem0 := allocIndirectCommandsLayoutTokenNVMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSampleLocationEXT)(unsafe.Pointer(h0)) + 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.VkSampleLocationEXT)(h.Data) + unpacked = (*C.VkIndirectCommandsLayoutTokenNV)(h.Data) return } -// packSSampleLocation reads sliced Go data structure out from plain C format. -func packSSampleLocation(v []SampleLocation, ptr0 *C.VkSampleLocationEXT) { +// 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 / sizeOfSampleLocationValue]C.VkSampleLocationEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSampleLocationRef(unsafe.Pointer(&ptr1)) + 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 *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { +func (x *IndirectCommandsLayoutCreateInfoNV) Ref() *C.VkIndirectCommandsLayoutCreateInfoNV { if x == nil { return nil } - return x.refd8f3bd2d + 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 *SampleLocationsInfo) Free() { - if x != nil && x.allocsd8f3bd2d != nil { - x.allocsd8f3bd2d.(*cgoAllocMap).Free() - x.refd8f3bd2d = nil +func (x *IndirectCommandsLayoutCreateInfoNV) Free() { + if x != nil && x.allocs48273185 != nil { + x.allocs48273185.(*cgoAllocMap).Free() + x.ref48273185 = nil } } -// NewSampleLocationsInfoRef 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 NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { +func NewIndirectCommandsLayoutCreateInfoNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNV { if ref == nil { return nil } - obj := new(SampleLocationsInfo) - obj.refd8f3bd2d = (*C.VkSampleLocationsInfoEXT)(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 *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { +func (x *IndirectCommandsLayoutCreateInfoNV) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8f3bd2d != nil { - return x.refd8f3bd2d, nil + } else if x.ref48273185 != nil { + return x.ref48273185, nil } - memd8f3bd2d := allocSampleLocationsInfoMemory(1) - refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) - allocsd8f3bd2d := new(cgoAllocMap) - allocsd8f3bd2d.Add(memd8f3bd2d) + mem48273185 := allocIndirectCommandsLayoutCreateInfoNVMemory(1) + ref48273185 := (*C.VkIndirectCommandsLayoutCreateInfoNV)(mem48273185) + allocs48273185 := new(cgoAllocMap) + allocs48273185.Add(mem48273185) var csType_allocs *cgoAllocMap - refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csType_allocs) + ref48273185.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48273185.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(cpNext_allocs) + ref48273185.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48273185.Borrow(cpNext_allocs) - var csampleLocationsPerPixel_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) + var cflags_allocs *cgoAllocMap + ref48273185.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNV)(x.Flags), cgoAllocsUnknown + allocs48273185.Borrow(cflags_allocs) - var csampleLocationGridSize_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() - allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) + var cpipelineBindPoint_allocs *cgoAllocMap + ref48273185.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocs48273185.Borrow(cpipelineBindPoint_allocs) - var csampleLocationsCount_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) + var ctokenCount_allocs *cgoAllocMap + ref48273185.tokenCount, ctokenCount_allocs = (C.uint32_t)(x.TokenCount), cgoAllocsUnknown + allocs48273185.Borrow(ctokenCount_allocs) - var cpSampleLocations_allocs *cgoAllocMap - refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) - allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) + var cpTokens_allocs *cgoAllocMap + ref48273185.pTokens, cpTokens_allocs = unpackSIndirectCommandsLayoutTokenNV(x.PTokens) + allocs48273185.Borrow(cpTokens_allocs) - x.refd8f3bd2d = refd8f3bd2d - x.allocsd8f3bd2d = allocsd8f3bd2d - return refd8f3bd2d, allocsd8f3bd2d + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PStreamStrides))) + 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 SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { - if x.refd8f3bd2d != nil { - return *x.refd8f3bd2d, nil +func (x IndirectCommandsLayoutCreateInfoNV) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { + if x.ref48273185 != nil { + return *x.ref48273185, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32316,89 +57585,185 @@ 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 *IndirectCommandsLayoutCreateInfoNV) Deref() { + if x.ref48273185 == 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.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) + hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) + hxfa897de.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) + hxfa897de.Cap = 0x7fffffff + // hxfa897de.Len = ? + } -// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT in C. +// allocGeneratedCommandsInfoNVMemory allocates memory for type C.VkGeneratedCommandsInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocGeneratedCommandsInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) +const sizeOfGeneratedCommandsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsInfoNV{}) + +// 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(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + len0 := len(x) + mem0 := allocIndirectCommandsStreamNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkIndirectCommandsStreamNV)(h.Data) + return +} + +// 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 / 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 *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { +func (x *GeneratedCommandsInfoNV) Ref() *C.VkGeneratedCommandsInfoNV { if x == nil { return nil } - return x.ref6a3dd41e + 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 *AttachmentSampleLocations) Free() { - if x != nil && x.allocs6a3dd41e != nil { - x.allocs6a3dd41e.(*cgoAllocMap).Free() - x.ref6a3dd41e = nil +func (x *GeneratedCommandsInfoNV) Free() { + if x != nil && x.allocsc05396ea != nil { + x.allocsc05396ea.(*cgoAllocMap).Free() + x.refc05396ea = nil } } -// NewAttachmentSampleLocationsRef 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 NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { +func NewGeneratedCommandsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsInfoNV { if ref == nil { return nil } - obj := new(AttachmentSampleLocations) - obj.ref6a3dd41e = (*C.VkAttachmentSampleLocationsEXT)(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 *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { +func (x *GeneratedCommandsInfoNV) PassRef() (*C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6a3dd41e != nil { - return x.ref6a3dd41e, nil + } else if x.refc05396ea != nil { + return x.refc05396ea, nil } - mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) - ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) - allocs6a3dd41e := new(cgoAllocMap) - allocs6a3dd41e.Add(mem6a3dd41e) + memc05396ea := allocGeneratedCommandsInfoNVMemory(1) + refc05396ea := (*C.VkGeneratedCommandsInfoNV)(memc05396ea) + allocsc05396ea := new(cgoAllocMap) + allocsc05396ea.Add(memc05396ea) - var cattachmentIndex_allocs *cgoAllocMap - ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown - allocs6a3dd41e.Borrow(cattachmentIndex_allocs) + var csType_allocs *cgoAllocMap + refc05396ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc05396ea.Borrow(csType_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) + var cpNext_allocs *cgoAllocMap + refc05396ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpNext_allocs) - x.ref6a3dd41e = ref6a3dd41e - x.allocs6a3dd41e = allocs6a3dd41e - return ref6a3dd41e, allocs6a3dd41e + var cpipelineBindPoint_allocs *cgoAllocMap + refc05396ea.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipelineBindPoint_allocs) + + var cpipeline_allocs *cgoAllocMap + refc05396ea.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipeline_allocs) + + var cindirectCommandsLayout_allocs *cgoAllocMap + refc05396ea.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNV)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown + allocsc05396ea.Borrow(cindirectCommandsLayout_allocs) + + 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 AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { - if x.ref6a3dd41e != nil { - return *x.ref6a3dd41e, nil +func (x GeneratedCommandsInfoNV) PassValue() (C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { + if x.refc05396ea != nil { + return *x.refc05396ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32406,85 +57771,114 @@ 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 *GeneratedCommandsInfoNV) Deref() { + if x.refc05396ea == nil { return } - x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) -} - -// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT 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 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()) +func allocGeneratedCommandsMemoryRequirementsInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) +const sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsMemoryRequirementsInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Ref() *C.VkGeneratedCommandsMemoryRequirementsInfoNV { if x == nil { return nil } - return x.ref1f612812 + 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 *SubpassSampleLocations) Free() { - if x != nil && x.allocs1f612812 != nil { - x.allocs1f612812.(*cgoAllocMap).Free() - x.ref1f612812 = nil +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Free() { + if x != nil && x.allocse82e5c4c != nil { + x.allocse82e5c4c.(*cgoAllocMap).Free() + x.refe82e5c4c = nil } } -// NewSubpassSampleLocationsRef 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 NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { +func NewGeneratedCommandsMemoryRequirementsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsMemoryRequirementsInfoNV { if ref == nil { return nil } - obj := new(SubpassSampleLocations) - obj.ref1f612812 = (*C.VkSubpassSampleLocationsEXT)(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 *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) PassRef() (*C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1f612812 != nil { - return x.ref1f612812, nil + } else if x.refe82e5c4c != nil { + return x.refe82e5c4c, nil } - mem1f612812 := allocSubpassSampleLocationsMemory(1) - ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) - allocs1f612812 := new(cgoAllocMap) - allocs1f612812.Add(mem1f612812) + meme82e5c4c := allocGeneratedCommandsMemoryRequirementsInfoNVMemory(1) + refe82e5c4c := (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(meme82e5c4c) + allocse82e5c4c := new(cgoAllocMap) + allocse82e5c4c.Add(meme82e5c4c) - var csubpassIndex_allocs *cgoAllocMap - ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown - allocs1f612812.Borrow(csubpassIndex_allocs) + var csType_allocs *cgoAllocMap + refe82e5c4c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse82e5c4c.Borrow(csType_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs1f612812.Borrow(csampleLocationsInfo_allocs) + var cpNext_allocs *cgoAllocMap + refe82e5c4c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpNext_allocs) - x.ref1f612812 = ref1f612812 - x.allocs1f612812 = allocs1f612812 - return ref1f612812, allocs1f612812 + var cpipelineBindPoint_allocs *cgoAllocMap + refe82e5c4c.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpipelineBindPoint_allocs) + + 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 SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { - if x.ref1f612812 != nil { - return *x.ref1f612812, nil +func (x GeneratedCommandsMemoryRequirementsInfoNV) PassValue() (C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { + if x.refe82e5c4c != nil { + return *x.refe82e5c4c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32492,177 +57886,93 @@ 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 *GeneratedCommandsMemoryRequirementsInfoNV) Deref() { + if x.refe82e5c4c == nil { return } - x.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) + 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) } -// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT in C. +// allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Ref() *C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV { if x == nil { return nil } - return x.refb61b51d4 + 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 *RenderPassSampleLocationsBeginInfo) Free() { - if x != nil && x.allocsb61b51d4 != nil { - x.allocsb61b51d4.(*cgoAllocMap).Free() - x.refb61b51d4 = nil +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Free() { + if x != nil && x.allocscec68147 != nil { + x.allocscec68147.(*cgoAllocMap).Free() + x.refcec68147 = nil } } -// NewRenderPassSampleLocationsBeginInfoRef 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 NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { +func NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceInheritedViewportScissorFeaturesNV { if ref == nil { return nil } - obj := new(RenderPassSampleLocationsBeginInfo) - obj.refb61b51d4 = (*C.VkRenderPassSampleLocationsBeginInfoEXT)(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 *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb61b51d4 != nil { - return x.refb61b51d4, nil + } else if x.refcec68147 != nil { + return x.refcec68147, nil } - memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) - refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) - allocsb61b51d4 := new(cgoAllocMap) - allocsb61b51d4.Add(memb61b51d4) + memcec68147 := allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(1) + refcec68147 := (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(memcec68147) + allocscec68147 := new(cgoAllocMap) + allocscec68147.Add(memcec68147) var csType_allocs *cgoAllocMap - refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb61b51d4.Borrow(csType_allocs) + refcec68147.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscec68147.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) - - var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap - refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) - allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) + refcec68147.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscec68147.Borrow(cpNext_allocs) - var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap - refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown - allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) - - var cpPostSubpassSampleLocations_allocs *cgoAllocMap - refb61b51d4.pPostSubpassSampleLocations, cpPostSubpassSampleLocations_allocs = unpackSSubpassSampleLocations(x.PPostSubpassSampleLocations) - allocsb61b51d4.Borrow(cpPostSubpassSampleLocations_allocs) + var cinheritedViewportScissor2D_allocs *cgoAllocMap + refcec68147.inheritedViewportScissor2D, cinheritedViewportScissor2D_allocs = (C.VkBool32)(x.InheritedViewportScissor2D), cgoAllocsUnknown + allocscec68147.Borrow(cinheritedViewportScissor2D_allocs) - x.refb61b51d4 = refb61b51d4 - x.allocsb61b51d4 = allocsb61b51d4 - return refb61b51d4, allocsb61b51d4 + 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 RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { - if x.refb61b51d4 != nil { - return *x.refb61b51d4, nil +func (x PhysicalDeviceInheritedViewportScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { + if x.refcec68147 != nil { + return *x.refcec68147, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32670,97 +57980,98 @@ 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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) Deref() { + if x.refcec68147 == 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.refcec68147.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcec68147.pNext)) + x.InheritedViewportScissor2D = (Bool32)(x.refcec68147.inheritedViewportScissor2D) } -// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT in C. +// allocCommandBufferInheritanceViewportScissorInfoNVMemory allocates memory for type C.VkCommandBufferInheritanceViewportScissorInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCommandBufferInheritanceViewportScissorInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceViewportScissorInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) +const sizeOfCommandBufferInheritanceViewportScissorInfoNVValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceViewportScissorInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { +func (x *CommandBufferInheritanceViewportScissorInfoNV) Ref() *C.VkCommandBufferInheritanceViewportScissorInfoNV { if x == nil { return nil } - return x.ref93a2968f + 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 *PipelineSampleLocationsStateCreateInfo) Free() { - if x != nil && x.allocs93a2968f != nil { - x.allocs93a2968f.(*cgoAllocMap).Free() - x.ref93a2968f = nil +func (x *CommandBufferInheritanceViewportScissorInfoNV) Free() { + if x != nil && x.allocsc206d63 != nil { + x.allocsc206d63.(*cgoAllocMap).Free() + x.refc206d63 = nil } } -// NewPipelineSampleLocationsStateCreateInfoRef 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 NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { +func NewCommandBufferInheritanceViewportScissorInfoNVRef(ref unsafe.Pointer) *CommandBufferInheritanceViewportScissorInfoNV { if ref == nil { return nil } - obj := new(PipelineSampleLocationsStateCreateInfo) - obj.ref93a2968f = (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(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 *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { +func (x *CommandBufferInheritanceViewportScissorInfoNV) PassRef() (*C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref93a2968f != nil { - return x.ref93a2968f, nil + } else if x.refc206d63 != nil { + return x.refc206d63, nil } - mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) - ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) - allocs93a2968f := new(cgoAllocMap) - allocs93a2968f.Add(mem93a2968f) + memc206d63 := allocCommandBufferInheritanceViewportScissorInfoNVMemory(1) + refc206d63 := (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(memc206d63) + allocsc206d63 := new(cgoAllocMap) + allocsc206d63.Add(memc206d63) var csType_allocs *cgoAllocMap - ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs93a2968f.Borrow(csType_allocs) + refc206d63.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc206d63.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs93a2968f.Borrow(cpNext_allocs) + refc206d63.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc206d63.Borrow(cpNext_allocs) - var csampleLocationsEnable_allocs *cgoAllocMap - ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown - allocs93a2968f.Borrow(csampleLocationsEnable_allocs) + var cviewportScissor2D_allocs *cgoAllocMap + refc206d63.viewportScissor2D, cviewportScissor2D_allocs = (C.VkBool32)(x.ViewportScissor2D), cgoAllocsUnknown + allocsc206d63.Borrow(cviewportScissor2D_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs93a2968f.Borrow(csampleLocationsInfo_allocs) + var cviewportDepthCount_allocs *cgoAllocMap + refc206d63.viewportDepthCount, cviewportDepthCount_allocs = (C.uint32_t)(x.ViewportDepthCount), cgoAllocsUnknown + allocsc206d63.Borrow(cviewportDepthCount_allocs) - x.ref93a2968f = ref93a2968f - x.allocs93a2968f = allocs93a2968f - return ref93a2968f, allocs93a2968f + 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 PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { - if x.ref93a2968f != nil { - return *x.ref93a2968f, nil +func (x CommandBufferInheritanceViewportScissorInfoNV) PassValue() (C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { + if x.refc206d63 != nil { + return *x.refc206d63, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32768,107 +58079,92 @@ 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 *CommandBufferInheritanceViewportScissorInfoNV) Deref() { + if x.refc206d63 == 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.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) } -// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT in C. +// allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory allocates memory for type C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) +const sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { if x == nil { return nil } - return x.refaf801323 + 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 *PhysicalDeviceSampleLocationsProperties) Free() { - if x != nil && x.allocsaf801323 != nil { - x.allocsaf801323.(*cgoAllocMap).Free() - x.refaf801323 = nil +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Free() { + if x != nil && x.allocs2c4411b2 != nil { + x.allocs2c4411b2.(*cgoAllocMap).Free() + x.ref2c4411b2 = nil } } -// NewPhysicalDeviceSampleLocationsPropertiesRef 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 NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { +func NewPhysicalDeviceTexelBufferAlignmentFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceSampleLocationsProperties) - obj.refaf801323 = (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(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 *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf801323 != nil { - return x.refaf801323, nil + } else if x.ref2c4411b2 != nil { + return x.ref2c4411b2, nil } - memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) - refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) - allocsaf801323 := new(cgoAllocMap) - allocsaf801323.Add(memaf801323) + mem2c4411b2 := allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(1) + ref2c4411b2 := (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(mem2c4411b2) + allocs2c4411b2 := new(cgoAllocMap) + allocs2c4411b2.Add(mem2c4411b2) var csType_allocs *cgoAllocMap - refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaf801323.Borrow(csType_allocs) + ref2c4411b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2c4411b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsaf801323.Borrow(cpNext_allocs) - - var csampleLocationSampleCounts_allocs *cgoAllocMap - refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) - - 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) + ref2c4411b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2c4411b2.Borrow(cpNext_allocs) - var cvariableSampleLocations_allocs *cgoAllocMap - refaf801323.variableSampleLocations, cvariableSampleLocations_allocs = (C.VkBool32)(x.VariableSampleLocations), cgoAllocsUnknown - allocsaf801323.Borrow(cvariableSampleLocations_allocs) + var ctexelBufferAlignment_allocs *cgoAllocMap + ref2c4411b2.texelBufferAlignment, ctexelBufferAlignment_allocs = (C.VkBool32)(x.TexelBufferAlignment), cgoAllocsUnknown + allocs2c4411b2.Borrow(ctexelBufferAlignment_allocs) - x.refaf801323 = refaf801323 - x.allocsaf801323 = allocsaf801323 - return refaf801323, allocsaf801323 + 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 PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { - if x.refaf801323 != nil { - return *x.refaf801323, nil +func (x PhysicalDeviceTexelBufferAlignmentFeatures) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { + if x.ref2c4411b2 != nil { + return *x.ref2c4411b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32876,94 +58172,90 @@ 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 *PhysicalDeviceTexelBufferAlignmentFeatures) Deref() { + if x.ref2c4411b2 == 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.ref2c4411b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2c4411b2.pNext)) + x.TexelBufferAlignment = (Bool32)(x.ref2c4411b2.texelBufferAlignment) } -// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT in C. +// allocRenderPassTransformBeginInfoQCOMMemory allocates memory for type C.VkRenderPassTransformBeginInfoQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocRenderPassTransformBeginInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassTransformBeginInfoQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) +const sizeOfRenderPassTransformBeginInfoQCOMValue = unsafe.Sizeof([1]C.VkRenderPassTransformBeginInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { +func (x *RenderPassTransformBeginInfoQCOM) Ref() *C.VkRenderPassTransformBeginInfoQCOM { if x == nil { return nil } - return x.ref3e47f337 + 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 *MultisampleProperties) Free() { - if x != nil && x.allocs3e47f337 != nil { - x.allocs3e47f337.(*cgoAllocMap).Free() - x.ref3e47f337 = nil +func (x *RenderPassTransformBeginInfoQCOM) Free() { + if x != nil && x.allocs938e681d != nil { + x.allocs938e681d.(*cgoAllocMap).Free() + x.ref938e681d = nil } } -// NewMultisamplePropertiesRef 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 NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { +func NewRenderPassTransformBeginInfoQCOMRef(ref unsafe.Pointer) *RenderPassTransformBeginInfoQCOM { if ref == nil { return nil } - obj := new(MultisampleProperties) - obj.ref3e47f337 = (*C.VkMultisamplePropertiesEXT)(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 *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { +func (x *RenderPassTransformBeginInfoQCOM) PassRef() (*C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e47f337 != nil { - return x.ref3e47f337, nil + } else if x.ref938e681d != nil { + return x.ref938e681d, nil } - mem3e47f337 := allocMultisamplePropertiesMemory(1) - ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) - allocs3e47f337 := new(cgoAllocMap) - allocs3e47f337.Add(mem3e47f337) + mem938e681d := allocRenderPassTransformBeginInfoQCOMMemory(1) + ref938e681d := (*C.VkRenderPassTransformBeginInfoQCOM)(mem938e681d) + allocs938e681d := new(cgoAllocMap) + allocs938e681d.Add(mem938e681d) var csType_allocs *cgoAllocMap - ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e47f337.Borrow(csType_allocs) + ref938e681d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs938e681d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e47f337.Borrow(cpNext_allocs) + ref938e681d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs938e681d.Borrow(cpNext_allocs) - var cmaxSampleLocationGridSize_allocs *cgoAllocMap - ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() - allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) + var ctransform_allocs *cgoAllocMap + ref938e681d.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocs938e681d.Borrow(ctransform_allocs) - x.ref3e47f337 = ref3e47f337 - x.allocs3e47f337 = allocs3e47f337 - return ref3e47f337, allocs3e47f337 + 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 MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { - if x.ref3e47f337 != nil { - return *x.ref3e47f337, nil +func (x RenderPassTransformBeginInfoQCOM) PassValue() (C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { + if x.ref938e681d != nil { + return *x.ref938e681d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32971,90 +58263,94 @@ 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 *RenderPassTransformBeginInfoQCOM) Deref() { + if x.ref938e681d == 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.ref938e681d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref938e681d.pNext)) + x.Transform = (SurfaceTransformFlagBits)(x.ref938e681d.transform) } -// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT in C. +// allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory allocates memory for type C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) +const sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Ref() *C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM { if x == nil { return nil } - return x.ref8514bc93 + 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 *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { - if x != nil && x.allocs8514bc93 != nil { - x.allocs8514bc93.(*cgoAllocMap).Free() - x.ref8514bc93 = nil +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Free() { + if x != nil && x.allocsee6ff04 != nil { + x.allocsee6ff04.(*cgoAllocMap).Free() + x.refee6ff04 = nil } } -// NewPhysicalDeviceBlendOperationAdvancedFeaturesRef 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 NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { +func NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderPassTransformInfoQCOM { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedFeatures) - obj.ref8514bc93 = (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(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 *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) PassRef() (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8514bc93 != nil { - return x.ref8514bc93, nil + } else if x.refee6ff04 != nil { + return x.refee6ff04, nil } - mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) - ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) - allocs8514bc93 := new(cgoAllocMap) - allocs8514bc93.Add(mem8514bc93) + memee6ff04 := allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(1) + refee6ff04 := (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(memee6ff04) + allocsee6ff04 := new(cgoAllocMap) + allocsee6ff04.Add(memee6ff04) var csType_allocs *cgoAllocMap - ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8514bc93.Borrow(csType_allocs) + refee6ff04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee6ff04.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8514bc93.Borrow(cpNext_allocs) + refee6ff04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee6ff04.Borrow(cpNext_allocs) - var cadvancedBlendCoherentOperations_allocs *cgoAllocMap - ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown - allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) + var ctransform_allocs *cgoAllocMap + refee6ff04.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocsee6ff04.Borrow(ctransform_allocs) - x.ref8514bc93 = ref8514bc93 - x.allocs8514bc93 = allocs8514bc93 - return ref8514bc93, allocs8514bc93 + var crenderArea_allocs *cgoAllocMap + refee6ff04.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocsee6ff04.Borrow(crenderArea_allocs) + + 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 PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { - if x.ref8514bc93 != nil { - return *x.ref8514bc93, nil +func (x CommandBufferInheritanceRenderPassTransformInfoQCOM) PassValue() (C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { + if x.refee6ff04 != nil { + return *x.refee6ff04, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33062,110 +58358,91 @@ 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 *CommandBufferInheritanceRenderPassTransformInfoQCOM) Deref() { + if x.refee6ff04 == 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.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)) } -// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT in C. +// allocPhysicalDeviceDeviceMemoryReportFeaturesMemory allocates memory for type C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) +const sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Ref() *C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { if x == nil { return nil } - return x.ref94cb3fa6 + 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 *PhysicalDeviceBlendOperationAdvancedProperties) Free() { - if x != nil && x.allocs94cb3fa6 != nil { - x.allocs94cb3fa6.(*cgoAllocMap).Free() - x.ref94cb3fa6 = nil +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Free() { + if x != nil && x.allocs477470f6 != nil { + x.allocs477470f6.(*cgoAllocMap).Free() + x.ref477470f6 = nil } } -// NewPhysicalDeviceBlendOperationAdvancedPropertiesRef 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 NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { +func NewPhysicalDeviceDeviceMemoryReportFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDeviceMemoryReportFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedProperties) - obj.ref94cb3fa6 = (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(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 *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) PassRef() (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref94cb3fa6 != nil { - return x.ref94cb3fa6, nil + } else if x.ref477470f6 != nil { + return x.ref477470f6, nil } - mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) - ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) - allocs94cb3fa6 := new(cgoAllocMap) - allocs94cb3fa6.Add(mem94cb3fa6) + mem477470f6 := allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(1) + ref477470f6 := (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(mem477470f6) + allocs477470f6 := new(cgoAllocMap) + allocs477470f6.Add(mem477470f6) var csType_allocs *cgoAllocMap - ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs94cb3fa6.Borrow(csType_allocs) + ref477470f6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs477470f6.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) - - 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) + ref477470f6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs477470f6.Borrow(cpNext_allocs) - var cadvancedBlendAllOperations_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendAllOperations, cadvancedBlendAllOperations_allocs = (C.VkBool32)(x.AdvancedBlendAllOperations), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendAllOperations_allocs) + var cdeviceMemoryReport_allocs *cgoAllocMap + ref477470f6.deviceMemoryReport, cdeviceMemoryReport_allocs = (C.VkBool32)(x.DeviceMemoryReport), cgoAllocsUnknown + allocs477470f6.Borrow(cdeviceMemoryReport_allocs) - x.ref94cb3fa6 = ref94cb3fa6 - x.allocs94cb3fa6 = allocs94cb3fa6 - return ref94cb3fa6, allocs94cb3fa6 + 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 PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { - if x.ref94cb3fa6 != nil { - return *x.ref94cb3fa6, nil +func (x PhysicalDeviceDeviceMemoryReportFeatures) PassValue() (C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { + if x.ref477470f6 != nil { + return *x.ref477470f6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33173,103 +58450,114 @@ 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 *PhysicalDeviceDeviceMemoryReportFeatures) Deref() { + if x.ref477470f6 == 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.ref477470f6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref477470f6.pNext)) + x.DeviceMemoryReport = (Bool32)(x.ref477470f6.deviceMemoryReport) } -// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT in C. +// allocDeviceMemoryReportCallbackDataMemory allocates memory for type C.VkDeviceMemoryReportCallbackDataEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDeviceMemoryReportCallbackDataMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryReportCallbackDataValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) +const sizeOfDeviceMemoryReportCallbackDataValue = unsafe.Sizeof([1]C.VkDeviceMemoryReportCallbackDataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { +func (x *DeviceMemoryReportCallbackData) Ref() *C.VkDeviceMemoryReportCallbackDataEXT { if x == nil { return nil } - return x.refcd374989 + 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 *PipelineColorBlendAdvancedStateCreateInfo) Free() { - if x != nil && x.allocscd374989 != nil { - x.allocscd374989.(*cgoAllocMap).Free() - x.refcd374989 = nil +func (x *DeviceMemoryReportCallbackData) Free() { + if x != nil && x.allocs3150dbde != nil { + x.allocs3150dbde.(*cgoAllocMap).Free() + x.ref3150dbde = nil } } -// NewPipelineColorBlendAdvancedStateCreateInfoRef 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 NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { +func NewDeviceMemoryReportCallbackDataRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackData { if ref == nil { return nil } - obj := new(PipelineColorBlendAdvancedStateCreateInfo) - obj.refcd374989 = (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(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 *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { +func (x *DeviceMemoryReportCallbackData) PassRef() (*C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd374989 != nil { - return x.refcd374989, nil + } else if x.ref3150dbde != nil { + return x.ref3150dbde, nil } - memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) - refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) - allocscd374989 := new(cgoAllocMap) - allocscd374989.Add(memcd374989) + mem3150dbde := allocDeviceMemoryReportCallbackDataMemory(1) + ref3150dbde := (*C.VkDeviceMemoryReportCallbackDataEXT)(mem3150dbde) + allocs3150dbde := new(cgoAllocMap) + allocs3150dbde.Add(mem3150dbde) var csType_allocs *cgoAllocMap - refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd374989.Borrow(csType_allocs) + ref3150dbde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3150dbde.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd374989.Borrow(cpNext_allocs) + ref3150dbde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3150dbde.Borrow(cpNext_allocs) - var csrcPremultiplied_allocs *cgoAllocMap - refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(csrcPremultiplied_allocs) + var cflags_allocs *cgoAllocMap + ref3150dbde.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs3150dbde.Borrow(cflags_allocs) - var cdstPremultiplied_allocs *cgoAllocMap - refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(cdstPremultiplied_allocs) + var c_type_allocs *cgoAllocMap + ref3150dbde._type, c_type_allocs = (C.VkDeviceMemoryReportEventTypeEXT)(x.Type), cgoAllocsUnknown + allocs3150dbde.Borrow(c_type_allocs) - var cblendOverlap_allocs *cgoAllocMap - refcd374989.blendOverlap, cblendOverlap_allocs = (C.VkBlendOverlapEXT)(x.BlendOverlap), cgoAllocsUnknown - allocscd374989.Borrow(cblendOverlap_allocs) + var cmemoryObjectId_allocs *cgoAllocMap + ref3150dbde.memoryObjectId, cmemoryObjectId_allocs = (C.uint64_t)(x.MemoryObjectId), cgoAllocsUnknown + allocs3150dbde.Borrow(cmemoryObjectId_allocs) - x.refcd374989 = refcd374989 - x.allocscd374989 = allocscd374989 - return refcd374989, allocscd374989 + 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.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 PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { - if x.refcd374989 != nil { - return *x.refcd374989, nil +func (x DeviceMemoryReportCallbackData) PassValue() (C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { + if x.ref3150dbde != nil { + return *x.ref3150dbde, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33277,100 +58565,151 @@ 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 *DeviceMemoryReportCallbackData) Deref() { + if x.ref3150dbde == 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.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) } -// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV 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 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()) +func allocDeviceDeviceMemoryReportCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDeviceMemoryReportCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) +const sizeOfDeviceDeviceMemoryReportCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceDeviceMemoryReportCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { +func (x *DeviceDeviceMemoryReportCreateInfo) Ref() *C.VkDeviceDeviceMemoryReportCreateInfoEXT { if x == nil { return nil } - return x.refcc6b7b68 + 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 *PipelineCoverageToColorStateCreateInfoNV) Free() { - if x != nil && x.allocscc6b7b68 != nil { - x.allocscc6b7b68.(*cgoAllocMap).Free() - x.refcc6b7b68 = nil +func (x *DeviceDeviceMemoryReportCreateInfo) Free() { + if x != nil && x.allocse99f2c76 != nil { + x.allocse99f2c76.(*cgoAllocMap).Free() + x.refe99f2c76 = nil } } -// NewPipelineCoverageToColorStateCreateInfoNVRef 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 NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { +func NewDeviceDeviceMemoryReportCreateInfoRef(ref unsafe.Pointer) *DeviceDeviceMemoryReportCreateInfo { if ref == nil { return nil } - obj := new(PipelineCoverageToColorStateCreateInfoNV) - obj.refcc6b7b68 = (*C.VkPipelineCoverageToColorStateCreateInfoNV)(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 *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { +func (x *DeviceDeviceMemoryReportCreateInfo) PassRef() (*C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcc6b7b68 != nil { - return x.refcc6b7b68, nil + } else if x.refe99f2c76 != nil { + return x.refe99f2c76, nil } - memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) - refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) - allocscc6b7b68 := new(cgoAllocMap) - allocscc6b7b68.Add(memcc6b7b68) + meme99f2c76 := allocDeviceDeviceMemoryReportCreateInfoMemory(1) + refe99f2c76 := (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(meme99f2c76) + allocse99f2c76 := new(cgoAllocMap) + allocse99f2c76.Add(meme99f2c76) var csType_allocs *cgoAllocMap - refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscc6b7b68.Borrow(csType_allocs) + refe99f2c76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse99f2c76.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscc6b7b68.Borrow(cpNext_allocs) + refe99f2c76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse99f2c76.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocscc6b7b68.Borrow(cflags_allocs) + refe99f2c76.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse99f2c76.Borrow(cflags_allocs) - var ccoverageToColorEnable_allocs *cgoAllocMap - refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) + var cpfnUserCallback_allocs *cgoAllocMap + refe99f2c76.pfnUserCallback, cpfnUserCallback_allocs = x.PfnUserCallback.PassValue() + allocse99f2c76.Borrow(cpfnUserCallback_allocs) - var ccoverageToColorLocation_allocs *cgoAllocMap - refcc6b7b68.coverageToColorLocation, ccoverageToColorLocation_allocs = (C.uint32_t)(x.CoverageToColorLocation), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorLocation_allocs) + var cpUserData_allocs *cgoAllocMap + refe99f2c76.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocse99f2c76.Borrow(cpUserData_allocs) - x.refcc6b7b68 = refcc6b7b68 - x.allocscc6b7b68 = allocscc6b7b68 - return refcc6b7b68, allocscc6b7b68 + 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 PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { - if x.refcc6b7b68 != nil { - return *x.refcc6b7b68, nil +func (x DeviceDeviceMemoryReportCreateInfo) PassValue() (C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { + if x.refe99f2c76 != nil { + return *x.refe99f2c76, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33378,108 +58717,100 @@ 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 *DeviceDeviceMemoryReportCreateInfo) Deref() { + if x.refe99f2c76 == 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.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)) } -// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV in C. +// allocPhysicalDeviceRobustness2FeaturesMemory allocates memory for type C.VkPhysicalDeviceRobustness2FeaturesEXT 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()) +func allocPhysicalDeviceRobustness2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) +const sizeOfPhysicalDeviceRobustness2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { +func (x *PhysicalDeviceRobustness2Features) Ref() *C.VkPhysicalDeviceRobustness2FeaturesEXT { if x == nil { return nil } - return x.refa081b0ea + 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 *PipelineCoverageModulationStateCreateInfoNV) Free() { - if x != nil && x.allocsa081b0ea != nil { - x.allocsa081b0ea.(*cgoAllocMap).Free() - x.refa081b0ea = nil +func (x *PhysicalDeviceRobustness2Features) Free() { + if x != nil && x.allocsa1d6be35 != nil { + x.allocsa1d6be35.(*cgoAllocMap).Free() + x.refa1d6be35 = nil } } -// NewPipelineCoverageModulationStateCreateInfoNVRef 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 NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { +func NewPhysicalDeviceRobustness2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Features { if ref == nil { return nil } - obj := new(PipelineCoverageModulationStateCreateInfoNV) - obj.refa081b0ea = (*C.VkPipelineCoverageModulationStateCreateInfoNV)(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 *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Features) PassRef() (*C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa081b0ea != nil { - return x.refa081b0ea, nil + } else if x.refa1d6be35 != nil { + return x.refa1d6be35, nil } - mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) - refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) - allocsa081b0ea := new(cgoAllocMap) - allocsa081b0ea.Add(mema081b0ea) + mema1d6be35 := allocPhysicalDeviceRobustness2FeaturesMemory(1) + refa1d6be35 := (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(mema1d6be35) + allocsa1d6be35 := new(cgoAllocMap) + allocsa1d6be35.Add(mema1d6be35) var csType_allocs *cgoAllocMap - refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa081b0ea.Borrow(csType_allocs) + refa1d6be35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa1d6be35.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) + refa1d6be35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa1d6be35.Borrow(cpNext_allocs) - var ccoverageModulationTableEnable_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableEnable, ccoverageModulationTableEnable_allocs = (C.VkBool32)(x.CoverageModulationTableEnable), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableEnable_allocs) + var crobustBufferAccess2_allocs *cgoAllocMap + refa1d6be35.robustBufferAccess2, crobustBufferAccess2_allocs = (C.VkBool32)(x.RobustBufferAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustBufferAccess2_allocs) - var ccoverageModulationTableCount_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableCount, ccoverageModulationTableCount_allocs = (C.uint32_t)(x.CoverageModulationTableCount), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableCount_allocs) + var crobustImageAccess2_allocs *cgoAllocMap + refa1d6be35.robustImageAccess2, crobustImageAccess2_allocs = (C.VkBool32)(x.RobustImageAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustImageAccess2_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 cnullDescriptor_allocs *cgoAllocMap + refa1d6be35.nullDescriptor, cnullDescriptor_allocs = (C.VkBool32)(x.NullDescriptor), cgoAllocsUnknown + allocsa1d6be35.Borrow(cnullDescriptor_allocs) - x.refa081b0ea = refa081b0ea - x.allocsa081b0ea = allocsa081b0ea - return refa081b0ea, allocsa081b0ea + 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 PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { - if x.refa081b0ea != nil { - return *x.refa081b0ea, nil +func (x PhysicalDeviceRobustness2Features) PassValue() (C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { + if x.refa1d6be35 != nil { + return *x.refa1d6be35, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33487,98 +58818,96 @@ 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 *PhysicalDeviceRobustness2Features) Deref() { + if x.refa1d6be35 == 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.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) } -// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT in C. +// allocPhysicalDeviceRobustness2PropertiesMemory allocates memory for type C.VkPhysicalDeviceRobustness2PropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceRobustness2PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2PropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) +const sizeOfPhysicalDeviceRobustness2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2PropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { +func (x *PhysicalDeviceRobustness2Properties) Ref() *C.VkPhysicalDeviceRobustness2PropertiesEXT { if x == nil { return nil } - return x.ref7dcb7f85 + 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 *DrmFormatModifierProperties) Free() { - if x != nil && x.allocs7dcb7f85 != nil { - x.allocs7dcb7f85.(*cgoAllocMap).Free() - x.ref7dcb7f85 = nil +func (x *PhysicalDeviceRobustness2Properties) Free() { + if x != nil && x.allocs82986127 != nil { + x.allocs82986127.(*cgoAllocMap).Free() + x.ref82986127 = nil } } -// NewDrmFormatModifierPropertiesRef 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 NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { +func NewPhysicalDeviceRobustness2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Properties { if ref == nil { return nil } - obj := new(DrmFormatModifierProperties) - obj.ref7dcb7f85 = (*C.VkDrmFormatModifierPropertiesEXT)(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 *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Properties) PassRef() (*C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7dcb7f85 != nil { - return x.ref7dcb7f85, nil + } else if x.ref82986127 != nil { + return x.ref82986127, nil } - mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) - ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) - allocs7dcb7f85 := new(cgoAllocMap) - allocs7dcb7f85.Add(mem7dcb7f85) + mem82986127 := allocPhysicalDeviceRobustness2PropertiesMemory(1) + ref82986127 := (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(mem82986127) + allocs82986127 := new(cgoAllocMap) + allocs82986127.Add(mem82986127) - var cdrmFormatModifier_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) + var csType_allocs *cgoAllocMap + ref82986127.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82986127.Borrow(csType_allocs) - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) + var cpNext_allocs *cgoAllocMap + ref82986127.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82986127.Borrow(cpNext_allocs) - var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) + var crobustStorageBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustStorageBufferAccessSizeAlignment, crobustStorageBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustStorageBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustStorageBufferAccessSizeAlignment_allocs) - x.ref7dcb7f85 = ref7dcb7f85 - x.allocs7dcb7f85 = allocs7dcb7f85 - return ref7dcb7f85, allocs7dcb7f85 + var crobustUniformBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustUniformBufferAccessSizeAlignment, crobustUniformBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustUniformBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustUniformBufferAccessSizeAlignment_allocs) + + 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 DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref7dcb7f85 != nil { - return *x.ref7dcb7f85, nil +func (x PhysicalDeviceRobustness2Properties) PassValue() (C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { + if x.ref82986127 != nil { + return *x.ref82986127, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33586,132 +58915,95 @@ 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 *PhysicalDeviceRobustness2Properties) Deref() { + if x.ref82986127 == nil { return } - x.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) - x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) - x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) -} - -// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT 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)) - 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 + 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) } -// 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)) +// allocSamplerCustomBorderColorCreateInfoMemory allocates memory for type C.VkSamplerCustomBorderColorCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerCustomBorderColorCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCustomBorderColorCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfSamplerCustomBorderColorCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCustomBorderColorCreateInfoEXT{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { +func (x *SamplerCustomBorderColorCreateInfo) Ref() *C.VkSamplerCustomBorderColorCreateInfoEXT { if x == nil { return nil } - return x.ref7e3ede2 + 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 *DrmFormatModifierPropertiesList) Free() { - if x != nil && x.allocs7e3ede2 != nil { - x.allocs7e3ede2.(*cgoAllocMap).Free() - x.ref7e3ede2 = nil +func (x *SamplerCustomBorderColorCreateInfo) Free() { + if x != nil && x.allocscac2582e != nil { + x.allocscac2582e.(*cgoAllocMap).Free() + x.refcac2582e = nil } } -// NewDrmFormatModifierPropertiesListRef 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 NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { +func NewSamplerCustomBorderColorCreateInfoRef(ref unsafe.Pointer) *SamplerCustomBorderColorCreateInfo { if ref == nil { return nil } - obj := new(DrmFormatModifierPropertiesList) - obj.ref7e3ede2 = (*C.VkDrmFormatModifierPropertiesListEXT)(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 *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { +func (x *SamplerCustomBorderColorCreateInfo) PassRef() (*C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7e3ede2 != nil { - return x.ref7e3ede2, nil + } else if x.refcac2582e != nil { + return x.refcac2582e, nil } - mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) - ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) - allocs7e3ede2 := new(cgoAllocMap) - allocs7e3ede2.Add(mem7e3ede2) + memcac2582e := allocSamplerCustomBorderColorCreateInfoMemory(1) + refcac2582e := (*C.VkSamplerCustomBorderColorCreateInfoEXT)(memcac2582e) + allocscac2582e := new(cgoAllocMap) + allocscac2582e.Add(memcac2582e) var csType_allocs *cgoAllocMap - ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7e3ede2.Borrow(csType_allocs) + refcac2582e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscac2582e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7e3ede2.Borrow(cpNext_allocs) + refcac2582e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscac2582e.Borrow(cpNext_allocs) - var cdrmFormatModifierCount_allocs *cgoAllocMap - ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) + var ccustomBorderColor_allocs *cgoAllocMap + refcac2582e.customBorderColor, ccustomBorderColor_allocs = *(*C.VkClearColorValue)(unsafe.Pointer(&x.CustomBorderColor)), cgoAllocsUnknown + allocscac2582e.Borrow(ccustomBorderColor_allocs) - var cpDrmFormatModifierProperties_allocs *cgoAllocMap - ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) - allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) + var cformat_allocs *cgoAllocMap + refcac2582e.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocscac2582e.Borrow(cformat_allocs) - x.ref7e3ede2 = ref7e3ede2 - x.allocs7e3ede2 = allocs7e3ede2 - return ref7e3ede2, allocs7e3ede2 + 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 DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { - if x.ref7e3ede2 != nil { - return *x.ref7e3ede2, nil +func (x SamplerCustomBorderColorCreateInfo) PassValue() (C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { + if x.refcac2582e != nil { + return *x.refcac2582e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33719,103 +59011,91 @@ 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 *SamplerCustomBorderColorCreateInfo) Deref() { + if x.refcac2582e == 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.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) } -// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT in C. +// allocPhysicalDeviceCustomBorderColorPropertiesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceCustomBorderColorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) +const sizeOfPhysicalDeviceCustomBorderColorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { +func (x *PhysicalDeviceCustomBorderColorProperties) Ref() *C.VkPhysicalDeviceCustomBorderColorPropertiesEXT { if x == nil { return nil } - return x.refd7abef44 + 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 *PhysicalDeviceImageDrmFormatModifierInfo) Free() { - if x != nil && x.allocsd7abef44 != nil { - x.allocsd7abef44.(*cgoAllocMap).Free() - x.refd7abef44 = nil +func (x *PhysicalDeviceCustomBorderColorProperties) Free() { + if x != nil && x.allocs4b62d3cd != nil { + x.allocs4b62d3cd.(*cgoAllocMap).Free() + x.ref4b62d3cd = nil } } -// NewPhysicalDeviceImageDrmFormatModifierInfoRef 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 NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { +func NewPhysicalDeviceCustomBorderColorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceImageDrmFormatModifierInfo) - obj.refd7abef44 = (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(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 *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorProperties) PassRef() (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd7abef44 != nil { - return x.refd7abef44, nil + } else if x.ref4b62d3cd != nil { + return x.ref4b62d3cd, nil } - memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) - refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) - allocsd7abef44 := new(cgoAllocMap) - allocsd7abef44.Add(memd7abef44) + mem4b62d3cd := allocPhysicalDeviceCustomBorderColorPropertiesMemory(1) + ref4b62d3cd := (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(mem4b62d3cd) + allocs4b62d3cd := new(cgoAllocMap) + allocs4b62d3cd.Add(mem4b62d3cd) var csType_allocs *cgoAllocMap - refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd7abef44.Borrow(csType_allocs) + ref4b62d3cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4b62d3cd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd7abef44.Borrow(cpNext_allocs) - - var cdrmFormatModifier_allocs *cgoAllocMap - refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocsd7abef44.Borrow(cdrmFormatModifier_allocs) - - var csharingMode_allocs *cgoAllocMap - refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsd7abef44.Borrow(csharingMode_allocs) - - var cqueueFamilyIndexCount_allocs *cgoAllocMap - refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) + ref4b62d3cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cpNext_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 cmaxCustomBorderColorSamplers_allocs *cgoAllocMap + ref4b62d3cd.maxCustomBorderColorSamplers, cmaxCustomBorderColorSamplers_allocs = (C.uint32_t)(x.MaxCustomBorderColorSamplers), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cmaxCustomBorderColorSamplers_allocs) - x.refd7abef44 = refd7abef44 - x.allocsd7abef44 = allocsd7abef44 - return refd7abef44, allocsd7abef44 + 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 PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { - if x.refd7abef44 != nil { - return *x.refd7abef44, nil +func (x PhysicalDeviceCustomBorderColorProperties) PassValue() (C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { + if x.ref4b62d3cd != nil { + return *x.ref4b62d3cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33823,101 +59103,94 @@ 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 *PhysicalDeviceCustomBorderColorProperties) Deref() { + if x.ref4b62d3cd == 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 = ? - + x.SType = (StructureType)(x.ref4b62d3cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4b62d3cd.pNext)) + x.MaxCustomBorderColorSamplers = (uint32)(x.ref4b62d3cd.maxCustomBorderColorSamplers) } -// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT in C. +// allocPhysicalDeviceCustomBorderColorFeaturesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceCustomBorderColorFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) +const sizeOfPhysicalDeviceCustomBorderColorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { +func (x *PhysicalDeviceCustomBorderColorFeatures) Ref() *C.VkPhysicalDeviceCustomBorderColorFeaturesEXT { if x == nil { return nil } - return x.ref544538ab + 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 *ImageDrmFormatModifierListCreateInfo) Free() { - if x != nil && x.allocs544538ab != nil { - x.allocs544538ab.(*cgoAllocMap).Free() - x.ref544538ab = nil +func (x *PhysicalDeviceCustomBorderColorFeatures) Free() { + if x != nil && x.allocs8a9c96e0 != nil { + x.allocs8a9c96e0.(*cgoAllocMap).Free() + x.ref8a9c96e0 = nil } } -// NewImageDrmFormatModifierListCreateInfoRef 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 NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { +func NewPhysicalDeviceCustomBorderColorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorFeatures { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierListCreateInfo) - obj.ref544538ab = (*C.VkImageDrmFormatModifierListCreateInfoEXT)(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 *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorFeatures) PassRef() (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref544538ab != nil { - return x.ref544538ab, nil + } else if x.ref8a9c96e0 != nil { + return x.ref8a9c96e0, nil } - mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) - ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) - allocs544538ab := new(cgoAllocMap) - allocs544538ab.Add(mem544538ab) + mem8a9c96e0 := allocPhysicalDeviceCustomBorderColorFeaturesMemory(1) + ref8a9c96e0 := (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(mem8a9c96e0) + allocs8a9c96e0 := new(cgoAllocMap) + allocs8a9c96e0.Add(mem8a9c96e0) var csType_allocs *cgoAllocMap - ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs544538ab.Borrow(csType_allocs) + ref8a9c96e0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8a9c96e0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref544538ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs544538ab.Borrow(cpNext_allocs) + ref8a9c96e0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8a9c96e0.Borrow(cpNext_allocs) - var cdrmFormatModifierCount_allocs *cgoAllocMap - ref544538ab.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocs544538ab.Borrow(cdrmFormatModifierCount_allocs) + var ccustomBorderColors_allocs *cgoAllocMap + ref8a9c96e0.customBorderColors, ccustomBorderColors_allocs = (C.VkBool32)(x.CustomBorderColors), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColors_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 ccustomBorderColorWithoutFormat_allocs *cgoAllocMap + ref8a9c96e0.customBorderColorWithoutFormat, ccustomBorderColorWithoutFormat_allocs = (C.VkBool32)(x.CustomBorderColorWithoutFormat), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColorWithoutFormat_allocs) - x.ref544538ab = ref544538ab - x.allocs544538ab = allocs544538ab - return ref544538ab, allocs544538ab + 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 ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { - if x.ref544538ab != nil { - return *x.ref544538ab, nil +func (x PhysicalDeviceCustomBorderColorFeatures) PassValue() (C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { + if x.ref8a9c96e0 != nil { + return *x.ref8a9c96e0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33925,141 +59198,91 @@ 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 *PhysicalDeviceCustomBorderColorFeatures) Deref() { + if x.ref8a9c96e0 == 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.ref8a9c96e0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8a9c96e0.pNext)) + x.CustomBorderColors = (Bool32)(x.ref8a9c96e0.customBorderColors) + x.CustomBorderColorWithoutFormat = (Bool32)(x.ref8a9c96e0.customBorderColorWithoutFormat) } -// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT in C. +// allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV 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()) +func allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -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.VkSubresourceLayout) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSubresourceLayoutMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - 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.VkSubresourceLayout)(h.Data) - return -} - -// 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 / sizeOfSubresourceLayoutValue]C.VkSubresourceLayout)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubresourceLayoutRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Ref() *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV { if x == nil { return nil } - return x.ref8fb45ca9 + 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 *ImageDrmFormatModifierExplicitCreateInfo) Free() { - if x != nil && x.allocs8fb45ca9 != nil { - x.allocs8fb45ca9.(*cgoAllocMap).Free() - x.ref8fb45ca9 = nil +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Free() { + if x != nil && x.allocsd354d3ba != nil { + x.allocsd354d3ba.(*cgoAllocMap).Free() + x.refd354d3ba = nil } } -// NewImageDrmFormatModifierExplicitCreateInfoRef 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 NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { +func NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDiagnosticsConfigFeaturesNV { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierExplicitCreateInfo) - obj.ref8fb45ca9 = (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(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 *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) PassRef() (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8fb45ca9 != nil { - return x.ref8fb45ca9, nil + } else if x.refd354d3ba != nil { + return x.refd354d3ba, nil } - mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) - ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) - allocs8fb45ca9 := new(cgoAllocMap) - allocs8fb45ca9.Add(mem8fb45ca9) + memd354d3ba := allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(1) + refd354d3ba := (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(memd354d3ba) + allocsd354d3ba := new(cgoAllocMap) + allocsd354d3ba.Add(memd354d3ba) var csType_allocs *cgoAllocMap - ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8fb45ca9.Borrow(csType_allocs) + refd354d3ba.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd354d3ba.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cpNext_allocs) - - var cdrmFormatModifier_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) - - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) + refd354d3ba.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd354d3ba.Borrow(cpNext_allocs) - var cpPlaneLayouts_allocs *cgoAllocMap - ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) - allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) + var cdiagnosticsConfig_allocs *cgoAllocMap + refd354d3ba.diagnosticsConfig, cdiagnosticsConfig_allocs = (C.VkBool32)(x.DiagnosticsConfig), cgoAllocsUnknown + allocsd354d3ba.Borrow(cdiagnosticsConfig_allocs) - x.ref8fb45ca9 = ref8fb45ca9 - x.allocs8fb45ca9 = allocs8fb45ca9 - return ref8fb45ca9, allocs8fb45ca9 + 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 ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { - if x.ref8fb45ca9 != nil { - return *x.ref8fb45ca9, nil +func (x PhysicalDeviceDiagnosticsConfigFeaturesNV) PassValue() (C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { + if x.refd354d3ba != nil { + return *x.refd354d3ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34067,92 +59290,90 @@ 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 *PhysicalDeviceDiagnosticsConfigFeaturesNV) Deref() { + if x.refd354d3ba == 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) + x.SType = (StructureType)(x.refd354d3ba.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd354d3ba.pNext)) + x.DiagnosticsConfig = (Bool32)(x.refd354d3ba.diagnosticsConfig) } -// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT in C. +// allocDeviceDiagnosticsConfigCreateInfoNVMemory allocates memory for type C.VkDeviceDiagnosticsConfigCreateInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDeviceDiagnosticsConfigCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDiagnosticsConfigCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) +const sizeOfDeviceDiagnosticsConfigCreateInfoNVValue = unsafe.Sizeof([1]C.VkDeviceDiagnosticsConfigCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { +func (x *DeviceDiagnosticsConfigCreateInfoNV) Ref() *C.VkDeviceDiagnosticsConfigCreateInfoNV { if x == nil { return nil } - return x.ref86a0f149 + 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 *ImageDrmFormatModifierProperties) Free() { - if x != nil && x.allocs86a0f149 != nil { - x.allocs86a0f149.(*cgoAllocMap).Free() - x.ref86a0f149 = nil +func (x *DeviceDiagnosticsConfigCreateInfoNV) Free() { + if x != nil && x.allocs856c966a != nil { + x.allocs856c966a.(*cgoAllocMap).Free() + x.ref856c966a = nil } } -// NewImageDrmFormatModifierPropertiesRef 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 NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { +func NewDeviceDiagnosticsConfigCreateInfoNVRef(ref unsafe.Pointer) *DeviceDiagnosticsConfigCreateInfoNV { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierProperties) - obj.ref86a0f149 = (*C.VkImageDrmFormatModifierPropertiesEXT)(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 *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *DeviceDiagnosticsConfigCreateInfoNV) PassRef() (*C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86a0f149 != nil { - return x.ref86a0f149, nil + } else if x.ref856c966a != nil { + return x.ref856c966a, nil } - mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) - ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) - allocs86a0f149 := new(cgoAllocMap) - allocs86a0f149.Add(mem86a0f149) + mem856c966a := allocDeviceDiagnosticsConfigCreateInfoNVMemory(1) + ref856c966a := (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(mem856c966a) + allocs856c966a := new(cgoAllocMap) + allocs856c966a.Add(mem856c966a) var csType_allocs *cgoAllocMap - ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86a0f149.Borrow(csType_allocs) + ref856c966a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs856c966a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86a0f149.Borrow(cpNext_allocs) + ref856c966a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs856c966a.Borrow(cpNext_allocs) - var cdrmFormatModifier_allocs *cgoAllocMap - ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs86a0f149.Borrow(cdrmFormatModifier_allocs) + var cflags_allocs *cgoAllocMap + ref856c966a.flags, cflags_allocs = (C.VkDeviceDiagnosticsConfigFlagsNV)(x.Flags), cgoAllocsUnknown + allocs856c966a.Borrow(cflags_allocs) - x.ref86a0f149 = ref86a0f149 - x.allocs86a0f149 = allocs86a0f149 - return ref86a0f149, allocs86a0f149 + 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 ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref86a0f149 != nil { - return *x.ref86a0f149, nil +func (x DeviceDiagnosticsConfigCreateInfoNV) PassValue() (C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { + if x.ref856c966a != nil { + return *x.ref856c966a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34160,98 +59381,90 @@ 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 *DeviceDiagnosticsConfigCreateInfoNV) Deref() { + if x.ref856c966a == 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.ref856c966a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref856c966a.pNext)) + x.Flags = (DeviceDiagnosticsConfigFlagsNV)(x.ref856c966a.flags) } -// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT in C. +// allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) +const sizeOfPhysicalDeviceGraphicsPipelineLibraryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Ref() *C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { if x == nil { return nil } - return x.ref3d8ac8aa + 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 *ValidationCacheCreateInfo) Free() { - if x != nil && x.allocs3d8ac8aa != nil { - x.allocs3d8ac8aa.(*cgoAllocMap).Free() - x.ref3d8ac8aa = nil +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Free() { + if x != nil && x.allocs34a84548 != nil { + x.allocs34a84548.(*cgoAllocMap).Free() + x.ref34a84548 = nil } } -// NewValidationCacheCreateInfoRef 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 NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { +func NewPhysicalDeviceGraphicsPipelineLibraryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGraphicsPipelineLibraryFeatures { if ref == nil { return nil } - obj := new(ValidationCacheCreateInfo) - obj.ref3d8ac8aa = (*C.VkValidationCacheCreateInfoEXT)(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 *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) PassRef() (*C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3d8ac8aa != nil { - return x.ref3d8ac8aa, nil + } else if x.ref34a84548 != nil { + return x.ref34a84548, nil } - mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) - ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) - allocs3d8ac8aa := new(cgoAllocMap) - allocs3d8ac8aa.Add(mem3d8ac8aa) + mem34a84548 := allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory(1) + ref34a84548 := (*C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)(mem34a84548) + allocs34a84548 := new(cgoAllocMap) + allocs34a84548.Add(mem34a84548) var csType_allocs *cgoAllocMap - ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(csType_allocs) + ref34a84548.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34a84548.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) + ref34a84548.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34a84548.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 cgraphicsPipelineLibrary_allocs *cgoAllocMap + ref34a84548.graphicsPipelineLibrary, cgraphicsPipelineLibrary_allocs = (C.VkBool32)(x.GraphicsPipelineLibrary), cgoAllocsUnknown + allocs34a84548.Borrow(cgraphicsPipelineLibrary_allocs) - x.ref3d8ac8aa = ref3d8ac8aa - x.allocs3d8ac8aa = allocs3d8ac8aa - return ref3d8ac8aa, allocs3d8ac8aa + 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 ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref3d8ac8aa != nil { - return *x.ref3d8ac8aa, nil +func (x PhysicalDeviceGraphicsPipelineLibraryFeatures) PassValue() (C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, *cgoAllocMap) { + if x.ref34a84548 != nil { + return *x.ref34a84548, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34259,92 +59472,94 @@ 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 *PhysicalDeviceGraphicsPipelineLibraryFeatures) Deref() { + if x.ref34a84548 == 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.ref34a84548.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34a84548.pNext)) + x.GraphicsPipelineLibrary = (Bool32)(x.ref34a84548.graphicsPipelineLibrary) } -// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT in C. +// allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory allocates memory for type C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) +const sizeOfPhysicalDeviceGraphicsPipelineLibraryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Ref() *C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { if x == nil { return nil } - return x.ref37065f24 + 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 *ShaderModuleValidationCacheCreateInfo) Free() { - if x != nil && x.allocs37065f24 != nil { - x.allocs37065f24.(*cgoAllocMap).Free() - x.ref37065f24 = nil +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Free() { + if x != nil && x.allocs3266d876 != nil { + x.allocs3266d876.(*cgoAllocMap).Free() + x.ref3266d876 = nil } } -// NewShaderModuleValidationCacheCreateInfoRef 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 NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { +func NewPhysicalDeviceGraphicsPipelineLibraryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceGraphicsPipelineLibraryProperties { if ref == nil { return nil } - obj := new(ShaderModuleValidationCacheCreateInfo) - obj.ref37065f24 = (*C.VkShaderModuleValidationCacheCreateInfoEXT)(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 *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) PassRef() (*C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref37065f24 != nil { - return x.ref37065f24, nil + } else if x.ref3266d876 != nil { + return x.ref3266d876, nil } - mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) - ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) - allocs37065f24 := new(cgoAllocMap) - allocs37065f24.Add(mem37065f24) + mem3266d876 := allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory(1) + ref3266d876 := (*C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)(mem3266d876) + allocs3266d876 := new(cgoAllocMap) + allocs3266d876.Add(mem3266d876) var csType_allocs *cgoAllocMap - ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs37065f24.Borrow(csType_allocs) + ref3266d876.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3266d876.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs37065f24.Borrow(cpNext_allocs) + ref3266d876.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3266d876.Borrow(cpNext_allocs) - var cvalidationCache_allocs *cgoAllocMap - ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown - allocs37065f24.Borrow(cvalidationCache_allocs) + var cgraphicsPipelineLibraryFastLinking_allocs *cgoAllocMap + ref3266d876.graphicsPipelineLibraryFastLinking, cgraphicsPipelineLibraryFastLinking_allocs = (C.VkBool32)(x.GraphicsPipelineLibraryFastLinking), cgoAllocsUnknown + allocs3266d876.Borrow(cgraphicsPipelineLibraryFastLinking_allocs) - x.ref37065f24 = ref37065f24 - x.allocs37065f24 = allocs37065f24 - return ref37065f24, allocs37065f24 + 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 ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref37065f24 != nil { - return *x.ref37065f24, nil +func (x PhysicalDeviceGraphicsPipelineLibraryProperties) PassValue() (C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, *cgoAllocMap) { + if x.ref3266d876 != nil { + return *x.ref3266d876, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34352,94 +59567,91 @@ 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 *PhysicalDeviceGraphicsPipelineLibraryProperties) Deref() { + if x.ref3266d876 == 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.ref3266d876.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3266d876.pNext)) + x.GraphicsPipelineLibraryFastLinking = (Bool32)(x.ref3266d876.graphicsPipelineLibraryFastLinking) + x.GraphicsPipelineLibraryIndependentInterpolationDecoration = (Bool32)(x.ref3266d876.graphicsPipelineLibraryIndependentInterpolationDecoration) } -// allocDescriptorSetLayoutBindingFlagsCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT in C. +// allocGraphicsPipelineLibraryCreateInfoMemory allocates memory for type C.VkGraphicsPipelineLibraryCreateInfoEXT 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()) +func allocGraphicsPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineLibraryCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT{}) +const sizeOfGraphicsPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkGraphicsPipelineLibraryCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Ref() *C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { +func (x *GraphicsPipelineLibraryCreateInfo) Ref() *C.VkGraphicsPipelineLibraryCreateInfoEXT { if x == nil { return nil } - return x.refcb1cf42 + 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 *DescriptorSetLayoutBindingFlagsCreateInfo) Free() { - if x != nil && x.allocscb1cf42 != nil { - x.allocscb1cf42.(*cgoAllocMap).Free() - x.refcb1cf42 = nil +func (x *GraphicsPipelineLibraryCreateInfo) Free() { + if x != nil && x.allocsf164ebfc != nil { + x.allocsf164ebfc.(*cgoAllocMap).Free() + x.reff164ebfc = nil } } -// NewDescriptorSetLayoutBindingFlagsCreateInfoRef 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 NewDescriptorSetLayoutBindingFlagsCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutBindingFlagsCreateInfo { +func NewGraphicsPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *GraphicsPipelineLibraryCreateInfo { if ref == nil { return nil } - obj := new(DescriptorSetLayoutBindingFlagsCreateInfo) - obj.refcb1cf42 = (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT)(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 *DescriptorSetLayoutBindingFlagsCreateInfo) PassRef() (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, *cgoAllocMap) { +func (x *GraphicsPipelineLibraryCreateInfo) PassRef() (*C.VkGraphicsPipelineLibraryCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcb1cf42 != nil { - return x.refcb1cf42, nil + } else if x.reff164ebfc != nil { + return x.reff164ebfc, nil } - memcb1cf42 := allocDescriptorSetLayoutBindingFlagsCreateInfoMemory(1) - refcb1cf42 := (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT)(memcb1cf42) - allocscb1cf42 := new(cgoAllocMap) - allocscb1cf42.Add(memcb1cf42) + memf164ebfc := allocGraphicsPipelineLibraryCreateInfoMemory(1) + reff164ebfc := (*C.VkGraphicsPipelineLibraryCreateInfoEXT)(memf164ebfc) + allocsf164ebfc := new(cgoAllocMap) + allocsf164ebfc.Add(memf164ebfc) var csType_allocs *cgoAllocMap - refcb1cf42.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscb1cf42.Borrow(csType_allocs) + reff164ebfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf164ebfc.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) + reff164ebfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf164ebfc.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 cflags_allocs *cgoAllocMap + reff164ebfc.flags, cflags_allocs = (C.VkGraphicsPipelineLibraryFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsf164ebfc.Borrow(cflags_allocs) - x.refcb1cf42 = refcb1cf42 - x.allocscb1cf42 = allocscb1cf42 - return refcb1cf42, allocscb1cf42 + 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 DescriptorSetLayoutBindingFlagsCreateInfo) PassValue() (C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, *cgoAllocMap) { - if x.refcb1cf42 != nil { - return *x.refcb1cf42, nil +func (x GraphicsPipelineLibraryCreateInfo) PassValue() (C.VkGraphicsPipelineLibraryCreateInfoEXT, *cgoAllocMap) { + if x.reff164ebfc != nil { + return *x.reff164ebfc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34447,171 +59659,191 @@ 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 *GraphicsPipelineLibraryCreateInfo) Deref() { + if x.reff164ebfc == 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.reff164ebfc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff164ebfc.pNext)) + x.Flags = (GraphicsPipelineLibraryFlags)(x.reff164ebfc.flags) } -// allocPhysicalDeviceDescriptorIndexingFeaturesMemory allocates memory for type C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT in C. +// allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV 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()) +func allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceDescriptorIndexingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT{}) +const sizeOfPhysicalDeviceFragmentShadingRateEnumsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDescriptorIndexingFeatures) Ref() *C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT { +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { if x == nil { return nil } - return x.ref76ca48bc + 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 *PhysicalDeviceDescriptorIndexingFeatures) Free() { - if x != nil && x.allocs76ca48bc != nil { - x.allocs76ca48bc.(*cgoAllocMap).Free() - x.ref76ca48bc = nil +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Free() { + if x != nil && x.allocsd295c0e9 != nil { + x.allocsd295c0e9.(*cgoAllocMap).Free() + x.refd295c0e9 = nil } } -// NewPhysicalDeviceDescriptorIndexingFeaturesRef 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 NewPhysicalDeviceDescriptorIndexingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingFeatures { +func NewPhysicalDeviceFragmentShadingRateEnumsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceDescriptorIndexingFeatures) - obj.ref76ca48bc = (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT)(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 *PhysicalDeviceDescriptorIndexingFeatures) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref76ca48bc != nil { - return x.ref76ca48bc, nil + } else if x.refd295c0e9 != nil { + return x.refd295c0e9, nil } - mem76ca48bc := allocPhysicalDeviceDescriptorIndexingFeaturesMemory(1) - ref76ca48bc := (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT)(mem76ca48bc) - allocs76ca48bc := new(cgoAllocMap) - allocs76ca48bc.Add(mem76ca48bc) + memd295c0e9 := allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(1) + refd295c0e9 := (*C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV)(memd295c0e9) + allocsd295c0e9 := new(cgoAllocMap) + allocsd295c0e9.Add(memd295c0e9) var csType_allocs *cgoAllocMap - ref76ca48bc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs76ca48bc.Borrow(csType_allocs) + refd295c0e9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd295c0e9.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) + refd295c0e9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd295c0e9.Borrow(cpNext_allocs) - var cshaderSampledImageArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderSampledImageArrayNonUniformIndexing, cshaderSampledImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderSampledImageArrayNonUniformIndexing_allocs) + var cfragmentShadingRateEnums_allocs *cgoAllocMap + refd295c0e9.fragmentShadingRateEnums, cfragmentShadingRateEnums_allocs = (C.VkBool32)(x.FragmentShadingRateEnums), cgoAllocsUnknown + allocsd295c0e9.Borrow(cfragmentShadingRateEnums_allocs) - var cshaderStorageBufferArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageBufferArrayNonUniformIndexing, cshaderStorageBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageBufferArrayNonUniformIndexing_allocs) + var csupersampleFragmentShadingRates_allocs *cgoAllocMap + refd295c0e9.supersampleFragmentShadingRates, csupersampleFragmentShadingRates_allocs = (C.VkBool32)(x.SupersampleFragmentShadingRates), cgoAllocsUnknown + allocsd295c0e9.Borrow(csupersampleFragmentShadingRates_allocs) - var cshaderStorageImageArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageImageArrayNonUniformIndexing, cshaderStorageImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageImageArrayNonUniformIndexing_allocs) + var cnoInvocationFragmentShadingRates_allocs *cgoAllocMap + refd295c0e9.noInvocationFragmentShadingRates, cnoInvocationFragmentShadingRates_allocs = (C.VkBool32)(x.NoInvocationFragmentShadingRates), cgoAllocsUnknown + allocsd295c0e9.Borrow(cnoInvocationFragmentShadingRates_allocs) - var cshaderInputAttachmentArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderInputAttachmentArrayNonUniformIndexing, cshaderInputAttachmentArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderInputAttachmentArrayNonUniformIndexing_allocs) + x.refd295c0e9 = refd295c0e9 + x.allocsd295c0e9 = allocsd295c0e9 + return refd295c0e9, allocsd295c0e9 - 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) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, *cgoAllocMap) { + if x.refd295c0e9 != nil { + return *x.refd295c0e9, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cdescriptorBindingUniformBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUniformBufferUpdateAfterBind, cdescriptorBindingUniformBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUniformBufferUpdateAfterBind_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 *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Deref() { + if x.refd295c0e9 == nil { + return + } + 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) +} - var cdescriptorBindingSampledImageUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingSampledImageUpdateAfterBind, cdescriptorBindingSampledImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingSampledImageUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingSampledImageUpdateAfterBind_allocs) +// allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsPropertiesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cdescriptorBindingStorageImageUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageImageUpdateAfterBind, cdescriptorBindingStorageImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageImageUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageImageUpdateAfterBind_allocs) +const sizeOfPhysicalDeviceFragmentShadingRateEnumsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV{}) - var cdescriptorBindingStorageBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageBufferUpdateAfterBind, cdescriptorBindingStorageBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageBufferUpdateAfterBind_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Ref() *C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + if x == nil { + return nil + } + return x.ref49eae7dc +} - var cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUniformTexelBufferUpdateAfterBind, cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformTexelBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUniformTexelBufferUpdateAfterBind_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 *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Free() { + if x != nil && x.allocs49eae7dc != nil { + x.allocs49eae7dc.(*cgoAllocMap).Free() + x.ref49eae7dc = nil + } +} - var cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageTexelBufferUpdateAfterBind, cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageTexelBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs) +// 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 NewPhysicalDeviceFragmentShadingRateEnumsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) + obj.ref49eae7dc = (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV)(unsafe.Pointer(ref)) + return obj +} - var cdescriptorBindingUpdateUnusedWhilePending_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUpdateUnusedWhilePending, cdescriptorBindingUpdateUnusedWhilePending_allocs = (C.VkBool32)(x.DescriptorBindingUpdateUnusedWhilePending), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUpdateUnusedWhilePending_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 *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref49eae7dc != nil { + return x.ref49eae7dc, nil + } + mem49eae7dc := allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory(1) + ref49eae7dc := (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV)(mem49eae7dc) + allocs49eae7dc := new(cgoAllocMap) + allocs49eae7dc.Add(mem49eae7dc) - var cdescriptorBindingPartiallyBound_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingPartiallyBound, cdescriptorBindingPartiallyBound_allocs = (C.VkBool32)(x.DescriptorBindingPartiallyBound), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingPartiallyBound_allocs) + var csType_allocs *cgoAllocMap + ref49eae7dc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs49eae7dc.Borrow(csType_allocs) - var cdescriptorBindingVariableDescriptorCount_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingVariableDescriptorCount, cdescriptorBindingVariableDescriptorCount_allocs = (C.VkBool32)(x.DescriptorBindingVariableDescriptorCount), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingVariableDescriptorCount_allocs) + var cpNext_allocs *cgoAllocMap + ref49eae7dc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs49eae7dc.Borrow(cpNext_allocs) - var cruntimeDescriptorArray_allocs *cgoAllocMap - ref76ca48bc.runtimeDescriptorArray, cruntimeDescriptorArray_allocs = (C.VkBool32)(x.RuntimeDescriptorArray), cgoAllocsUnknown - allocs76ca48bc.Borrow(cruntimeDescriptorArray_allocs) + var cmaxFragmentShadingRateInvocationCount_allocs *cgoAllocMap + ref49eae7dc.maxFragmentShadingRateInvocationCount, cmaxFragmentShadingRateInvocationCount_allocs = (C.VkSampleCountFlagBits)(x.MaxFragmentShadingRateInvocationCount), cgoAllocsUnknown + allocs49eae7dc.Borrow(cmaxFragmentShadingRateInvocationCount_allocs) - x.ref76ca48bc = ref76ca48bc - x.allocs76ca48bc = allocs76ca48bc - return ref76ca48bc, allocs76ca48bc + 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 PhysicalDeviceDescriptorIndexingFeatures) PassValue() (C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT, *cgoAllocMap) { - if x.ref76ca48bc != nil { - return *x.ref76ca48bc, nil +func (x PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) PassValue() (C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, *cgoAllocMap) { + if x.ref49eae7dc != nil { + return *x.ref49eae7dc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34619,197 +59851,191 @@ 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 *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Deref() { + if x.ref49eae7dc == nil { + return + } + x.SType = (StructureType)(x.ref49eae7dc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref49eae7dc.pNext)) + x.MaxFragmentShadingRateInvocationCount = (SampleCountFlagBits)(x.ref49eae7dc.maxFragmentShadingRateInvocationCount) +} + +// allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory allocates memory for type C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV 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()) +func allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateEnumStateCreateInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceDescriptorIndexingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT{}) +const sizeOfPipelineFragmentShadingRateEnumStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDescriptorIndexingProperties) Ref() *C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT { +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Ref() *C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV { if x == nil { return nil } - return x.ref3c07c210 + 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 *PhysicalDeviceDescriptorIndexingProperties) Free() { - if x != nil && x.allocs3c07c210 != nil { - x.allocs3c07c210.(*cgoAllocMap).Free() - x.ref3c07c210 = nil +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Free() { + if x != nil && x.allocs82a7e17b != nil { + x.allocs82a7e17b.(*cgoAllocMap).Free() + x.ref82a7e17b = nil } } -// NewPhysicalDeviceDescriptorIndexingPropertiesRef 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 NewPhysicalDeviceDescriptorIndexingPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingProperties { +func NewPipelineFragmentShadingRateEnumStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineFragmentShadingRateEnumStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceDescriptorIndexingProperties) - obj.ref3c07c210 = (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT)(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 *PhysicalDeviceDescriptorIndexingProperties) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT, *cgoAllocMap) { +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) PassRef() (*C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3c07c210 != nil { - return x.ref3c07c210, nil + } else if x.ref82a7e17b != nil { + return x.ref82a7e17b, nil } - mem3c07c210 := allocPhysicalDeviceDescriptorIndexingPropertiesMemory(1) - ref3c07c210 := (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT)(mem3c07c210) - allocs3c07c210 := new(cgoAllocMap) - allocs3c07c210.Add(mem3c07c210) + mem82a7e17b := allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory(1) + ref82a7e17b := (*C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV)(mem82a7e17b) + allocs82a7e17b := new(cgoAllocMap) + allocs82a7e17b.Add(mem82a7e17b) var csType_allocs *cgoAllocMap - ref3c07c210.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3c07c210.Borrow(csType_allocs) + ref82a7e17b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82a7e17b.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) - - 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) + ref82a7e17b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82a7e17b.Borrow(cpNext_allocs) - var cquadDivergentImplicitLod_allocs *cgoAllocMap - ref3c07c210.quadDivergentImplicitLod, cquadDivergentImplicitLod_allocs = (C.VkBool32)(x.QuadDivergentImplicitLod), cgoAllocsUnknown - allocs3c07c210.Borrow(cquadDivergentImplicitLod_allocs) + var cshadingRateType_allocs *cgoAllocMap + ref82a7e17b.shadingRateType, cshadingRateType_allocs = (C.VkFragmentShadingRateTypeNV)(x.ShadingRateType), cgoAllocsUnknown + allocs82a7e17b.Borrow(cshadingRateType_allocs) - var cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindSamplers, cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSamplers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs) + var cshadingRate_allocs *cgoAllocMap + ref82a7e17b.shadingRate, cshadingRate_allocs = (C.VkFragmentShadingRateNV)(x.ShadingRate), cgoAllocsUnknown + allocs82a7e17b.Borrow(cshadingRate_allocs) - var cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindUniformBuffers, cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs) + var ccombinerOps_allocs *cgoAllocMap + ref82a7e17b.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown + allocs82a7e17b.Borrow(ccombinerOps_allocs) - var cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindStorageBuffers, cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs) + x.ref82a7e17b = ref82a7e17b + x.allocs82a7e17b = allocs82a7e17b + return ref82a7e17b, allocs82a7e17b - 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) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineFragmentShadingRateEnumStateCreateInfoNV) PassValue() (C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV, *cgoAllocMap) { + if x.ref82a7e17b != nil { + return *x.ref82a7e17b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindInputAttachments, cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInputAttachments), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindInputAttachments_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 *PipelineFragmentShadingRateEnumStateCreateInfoNV) Deref() { + if x.ref82a7e17b == nil { + return + } + 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)) +} - var cmaxPerStageUpdateAfterBindResources_allocs *cgoAllocMap - ref3c07c210.maxPerStageUpdateAfterBindResources, cmaxPerStageUpdateAfterBindResources_allocs = (C.uint32_t)(x.MaxPerStageUpdateAfterBindResources), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageUpdateAfterBindResources_allocs) +// allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcr2Plane444FormatsFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cmaxDescriptorSetUpdateAfterBindSamplers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindSamplers, cmaxDescriptorSetUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSamplers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindSamplers_allocs) +const sizeOfPhysicalDeviceYcbcr2Plane444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT{}) - var cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffers, cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Ref() *C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { + if x == nil { + return nil + } + return x.reff075d674 +} - var cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_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 *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Free() { + if x != nil && x.allocsf075d674 != nil { + x.allocsf075d674.(*cgoAllocMap).Free() + x.reff075d674 = nil + } +} - var cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffers, cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs) +// 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 NewPhysicalDeviceYcbcr2Plane444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcr2Plane444FormatsFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceYcbcr2Plane444FormatsFeatures) + obj.reff075d674 = (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)(unsafe.Pointer(ref)) + return obj +} - var cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_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 *PhysicalDeviceYcbcr2Plane444FormatsFeatures) PassRef() (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff075d674 != nil { + return x.reff075d674, nil + } + memf075d674 := allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory(1) + reff075d674 := (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)(memf075d674) + allocsf075d674 := new(cgoAllocMap) + allocsf075d674.Add(memf075d674) - var cmaxDescriptorSetUpdateAfterBindSampledImages_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindSampledImages, cmaxDescriptorSetUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSampledImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindSampledImages_allocs) + var csType_allocs *cgoAllocMap + reff075d674.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf075d674.Borrow(csType_allocs) - var cmaxDescriptorSetUpdateAfterBindStorageImages_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageImages, cmaxDescriptorSetUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageImages_allocs) + var cpNext_allocs *cgoAllocMap + reff075d674.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf075d674.Borrow(cpNext_allocs) - var cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindInputAttachments, cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInputAttachments), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs) + var cycbcr2plane444Formats_allocs *cgoAllocMap + reff075d674.ycbcr2plane444Formats, cycbcr2plane444Formats_allocs = (C.VkBool32)(x.Ycbcr2plane444Formats), cgoAllocsUnknown + allocsf075d674.Borrow(cycbcr2plane444Formats_allocs) - x.ref3c07c210 = ref3c07c210 - x.allocs3c07c210 = allocs3c07c210 - return ref3c07c210, allocs3c07c210 + 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 PhysicalDeviceDescriptorIndexingProperties) PassValue() (C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT, *cgoAllocMap) { - if x.ref3c07c210 != nil { - return *x.ref3c07c210, nil +func (x PhysicalDeviceYcbcr2Plane444FormatsFeatures) PassValue() (C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, *cgoAllocMap) { + if x.reff075d674 != nil { + return *x.reff075d674, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34817,116 +60043,90 @@ 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 *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Deref() { + if x.reff075d674 == nil { + return + } + x.SType = (StructureType)(x.reff075d674.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff075d674.pNext)) + x.Ycbcr2plane444Formats = (Bool32)(x.reff075d674.ycbcr2plane444Formats) +} + +// allocPhysicalDeviceFragmentDensityMap2FeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT 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()) +func allocPhysicalDeviceFragmentDensityMap2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMap2FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetVariableDescriptorCountAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT{}) +const sizeOfPhysicalDeviceFragmentDensityMap2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Ref() *C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { +func (x *PhysicalDeviceFragmentDensityMap2Features) Ref() *C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { if x == nil { return nil } - return x.ref65152aef + 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 *DescriptorSetVariableDescriptorCountAllocateInfo) Free() { - if x != nil && x.allocs65152aef != nil { - x.allocs65152aef.(*cgoAllocMap).Free() - x.ref65152aef = nil +func (x *PhysicalDeviceFragmentDensityMap2Features) Free() { + if x != nil && x.allocs30a59f8 != nil { + x.allocs30a59f8.(*cgoAllocMap).Free() + x.ref30a59f8 = nil } } -// NewDescriptorSetVariableDescriptorCountAllocateInfoRef 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 NewDescriptorSetVariableDescriptorCountAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountAllocateInfo { +func NewPhysicalDeviceFragmentDensityMap2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMap2Features { if ref == nil { return nil } - obj := new(DescriptorSetVariableDescriptorCountAllocateInfo) - obj.ref65152aef = (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT)(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 *DescriptorSetVariableDescriptorCountAllocateInfo) PassRef() (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMap2Features) PassRef() (*C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref65152aef != nil { - return x.ref65152aef, nil + } else if x.ref30a59f8 != nil { + return x.ref30a59f8, nil } - mem65152aef := allocDescriptorSetVariableDescriptorCountAllocateInfoMemory(1) - ref65152aef := (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT)(mem65152aef) - allocs65152aef := new(cgoAllocMap) - allocs65152aef.Add(mem65152aef) + mem30a59f8 := allocPhysicalDeviceFragmentDensityMap2FeaturesMemory(1) + ref30a59f8 := (*C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT)(mem30a59f8) + allocs30a59f8 := new(cgoAllocMap) + allocs30a59f8.Add(mem30a59f8) var csType_allocs *cgoAllocMap - ref65152aef.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs65152aef.Borrow(csType_allocs) + ref30a59f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs30a59f8.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) + ref30a59f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs30a59f8.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 cfragmentDensityMapDeferred_allocs *cgoAllocMap + ref30a59f8.fragmentDensityMapDeferred, cfragmentDensityMapDeferred_allocs = (C.VkBool32)(x.FragmentDensityMapDeferred), cgoAllocsUnknown + allocs30a59f8.Borrow(cfragmentDensityMapDeferred_allocs) - x.ref65152aef = ref65152aef - x.allocs65152aef = allocs65152aef - return ref65152aef, allocs65152aef + 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 DescriptorSetVariableDescriptorCountAllocateInfo) PassValue() (C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, *cgoAllocMap) { - if x.ref65152aef != nil { - return *x.ref65152aef, nil +func (x PhysicalDeviceFragmentDensityMap2Features) PassValue() (C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, *cgoAllocMap) { + if x.ref30a59f8 != nil { + return *x.ref30a59f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34934,95 +60134,102 @@ 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 *PhysicalDeviceFragmentDensityMap2Features) Deref() { + if x.ref30a59f8 == 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.ref30a59f8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref30a59f8.pNext)) + x.FragmentDensityMapDeferred = (Bool32)(x.ref30a59f8.fragmentDensityMapDeferred) } -// allocDescriptorSetVariableDescriptorCountLayoutSupportMemory allocates memory for type C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT in C. +// allocPhysicalDeviceFragmentDensityMap2PropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT 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()) +func allocPhysicalDeviceFragmentDensityMap2PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMap2PropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorSetVariableDescriptorCountLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT{}) +const sizeOfPhysicalDeviceFragmentDensityMap2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Ref() *C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { +func (x *PhysicalDeviceFragmentDensityMap2Properties) Ref() *C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { if x == nil { return nil } - return x.ref4684c56f + 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 *DescriptorSetVariableDescriptorCountLayoutSupport) Free() { - if x != nil && x.allocs4684c56f != nil { - x.allocs4684c56f.(*cgoAllocMap).Free() - x.ref4684c56f = nil +func (x *PhysicalDeviceFragmentDensityMap2Properties) Free() { + if x != nil && x.allocsc2a21d23 != nil { + x.allocsc2a21d23.(*cgoAllocMap).Free() + x.refc2a21d23 = nil } } -// NewDescriptorSetVariableDescriptorCountLayoutSupportRef 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 NewDescriptorSetVariableDescriptorCountLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountLayoutSupport { +func NewPhysicalDeviceFragmentDensityMap2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMap2Properties { if ref == nil { return nil } - obj := new(DescriptorSetVariableDescriptorCountLayoutSupport) - obj.ref4684c56f = (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT)(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 *DescriptorSetVariableDescriptorCountLayoutSupport) PassRef() (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMap2Properties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4684c56f != nil { - return x.ref4684c56f, nil + } else if x.refc2a21d23 != nil { + return x.refc2a21d23, nil } - mem4684c56f := allocDescriptorSetVariableDescriptorCountLayoutSupportMemory(1) - ref4684c56f := (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT)(mem4684c56f) - allocs4684c56f := new(cgoAllocMap) - allocs4684c56f.Add(mem4684c56f) + memc2a21d23 := allocPhysicalDeviceFragmentDensityMap2PropertiesMemory(1) + refc2a21d23 := (*C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT)(memc2a21d23) + allocsc2a21d23 := new(cgoAllocMap) + allocsc2a21d23.Add(memc2a21d23) var csType_allocs *cgoAllocMap - ref4684c56f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4684c56f.Borrow(csType_allocs) + refc2a21d23.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc2a21d23.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4684c56f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4684c56f.Borrow(cpNext_allocs) + refc2a21d23.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc2a21d23.Borrow(cpNext_allocs) - var cmaxVariableDescriptorCount_allocs *cgoAllocMap - ref4684c56f.maxVariableDescriptorCount, cmaxVariableDescriptorCount_allocs = (C.uint32_t)(x.MaxVariableDescriptorCount), cgoAllocsUnknown - allocs4684c56f.Borrow(cmaxVariableDescriptorCount_allocs) + var csubsampledLoads_allocs *cgoAllocMap + refc2a21d23.subsampledLoads, csubsampledLoads_allocs = (C.VkBool32)(x.SubsampledLoads), cgoAllocsUnknown + allocsc2a21d23.Borrow(csubsampledLoads_allocs) - x.ref4684c56f = ref4684c56f - x.allocs4684c56f = allocs4684c56f - return ref4684c56f, allocs4684c56f + var csubsampledCoarseReconstructionEarlyAccess_allocs *cgoAllocMap + refc2a21d23.subsampledCoarseReconstructionEarlyAccess, csubsampledCoarseReconstructionEarlyAccess_allocs = (C.VkBool32)(x.SubsampledCoarseReconstructionEarlyAccess), cgoAllocsUnknown + allocsc2a21d23.Borrow(csubsampledCoarseReconstructionEarlyAccess_allocs) + + 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 DescriptorSetVariableDescriptorCountLayoutSupport) PassValue() (C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, *cgoAllocMap) { - if x.ref4684c56f != nil { - return *x.ref4684c56f, nil +func (x PhysicalDeviceFragmentDensityMap2Properties) PassValue() (C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, *cgoAllocMap) { + if x.refc2a21d23 != nil { + return *x.refc2a21d23, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35030,86 +60237,93 @@ 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 *PhysicalDeviceFragmentDensityMap2Properties) Deref() { + if x.refc2a21d23 == 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.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) } -// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV in C. +// allocCopyCommandTransformInfoQCOMMemory allocates memory for type C.VkCopyCommandTransformInfoQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocCopyCommandTransformInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyCommandTransformInfoQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) +const sizeOfCopyCommandTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCopyCommandTransformInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { +func (x *CopyCommandTransformInfoQCOM) Ref() *C.VkCopyCommandTransformInfoQCOM { if x == nil { return nil } - return x.refa5c4ae3a + 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 *ShadingRatePaletteNV) Free() { - if x != nil && x.allocsa5c4ae3a != nil { - x.allocsa5c4ae3a.(*cgoAllocMap).Free() - x.refa5c4ae3a = nil +func (x *CopyCommandTransformInfoQCOM) Free() { + if x != nil && x.allocseaa6777c != nil { + x.allocseaa6777c.(*cgoAllocMap).Free() + x.refeaa6777c = nil } } -// NewShadingRatePaletteNVRef 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 NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { +func NewCopyCommandTransformInfoQCOMRef(ref unsafe.Pointer) *CopyCommandTransformInfoQCOM { if ref == nil { return nil } - obj := new(ShadingRatePaletteNV) - obj.refa5c4ae3a = (*C.VkShadingRatePaletteNV)(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 *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { +func (x *CopyCommandTransformInfoQCOM) PassRef() (*C.VkCopyCommandTransformInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5c4ae3a != nil { - return x.refa5c4ae3a, nil + } else if x.refeaa6777c != nil { + return x.refeaa6777c, nil } - mema5c4ae3a := allocShadingRatePaletteNVMemory(1) - refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) - allocsa5c4ae3a := new(cgoAllocMap) - allocsa5c4ae3a.Add(mema5c4ae3a) + memeaa6777c := allocCopyCommandTransformInfoQCOMMemory(1) + refeaa6777c := (*C.VkCopyCommandTransformInfoQCOM)(memeaa6777c) + allocseaa6777c := new(cgoAllocMap) + allocseaa6777c.Add(memeaa6777c) - var cshadingRatePaletteEntryCount_allocs *cgoAllocMap - refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown - allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) + var csType_allocs *cgoAllocMap + refeaa6777c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseaa6777c.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 + refeaa6777c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseaa6777c.Borrow(cpNext_allocs) - x.refa5c4ae3a = refa5c4ae3a - x.allocsa5c4ae3a = allocsa5c4ae3a - return refa5c4ae3a, allocsa5c4ae3a + var ctransform_allocs *cgoAllocMap + refeaa6777c.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocseaa6777c.Borrow(ctransform_allocs) + + 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 ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { - if x.refa5c4ae3a != nil { - return *x.refa5c4ae3a, nil +func (x CopyCommandTransformInfoQCOM) PassValue() (C.VkCopyCommandTransformInfoQCOM, *cgoAllocMap) { + if x.refeaa6777c != nil { + return *x.refeaa6777c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35117,139 +60331,94 @@ 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 *CopyCommandTransformInfoQCOM) Deref() { + if x.refeaa6777c == 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.refeaa6777c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeaa6777c.pNext)) + x.Transform = (SurfaceTransformFlagBits)(x.refeaa6777c.transform) } -// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV in C. +// allocPhysicalDevice4444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDevice4444FormatsFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevice4444FormatsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice4444FormatsFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfPhysicalDevice4444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice4444FormatsFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { +func (x *PhysicalDevice4444FormatsFeatures) Ref() *C.VkPhysicalDevice4444FormatsFeaturesEXT { if x == nil { return nil } - return x.ref6f2ec732 + 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 *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { - if x != nil && x.allocs6f2ec732 != nil { - x.allocs6f2ec732.(*cgoAllocMap).Free() - x.ref6f2ec732 = nil +func (x *PhysicalDevice4444FormatsFeatures) Free() { + if x != nil && x.allocs51c957d0 != nil { + x.allocs51c957d0.(*cgoAllocMap).Free() + x.ref51c957d0 = nil } } -// NewPipelineViewportShadingRateImageStateCreateInfoNVRef 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 NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { +func NewPhysicalDevice4444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDevice4444FormatsFeatures { if ref == nil { return nil } - obj := new(PipelineViewportShadingRateImageStateCreateInfoNV) - obj.ref6f2ec732 = (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(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 *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDevice4444FormatsFeatures) PassRef() (*C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f2ec732 != nil { - return x.ref6f2ec732, nil + } else if x.ref51c957d0 != nil { + return x.ref51c957d0, nil } - mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) - ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) - allocs6f2ec732 := new(cgoAllocMap) - allocs6f2ec732.Add(mem6f2ec732) + mem51c957d0 := allocPhysicalDevice4444FormatsFeaturesMemory(1) + ref51c957d0 := (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(mem51c957d0) + allocs51c957d0 := new(cgoAllocMap) + allocs51c957d0.Add(mem51c957d0) var csType_allocs *cgoAllocMap - ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6f2ec732.Borrow(csType_allocs) + ref51c957d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51c957d0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6f2ec732.Borrow(cpNext_allocs) - - var cshadingRateImageEnable_allocs *cgoAllocMap - ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown - allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) + ref51c957d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51c957d0.Borrow(cpNext_allocs) - var cviewportCount_allocs *cgoAllocMap - ref6f2ec732.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs6f2ec732.Borrow(cviewportCount_allocs) + var cformatA4R4G4B4_allocs *cgoAllocMap + ref51c957d0.formatA4R4G4B4, cformatA4R4G4B4_allocs = (C.VkBool32)(x.FormatA4R4G4B4), cgoAllocsUnknown + allocs51c957d0.Borrow(cformatA4R4G4B4_allocs) - var cpShadingRatePalettes_allocs *cgoAllocMap - ref6f2ec732.pShadingRatePalettes, cpShadingRatePalettes_allocs = unpackSShadingRatePaletteNV(x.PShadingRatePalettes) - allocs6f2ec732.Borrow(cpShadingRatePalettes_allocs) + var cformatA4B4G4R4_allocs *cgoAllocMap + ref51c957d0.formatA4B4G4R4, cformatA4B4G4R4_allocs = (C.VkBool32)(x.FormatA4B4G4R4), cgoAllocsUnknown + allocs51c957d0.Borrow(cformatA4B4G4R4_allocs) - x.ref6f2ec732 = ref6f2ec732 - x.allocs6f2ec732 = allocs6f2ec732 - return ref6f2ec732, allocs6f2ec732 + 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 PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { - if x.ref6f2ec732 != nil { - return *x.ref6f2ec732, nil +func (x PhysicalDevice4444FormatsFeatures) PassValue() (C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { + if x.ref51c957d0 != nil { + return *x.ref51c957d0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35257,96 +60426,99 @@ 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 *PhysicalDevice4444FormatsFeatures) Deref() { + if x.ref51c957d0 == 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.ref51c957d0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51c957d0.pNext)) + x.FormatA4R4G4B4 = (Bool32)(x.ref51c957d0.formatA4R4G4B4) + x.FormatA4B4G4R4 = (Bool32)(x.ref51c957d0.formatA4B4G4R4) } -// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV in C. +// allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory allocates memory for type C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) +const sizeOfPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { +func (x *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Ref() *C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { if x == nil { return nil } - return x.ref199a921b + return x.ref139a6788 } // Free invokes alloc map'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 *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Free() { + if x != nil && x.allocs139a6788 != nil { + x.allocs139a6788.(*cgoAllocMap).Free() + x.ref139a6788 = nil } } -// NewPhysicalDeviceShadingRateImageFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMRef creates a new 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 NewPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMRef(ref unsafe.Pointer) *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImageFeaturesNV) - obj.ref199a921b = (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) + obj.ref139a6788 = (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) PassRef() (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref199a921b != nil { - return x.ref199a921b, nil + } else if x.ref139a6788 != nil { + return x.ref139a6788, nil } - mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) - ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) - allocs199a921b := new(cgoAllocMap) - allocs199a921b.Add(mem199a921b) + mem139a6788 := allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory(1) + ref139a6788 := (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)(mem139a6788) + allocs139a6788 := new(cgoAllocMap) + allocs139a6788.Add(mem139a6788) var csType_allocs *cgoAllocMap - ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs199a921b.Borrow(csType_allocs) + ref139a6788.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs139a6788.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs199a921b.Borrow(cpNext_allocs) + ref139a6788.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs139a6788.Borrow(cpNext_allocs) - var cshadingRateImage_allocs *cgoAllocMap - ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateImage_allocs) + var crasterizationOrderColorAttachmentAccess_allocs *cgoAllocMap + ref139a6788.rasterizationOrderColorAttachmentAccess, crasterizationOrderColorAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderColorAttachmentAccess), cgoAllocsUnknown + allocs139a6788.Borrow(crasterizationOrderColorAttachmentAccess_allocs) - var cshadingRateCoarseSampleOrder_allocs *cgoAllocMap - ref199a921b.shadingRateCoarseSampleOrder, cshadingRateCoarseSampleOrder_allocs = (C.VkBool32)(x.ShadingRateCoarseSampleOrder), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateCoarseSampleOrder_allocs) + var crasterizationOrderDepthAttachmentAccess_allocs *cgoAllocMap + ref139a6788.rasterizationOrderDepthAttachmentAccess, crasterizationOrderDepthAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderDepthAttachmentAccess), cgoAllocsUnknown + allocs139a6788.Borrow(crasterizationOrderDepthAttachmentAccess_allocs) - x.ref199a921b = ref199a921b - x.allocs199a921b = allocs199a921b - return ref199a921b, allocs199a921b + var crasterizationOrderStencilAttachmentAccess_allocs *cgoAllocMap + ref139a6788.rasterizationOrderStencilAttachmentAccess, crasterizationOrderStencilAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderStencilAttachmentAccess), cgoAllocsUnknown + allocs139a6788.Borrow(crasterizationOrderStencilAttachmentAccess_allocs) + + x.ref139a6788 = ref139a6788 + x.allocs139a6788 = allocs139a6788 + return ref139a6788, allocs139a6788 } // 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 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) PassValue() (C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, *cgoAllocMap) { + if x.ref139a6788 != nil { + return *x.ref139a6788, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35354,99 +60526,92 @@ 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 *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Deref() { + if x.ref139a6788 == 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.ref139a6788.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref139a6788.pNext)) + x.RasterizationOrderColorAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderColorAttachmentAccess) + x.RasterizationOrderDepthAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderDepthAttachmentAccess) + x.RasterizationOrderStencilAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderStencilAttachmentAccess) } -// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV in C. +// allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory allocates memory for type C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRGBA10X6FormatsFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) +const sizeOfPhysicalDeviceRGBA10X6FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { +func (x *PhysicalDeviceRGBA10X6FormatsFeatures) Ref() *C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { if x == nil { return nil } - return x.refea059f34 + return x.refb685ff38 } // Free invokes alloc map'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 *PhysicalDeviceRGBA10X6FormatsFeatures) Free() { + if x != nil && x.allocsb685ff38 != nil { + x.allocsb685ff38.(*cgoAllocMap).Free() + x.refb685ff38 = nil } } -// NewPhysicalDeviceShadingRateImagePropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRGBA10X6FormatsFeaturesRef creates a new 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 NewPhysicalDeviceRGBA10X6FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRGBA10X6FormatsFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImagePropertiesNV) - obj.refea059f34 = (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRGBA10X6FormatsFeatures) + obj.refb685ff38 = (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceRGBA10X6FormatsFeatures) PassRef() (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea059f34 != nil { - return x.refea059f34, nil + } else if x.refb685ff38 != nil { + return x.refb685ff38, nil } - memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) - refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) - allocsea059f34 := new(cgoAllocMap) - allocsea059f34.Add(memea059f34) + memb685ff38 := allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory(1) + refb685ff38 := (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT)(memb685ff38) + allocsb685ff38 := new(cgoAllocMap) + allocsb685ff38.Add(memb685ff38) var csType_allocs *cgoAllocMap - refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea059f34.Borrow(csType_allocs) + refb685ff38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb685ff38.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) - - var cshadingRatePaletteSize_allocs *cgoAllocMap - refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) + refb685ff38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb685ff38.Borrow(cpNext_allocs) - var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap - refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) + var cformatRgba10x6WithoutYCbCrSampler_allocs *cgoAllocMap + refb685ff38.formatRgba10x6WithoutYCbCrSampler, cformatRgba10x6WithoutYCbCrSampler_allocs = (C.VkBool32)(x.FormatRgba10x6WithoutYCbCrSampler), cgoAllocsUnknown + allocsb685ff38.Borrow(cformatRgba10x6WithoutYCbCrSampler_allocs) - x.refea059f34 = refea059f34 - x.allocsea059f34 = allocsea059f34 - return refea059f34, allocsea059f34 + x.refb685ff38 = refb685ff38 + x.allocsb685ff38 = allocsb685ff38 + return refb685ff38, allocsb685ff38 } // 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 PhysicalDeviceRGBA10X6FormatsFeatures) PassValue() (C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, *cgoAllocMap) { + if x.refb685ff38 != nil { + return *x.refb685ff38, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35454,92 +60619,90 @@ 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 *PhysicalDeviceRGBA10X6FormatsFeatures) Deref() { + if x.refb685ff38 == 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.refb685ff38.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb685ff38.pNext)) + x.FormatRgba10x6WithoutYCbCrSampler = (Bool32)(x.refb685ff38.formatRgba10x6WithoutYCbCrSampler) } -// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV in C. +// allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory allocates memory for type C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMutableDescriptorTypeFeaturesVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) +const sizeOfPhysicalDeviceMutableDescriptorTypeFeaturesVALVEValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { +func (x *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Ref() *C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { if x == nil { return nil } - return x.ref2f447beb + return x.ref2b2ab5ea } // Free invokes alloc map'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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Free() { + if x != nil && x.allocs2b2ab5ea != nil { + x.allocs2b2ab5ea.(*cgoAllocMap).Free() + x.ref2b2ab5ea = nil } } -// NewCoarseSampleLocationNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMutableDescriptorTypeFeaturesVALVERef creates a new 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 NewPhysicalDeviceMutableDescriptorTypeFeaturesVALVERef(ref unsafe.Pointer) *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE { if ref == nil { return nil } - obj := new(CoarseSampleLocationNV) - obj.ref2f447beb = (*C.VkCoarseSampleLocationNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) + obj.ref2b2ab5ea = (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) PassRef() (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f447beb != nil { - return x.ref2f447beb, nil + } else if x.ref2b2ab5ea != nil { + return x.ref2b2ab5ea, nil } - mem2f447beb := allocCoarseSampleLocationNVMemory(1) - ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) - allocs2f447beb := new(cgoAllocMap) - allocs2f447beb.Add(mem2f447beb) + mem2b2ab5ea := allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory(1) + ref2b2ab5ea := (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE)(mem2b2ab5ea) + allocs2b2ab5ea := new(cgoAllocMap) + allocs2b2ab5ea.Add(mem2b2ab5ea) - var cpixelX_allocs *cgoAllocMap - ref2f447beb.pixelX, cpixelX_allocs = (C.uint32_t)(x.PixelX), cgoAllocsUnknown - allocs2f447beb.Borrow(cpixelX_allocs) + var csType_allocs *cgoAllocMap + ref2b2ab5ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2b2ab5ea.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 + ref2b2ab5ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2b2ab5ea.Borrow(cpNext_allocs) - var csample_allocs *cgoAllocMap - ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown - allocs2f447beb.Borrow(csample_allocs) + var cmutableDescriptorType_allocs *cgoAllocMap + ref2b2ab5ea.mutableDescriptorType, cmutableDescriptorType_allocs = (C.VkBool32)(x.MutableDescriptorType), cgoAllocsUnknown + allocs2b2ab5ea.Borrow(cmutableDescriptorType_allocs) - x.ref2f447beb = ref2f447beb - x.allocs2f447beb = allocs2f447beb - return ref2f447beb, allocs2f447beb + x.ref2b2ab5ea = ref2b2ab5ea + x.allocs2b2ab5ea = allocs2b2ab5ea + return ref2b2ab5ea, allocs2b2ab5ea } // 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 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) PassValue() (C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, *cgoAllocMap) { + if x.ref2b2ab5ea != nil { + return *x.ref2b2ab5ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35547,132 +60710,115 @@ 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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Deref() { + if x.ref2b2ab5ea == nil { return } - x.PixelX = (uint32)(x.ref2f447beb.pixelX) - x.PixelY = (uint32)(x.ref2f447beb.pixelY) - x.Sample = (uint32)(x.ref2f447beb.sample) + x.SType = (StructureType)(x.ref2b2ab5ea.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2b2ab5ea.pNext)) + x.MutableDescriptorType = (Bool32)(x.ref2b2ab5ea.mutableDescriptorType) } -// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV in C. +// allocMutableDescriptorTypeListVALVEMemory allocates memory for type C.VkMutableDescriptorTypeListVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMutableDescriptorTypeListVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeListVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCoarseSampleOrderCustomNVValue = unsafe.Sizeof([1]C.VkCoarseSampleOrderCustomNV{}) +const sizeOfMutableDescriptorTypeListVALVEValue = unsafe.Sizeof([1]C.VkMutableDescriptorTypeListVALVE{}) -// 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() +// copyPDescriptorTypeBytes copies the data from Go slice as *C.VkDescriptorType. +func copyPDescriptorTypeBytes(slice *sliceHeader) (*C.VkDescriptorType, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) - len0 := len(x) - mem0 := allocCoarseSampleLocationNVMemory(len0) + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDescriptorTypeValue) * slice.Len, + Cap: int(sizeOfDescriptorTypeValue) * slice.Len, + })))) 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 + + return (*C.VkDescriptorType)(mem0), allocs } -// 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)) +// allocDescriptorTypeMemory allocates memory for type C.VkDescriptorType in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorTypeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorTypeValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } + return mem } +const sizeOfDescriptorTypeValue = unsafe.Sizeof([1]C.VkDescriptorType{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { +func (x *MutableDescriptorTypeListVALVE) Ref() *C.VkMutableDescriptorTypeListVALVE { if x == nil { return nil } - return x.ref4524fa09 + return x.ref957e9078 } // Free invokes alloc map'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 *MutableDescriptorTypeListVALVE) Free() { + if x != nil && x.allocs957e9078 != nil { + x.allocs957e9078.(*cgoAllocMap).Free() + x.ref957e9078 = nil } } -// NewCoarseSampleOrderCustomNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMutableDescriptorTypeListVALVERef creates a new 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 NewMutableDescriptorTypeListVALVERef(ref unsafe.Pointer) *MutableDescriptorTypeListVALVE { if ref == nil { return nil } - obj := new(CoarseSampleOrderCustomNV) - obj.ref4524fa09 = (*C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ref)) + obj := new(MutableDescriptorTypeListVALVE) + obj.ref957e9078 = (*C.VkMutableDescriptorTypeListVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *MutableDescriptorTypeListVALVE) PassRef() (*C.VkMutableDescriptorTypeListVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4524fa09 != nil { - return x.ref4524fa09, nil + } else if x.ref957e9078 != nil { + return x.ref957e9078, nil } - mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) - ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) - allocs4524fa09 := new(cgoAllocMap) - allocs4524fa09.Add(mem4524fa09) - - var cshadingRate_allocs *cgoAllocMap - ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown - allocs4524fa09.Borrow(cshadingRate_allocs) - - var csampleCount_allocs *cgoAllocMap - ref4524fa09.sampleCount, csampleCount_allocs = (C.uint32_t)(x.SampleCount), cgoAllocsUnknown - allocs4524fa09.Borrow(csampleCount_allocs) + mem957e9078 := allocMutableDescriptorTypeListVALVEMemory(1) + ref957e9078 := (*C.VkMutableDescriptorTypeListVALVE)(mem957e9078) + allocs957e9078 := new(cgoAllocMap) + allocs957e9078.Add(mem957e9078) - var csampleLocationCount_allocs *cgoAllocMap - ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown - allocs4524fa09.Borrow(csampleLocationCount_allocs) + var cdescriptorTypeCount_allocs *cgoAllocMap + ref957e9078.descriptorTypeCount, cdescriptorTypeCount_allocs = (C.uint32_t)(x.DescriptorTypeCount), cgoAllocsUnknown + allocs957e9078.Borrow(cdescriptorTypeCount_allocs) - var cpSampleLocations_allocs *cgoAllocMap - ref4524fa09.pSampleLocations, cpSampleLocations_allocs = unpackSCoarseSampleLocationNV(x.PSampleLocations) - allocs4524fa09.Borrow(cpSampleLocations_allocs) + var cpDescriptorTypes_allocs *cgoAllocMap + ref957e9078.pDescriptorTypes, cpDescriptorTypes_allocs = copyPDescriptorTypeBytes((*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes))) + allocs957e9078.Borrow(cpDescriptorTypes_allocs) - x.ref4524fa09 = ref4524fa09 - x.allocs4524fa09 = allocs4524fa09 - return ref4524fa09, allocs4524fa09 + x.ref957e9078 = ref957e9078 + x.allocs957e9078 = allocs957e9078 + return ref957e9078, allocs957e9078 } // 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 MutableDescriptorTypeListVALVE) PassValue() (C.VkMutableDescriptorTypeListVALVE, *cgoAllocMap) { + if x.ref957e9078 != nil { + return *x.ref957e9078, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35680,137 +60826,135 @@ 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 *MutableDescriptorTypeListVALVE) Deref() { + if x.ref957e9078 == 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.DescriptorTypeCount = (uint32)(x.ref957e9078.descriptorTypeCount) + hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes)) + hxfe33f90.Data = unsafe.Pointer(x.ref957e9078.pDescriptorTypes) + hxfe33f90.Cap = 0x7fffffff + // hxfe33f90.Len = ? + } -// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV in C. +// allocMutableDescriptorTypeCreateInfoVALVEMemory allocates memory for type C.VkMutableDescriptorTypeCreateInfoVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMutableDescriptorTypeCreateInfoVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeCreateInfoVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV{}) +const sizeOfMutableDescriptorTypeCreateInfoVALVEValue = unsafe.Sizeof([1]C.VkMutableDescriptorTypeCreateInfoVALVE{}) -// unpackSCoarseSampleOrderCustomNV transforms a sliced Go data structure into plain C format. -func unpackSCoarseSampleOrderCustomNV(x []CoarseSampleOrderCustomNV) (unpacked *C.VkCoarseSampleOrderCustomNV, allocs *cgoAllocMap) { +// unpackSMutableDescriptorTypeListVALVE transforms a sliced Go data structure into plain C format. +func unpackSMutableDescriptorTypeListVALVE(x []MutableDescriptorTypeListVALVE) (unpacked *C.VkMutableDescriptorTypeListVALVE, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleOrderCustomNV) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) - mem0 := allocCoarseSampleOrderCustomNVMemory(len0) + mem0 := allocMutableDescriptorTypeListVALVEMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkMutableDescriptorTypeListVALVE)(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) + unpacked = (*C.VkMutableDescriptorTypeListVALVE)(h.Data) return } -// packSCoarseSampleOrderCustomNV reads sliced Go data structure out from plain C format. -func packSCoarseSampleOrderCustomNV(v []CoarseSampleOrderCustomNV, ptr0 *C.VkCoarseSampleOrderCustomNV) { +// packSMutableDescriptorTypeListVALVE reads sliced Go data structure out from plain C format. +func packSMutableDescriptorTypeListVALVE(v []MutableDescriptorTypeListVALVE, ptr0 *C.VkMutableDescriptorTypeListVALVE) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfCoarseSampleOrderCustomNVValue]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewCoarseSampleOrderCustomNVRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfMutableDescriptorTypeListVALVEValue]C.VkMutableDescriptorTypeListVALVE)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewMutableDescriptorTypeListVALVERef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { +func (x *MutableDescriptorTypeCreateInfoVALVE) Ref() *C.VkMutableDescriptorTypeCreateInfoVALVE { if x == nil { return nil } - return x.ref54de8ca6 + return x.ref8ef4bbb3 } // Free invokes alloc map'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 *MutableDescriptorTypeCreateInfoVALVE) Free() { + if x != nil && x.allocs8ef4bbb3 != nil { + x.allocs8ef4bbb3.(*cgoAllocMap).Free() + x.ref8ef4bbb3 = nil } } -// NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMutableDescriptorTypeCreateInfoVALVERef creates a new 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 NewMutableDescriptorTypeCreateInfoVALVERef(ref unsafe.Pointer) *MutableDescriptorTypeCreateInfoVALVE { if ref == nil { return nil } - obj := new(PipelineViewportCoarseSampleOrderStateCreateInfoNV) - obj.ref54de8ca6 = (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(MutableDescriptorTypeCreateInfoVALVE) + obj.ref8ef4bbb3 = (*C.VkMutableDescriptorTypeCreateInfoVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *MutableDescriptorTypeCreateInfoVALVE) PassRef() (*C.VkMutableDescriptorTypeCreateInfoVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref54de8ca6 != nil { - return x.ref54de8ca6, nil + } else if x.ref8ef4bbb3 != nil { + return x.ref8ef4bbb3, nil } - mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) - ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) - allocs54de8ca6 := new(cgoAllocMap) - allocs54de8ca6.Add(mem54de8ca6) + mem8ef4bbb3 := allocMutableDescriptorTypeCreateInfoVALVEMemory(1) + ref8ef4bbb3 := (*C.VkMutableDescriptorTypeCreateInfoVALVE)(mem8ef4bbb3) + allocs8ef4bbb3 := new(cgoAllocMap) + allocs8ef4bbb3.Add(mem8ef4bbb3) var csType_allocs *cgoAllocMap - ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs54de8ca6.Borrow(csType_allocs) + ref8ef4bbb3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8ef4bbb3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref54de8ca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs54de8ca6.Borrow(cpNext_allocs) + ref8ef4bbb3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8ef4bbb3.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) + var cmutableDescriptorTypeListCount_allocs *cgoAllocMap + ref8ef4bbb3.mutableDescriptorTypeListCount, cmutableDescriptorTypeListCount_allocs = (C.uint32_t)(x.MutableDescriptorTypeListCount), cgoAllocsUnknown + allocs8ef4bbb3.Borrow(cmutableDescriptorTypeListCount_allocs) - var cpCustomSampleOrders_allocs *cgoAllocMap - ref54de8ca6.pCustomSampleOrders, cpCustomSampleOrders_allocs = unpackSCoarseSampleOrderCustomNV(x.PCustomSampleOrders) - allocs54de8ca6.Borrow(cpCustomSampleOrders_allocs) + var cpMutableDescriptorTypeLists_allocs *cgoAllocMap + ref8ef4bbb3.pMutableDescriptorTypeLists, cpMutableDescriptorTypeLists_allocs = unpackSMutableDescriptorTypeListVALVE(x.PMutableDescriptorTypeLists) + allocs8ef4bbb3.Borrow(cpMutableDescriptorTypeLists_allocs) - x.ref54de8ca6 = ref54de8ca6 - x.allocs54de8ca6 = allocs54de8ca6 - return ref54de8ca6, allocs54de8ca6 + x.ref8ef4bbb3 = ref8ef4bbb3 + x.allocs8ef4bbb3 = allocs8ef4bbb3 + return ref8ef4bbb3, allocs8ef4bbb3 } // 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 MutableDescriptorTypeCreateInfoVALVE) PassValue() (C.VkMutableDescriptorTypeCreateInfoVALVE, *cgoAllocMap) { + if x.ref8ef4bbb3 != nil { + return *x.ref8ef4bbb3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35818,120 +60962,91 @@ 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 *MutableDescriptorTypeCreateInfoVALVE) Deref() { + if x.ref8ef4bbb3 == 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.ref8ef4bbb3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8ef4bbb3.pNext)) + x.MutableDescriptorTypeListCount = (uint32)(x.ref8ef4bbb3.mutableDescriptorTypeListCount) + packSMutableDescriptorTypeListVALVE(x.PMutableDescriptorTypeLists, x.ref8ef4bbb3.pMutableDescriptorTypeLists) } -// allocRaytracingPipelineCreateInfoNVXMemory allocates memory for type C.VkRaytracingPipelineCreateInfoNVX in C. +// allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexInputDynamicStateFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfRaytracingPipelineCreateInfoNVXValue = unsafe.Sizeof([1]C.VkRaytracingPipelineCreateInfoNVX{}) +const sizeOfPhysicalDeviceVertexInputDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RaytracingPipelineCreateInfoNVX) Ref() *C.VkRaytracingPipelineCreateInfoNVX { +func (x *PhysicalDeviceVertexInputDynamicStateFeatures) Ref() *C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { if x == nil { return nil } - return x.ref4d91852a + return x.ref69e7b956 } // Free invokes alloc map'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 *PhysicalDeviceVertexInputDynamicStateFeatures) Free() { + if x != nil && x.allocs69e7b956 != nil { + x.allocs69e7b956.(*cgoAllocMap).Free() + x.ref69e7b956 = nil } } -// NewRaytracingPipelineCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceVertexInputDynamicStateFeaturesRef creates a new 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 NewPhysicalDeviceVertexInputDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexInputDynamicStateFeatures { if ref == nil { return nil } - obj := new(RaytracingPipelineCreateInfoNVX) - obj.ref4d91852a = (*C.VkRaytracingPipelineCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceVertexInputDynamicStateFeatures) + obj.ref69e7b956 = (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceVertexInputDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4d91852a != nil { - return x.ref4d91852a, nil + } else if x.ref69e7b956 != nil { + return x.ref69e7b956, nil } - mem4d91852a := allocRaytracingPipelineCreateInfoNVXMemory(1) - ref4d91852a := (*C.VkRaytracingPipelineCreateInfoNVX)(mem4d91852a) - allocs4d91852a := new(cgoAllocMap) - allocs4d91852a.Add(mem4d91852a) + mem69e7b956 := allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory(1) + ref69e7b956 := (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT)(mem69e7b956) + allocs69e7b956 := new(cgoAllocMap) + allocs69e7b956.Add(mem69e7b956) var csType_allocs *cgoAllocMap - ref4d91852a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4d91852a.Borrow(csType_allocs) + ref69e7b956.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs69e7b956.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) + ref69e7b956.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs69e7b956.Borrow(cpNext_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref4d91852a.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs4d91852a.Borrow(cbasePipelineIndex_allocs) + var cvertexInputDynamicState_allocs *cgoAllocMap + ref69e7b956.vertexInputDynamicState, cvertexInputDynamicState_allocs = (C.VkBool32)(x.VertexInputDynamicState), cgoAllocsUnknown + allocs69e7b956.Borrow(cvertexInputDynamicState_allocs) - x.ref4d91852a = ref4d91852a - x.allocs4d91852a = allocs4d91852a - return ref4d91852a, allocs4d91852a + x.ref69e7b956 = ref69e7b956 + x.allocs69e7b956 = allocs69e7b956 + return ref69e7b956, allocs69e7b956 } // 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 PhysicalDeviceVertexInputDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, *cgoAllocMap) { + if x.ref69e7b956 != nil { + return *x.ref69e7b956, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35939,141 +61054,208 @@ 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 *PhysicalDeviceVertexInputDynamicStateFeatures) Deref() { + if x.ref69e7b956 == 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.ref69e7b956.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref69e7b956.pNext)) + x.VertexInputDynamicState = (Bool32)(x.ref69e7b956.vertexInputDynamicState) } -// allocGeometryTrianglesNVXMemory allocates memory for type C.VkGeometryTrianglesNVX in C. +// allocVertexInputBindingDescription2Memory allocates memory for type C.VkVertexInputBindingDescription2EXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocVertexInputBindingDescription2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDescription2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfGeometryTrianglesNVXValue = unsafe.Sizeof([1]C.VkGeometryTrianglesNVX{}) +const sizeOfVertexInputBindingDescription2Value = unsafe.Sizeof([1]C.VkVertexInputBindingDescription2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryTrianglesNVX) Ref() *C.VkGeometryTrianglesNVX { +func (x *VertexInputBindingDescription2) Ref() *C.VkVertexInputBindingDescription2EXT { if x == nil { return nil } - return x.ref5c3b4de9 + return x.refefc9e910 } // Free invokes alloc map'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 *VertexInputBindingDescription2) Free() { + if x != nil && x.allocsefc9e910 != nil { + x.allocsefc9e910.(*cgoAllocMap).Free() + x.refefc9e910 = nil } } -// NewGeometryTrianglesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVertexInputBindingDescription2Ref creates a new 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 NewVertexInputBindingDescription2Ref(ref unsafe.Pointer) *VertexInputBindingDescription2 { if ref == nil { return nil } - obj := new(GeometryTrianglesNVX) - obj.ref5c3b4de9 = (*C.VkGeometryTrianglesNVX)(unsafe.Pointer(ref)) + obj := new(VertexInputBindingDescription2) + obj.refefc9e910 = (*C.VkVertexInputBindingDescription2EXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VertexInputBindingDescription2) PassRef() (*C.VkVertexInputBindingDescription2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5c3b4de9 != nil { - return x.ref5c3b4de9, nil + } else if x.refefc9e910 != nil { + return x.refefc9e910, nil } - mem5c3b4de9 := allocGeometryTrianglesNVXMemory(1) - ref5c3b4de9 := (*C.VkGeometryTrianglesNVX)(mem5c3b4de9) - allocs5c3b4de9 := new(cgoAllocMap) - allocs5c3b4de9.Add(mem5c3b4de9) + memefc9e910 := allocVertexInputBindingDescription2Memory(1) + refefc9e910 := (*C.VkVertexInputBindingDescription2EXT)(memefc9e910) + allocsefc9e910 := new(cgoAllocMap) + allocsefc9e910.Add(memefc9e910) var csType_allocs *cgoAllocMap - ref5c3b4de9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5c3b4de9.Borrow(csType_allocs) + refefc9e910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsefc9e910.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5c3b4de9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cpNext_allocs) + refefc9e910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsefc9e910.Borrow(cpNext_allocs) + + var cbinding_allocs *cgoAllocMap + refefc9e910.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsefc9e910.Borrow(cbinding_allocs) - var cvertexData_allocs *cgoAllocMap - ref5c3b4de9.vertexData, cvertexData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.VertexData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexData_allocs) + var cstride_allocs *cgoAllocMap + refefc9e910.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown + allocsefc9e910.Borrow(cstride_allocs) - var cvertexOffset_allocs *cgoAllocMap - ref5c3b4de9.vertexOffset, cvertexOffset_allocs = (C.VkDeviceSize)(x.VertexOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexOffset_allocs) + var cinputRate_allocs *cgoAllocMap + refefc9e910.inputRate, cinputRate_allocs = (C.VkVertexInputRate)(x.InputRate), cgoAllocsUnknown + allocsefc9e910.Borrow(cinputRate_allocs) - var cvertexCount_allocs *cgoAllocMap - ref5c3b4de9.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexCount_allocs) + var cdivisor_allocs *cgoAllocMap + refefc9e910.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown + allocsefc9e910.Borrow(cdivisor_allocs) + + x.refefc9e910 = refefc9e910 + x.allocsefc9e910 = allocsefc9e910 + return refefc9e910, allocsefc9e910 + +} - var cvertexStride_allocs *cgoAllocMap - ref5c3b4de9.vertexStride, cvertexStride_allocs = (C.VkDeviceSize)(x.VertexStride), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexStride_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x VertexInputBindingDescription2) PassValue() (C.VkVertexInputBindingDescription2EXT, *cgoAllocMap) { + if x.refefc9e910 != nil { + return *x.refefc9e910, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cvertexFormat_allocs *cgoAllocMap - ref5c3b4de9.vertexFormat, cvertexFormat_allocs = (C.VkFormat)(x.VertexFormat), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexFormat_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 *VertexInputBindingDescription2) Deref() { + if x.refefc9e910 == nil { + return + } + x.SType = (StructureType)(x.refefc9e910.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refefc9e910.pNext)) + x.Binding = (uint32)(x.refefc9e910.binding) + x.Stride = (uint32)(x.refefc9e910.stride) + x.InputRate = (VertexInputRate)(x.refefc9e910.inputRate) + x.Divisor = (uint32)(x.refefc9e910.divisor) +} - var cindexData_allocs *cgoAllocMap - ref5c3b4de9.indexData, cindexData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.IndexData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexData_allocs) +// allocVertexInputAttributeDescription2Memory allocates memory for type C.VkVertexInputAttributeDescription2EXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocVertexInputAttributeDescription2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputAttributeDescription2Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} - var cindexOffset_allocs *cgoAllocMap - ref5c3b4de9.indexOffset, cindexOffset_allocs = (C.VkDeviceSize)(x.IndexOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexOffset_allocs) +const sizeOfVertexInputAttributeDescription2Value = unsafe.Sizeof([1]C.VkVertexInputAttributeDescription2EXT{}) - var cindexCount_allocs *cgoAllocMap - ref5c3b4de9.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexCount_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *VertexInputAttributeDescription2) Ref() *C.VkVertexInputAttributeDescription2EXT { + if x == nil { + return nil + } + return x.refc6b0b55a +} - var cindexType_allocs *cgoAllocMap - ref5c3b4de9.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexType_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 *VertexInputAttributeDescription2) Free() { + if x != nil && x.allocsc6b0b55a != nil { + x.allocsc6b0b55a.(*cgoAllocMap).Free() + x.refc6b0b55a = nil + } +} + +// NewVertexInputAttributeDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewVertexInputAttributeDescription2Ref(ref unsafe.Pointer) *VertexInputAttributeDescription2 { + if ref == nil { + return nil + } + obj := new(VertexInputAttributeDescription2) + obj.refc6b0b55a = (*C.VkVertexInputAttributeDescription2EXT)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *VertexInputAttributeDescription2) PassRef() (*C.VkVertexInputAttributeDescription2EXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc6b0b55a != nil { + return x.refc6b0b55a, nil + } + memc6b0b55a := allocVertexInputAttributeDescription2Memory(1) + refc6b0b55a := (*C.VkVertexInputAttributeDescription2EXT)(memc6b0b55a) + allocsc6b0b55a := new(cgoAllocMap) + allocsc6b0b55a.Add(memc6b0b55a) + + var csType_allocs *cgoAllocMap + refc6b0b55a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc6b0b55a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc6b0b55a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc6b0b55a.Borrow(cpNext_allocs) + + var clocation_allocs *cgoAllocMap + refc6b0b55a.location, clocation_allocs = (C.uint32_t)(x.Location), cgoAllocsUnknown + allocsc6b0b55a.Borrow(clocation_allocs) + + var cbinding_allocs *cgoAllocMap + refc6b0b55a.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsc6b0b55a.Borrow(cbinding_allocs) - var ctransformData_allocs *cgoAllocMap - ref5c3b4de9.transformData, ctransformData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.TransformData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(ctransformData_allocs) + var cformat_allocs *cgoAllocMap + refc6b0b55a.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsc6b0b55a.Borrow(cformat_allocs) - var ctransformOffset_allocs *cgoAllocMap - ref5c3b4de9.transformOffset, ctransformOffset_allocs = (C.VkDeviceSize)(x.TransformOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(ctransformOffset_allocs) + var coffset_allocs *cgoAllocMap + refc6b0b55a.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocsc6b0b55a.Borrow(coffset_allocs) - x.ref5c3b4de9 = ref5c3b4de9 - x.allocs5c3b4de9 = allocs5c3b4de9 - return ref5c3b4de9, allocs5c3b4de9 + x.refc6b0b55a = refc6b0b55a + x.allocsc6b0b55a = allocsc6b0b55a + return refc6b0b55a, allocsc6b0b55a } // 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 VertexInputAttributeDescription2) PassValue() (C.VkVertexInputAttributeDescription2EXT, *cgoAllocMap) { + if x.refc6b0b55a != nil { + return *x.refc6b0b55a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36081,112 +61263,113 @@ 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 *VertexInputAttributeDescription2) Deref() { + if x.refc6b0b55a == 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.refc6b0b55a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc6b0b55a.pNext)) + x.Location = (uint32)(x.refc6b0b55a.location) + x.Binding = (uint32)(x.refc6b0b55a.binding) + x.Format = (Format)(x.refc6b0b55a.format) + x.Offset = (uint32)(x.refc6b0b55a.offset) } -// allocGeometryAABBNVXMemory allocates memory for type C.VkGeometryAABBNVX in C. +// allocPhysicalDeviceDrmPropertiesMemory allocates memory for type C.VkPhysicalDeviceDrmPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDrmPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDrmPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfGeometryAABBNVXValue = unsafe.Sizeof([1]C.VkGeometryAABBNVX{}) +const sizeOfPhysicalDeviceDrmPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDrmPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryAABBNVX) Ref() *C.VkGeometryAABBNVX { +func (x *PhysicalDeviceDrmProperties) Ref() *C.VkPhysicalDeviceDrmPropertiesEXT { if x == nil { return nil } - return x.reff4c42a9d + return x.refc94c064 } // Free invokes alloc map'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 *PhysicalDeviceDrmProperties) Free() { + if x != nil && x.allocsc94c064 != nil { + x.allocsc94c064.(*cgoAllocMap).Free() + x.refc94c064 = nil } } -// NewGeometryAABBNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDrmPropertiesRef creates a new 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 NewPhysicalDeviceDrmPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDrmProperties { if ref == nil { return nil } - obj := new(GeometryAABBNVX) - obj.reff4c42a9d = (*C.VkGeometryAABBNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDrmProperties) + obj.refc94c064 = (*C.VkPhysicalDeviceDrmPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceDrmProperties) PassRef() (*C.VkPhysicalDeviceDrmPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff4c42a9d != nil { - return x.reff4c42a9d, nil + } else if x.refc94c064 != nil { + return x.refc94c064, nil } - memf4c42a9d := allocGeometryAABBNVXMemory(1) - reff4c42a9d := (*C.VkGeometryAABBNVX)(memf4c42a9d) - allocsf4c42a9d := new(cgoAllocMap) - allocsf4c42a9d.Add(memf4c42a9d) + memc94c064 := allocPhysicalDeviceDrmPropertiesMemory(1) + refc94c064 := (*C.VkPhysicalDeviceDrmPropertiesEXT)(memc94c064) + allocsc94c064 := new(cgoAllocMap) + allocsc94c064.Add(memc94c064) var csType_allocs *cgoAllocMap - reff4c42a9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf4c42a9d.Borrow(csType_allocs) + refc94c064.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc94c064.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff4c42a9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cpNext_allocs) + refc94c064.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc94c064.Borrow(cpNext_allocs) - var caabbData_allocs *cgoAllocMap - reff4c42a9d.aabbData, caabbData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.AabbData)), cgoAllocsUnknown - allocsf4c42a9d.Borrow(caabbData_allocs) + var chasPrimary_allocs *cgoAllocMap + refc94c064.hasPrimary, chasPrimary_allocs = (C.VkBool32)(x.HasPrimary), cgoAllocsUnknown + allocsc94c064.Borrow(chasPrimary_allocs) - var cnumAABBs_allocs *cgoAllocMap - reff4c42a9d.numAABBs, cnumAABBs_allocs = (C.uint32_t)(x.NumAABBs), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cnumAABBs_allocs) + var chasRender_allocs *cgoAllocMap + refc94c064.hasRender, chasRender_allocs = (C.VkBool32)(x.HasRender), cgoAllocsUnknown + allocsc94c064.Borrow(chasRender_allocs) - var cstride_allocs *cgoAllocMap - reff4c42a9d.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cstride_allocs) + var cprimaryMajor_allocs *cgoAllocMap + refc94c064.primaryMajor, cprimaryMajor_allocs = (C.int64_t)(x.PrimaryMajor), cgoAllocsUnknown + allocsc94c064.Borrow(cprimaryMajor_allocs) - var coffset_allocs *cgoAllocMap - reff4c42a9d.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocsf4c42a9d.Borrow(coffset_allocs) + var cprimaryMinor_allocs *cgoAllocMap + refc94c064.primaryMinor, cprimaryMinor_allocs = (C.int64_t)(x.PrimaryMinor), cgoAllocsUnknown + allocsc94c064.Borrow(cprimaryMinor_allocs) + + var crenderMajor_allocs *cgoAllocMap + refc94c064.renderMajor, crenderMajor_allocs = (C.int64_t)(x.RenderMajor), cgoAllocsUnknown + allocsc94c064.Borrow(crenderMajor_allocs) - x.reff4c42a9d = reff4c42a9d - x.allocsf4c42a9d = allocsf4c42a9d - return reff4c42a9d, allocsf4c42a9d + var crenderMinor_allocs *cgoAllocMap + refc94c064.renderMinor, crenderMinor_allocs = (C.int64_t)(x.RenderMinor), cgoAllocsUnknown + allocsc94c064.Borrow(crenderMinor_allocs) + + x.refc94c064 = refc94c064 + x.allocsc94c064 = allocsc94c064 + return refc94c064, allocsc94c064 } // 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 PhysicalDeviceDrmProperties) PassValue() (C.VkPhysicalDeviceDrmPropertiesEXT, *cgoAllocMap) { + if x.refc94c064 != nil { + return *x.refc94c064, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36194,89 +61377,95 @@ 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 *PhysicalDeviceDrmProperties) Deref() { + if x.refc94c064 == 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.refc94c064.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc94c064.pNext)) + x.HasPrimary = (Bool32)(x.refc94c064.hasPrimary) + x.HasRender = (Bool32)(x.refc94c064.hasRender) + x.PrimaryMajor = (int64)(x.refc94c064.primaryMajor) + x.PrimaryMinor = (int64)(x.refc94c064.primaryMinor) + x.RenderMajor = (int64)(x.refc94c064.renderMajor) + x.RenderMinor = (int64)(x.refc94c064.renderMinor) } -// allocGeometryDataNVXMemory allocates memory for type C.VkGeometryDataNVX in C. +// allocPhysicalDeviceDepthClipControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipControlFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDepthClipControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipControlFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfGeometryDataNVXValue = unsafe.Sizeof([1]C.VkGeometryDataNVX{}) +const sizeOfPhysicalDeviceDepthClipControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipControlFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryDataNVX) Ref() *C.VkGeometryDataNVX { +func (x *PhysicalDeviceDepthClipControlFeatures) Ref() *C.VkPhysicalDeviceDepthClipControlFeaturesEXT { if x == nil { return nil } - return x.ref3db64dfa + return x.ref2632e03a } // Free invokes alloc map'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 *PhysicalDeviceDepthClipControlFeatures) Free() { + if x != nil && x.allocs2632e03a != nil { + x.allocs2632e03a.(*cgoAllocMap).Free() + x.ref2632e03a = nil } } -// NewGeometryDataNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDepthClipControlFeaturesRef creates a new 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 NewPhysicalDeviceDepthClipControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipControlFeatures { if ref == nil { return nil } - obj := new(GeometryDataNVX) - obj.ref3db64dfa = (*C.VkGeometryDataNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDepthClipControlFeatures) + obj.ref2632e03a = (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceDepthClipControlFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3db64dfa != nil { - return x.ref3db64dfa, nil + } else if x.ref2632e03a != nil { + return x.ref2632e03a, nil } - mem3db64dfa := allocGeometryDataNVXMemory(1) - ref3db64dfa := (*C.VkGeometryDataNVX)(mem3db64dfa) - allocs3db64dfa := new(cgoAllocMap) - allocs3db64dfa.Add(mem3db64dfa) + mem2632e03a := allocPhysicalDeviceDepthClipControlFeaturesMemory(1) + ref2632e03a := (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT)(mem2632e03a) + allocs2632e03a := new(cgoAllocMap) + allocs2632e03a.Add(mem2632e03a) + + var csType_allocs *cgoAllocMap + ref2632e03a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2632e03a.Borrow(csType_allocs) - var ctriangles_allocs *cgoAllocMap - ref3db64dfa.triangles, ctriangles_allocs = x.Triangles.PassValue() - allocs3db64dfa.Borrow(ctriangles_allocs) + var cpNext_allocs *cgoAllocMap + ref2632e03a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2632e03a.Borrow(cpNext_allocs) - var caabbs_allocs *cgoAllocMap - ref3db64dfa.aabbs, caabbs_allocs = x.Aabbs.PassValue() - allocs3db64dfa.Borrow(caabbs_allocs) + var cdepthClipControl_allocs *cgoAllocMap + ref2632e03a.depthClipControl, cdepthClipControl_allocs = (C.VkBool32)(x.DepthClipControl), cgoAllocsUnknown + allocs2632e03a.Borrow(cdepthClipControl_allocs) - x.ref3db64dfa = ref3db64dfa - x.allocs3db64dfa = allocs3db64dfa - return ref3db64dfa, allocs3db64dfa + x.ref2632e03a = ref2632e03a + x.allocs2632e03a = allocs2632e03a + return ref2632e03a, allocs2632e03a } // 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 PhysicalDeviceDepthClipControlFeatures) PassValue() (C.VkPhysicalDeviceDepthClipControlFeaturesEXT, *cgoAllocMap) { + if x.ref2632e03a != nil { + return *x.ref2632e03a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36284,97 +61473,90 @@ 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 *PhysicalDeviceDepthClipControlFeatures) Deref() { + if x.ref2632e03a == nil { return } - x.Triangles = *NewGeometryTrianglesNVXRef(unsafe.Pointer(&x.ref3db64dfa.triangles)) - x.Aabbs = *NewGeometryAABBNVXRef(unsafe.Pointer(&x.ref3db64dfa.aabbs)) + x.SType = (StructureType)(x.ref2632e03a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2632e03a.pNext)) + x.DepthClipControl = (Bool32)(x.ref2632e03a.depthClipControl) } -// allocGeometryNVXMemory allocates memory for type C.VkGeometryNVX in C. +// allocPipelineViewportDepthClipControlCreateInfoMemory allocates memory for type C.VkPipelineViewportDepthClipControlCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineViewportDepthClipControlCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportDepthClipControlCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfGeometryNVXValue = unsafe.Sizeof([1]C.VkGeometryNVX{}) +const sizeOfPipelineViewportDepthClipControlCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineViewportDepthClipControlCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryNVX) Ref() *C.VkGeometryNVX { +func (x *PipelineViewportDepthClipControlCreateInfo) Ref() *C.VkPipelineViewportDepthClipControlCreateInfoEXT { if x == nil { return nil } - return x.refd01fad9d + return x.ref6e11056b } // Free invokes alloc map'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 *PipelineViewportDepthClipControlCreateInfo) Free() { + if x != nil && x.allocs6e11056b != nil { + x.allocs6e11056b.(*cgoAllocMap).Free() + x.ref6e11056b = nil } } -// NewGeometryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportDepthClipControlCreateInfoRef creates a new 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 NewPipelineViewportDepthClipControlCreateInfoRef(ref unsafe.Pointer) *PipelineViewportDepthClipControlCreateInfo { if ref == nil { return nil } - obj := new(GeometryNVX) - obj.refd01fad9d = (*C.VkGeometryNVX)(unsafe.Pointer(ref)) + obj := new(PipelineViewportDepthClipControlCreateInfo) + obj.ref6e11056b = (*C.VkPipelineViewportDepthClipControlCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PipelineViewportDepthClipControlCreateInfo) PassRef() (*C.VkPipelineViewportDepthClipControlCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd01fad9d != nil { - return x.refd01fad9d, nil + } else if x.ref6e11056b != nil { + return x.ref6e11056b, nil } - memd01fad9d := allocGeometryNVXMemory(1) - refd01fad9d := (*C.VkGeometryNVX)(memd01fad9d) - allocsd01fad9d := new(cgoAllocMap) - allocsd01fad9d.Add(memd01fad9d) + mem6e11056b := allocPipelineViewportDepthClipControlCreateInfoMemory(1) + ref6e11056b := (*C.VkPipelineViewportDepthClipControlCreateInfoEXT)(mem6e11056b) + allocs6e11056b := new(cgoAllocMap) + allocs6e11056b.Add(mem6e11056b) var csType_allocs *cgoAllocMap - refd01fad9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd01fad9d.Borrow(csType_allocs) + ref6e11056b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6e11056b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd01fad9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd01fad9d.Borrow(cpNext_allocs) + ref6e11056b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6e11056b.Borrow(cpNext_allocs) - var cgeometryType_allocs *cgoAllocMap - refd01fad9d.geometryType, cgeometryType_allocs = (C.VkGeometryTypeNVX)(x.GeometryType), cgoAllocsUnknown - allocsd01fad9d.Borrow(cgeometryType_allocs) + var cnegativeOneToOne_allocs *cgoAllocMap + ref6e11056b.negativeOneToOne, cnegativeOneToOne_allocs = (C.VkBool32)(x.NegativeOneToOne), cgoAllocsUnknown + allocs6e11056b.Borrow(cnegativeOneToOne_allocs) - var cgeometry_allocs *cgoAllocMap - refd01fad9d.geometry, cgeometry_allocs = x.Geometry.PassValue() - allocsd01fad9d.Borrow(cgeometry_allocs) - - var cflags_allocs *cgoAllocMap - refd01fad9d.flags, cflags_allocs = (C.VkGeometryFlagsNVX)(x.Flags), cgoAllocsUnknown - allocsd01fad9d.Borrow(cflags_allocs) - - x.refd01fad9d = refd01fad9d - x.allocsd01fad9d = allocsd01fad9d - return refd01fad9d, allocsd01fad9d + x.ref6e11056b = ref6e11056b + x.allocs6e11056b = allocs6e11056b + return ref6e11056b, allocs6e11056b } // 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 PipelineViewportDepthClipControlCreateInfo) PassValue() (C.VkPipelineViewportDepthClipControlCreateInfoEXT, *cgoAllocMap) { + if x.ref6e11056b != nil { + return *x.ref6e11056b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36382,150 +61564,94 @@ 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 *PipelineViewportDepthClipControlCreateInfo) Deref() { + if x.ref6e11056b == 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) + x.SType = (StructureType)(x.ref6e11056b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6e11056b.pNext)) + x.NegativeOneToOne = (Bool32)(x.ref6e11056b.negativeOneToOne) } -// allocAccelerationStructureCreateInfoNVXMemory allocates memory for type C.VkAccelerationStructureCreateInfoNVX in C. +// allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory allocates memory for type C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitiveTopologyListRestartFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAccelerationStructureCreateInfoNVXValue = unsafe.Sizeof([1]C.VkAccelerationStructureCreateInfoNVX{}) - -// unpackSGeometryNVX transforms a sliced Go data structure into plain C format. -func unpackSGeometryNVX(x []GeometryNVX) (unpacked *C.VkGeometryNVX, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkGeometryNVX) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocGeometryNVXMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkGeometryNVX)(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.VkGeometryNVX)(h.Data) - return -} - -// 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)) - } -} +const sizeOfPhysicalDevicePrimitiveTopologyListRestartFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AccelerationStructureCreateInfoNVX) Ref() *C.VkAccelerationStructureCreateInfoNVX { +func (x *PhysicalDevicePrimitiveTopologyListRestartFeatures) Ref() *C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { if x == nil { return nil } - return x.ref1289fd56 + return x.ref620627bc } // Free invokes alloc map'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 *PhysicalDevicePrimitiveTopologyListRestartFeatures) Free() { + if x != nil && x.allocs620627bc != nil { + x.allocs620627bc.(*cgoAllocMap).Free() + x.ref620627bc = nil } } -// NewAccelerationStructureCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePrimitiveTopologyListRestartFeaturesRef creates a new 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 NewPhysicalDevicePrimitiveTopologyListRestartFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePrimitiveTopologyListRestartFeatures { if ref == nil { return nil } - obj := new(AccelerationStructureCreateInfoNVX) - obj.ref1289fd56 = (*C.VkAccelerationStructureCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePrimitiveTopologyListRestartFeatures) + obj.ref620627bc = (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDevicePrimitiveTopologyListRestartFeatures) PassRef() (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1289fd56 != nil { - return x.ref1289fd56, nil + } else if x.ref620627bc != nil { + return x.ref620627bc, nil } - mem1289fd56 := allocAccelerationStructureCreateInfoNVXMemory(1) - ref1289fd56 := (*C.VkAccelerationStructureCreateInfoNVX)(mem1289fd56) - allocs1289fd56 := new(cgoAllocMap) - allocs1289fd56.Add(mem1289fd56) + mem620627bc := allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory(1) + ref620627bc := (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)(mem620627bc) + allocs620627bc := new(cgoAllocMap) + allocs620627bc.Add(mem620627bc) var csType_allocs *cgoAllocMap - ref1289fd56.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1289fd56.Borrow(csType_allocs) + ref620627bc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs620627bc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1289fd56.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1289fd56.Borrow(cpNext_allocs) - - var c_type_allocs *cgoAllocMap - ref1289fd56._type, c_type_allocs = (C.VkAccelerationStructureTypeNVX)(x.Type), cgoAllocsUnknown - allocs1289fd56.Borrow(c_type_allocs) - - var cflags_allocs *cgoAllocMap - ref1289fd56.flags, cflags_allocs = (C.VkBuildAccelerationStructureFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs1289fd56.Borrow(cflags_allocs) - - var ccompactedSize_allocs *cgoAllocMap - ref1289fd56.compactedSize, ccompactedSize_allocs = (C.VkDeviceSize)(x.CompactedSize), cgoAllocsUnknown - allocs1289fd56.Borrow(ccompactedSize_allocs) - - var cinstanceCount_allocs *cgoAllocMap - ref1289fd56.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown - allocs1289fd56.Borrow(cinstanceCount_allocs) + ref620627bc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs620627bc.Borrow(cpNext_allocs) - var cgeometryCount_allocs *cgoAllocMap - ref1289fd56.geometryCount, cgeometryCount_allocs = (C.uint32_t)(x.GeometryCount), cgoAllocsUnknown - allocs1289fd56.Borrow(cgeometryCount_allocs) + var cprimitiveTopologyListRestart_allocs *cgoAllocMap + ref620627bc.primitiveTopologyListRestart, cprimitiveTopologyListRestart_allocs = (C.VkBool32)(x.PrimitiveTopologyListRestart), cgoAllocsUnknown + allocs620627bc.Borrow(cprimitiveTopologyListRestart_allocs) - var cpGeometries_allocs *cgoAllocMap - ref1289fd56.pGeometries, cpGeometries_allocs = unpackSGeometryNVX(x.PGeometries) - allocs1289fd56.Borrow(cpGeometries_allocs) + var cprimitiveTopologyPatchListRestart_allocs *cgoAllocMap + ref620627bc.primitiveTopologyPatchListRestart, cprimitiveTopologyPatchListRestart_allocs = (C.VkBool32)(x.PrimitiveTopologyPatchListRestart), cgoAllocsUnknown + allocs620627bc.Borrow(cprimitiveTopologyPatchListRestart_allocs) - x.ref1289fd56 = ref1289fd56 - x.allocs1289fd56 = allocs1289fd56 - return ref1289fd56, allocs1289fd56 + x.ref620627bc = ref620627bc + x.allocs620627bc = allocs620627bc + return ref620627bc, allocs620627bc } // 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 PhysicalDevicePrimitiveTopologyListRestartFeatures) PassValue() (C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, *cgoAllocMap) { + if x.ref620627bc != nil { + return *x.ref620627bc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36533,111 +61659,95 @@ 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 *PhysicalDevicePrimitiveTopologyListRestartFeatures) Deref() { + if x.ref620627bc == 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.ref620627bc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref620627bc.pNext)) + x.PrimitiveTopologyListRestart = (Bool32)(x.ref620627bc.primitiveTopologyListRestart) + x.PrimitiveTopologyPatchListRestart = (Bool32)(x.ref620627bc.primitiveTopologyPatchListRestart) } -// allocBindAccelerationStructureMemoryInfoNVXMemory allocates memory for type C.VkBindAccelerationStructureMemoryInfoNVX in C. +// allocSubpassShadingPipelineCreateInfoHUAWEIMemory allocates memory for type C.VkSubpassShadingPipelineCreateInfoHUAWEI 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSubpassShadingPipelineCreateInfoHUAWEIMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassShadingPipelineCreateInfoHUAWEIValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfBindAccelerationStructureMemoryInfoNVXValue = unsafe.Sizeof([1]C.VkBindAccelerationStructureMemoryInfoNVX{}) +const sizeOfSubpassShadingPipelineCreateInfoHUAWEIValue = unsafe.Sizeof([1]C.VkSubpassShadingPipelineCreateInfoHUAWEI{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindAccelerationStructureMemoryInfoNVX) Ref() *C.VkBindAccelerationStructureMemoryInfoNVX { +func (x *SubpassShadingPipelineCreateInfoHUAWEI) Ref() *C.VkSubpassShadingPipelineCreateInfoHUAWEI { if x == nil { return nil } - return x.refb92eae10 + return x.ref991efdae } // Free invokes alloc map'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 *SubpassShadingPipelineCreateInfoHUAWEI) Free() { + if x != nil && x.allocs991efdae != nil { + x.allocs991efdae.(*cgoAllocMap).Free() + x.ref991efdae = nil } } -// NewBindAccelerationStructureMemoryInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSubpassShadingPipelineCreateInfoHUAWEIRef creates a new 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 NewSubpassShadingPipelineCreateInfoHUAWEIRef(ref unsafe.Pointer) *SubpassShadingPipelineCreateInfoHUAWEI { if ref == nil { return nil } - obj := new(BindAccelerationStructureMemoryInfoNVX) - obj.refb92eae10 = (*C.VkBindAccelerationStructureMemoryInfoNVX)(unsafe.Pointer(ref)) + obj := new(SubpassShadingPipelineCreateInfoHUAWEI) + obj.ref991efdae = (*C.VkSubpassShadingPipelineCreateInfoHUAWEI)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *SubpassShadingPipelineCreateInfoHUAWEI) PassRef() (*C.VkSubpassShadingPipelineCreateInfoHUAWEI, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb92eae10 != nil { - return x.refb92eae10, nil + } else if x.ref991efdae != nil { + return x.ref991efdae, nil } - memb92eae10 := allocBindAccelerationStructureMemoryInfoNVXMemory(1) - refb92eae10 := (*C.VkBindAccelerationStructureMemoryInfoNVX)(memb92eae10) - allocsb92eae10 := new(cgoAllocMap) - allocsb92eae10.Add(memb92eae10) + mem991efdae := allocSubpassShadingPipelineCreateInfoHUAWEIMemory(1) + ref991efdae := (*C.VkSubpassShadingPipelineCreateInfoHUAWEI)(mem991efdae) + allocs991efdae := new(cgoAllocMap) + allocs991efdae.Add(mem991efdae) var csType_allocs *cgoAllocMap - refb92eae10.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb92eae10.Borrow(csType_allocs) + ref991efdae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs991efdae.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb92eae10.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb92eae10.Borrow(cpNext_allocs) - - var caccelerationStructure_allocs *cgoAllocMap - refb92eae10.accelerationStructure, caccelerationStructure_allocs = *(*C.VkAccelerationStructureNVX)(unsafe.Pointer(&x.AccelerationStructure)), cgoAllocsUnknown - allocsb92eae10.Borrow(caccelerationStructure_allocs) + ref991efdae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs991efdae.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - refb92eae10.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocsb92eae10.Borrow(cmemory_allocs) - - var cmemoryOffset_allocs *cgoAllocMap - refb92eae10.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocsb92eae10.Borrow(cmemoryOffset_allocs) - - var cdeviceIndexCount_allocs *cgoAllocMap - refb92eae10.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown - allocsb92eae10.Borrow(cdeviceIndexCount_allocs) + var crenderPass_allocs *cgoAllocMap + ref991efdae.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown + allocs991efdae.Borrow(crenderPass_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) + var csubpass_allocs *cgoAllocMap + ref991efdae.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown + allocs991efdae.Borrow(csubpass_allocs) - x.refb92eae10 = refb92eae10 - x.allocsb92eae10 = allocsb92eae10 - return refb92eae10, allocsb92eae10 + x.ref991efdae = ref991efdae + x.allocs991efdae = allocs991efdae + return ref991efdae, allocs991efdae } // 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 SubpassShadingPipelineCreateInfoHUAWEI) PassValue() (C.VkSubpassShadingPipelineCreateInfoHUAWEI, *cgoAllocMap) { + if x.ref991efdae != nil { + return *x.ref991efdae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36645,102 +61755,91 @@ 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 *SubpassShadingPipelineCreateInfoHUAWEI) Deref() { + if x.ref991efdae == 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.ref991efdae.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref991efdae.pNext)) + x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref991efdae.renderPass)) + x.Subpass = (uint32)(x.ref991efdae.subpass) } -// allocDescriptorAccelerationStructureInfoNVXMemory allocates memory for type C.VkDescriptorAccelerationStructureInfoNVX in C. +// allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingFeaturesHUAWEIValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDescriptorAccelerationStructureInfoNVXValue = unsafe.Sizeof([1]C.VkDescriptorAccelerationStructureInfoNVX{}) +const sizeOfPhysicalDeviceSubpassShadingFeaturesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorAccelerationStructureInfoNVX) Ref() *C.VkDescriptorAccelerationStructureInfoNVX { +func (x *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Ref() *C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { if x == nil { return nil } - return x.refde5f3ba5 + return x.reff3cfce3e } // Free invokes alloc map'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 *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Free() { + if x != nil && x.allocsf3cfce3e != nil { + x.allocsf3cfce3e.(*cgoAllocMap).Free() + x.reff3cfce3e = nil } } -// NewDescriptorAccelerationStructureInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSubpassShadingFeaturesHUAWEIRef creates a new 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 NewPhysicalDeviceSubpassShadingFeaturesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceSubpassShadingFeaturesHUAWEI { if ref == nil { return nil } - obj := new(DescriptorAccelerationStructureInfoNVX) - obj.refde5f3ba5 = (*C.VkDescriptorAccelerationStructureInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSubpassShadingFeaturesHUAWEI) + obj.reff3cfce3e = (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceSubpassShadingFeaturesHUAWEI) PassRef() (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refde5f3ba5 != nil { - return x.refde5f3ba5, nil + } else if x.reff3cfce3e != nil { + return x.reff3cfce3e, nil } - memde5f3ba5 := allocDescriptorAccelerationStructureInfoNVXMemory(1) - refde5f3ba5 := (*C.VkDescriptorAccelerationStructureInfoNVX)(memde5f3ba5) - allocsde5f3ba5 := new(cgoAllocMap) - allocsde5f3ba5.Add(memde5f3ba5) + memf3cfce3e := allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory(1) + reff3cfce3e := (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI)(memf3cfce3e) + allocsf3cfce3e := new(cgoAllocMap) + allocsf3cfce3e.Add(memf3cfce3e) var csType_allocs *cgoAllocMap - refde5f3ba5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsde5f3ba5.Borrow(csType_allocs) + reff3cfce3e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf3cfce3e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refde5f3ba5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsde5f3ba5.Borrow(cpNext_allocs) - - var caccelerationStructureCount_allocs *cgoAllocMap - refde5f3ba5.accelerationStructureCount, caccelerationStructureCount_allocs = (C.uint32_t)(x.AccelerationStructureCount), cgoAllocsUnknown - allocsde5f3ba5.Borrow(caccelerationStructureCount_allocs) + reff3cfce3e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf3cfce3e.Borrow(cpNext_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 csubpassShading_allocs *cgoAllocMap + reff3cfce3e.subpassShading, csubpassShading_allocs = (C.VkBool32)(x.SubpassShading), cgoAllocsUnknown + allocsf3cfce3e.Borrow(csubpassShading_allocs) - x.refde5f3ba5 = refde5f3ba5 - x.allocsde5f3ba5 = allocsde5f3ba5 - return refde5f3ba5, allocsde5f3ba5 + x.reff3cfce3e = reff3cfce3e + x.allocsf3cfce3e = allocsf3cfce3e + return reff3cfce3e, allocsf3cfce3e } // 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 PhysicalDeviceSubpassShadingFeaturesHUAWEI) PassValue() (C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, *cgoAllocMap) { + if x.reff3cfce3e != nil { + return *x.reff3cfce3e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36748,95 +61847,90 @@ 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 *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Deref() { + if x.reff3cfce3e == 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.reff3cfce3e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3cfce3e.pNext)) + x.SubpassShading = (Bool32)(x.reff3cfce3e.subpassShading) } -// allocAccelerationStructureMemoryRequirementsInfoNVXMemory allocates memory for type C.VkAccelerationStructureMemoryRequirementsInfoNVX in C. +// allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingPropertiesHUAWEIValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfAccelerationStructureMemoryRequirementsInfoNVXValue = unsafe.Sizeof([1]C.VkAccelerationStructureMemoryRequirementsInfoNVX{}) +const sizeOfPhysicalDeviceSubpassShadingPropertiesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AccelerationStructureMemoryRequirementsInfoNVX) Ref() *C.VkAccelerationStructureMemoryRequirementsInfoNVX { +func (x *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Ref() *C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { if x == nil { return nil } - return x.ref212466e8 + return x.ref68a800d6 } // Free invokes alloc map'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 *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Free() { + if x != nil && x.allocs68a800d6 != nil { + x.allocs68a800d6.(*cgoAllocMap).Free() + x.ref68a800d6 = nil } } -// NewAccelerationStructureMemoryRequirementsInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSubpassShadingPropertiesHUAWEIRef creates a new 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 NewPhysicalDeviceSubpassShadingPropertiesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceSubpassShadingPropertiesHUAWEI { if ref == nil { return nil } - obj := new(AccelerationStructureMemoryRequirementsInfoNVX) - obj.ref212466e8 = (*C.VkAccelerationStructureMemoryRequirementsInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSubpassShadingPropertiesHUAWEI) + obj.ref68a800d6 = (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceSubpassShadingPropertiesHUAWEI) PassRef() (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref212466e8 != nil { - return x.ref212466e8, nil + } else if x.ref68a800d6 != nil { + return x.ref68a800d6, nil } - mem212466e8 := allocAccelerationStructureMemoryRequirementsInfoNVXMemory(1) - ref212466e8 := (*C.VkAccelerationStructureMemoryRequirementsInfoNVX)(mem212466e8) - allocs212466e8 := new(cgoAllocMap) - allocs212466e8.Add(mem212466e8) + mem68a800d6 := allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory(1) + ref68a800d6 := (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI)(mem68a800d6) + allocs68a800d6 := new(cgoAllocMap) + allocs68a800d6.Add(mem68a800d6) var csType_allocs *cgoAllocMap - ref212466e8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs212466e8.Borrow(csType_allocs) + ref68a800d6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs68a800d6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref212466e8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs212466e8.Borrow(cpNext_allocs) + ref68a800d6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs68a800d6.Borrow(cpNext_allocs) - var caccelerationStructure_allocs *cgoAllocMap - ref212466e8.accelerationStructure, caccelerationStructure_allocs = *(*C.VkAccelerationStructureNVX)(unsafe.Pointer(&x.AccelerationStructure)), cgoAllocsUnknown - allocs212466e8.Borrow(caccelerationStructure_allocs) + var cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs *cgoAllocMap + ref68a800d6.maxSubpassShadingWorkgroupSizeAspectRatio, cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs = (C.uint32_t)(x.MaxSubpassShadingWorkgroupSizeAspectRatio), cgoAllocsUnknown + allocs68a800d6.Borrow(cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs) - x.ref212466e8 = ref212466e8 - x.allocs212466e8 = allocs212466e8 - return ref212466e8, allocs212466e8 + x.ref68a800d6 = ref68a800d6 + x.allocs68a800d6 = allocs68a800d6 + return ref68a800d6, allocs68a800d6 } // 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 PhysicalDeviceSubpassShadingPropertiesHUAWEI) PassValue() (C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, *cgoAllocMap) { + if x.ref68a800d6 != nil { + return *x.ref68a800d6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36844,98 +61938,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 *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Deref() { + if x.ref68a800d6 == 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.ref68a800d6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref68a800d6.pNext)) + x.MaxSubpassShadingWorkgroupSizeAspectRatio = (uint32)(x.ref68a800d6.maxSubpassShadingWorkgroupSizeAspectRatio) } -// allocPhysicalDeviceRaytracingPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceRaytracingPropertiesNVX in C. +// allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInvocationMaskFeaturesHUAWEIValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceRaytracingPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRaytracingPropertiesNVX{}) +const sizeOfPhysicalDeviceInvocationMaskFeaturesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRaytracingPropertiesNVX) Ref() *C.VkPhysicalDeviceRaytracingPropertiesNVX { +func (x *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Ref() *C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { if x == nil { return nil } - return x.refd37a6b69 + return x.reff5b64a1f } // Free invokes alloc map'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 *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Free() { + if x != nil && x.allocsf5b64a1f != nil { + x.allocsf5b64a1f.(*cgoAllocMap).Free() + x.reff5b64a1f = nil } } -// NewPhysicalDeviceRaytracingPropertiesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceInvocationMaskFeaturesHUAWEIRef creates a new 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 NewPhysicalDeviceInvocationMaskFeaturesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceInvocationMaskFeaturesHUAWEI { if ref == nil { return nil } - obj := new(PhysicalDeviceRaytracingPropertiesNVX) - obj.refd37a6b69 = (*C.VkPhysicalDeviceRaytracingPropertiesNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceInvocationMaskFeaturesHUAWEI) + obj.reff5b64a1f = (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceInvocationMaskFeaturesHUAWEI) PassRef() (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd37a6b69 != nil { - return x.refd37a6b69, nil + } else if x.reff5b64a1f != nil { + return x.reff5b64a1f, nil } - memd37a6b69 := allocPhysicalDeviceRaytracingPropertiesNVXMemory(1) - refd37a6b69 := (*C.VkPhysicalDeviceRaytracingPropertiesNVX)(memd37a6b69) - allocsd37a6b69 := new(cgoAllocMap) - allocsd37a6b69.Add(memd37a6b69) + memf5b64a1f := allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory(1) + reff5b64a1f := (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI)(memf5b64a1f) + allocsf5b64a1f := new(cgoAllocMap) + allocsf5b64a1f.Add(memf5b64a1f) var csType_allocs *cgoAllocMap - refd37a6b69.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd37a6b69.Borrow(csType_allocs) + reff5b64a1f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf5b64a1f.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) + reff5b64a1f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf5b64a1f.Borrow(cpNext_allocs) - var cmaxRecursionDepth_allocs *cgoAllocMap - refd37a6b69.maxRecursionDepth, cmaxRecursionDepth_allocs = (C.uint32_t)(x.MaxRecursionDepth), cgoAllocsUnknown - allocsd37a6b69.Borrow(cmaxRecursionDepth_allocs) + var cinvocationMask_allocs *cgoAllocMap + reff5b64a1f.invocationMask, cinvocationMask_allocs = (C.VkBool32)(x.InvocationMask), cgoAllocsUnknown + allocsf5b64a1f.Borrow(cinvocationMask_allocs) - var cmaxGeometryCount_allocs *cgoAllocMap - refd37a6b69.maxGeometryCount, cmaxGeometryCount_allocs = (C.uint32_t)(x.MaxGeometryCount), cgoAllocsUnknown - allocsd37a6b69.Borrow(cmaxGeometryCount_allocs) - - x.refd37a6b69 = refd37a6b69 - x.allocsd37a6b69 = allocsd37a6b69 - return refd37a6b69, allocsd37a6b69 + x.reff5b64a1f = reff5b64a1f + x.allocsf5b64a1f = allocsf5b64a1f + return reff5b64a1f, allocsf5b64a1f } // 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 PhysicalDeviceInvocationMaskFeaturesHUAWEI) PassValue() (C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, *cgoAllocMap) { + if x.reff5b64a1f != nil { + return *x.reff5b64a1f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36943,92 +62029,94 @@ 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 *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Deref() { + if x.reff5b64a1f == 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.reff5b64a1f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff5b64a1f.pNext)) + x.InvocationMask = (Bool32)(x.reff5b64a1f.invocationMask) } -// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV in C. +// allocMemoryGetRemoteAddressInfoNVMemory allocates memory for type C.VkMemoryGetRemoteAddressInfoNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMemoryGetRemoteAddressInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetRemoteAddressInfoNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) +const sizeOfMemoryGetRemoteAddressInfoNVValue = unsafe.Sizeof([1]C.VkMemoryGetRemoteAddressInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { +func (x *MemoryGetRemoteAddressInfoNV) Ref() *C.VkMemoryGetRemoteAddressInfoNV { if x == nil { return nil } - return x.reff1f69e03 + return x.ref5106899c } // Free invokes alloc map'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 *MemoryGetRemoteAddressInfoNV) Free() { + if x != nil && x.allocs5106899c != nil { + x.allocs5106899c.(*cgoAllocMap).Free() + x.ref5106899c = nil } } -// NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMemoryGetRemoteAddressInfoNVRef creates a new 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 NewMemoryGetRemoteAddressInfoNVRef(ref unsafe.Pointer) *MemoryGetRemoteAddressInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceRepresentativeFragmentTestFeaturesNV) - obj.reff1f69e03 = (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(unsafe.Pointer(ref)) + obj := new(MemoryGetRemoteAddressInfoNV) + obj.ref5106899c = (*C.VkMemoryGetRemoteAddressInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *MemoryGetRemoteAddressInfoNV) PassRef() (*C.VkMemoryGetRemoteAddressInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff1f69e03 != nil { - return x.reff1f69e03, nil + } else if x.ref5106899c != nil { + return x.ref5106899c, nil } - memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) - reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) - allocsf1f69e03 := new(cgoAllocMap) - allocsf1f69e03.Add(memf1f69e03) + mem5106899c := allocMemoryGetRemoteAddressInfoNVMemory(1) + ref5106899c := (*C.VkMemoryGetRemoteAddressInfoNV)(mem5106899c) + allocs5106899c := new(cgoAllocMap) + allocs5106899c.Add(mem5106899c) var csType_allocs *cgoAllocMap - reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf1f69e03.Borrow(csType_allocs) + ref5106899c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5106899c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf1f69e03.Borrow(cpNext_allocs) + ref5106899c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5106899c.Borrow(cpNext_allocs) - var crepresentativeFragmentTest_allocs *cgoAllocMap - reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown - allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) + var cmemory_allocs *cgoAllocMap + ref5106899c.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs5106899c.Borrow(cmemory_allocs) - x.reff1f69e03 = reff1f69e03 - x.allocsf1f69e03 = allocsf1f69e03 - return reff1f69e03, allocsf1f69e03 + var chandleType_allocs *cgoAllocMap + ref5106899c.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs5106899c.Borrow(chandleType_allocs) + + x.ref5106899c = ref5106899c + x.allocs5106899c = allocs5106899c + return ref5106899c, allocs5106899c } // 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 MemoryGetRemoteAddressInfoNV) PassValue() (C.VkMemoryGetRemoteAddressInfoNV, *cgoAllocMap) { + if x.ref5106899c != nil { + return *x.ref5106899c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37036,90 +62124,91 @@ 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 *MemoryGetRemoteAddressInfoNV) Deref() { + if x.ref5106899c == 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.ref5106899c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5106899c.pNext)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref5106899c.memory)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref5106899c.handleType) } -// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV in C. +// allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryRDMAFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) +const sizeOfPhysicalDeviceExternalMemoryRDMAFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { +func (x *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Ref() *C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { if x == nil { return nil } - return x.ref9c224e21 + return x.ref9c69743b } // Free invokes alloc map'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 *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Free() { + if x != nil && x.allocs9c69743b != nil { + x.allocs9c69743b.(*cgoAllocMap).Free() + x.ref9c69743b = nil } } -// NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceExternalMemoryRDMAFeaturesNVRef creates a new 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 NewPhysicalDeviceExternalMemoryRDMAFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryRDMAFeaturesNV { if ref == nil { return nil } - obj := new(PipelineRepresentativeFragmentTestStateCreateInfoNV) - obj.ref9c224e21 = (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceExternalMemoryRDMAFeaturesNV) + obj.ref9c69743b = (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceExternalMemoryRDMAFeaturesNV) PassRef() (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9c224e21 != nil { - return x.ref9c224e21, nil + } else if x.ref9c69743b != nil { + return x.ref9c69743b, nil } - mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) - ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) - allocs9c224e21 := new(cgoAllocMap) - allocs9c224e21.Add(mem9c224e21) + mem9c69743b := allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory(1) + ref9c69743b := (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV)(mem9c69743b) + allocs9c69743b := new(cgoAllocMap) + allocs9c69743b.Add(mem9c69743b) var csType_allocs *cgoAllocMap - ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9c224e21.Borrow(csType_allocs) + ref9c69743b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9c69743b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9c224e21.Borrow(cpNext_allocs) + ref9c69743b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9c69743b.Borrow(cpNext_allocs) - var crepresentativeFragmentTestEnable_allocs *cgoAllocMap - ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown - allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) + var cexternalMemoryRDMA_allocs *cgoAllocMap + ref9c69743b.externalMemoryRDMA, cexternalMemoryRDMA_allocs = (C.VkBool32)(x.ExternalMemoryRDMA), cgoAllocsUnknown + allocs9c69743b.Borrow(cexternalMemoryRDMA_allocs) - x.ref9c224e21 = ref9c224e21 - x.allocs9c224e21 = allocs9c224e21 - return ref9c224e21, allocs9c224e21 + x.ref9c69743b = ref9c69743b + x.allocs9c69743b = allocs9c69743b + return ref9c69743b, allocs9c69743b } // 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 PhysicalDeviceExternalMemoryRDMAFeaturesNV) PassValue() (C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, *cgoAllocMap) { + if x.ref9c69743b != nil { + return *x.ref9c69743b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37127,90 +62216,98 @@ 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 *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Deref() { + if x.ref9c69743b == 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.ref9c69743b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c69743b.pNext)) + x.ExternalMemoryRDMA = (Bool32)(x.ref9c69743b.externalMemoryRDMA) } -// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoEXT in C. +// allocPhysicalDeviceExtendedDynamicState2FeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceExtendedDynamicState2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicState2FeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoEXT{}) +const sizeOfPhysicalDeviceExtendedDynamicState2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoEXT { +func (x *PhysicalDeviceExtendedDynamicState2Features) Ref() *C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { if x == nil { return nil } - return x.ref76356646 + return x.refbd0cffdd } // Free invokes alloc map'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 *PhysicalDeviceExtendedDynamicState2Features) Free() { + if x != nil && x.allocsbd0cffdd != nil { + x.allocsbd0cffdd.(*cgoAllocMap).Free() + x.refbd0cffdd = nil } } -// NewDeviceQueueGlobalPriorityCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceExtendedDynamicState2FeaturesRef creates a new 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 NewPhysicalDeviceExtendedDynamicState2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicState2Features { if ref == nil { return nil } - obj := new(DeviceQueueGlobalPriorityCreateInfo) - obj.ref76356646 = (*C.VkDeviceQueueGlobalPriorityCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceExtendedDynamicState2Features) + obj.refbd0cffdd = (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceExtendedDynamicState2Features) PassRef() (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref76356646 != nil { - return x.ref76356646, nil + } else if x.refbd0cffdd != nil { + return x.refbd0cffdd, nil } - mem76356646 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) - ref76356646 := (*C.VkDeviceQueueGlobalPriorityCreateInfoEXT)(mem76356646) - allocs76356646 := new(cgoAllocMap) - allocs76356646.Add(mem76356646) + membd0cffdd := allocPhysicalDeviceExtendedDynamicState2FeaturesMemory(1) + refbd0cffdd := (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)(membd0cffdd) + allocsbd0cffdd := new(cgoAllocMap) + allocsbd0cffdd.Add(membd0cffdd) var csType_allocs *cgoAllocMap - ref76356646.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs76356646.Borrow(csType_allocs) + refbd0cffdd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbd0cffdd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref76356646.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs76356646.Borrow(cpNext_allocs) + refbd0cffdd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbd0cffdd.Borrow(cpNext_allocs) - var cglobalPriority_allocs *cgoAllocMap - ref76356646.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityEXT)(x.GlobalPriority), cgoAllocsUnknown - allocs76356646.Borrow(cglobalPriority_allocs) + var cextendedDynamicState2_allocs *cgoAllocMap + refbd0cffdd.extendedDynamicState2, cextendedDynamicState2_allocs = (C.VkBool32)(x.ExtendedDynamicState2), cgoAllocsUnknown + allocsbd0cffdd.Borrow(cextendedDynamicState2_allocs) - x.ref76356646 = ref76356646 - x.allocs76356646 = allocs76356646 - return ref76356646, allocs76356646 + var cextendedDynamicState2LogicOp_allocs *cgoAllocMap + refbd0cffdd.extendedDynamicState2LogicOp, cextendedDynamicState2LogicOp_allocs = (C.VkBool32)(x.ExtendedDynamicState2LogicOp), cgoAllocsUnknown + allocsbd0cffdd.Borrow(cextendedDynamicState2LogicOp_allocs) + + var cextendedDynamicState2PatchControlPoints_allocs *cgoAllocMap + refbd0cffdd.extendedDynamicState2PatchControlPoints, cextendedDynamicState2PatchControlPoints_allocs = (C.VkBool32)(x.ExtendedDynamicState2PatchControlPoints), cgoAllocsUnknown + allocsbd0cffdd.Borrow(cextendedDynamicState2PatchControlPoints_allocs) + + x.refbd0cffdd = refbd0cffdd + x.allocsbd0cffdd = allocsbd0cffdd + return refbd0cffdd, allocsbd0cffdd } // 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 PhysicalDeviceExtendedDynamicState2Features) PassValue() (C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, *cgoAllocMap) { + if x.refbd0cffdd != nil { + return *x.refbd0cffdd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37218,94 +62315,92 @@ 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 *PhysicalDeviceExtendedDynamicState2Features) Deref() { + if x.refbd0cffdd == 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.refbd0cffdd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd0cffdd.pNext)) + x.ExtendedDynamicState2 = (Bool32)(x.refbd0cffdd.extendedDynamicState2) + x.ExtendedDynamicState2LogicOp = (Bool32)(x.refbd0cffdd.extendedDynamicState2LogicOp) + x.ExtendedDynamicState2PatchControlPoints = (Bool32)(x.refbd0cffdd.extendedDynamicState2PatchControlPoints) } -// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT in C. +// allocPhysicalDeviceColorWriteEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceColorWriteEnableFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceColorWriteEnableFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceColorWriteEnableFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) +const sizeOfPhysicalDeviceColorWriteEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceColorWriteEnableFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { +func (x *PhysicalDeviceColorWriteEnableFeatures) Ref() *C.VkPhysicalDeviceColorWriteEnableFeaturesEXT { if x == nil { return nil } - return x.reffe09253e + return x.refd894aa7b } // Free invokes alloc map'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 *PhysicalDeviceColorWriteEnableFeatures) Free() { + if x != nil && x.allocsd894aa7b != nil { + x.allocsd894aa7b.(*cgoAllocMap).Free() + x.refd894aa7b = nil } } -// NewImportMemoryHostPointerInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceColorWriteEnableFeaturesRef creates a new 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 NewPhysicalDeviceColorWriteEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceColorWriteEnableFeatures { if ref == nil { return nil } - obj := new(ImportMemoryHostPointerInfo) - obj.reffe09253e = (*C.VkImportMemoryHostPointerInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceColorWriteEnableFeatures) + obj.refd894aa7b = (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceColorWriteEnableFeatures) PassRef() (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe09253e != nil { - return x.reffe09253e, nil + } else if x.refd894aa7b != nil { + return x.refd894aa7b, nil } - memfe09253e := allocImportMemoryHostPointerInfoMemory(1) - reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) - allocsfe09253e := new(cgoAllocMap) - allocsfe09253e.Add(memfe09253e) + memd894aa7b := allocPhysicalDeviceColorWriteEnableFeaturesMemory(1) + refd894aa7b := (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT)(memd894aa7b) + allocsd894aa7b := new(cgoAllocMap) + allocsd894aa7b.Add(memd894aa7b) var csType_allocs *cgoAllocMap - reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe09253e.Borrow(csType_allocs) + refd894aa7b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd894aa7b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpNext_allocs) + refd894aa7b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd894aa7b.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsfe09253e.Borrow(chandleType_allocs) + var ccolorWriteEnable_allocs *cgoAllocMap + refd894aa7b.colorWriteEnable, ccolorWriteEnable_allocs = (C.VkBool32)(x.ColorWriteEnable), cgoAllocsUnknown + allocsd894aa7b.Borrow(ccolorWriteEnable_allocs) - var cpHostPointer_allocs *cgoAllocMap - reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpHostPointer_allocs) - - x.reffe09253e = reffe09253e - x.allocsfe09253e = allocsfe09253e - return reffe09253e, allocsfe09253e + x.refd894aa7b = refd894aa7b + x.allocsd894aa7b = allocsd894aa7b + return refd894aa7b, allocsd894aa7b } // 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 PhysicalDeviceColorWriteEnableFeatures) PassValue() (C.VkPhysicalDeviceColorWriteEnableFeaturesEXT, *cgoAllocMap) { + if x.refd894aa7b != nil { + return *x.refd894aa7b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37313,91 +62408,123 @@ 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 *PhysicalDeviceColorWriteEnableFeatures) Deref() { + if x.refd894aa7b == 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.refd894aa7b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd894aa7b.pNext)) + x.ColorWriteEnable = (Bool32)(x.refd894aa7b.colorWriteEnable) } -// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT in C. +// allocPipelineColorWriteCreateInfoMemory allocates memory for type C.VkPipelineColorWriteCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPipelineColorWriteCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorWriteCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) +const sizeOfPipelineColorWriteCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorWriteCreateInfoEXT{}) + +// copyPBool32Bytes copies the data from Go slice as *C.VkBool32. +func copyPBool32Bytes(slice *sliceHeader) (*C.VkBool32, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfBool32Value) * slice.Len, + Cap: int(sizeOfBool32Value) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkBool32)(mem0), allocs +} + +// allocBool32Memory allocates memory for type C.VkBool32 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBool32Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBool32Value)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfBool32Value = unsafe.Sizeof([1]C.VkBool32{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { +func (x *PipelineColorWriteCreateInfo) Ref() *C.VkPipelineColorWriteCreateInfoEXT { if x == nil { return nil } - return x.refebf46a84 + return x.refa0609dbc } // Free invokes alloc map'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 *PipelineColorWriteCreateInfo) Free() { + if x != nil && x.allocsa0609dbc != nil { + x.allocsa0609dbc.(*cgoAllocMap).Free() + x.refa0609dbc = nil } } -// NewMemoryHostPointerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineColorWriteCreateInfoRef creates a new 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 NewPipelineColorWriteCreateInfoRef(ref unsafe.Pointer) *PipelineColorWriteCreateInfo { if ref == nil { return nil } - obj := new(MemoryHostPointerProperties) - obj.refebf46a84 = (*C.VkMemoryHostPointerPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PipelineColorWriteCreateInfo) + obj.refa0609dbc = (*C.VkPipelineColorWriteCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PipelineColorWriteCreateInfo) PassRef() (*C.VkPipelineColorWriteCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refebf46a84 != nil { - return x.refebf46a84, nil + } else if x.refa0609dbc != nil { + return x.refa0609dbc, nil } - memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) - refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) - allocsebf46a84 := new(cgoAllocMap) - allocsebf46a84.Add(memebf46a84) + mema0609dbc := allocPipelineColorWriteCreateInfoMemory(1) + refa0609dbc := (*C.VkPipelineColorWriteCreateInfoEXT)(mema0609dbc) + allocsa0609dbc := new(cgoAllocMap) + allocsa0609dbc.Add(mema0609dbc) var csType_allocs *cgoAllocMap - refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsebf46a84.Borrow(csType_allocs) + refa0609dbc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa0609dbc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsebf46a84.Borrow(cpNext_allocs) + refa0609dbc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa0609dbc.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocsebf46a84.Borrow(cmemoryTypeBits_allocs) + var cattachmentCount_allocs *cgoAllocMap + refa0609dbc.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocsa0609dbc.Borrow(cattachmentCount_allocs) - x.refebf46a84 = refebf46a84 - x.allocsebf46a84 = allocsebf46a84 - return refebf46a84, allocsebf46a84 + var cpColorWriteEnables_allocs *cgoAllocMap + refa0609dbc.pColorWriteEnables, cpColorWriteEnables_allocs = copyPBool32Bytes((*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables))) + allocsa0609dbc.Borrow(cpColorWriteEnables_allocs) + + x.refa0609dbc = refa0609dbc + x.allocsa0609dbc = allocsa0609dbc + return refa0609dbc, allocsa0609dbc } // 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 PipelineColorWriteCreateInfo) PassValue() (C.VkPipelineColorWriteCreateInfoEXT, *cgoAllocMap) { + if x.refa0609dbc != nil { + return *x.refa0609dbc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37405,90 +62532,103 @@ 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 *PipelineColorWriteCreateInfo) Deref() { + if x.refa0609dbc == 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.refa0609dbc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa0609dbc.pNext)) + x.AttachmentCount = (uint32)(x.refa0609dbc.attachmentCount) + hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables)) + hxf08bba9.Data = unsafe.Pointer(x.refa0609dbc.pColorWriteEnables) + hxf08bba9.Cap = 0x7fffffff + // hxf08bba9.Len = ? + } -// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT in C. +// allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitivesGeneratedQueryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) +const sizeOfPhysicalDevicePrimitivesGeneratedQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { +func (x *PhysicalDevicePrimitivesGeneratedQueryFeatures) Ref() *C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { if x == nil { return nil } - return x.ref7f697d15 + return x.reff7d249a0 } // Free invokes alloc map'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 *PhysicalDevicePrimitivesGeneratedQueryFeatures) Free() { + if x != nil && x.allocsf7d249a0 != nil { + x.allocsf7d249a0.(*cgoAllocMap).Free() + x.reff7d249a0 = nil } } -// NewPhysicalDeviceExternalMemoryHostPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePrimitivesGeneratedQueryFeaturesRef creates a new 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 NewPhysicalDevicePrimitivesGeneratedQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePrimitivesGeneratedQueryFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalMemoryHostProperties) - obj.ref7f697d15 = (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePrimitivesGeneratedQueryFeatures) + obj.reff7d249a0 = (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDevicePrimitivesGeneratedQueryFeatures) PassRef() (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7f697d15 != nil { - return x.ref7f697d15, nil + } else if x.reff7d249a0 != nil { + return x.reff7d249a0, nil } - mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) - ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) - allocs7f697d15 := new(cgoAllocMap) - allocs7f697d15.Add(mem7f697d15) + memf7d249a0 := allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory(1) + reff7d249a0 := (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)(memf7d249a0) + allocsf7d249a0 := new(cgoAllocMap) + allocsf7d249a0.Add(memf7d249a0) var csType_allocs *cgoAllocMap - ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7f697d15.Borrow(csType_allocs) + reff7d249a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7d249a0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7f697d15.Borrow(cpNext_allocs) + reff7d249a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7d249a0.Borrow(cpNext_allocs) - var cminImportedHostPointerAlignment_allocs *cgoAllocMap - ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown - allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) + var cprimitivesGeneratedQuery_allocs *cgoAllocMap + reff7d249a0.primitivesGeneratedQuery, cprimitivesGeneratedQuery_allocs = (C.VkBool32)(x.PrimitivesGeneratedQuery), cgoAllocsUnknown + allocsf7d249a0.Borrow(cprimitivesGeneratedQuery_allocs) - x.ref7f697d15 = ref7f697d15 - x.allocs7f697d15 = allocs7f697d15 - return ref7f697d15, allocs7f697d15 + var cprimitivesGeneratedQueryWithRasterizerDiscard_allocs *cgoAllocMap + reff7d249a0.primitivesGeneratedQueryWithRasterizerDiscard, cprimitivesGeneratedQueryWithRasterizerDiscard_allocs = (C.VkBool32)(x.PrimitivesGeneratedQueryWithRasterizerDiscard), cgoAllocsUnknown + allocsf7d249a0.Borrow(cprimitivesGeneratedQueryWithRasterizerDiscard_allocs) + + var cprimitivesGeneratedQueryWithNonZeroStreams_allocs *cgoAllocMap + reff7d249a0.primitivesGeneratedQueryWithNonZeroStreams, cprimitivesGeneratedQueryWithNonZeroStreams_allocs = (C.VkBool32)(x.PrimitivesGeneratedQueryWithNonZeroStreams), cgoAllocsUnknown + allocsf7d249a0.Borrow(cprimitivesGeneratedQueryWithNonZeroStreams_allocs) + + x.reff7d249a0 = reff7d249a0 + x.allocsf7d249a0 = allocsf7d249a0 + return reff7d249a0, allocsf7d249a0 } // 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 PhysicalDevicePrimitivesGeneratedQueryFeatures) PassValue() (C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, *cgoAllocMap) { + if x.reff7d249a0 != nil { + return *x.reff7d249a0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37496,90 +62636,92 @@ 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 *PhysicalDevicePrimitivesGeneratedQueryFeatures) Deref() { + if x.reff7d249a0 == 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.reff7d249a0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7d249a0.pNext)) + x.PrimitivesGeneratedQuery = (Bool32)(x.reff7d249a0.primitivesGeneratedQuery) + x.PrimitivesGeneratedQueryWithRasterizerDiscard = (Bool32)(x.reff7d249a0.primitivesGeneratedQueryWithRasterizerDiscard) + x.PrimitivesGeneratedQueryWithNonZeroStreams = (Bool32)(x.reff7d249a0.primitivesGeneratedQueryWithNonZeroStreams) } -// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT in C. +// allocPhysicalDeviceImageViewMinLodFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageViewMinLodFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceImageViewMinLodFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewMinLodFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) +const sizeOfPhysicalDeviceImageViewMinLodFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewMinLodFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { +func (x *PhysicalDeviceImageViewMinLodFeatures) Ref() *C.VkPhysicalDeviceImageViewMinLodFeaturesEXT { if x == nil { return nil } - return x.ref5f061d2a + return x.refac392a2f } // Free invokes alloc map'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 *PhysicalDeviceImageViewMinLodFeatures) Free() { + if x != nil && x.allocsac392a2f != nil { + x.allocsac392a2f.(*cgoAllocMap).Free() + x.refac392a2f = nil } } -// NewCalibratedTimestampInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImageViewMinLodFeaturesRef creates a new 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 NewPhysicalDeviceImageViewMinLodFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageViewMinLodFeatures { if ref == nil { return nil } - obj := new(CalibratedTimestampInfo) - obj.ref5f061d2a = (*C.VkCalibratedTimestampInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImageViewMinLodFeatures) + obj.refac392a2f = (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceImageViewMinLodFeatures) PassRef() (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5f061d2a != nil { - return x.ref5f061d2a, nil + } else if x.refac392a2f != nil { + return x.refac392a2f, nil } - mem5f061d2a := allocCalibratedTimestampInfoMemory(1) - ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) - allocs5f061d2a := new(cgoAllocMap) - allocs5f061d2a.Add(mem5f061d2a) + memac392a2f := allocPhysicalDeviceImageViewMinLodFeaturesMemory(1) + refac392a2f := (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT)(memac392a2f) + allocsac392a2f := new(cgoAllocMap) + allocsac392a2f.Add(memac392a2f) var csType_allocs *cgoAllocMap - ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5f061d2a.Borrow(csType_allocs) + refac392a2f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsac392a2f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5f061d2a.Borrow(cpNext_allocs) + refac392a2f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsac392a2f.Borrow(cpNext_allocs) - var ctimeDomain_allocs *cgoAllocMap - ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown - allocs5f061d2a.Borrow(ctimeDomain_allocs) + var cminLod_allocs *cgoAllocMap + refac392a2f.minLod, cminLod_allocs = (C.VkBool32)(x.MinLod), cgoAllocsUnknown + allocsac392a2f.Borrow(cminLod_allocs) - x.ref5f061d2a = ref5f061d2a - x.allocs5f061d2a = allocs5f061d2a - return ref5f061d2a, allocs5f061d2a + x.refac392a2f = refac392a2f + x.allocsac392a2f = allocsac392a2f + return refac392a2f, allocsac392a2f } // 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 PhysicalDeviceImageViewMinLodFeatures) PassValue() (C.VkPhysicalDeviceImageViewMinLodFeaturesEXT, *cgoAllocMap) { + if x.refac392a2f != nil { + return *x.refac392a2f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37587,142 +62729,90 @@ 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 *PhysicalDeviceImageViewMinLodFeatures) Deref() { + if x.refac392a2f == 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.refac392a2f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac392a2f.pNext)) + x.MinLod = (Bool32)(x.refac392a2f.minLod) } -// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD in C. +// allocImageViewMinLodCreateInfoMemory allocates memory for type C.VkImageViewMinLodCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocImageViewMinLodCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewMinLodCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) +const sizeOfImageViewMinLodCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewMinLodCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { +func (x *ImageViewMinLodCreateInfo) Ref() *C.VkImageViewMinLodCreateInfoEXT { if x == nil { return nil } - return x.refde4b3b09 + return x.ref25a88d90 } // Free invokes alloc map'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 *ImageViewMinLodCreateInfo) Free() { + if x != nil && x.allocs25a88d90 != nil { + x.allocs25a88d90.(*cgoAllocMap).Free() + x.ref25a88d90 = nil } } -// NewPhysicalDeviceShaderCorePropertiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageViewMinLodCreateInfoRef creates a new 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 NewImageViewMinLodCreateInfoRef(ref unsafe.Pointer) *ImageViewMinLodCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderCorePropertiesAMD) - obj.refde4b3b09 = (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(unsafe.Pointer(ref)) + obj := new(ImageViewMinLodCreateInfo) + obj.ref25a88d90 = (*C.VkImageViewMinLodCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *ImageViewMinLodCreateInfo) PassRef() (*C.VkImageViewMinLodCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refde4b3b09 != nil { - return x.refde4b3b09, nil + } else if x.ref25a88d90 != nil { + return x.ref25a88d90, nil } - memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) - refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) - allocsde4b3b09 := new(cgoAllocMap) - allocsde4b3b09.Add(memde4b3b09) + mem25a88d90 := allocImageViewMinLodCreateInfoMemory(1) + ref25a88d90 := (*C.VkImageViewMinLodCreateInfoEXT)(mem25a88d90) + allocs25a88d90 := new(cgoAllocMap) + allocs25a88d90.Add(mem25a88d90) var csType_allocs *cgoAllocMap - refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsde4b3b09.Borrow(csType_allocs) + ref25a88d90.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs25a88d90.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) - - 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) + ref25a88d90.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs25a88d90.Borrow(cpNext_allocs) - var cvgprAllocationGranularity_allocs *cgoAllocMap - refde4b3b09.vgprAllocationGranularity, cvgprAllocationGranularity_allocs = (C.uint32_t)(x.VgprAllocationGranularity), cgoAllocsUnknown - allocsde4b3b09.Borrow(cvgprAllocationGranularity_allocs) + var cminLod_allocs *cgoAllocMap + ref25a88d90.minLod, cminLod_allocs = (C.float)(x.MinLod), cgoAllocsUnknown + allocs25a88d90.Borrow(cminLod_allocs) - x.refde4b3b09 = refde4b3b09 - x.allocsde4b3b09 = allocsde4b3b09 - return refde4b3b09, allocsde4b3b09 + x.ref25a88d90 = ref25a88d90 + x.allocs25a88d90 = allocs25a88d90 + return ref25a88d90, allocs25a88d90 } // 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 ImageViewMinLodCreateInfo) PassValue() (C.VkImageViewMinLodCreateInfoEXT, *cgoAllocMap) { + if x.ref25a88d90 != nil { + return *x.ref25a88d90, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37730,103 +62820,90 @@ 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 *ImageViewMinLodCreateInfo) Deref() { + if x.ref25a88d90 == 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.ref25a88d90.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref25a88d90.pNext)) + x.MinLod = (float32)(x.ref25a88d90.minLod) } -// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT in C. +// allocPhysicalDeviceMultiDrawFeaturesMemory allocates memory for type C.VkPhysicalDeviceMultiDrawFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMultiDrawFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) +const sizeOfPhysicalDeviceMultiDrawFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiDrawFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { +func (x *PhysicalDeviceMultiDrawFeatures) Ref() *C.VkPhysicalDeviceMultiDrawFeaturesEXT { if x == nil { return nil } - return x.refbd6b5075 + return x.reff54fe1a4 } // Free invokes alloc map'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 *PhysicalDeviceMultiDrawFeatures) Free() { + if x != nil && x.allocsf54fe1a4 != nil { + x.allocsf54fe1a4.(*cgoAllocMap).Free() + x.reff54fe1a4 = nil } } -// NewPhysicalDeviceVertexAttributeDivisorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMultiDrawFeaturesRef creates a new 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 NewPhysicalDeviceMultiDrawFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMultiDrawFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorProperties) - obj.refbd6b5075 = (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMultiDrawFeatures) + obj.reff54fe1a4 = (*C.VkPhysicalDeviceMultiDrawFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceMultiDrawFeatures) PassRef() (*C.VkPhysicalDeviceMultiDrawFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbd6b5075 != nil { - return x.refbd6b5075, nil + } else if x.reff54fe1a4 != nil { + return x.reff54fe1a4, nil } - membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) - refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) - allocsbd6b5075 := new(cgoAllocMap) - allocsbd6b5075.Add(membd6b5075) + memf54fe1a4 := allocPhysicalDeviceMultiDrawFeaturesMemory(1) + reff54fe1a4 := (*C.VkPhysicalDeviceMultiDrawFeaturesEXT)(memf54fe1a4) + allocsf54fe1a4 := new(cgoAllocMap) + allocsf54fe1a4.Add(memf54fe1a4) var csType_allocs *cgoAllocMap - refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbd6b5075.Borrow(csType_allocs) + reff54fe1a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf54fe1a4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbd6b5075.Borrow(cpNext_allocs) + reff54fe1a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf54fe1a4.Borrow(cpNext_allocs) - var cmaxVertexAttribDivisor_allocs *cgoAllocMap - refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown - allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) + var cmultiDraw_allocs *cgoAllocMap + reff54fe1a4.multiDraw, cmultiDraw_allocs = (C.VkBool32)(x.MultiDraw), cgoAllocsUnknown + allocsf54fe1a4.Borrow(cmultiDraw_allocs) - x.refbd6b5075 = refbd6b5075 - x.allocsbd6b5075 = allocsbd6b5075 - return refbd6b5075, allocsbd6b5075 + x.reff54fe1a4 = reff54fe1a4 + x.allocsf54fe1a4 = allocsf54fe1a4 + return reff54fe1a4, allocsf54fe1a4 } // 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 PhysicalDeviceMultiDrawFeatures) PassValue() (C.VkPhysicalDeviceMultiDrawFeaturesEXT, *cgoAllocMap) { + if x.reff54fe1a4 != nil { + return *x.reff54fe1a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37834,86 +62911,90 @@ 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 *PhysicalDeviceMultiDrawFeatures) Deref() { + if x.reff54fe1a4 == 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.reff54fe1a4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff54fe1a4.pNext)) + x.MultiDraw = (Bool32)(x.reff54fe1a4.multiDraw) } -// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT in C. +// allocPhysicalDeviceMultiDrawPropertiesMemory allocates memory for type C.VkPhysicalDeviceMultiDrawPropertiesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceMultiDrawPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawPropertiesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) +const sizeOfPhysicalDeviceMultiDrawPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiDrawPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { +func (x *PhysicalDeviceMultiDrawProperties) Ref() *C.VkPhysicalDeviceMultiDrawPropertiesEXT { if x == nil { return nil } - return x.refd64d4396 + return x.ref1116c280 } // Free invokes alloc map'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 *PhysicalDeviceMultiDrawProperties) Free() { + if x != nil && x.allocs1116c280 != nil { + x.allocs1116c280.(*cgoAllocMap).Free() + x.ref1116c280 = nil } } -// NewVertexInputBindingDivisorDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMultiDrawPropertiesRef creates a new 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 NewPhysicalDeviceMultiDrawPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMultiDrawProperties { if ref == nil { return nil } - obj := new(VertexInputBindingDivisorDescription) - obj.refd64d4396 = (*C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMultiDrawProperties) + obj.ref1116c280 = (*C.VkPhysicalDeviceMultiDrawPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceMultiDrawProperties) PassRef() (*C.VkPhysicalDeviceMultiDrawPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd64d4396 != nil { - return x.refd64d4396, nil + } else if x.ref1116c280 != nil { + return x.ref1116c280, nil } - memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) - refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) - allocsd64d4396 := new(cgoAllocMap) - allocsd64d4396.Add(memd64d4396) + mem1116c280 := allocPhysicalDeviceMultiDrawPropertiesMemory(1) + ref1116c280 := (*C.VkPhysicalDeviceMultiDrawPropertiesEXT)(mem1116c280) + allocs1116c280 := new(cgoAllocMap) + allocs1116c280.Add(mem1116c280) - var cbinding_allocs *cgoAllocMap - refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsd64d4396.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + ref1116c280.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1116c280.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 + ref1116c280.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1116c280.Borrow(cpNext_allocs) - x.refd64d4396 = refd64d4396 - x.allocsd64d4396 = allocsd64d4396 - return refd64d4396, allocsd64d4396 + var cmaxMultiDrawCount_allocs *cgoAllocMap + ref1116c280.maxMultiDrawCount, cmaxMultiDrawCount_allocs = (C.uint32_t)(x.MaxMultiDrawCount), cgoAllocsUnknown + allocs1116c280.Borrow(cmaxMultiDrawCount_allocs) + + x.ref1116c280 = ref1116c280 + x.allocs1116c280 = allocs1116c280 + return ref1116c280, allocs1116c280 } // 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 PhysicalDeviceMultiDrawProperties) PassValue() (C.VkPhysicalDeviceMultiDrawPropertiesEXT, *cgoAllocMap) { + if x.ref1116c280 != nil { + return *x.ref1116c280, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37921,131 +63002,86 @@ 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 *PhysicalDeviceMultiDrawProperties) Deref() { + if x.ref1116c280 == nil { return } - x.Binding = (uint32)(x.refd64d4396.binding) - x.Divisor = (uint32)(x.refd64d4396.divisor) + x.SType = (StructureType)(x.ref1116c280.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1116c280.pNext)) + x.MaxMultiDrawCount = (uint32)(x.ref1116c280.maxMultiDrawCount) } -// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT in C. +// allocMultiDrawInfoMemory allocates memory for type C.VkMultiDrawInfoEXT 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()) +func allocMultiDrawInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } 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 sizeOfMultiDrawInfoValue = unsafe.Sizeof([1]C.VkMultiDrawInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { +func (x *MultiDrawInfo) Ref() *C.VkMultiDrawInfoEXT { if x == nil { return nil } - return x.ref86096bfd + return x.refc79896ab } // Free invokes alloc map'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 *MultiDrawInfo) Free() { + if x != nil && x.allocsc79896ab != nil { + x.allocsc79896ab.(*cgoAllocMap).Free() + x.refc79896ab = nil } } -// NewPipelineVertexInputDivisorStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMultiDrawInfoRef creates a new 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 NewMultiDrawInfoRef(ref unsafe.Pointer) *MultiDrawInfo { if ref == nil { return nil } - obj := new(PipelineVertexInputDivisorStateCreateInfo) - obj.ref86096bfd = (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(MultiDrawInfo) + obj.refc79896ab = (*C.VkMultiDrawInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *MultiDrawInfo) PassRef() (*C.VkMultiDrawInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86096bfd != nil { - return x.ref86096bfd, nil + } else if x.refc79896ab != nil { + return x.refc79896ab, nil } - mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) - ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) - allocs86096bfd := new(cgoAllocMap) - allocs86096bfd.Add(mem86096bfd) - - var csType_allocs *cgoAllocMap - ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86096bfd.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref86096bfd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86096bfd.Borrow(cpNext_allocs) + memc79896ab := allocMultiDrawInfoMemory(1) + refc79896ab := (*C.VkMultiDrawInfoEXT)(memc79896ab) + allocsc79896ab := new(cgoAllocMap) + allocsc79896ab.Add(memc79896ab) - var cvertexBindingDivisorCount_allocs *cgoAllocMap - ref86096bfd.vertexBindingDivisorCount, cvertexBindingDivisorCount_allocs = (C.uint32_t)(x.VertexBindingDivisorCount), cgoAllocsUnknown - allocs86096bfd.Borrow(cvertexBindingDivisorCount_allocs) + var cfirstVertex_allocs *cgoAllocMap + refc79896ab.firstVertex, cfirstVertex_allocs = (C.uint32_t)(x.FirstVertex), cgoAllocsUnknown + allocsc79896ab.Borrow(cfirstVertex_allocs) - var cpVertexBindingDivisors_allocs *cgoAllocMap - ref86096bfd.pVertexBindingDivisors, cpVertexBindingDivisors_allocs = unpackSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors) - allocs86096bfd.Borrow(cpVertexBindingDivisors_allocs) + var cvertexCount_allocs *cgoAllocMap + refc79896ab.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown + allocsc79896ab.Borrow(cvertexCount_allocs) - x.ref86096bfd = ref86096bfd - x.allocs86096bfd = allocs86096bfd - return ref86096bfd, allocs86096bfd + x.refc79896ab = refc79896ab + x.allocsc79896ab = allocsc79896ab + return refc79896ab, allocsc79896ab } // 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 MultiDrawInfo) PassValue() (C.VkMultiDrawInfoEXT, *cgoAllocMap) { + if x.refc79896ab != nil { + return *x.refc79896ab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38053,95 +63089,89 @@ 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 *MultiDrawInfo) Deref() { + if x.refc79896ab == 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.FirstVertex = (uint32)(x.refc79896ab.firstVertex) + x.VertexCount = (uint32)(x.refc79896ab.vertexCount) } -// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT in C. +// allocMultiDrawIndexedInfoMemory allocates memory for type C.VkMultiDrawIndexedInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocMultiDrawIndexedInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawIndexedInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) +const sizeOfMultiDrawIndexedInfoValue = unsafe.Sizeof([1]C.VkMultiDrawIndexedInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +func (x *MultiDrawIndexedInfo) Ref() *C.VkMultiDrawIndexedInfoEXT { if x == nil { return nil } - return x.refffe7619a + return x.ref2e569a13 } // Free invokes alloc map'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 *MultiDrawIndexedInfo) Free() { + if x != nil && x.allocs2e569a13 != nil { + x.allocs2e569a13.(*cgoAllocMap).Free() + x.ref2e569a13 = nil } } -// NewPhysicalDeviceVertexAttributeDivisorFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMultiDrawIndexedInfoRef creates a new 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 NewMultiDrawIndexedInfoRef(ref unsafe.Pointer) *MultiDrawIndexedInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorFeatures) - obj.refffe7619a = (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(MultiDrawIndexedInfo) + obj.ref2e569a13 = (*C.VkMultiDrawIndexedInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *MultiDrawIndexedInfo) PassRef() (*C.VkMultiDrawIndexedInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe7619a != nil { - return x.refffe7619a, nil + } else if x.ref2e569a13 != nil { + return x.ref2e569a13, nil } - memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) - refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) - allocsffe7619a := new(cgoAllocMap) - allocsffe7619a.Add(memffe7619a) - - var csType_allocs *cgoAllocMap - refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe7619a.Borrow(csType_allocs) + mem2e569a13 := allocMultiDrawIndexedInfoMemory(1) + ref2e569a13 := (*C.VkMultiDrawIndexedInfoEXT)(mem2e569a13) + allocs2e569a13 := new(cgoAllocMap) + allocs2e569a13.Add(mem2e569a13) - var cpNext_allocs *cgoAllocMap - refffe7619a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffe7619a.Borrow(cpNext_allocs) + var cfirstIndex_allocs *cgoAllocMap + ref2e569a13.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown + allocs2e569a13.Borrow(cfirstIndex_allocs) - var cvertexAttributeInstanceRateDivisor_allocs *cgoAllocMap - refffe7619a.vertexAttributeInstanceRateDivisor, cvertexAttributeInstanceRateDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateDivisor), cgoAllocsUnknown - allocsffe7619a.Borrow(cvertexAttributeInstanceRateDivisor_allocs) + var cindexCount_allocs *cgoAllocMap + ref2e569a13.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown + allocs2e569a13.Borrow(cindexCount_allocs) - var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap - refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown - allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) + var cvertexOffset_allocs *cgoAllocMap + ref2e569a13.vertexOffset, cvertexOffset_allocs = (C.int32_t)(x.VertexOffset), cgoAllocsUnknown + allocs2e569a13.Borrow(cvertexOffset_allocs) - x.refffe7619a = refffe7619a - x.allocsffe7619a = allocsffe7619a - return refffe7619a, allocsffe7619a + x.ref2e569a13 = ref2e569a13 + x.allocs2e569a13 = allocs2e569a13 + return ref2e569a13, allocs2e569a13 } // 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 MultiDrawIndexedInfo) PassValue() (C.VkMultiDrawIndexedInfoEXT, *cgoAllocMap) { + if x.ref2e569a13 != nil { + return *x.ref2e569a13, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38149,95 +63179,94 @@ 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 *MultiDrawIndexedInfo) Deref() { + if x.ref2e569a13 == 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.FirstIndex = (uint32)(x.ref2e569a13.firstIndex) + x.IndexCount = (uint32)(x.ref2e569a13.indexCount) + x.VertexOffset = (int32)(x.ref2e569a13.vertexOffset) } -// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV in C. +// allocPhysicalDeviceImage2DViewOf3DFeaturesMemory allocates memory for type C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceImage2DViewOf3DFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImage2DViewOf3DFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) +const sizeOfPhysicalDeviceImage2DViewOf3DFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { +func (x *PhysicalDeviceImage2DViewOf3DFeatures) Ref() *C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { if x == nil { return nil } - return x.reff31d599c + return x.ref7b20322b } // Free invokes alloc map'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 *PhysicalDeviceImage2DViewOf3DFeatures) Free() { + if x != nil && x.allocs7b20322b != nil { + x.allocs7b20322b.(*cgoAllocMap).Free() + x.ref7b20322b = nil } } -// NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImage2DViewOf3DFeaturesRef creates a new 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 NewPhysicalDeviceImage2DViewOf3DFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImage2DViewOf3DFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceComputeShaderDerivativesFeaturesNV) - obj.reff31d599c = (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImage2DViewOf3DFeatures) + obj.ref7b20322b = (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceImage2DViewOf3DFeatures) PassRef() (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff31d599c != nil { - return x.reff31d599c, nil + } else if x.ref7b20322b != nil { + return x.ref7b20322b, nil } - memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) - reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) - allocsf31d599c := new(cgoAllocMap) - allocsf31d599c.Add(memf31d599c) + mem7b20322b := allocPhysicalDeviceImage2DViewOf3DFeaturesMemory(1) + ref7b20322b := (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)(mem7b20322b) + allocs7b20322b := new(cgoAllocMap) + allocs7b20322b.Add(mem7b20322b) var csType_allocs *cgoAllocMap - reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf31d599c.Borrow(csType_allocs) + ref7b20322b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7b20322b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf31d599c.Borrow(cpNext_allocs) + ref7b20322b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7b20322b.Borrow(cpNext_allocs) - var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) + var cimage2DViewOf3D_allocs *cgoAllocMap + ref7b20322b.image2DViewOf3D, cimage2DViewOf3D_allocs = (C.VkBool32)(x.Image2DViewOf3D), cgoAllocsUnknown + allocs7b20322b.Borrow(cimage2DViewOf3D_allocs) - var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) + var csampler2DViewOf3D_allocs *cgoAllocMap + ref7b20322b.sampler2DViewOf3D, csampler2DViewOf3D_allocs = (C.VkBool32)(x.Sampler2DViewOf3D), cgoAllocsUnknown + allocs7b20322b.Borrow(csampler2DViewOf3D_allocs) - x.reff31d599c = reff31d599c - x.allocsf31d599c = allocsf31d599c - return reff31d599c, allocsf31d599c + x.ref7b20322b = ref7b20322b + x.allocs7b20322b = allocs7b20322b + return ref7b20322b, allocs7b20322b } // 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 PhysicalDeviceImage2DViewOf3DFeatures) PassValue() (C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, *cgoAllocMap) { + if x.ref7b20322b != nil { + return *x.ref7b20322b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38245,95 +63274,95 @@ 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 *PhysicalDeviceImage2DViewOf3DFeatures) Deref() { + if x.ref7b20322b == 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.ref7b20322b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7b20322b.pNext)) + x.Image2DViewOf3D = (Bool32)(x.ref7b20322b.image2DViewOf3D) + x.Sampler2DViewOf3D = (Bool32)(x.ref7b20322b.sampler2DViewOf3D) } -// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV in C. +// allocPhysicalDeviceBorderColorSwizzleFeaturesMemory allocates memory for type C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceBorderColorSwizzleFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBorderColorSwizzleFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) +const sizeOfPhysicalDeviceBorderColorSwizzleFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { +func (x *PhysicalDeviceBorderColorSwizzleFeatures) Ref() *C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { if x == nil { return nil } - return x.ref802b98a + return x.ref8f8ce94c } // Free invokes alloc map'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 *PhysicalDeviceBorderColorSwizzleFeatures) Free() { + if x != nil && x.allocs8f8ce94c != nil { + x.allocs8f8ce94c.(*cgoAllocMap).Free() + x.ref8f8ce94c = nil } } -// NewPhysicalDeviceMeshShaderFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceBorderColorSwizzleFeaturesRef creates a new 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 NewPhysicalDeviceBorderColorSwizzleFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBorderColorSwizzleFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderFeaturesNV) - obj.ref802b98a = (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceBorderColorSwizzleFeatures) + obj.ref8f8ce94c = (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceBorderColorSwizzleFeatures) PassRef() (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref802b98a != nil { - return x.ref802b98a, nil + } else if x.ref8f8ce94c != nil { + return x.ref8f8ce94c, nil } - mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) - ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) - allocs802b98a := new(cgoAllocMap) - allocs802b98a.Add(mem802b98a) + mem8f8ce94c := allocPhysicalDeviceBorderColorSwizzleFeaturesMemory(1) + ref8f8ce94c := (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT)(mem8f8ce94c) + allocs8f8ce94c := new(cgoAllocMap) + allocs8f8ce94c.Add(mem8f8ce94c) var csType_allocs *cgoAllocMap - ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs802b98a.Borrow(csType_allocs) + ref8f8ce94c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8f8ce94c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs802b98a.Borrow(cpNext_allocs) + ref8f8ce94c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8f8ce94c.Borrow(cpNext_allocs) - var ctaskShader_allocs *cgoAllocMap - ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown - allocs802b98a.Borrow(ctaskShader_allocs) + var cborderColorSwizzle_allocs *cgoAllocMap + ref8f8ce94c.borderColorSwizzle, cborderColorSwizzle_allocs = (C.VkBool32)(x.BorderColorSwizzle), cgoAllocsUnknown + allocs8f8ce94c.Borrow(cborderColorSwizzle_allocs) - var cmeshShader_allocs *cgoAllocMap - ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown - allocs802b98a.Borrow(cmeshShader_allocs) + var cborderColorSwizzleFromImage_allocs *cgoAllocMap + ref8f8ce94c.borderColorSwizzleFromImage, cborderColorSwizzleFromImage_allocs = (C.VkBool32)(x.BorderColorSwizzleFromImage), cgoAllocsUnknown + allocs8f8ce94c.Borrow(cborderColorSwizzleFromImage_allocs) - x.ref802b98a = ref802b98a - x.allocs802b98a = allocs802b98a - return ref802b98a, allocs802b98a + x.ref8f8ce94c = ref8f8ce94c + x.allocs8f8ce94c = allocs8f8ce94c + return ref8f8ce94c, allocs8f8ce94c } // 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 PhysicalDeviceBorderColorSwizzleFeatures) PassValue() (C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, *cgoAllocMap) { + if x.ref8f8ce94c != nil { + return *x.ref8f8ce94c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38341,139 +63370,95 @@ 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 *PhysicalDeviceBorderColorSwizzleFeatures) Deref() { + if x.ref8f8ce94c == 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.ref8f8ce94c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8f8ce94c.pNext)) + x.BorderColorSwizzle = (Bool32)(x.ref8f8ce94c.borderColorSwizzle) + x.BorderColorSwizzleFromImage = (Bool32)(x.ref8f8ce94c.borderColorSwizzleFromImage) } -// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV in C. +// allocSamplerBorderColorComponentMappingCreateInfoMemory allocates memory for type C.VkSamplerBorderColorComponentMappingCreateInfoEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSamplerBorderColorComponentMappingCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerBorderColorComponentMappingCreateInfoValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) +const sizeOfSamplerBorderColorComponentMappingCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerBorderColorComponentMappingCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { +func (x *SamplerBorderColorComponentMappingCreateInfo) Ref() *C.VkSamplerBorderColorComponentMappingCreateInfoEXT { if x == nil { return nil } - return x.ref2ee3ccb7 + return x.ref652e9666 } // Free invokes alloc map'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 *SamplerBorderColorComponentMappingCreateInfo) Free() { + if x != nil && x.allocs652e9666 != nil { + x.allocs652e9666.(*cgoAllocMap).Free() + x.ref652e9666 = nil } } -// NewPhysicalDeviceMeshShaderPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSamplerBorderColorComponentMappingCreateInfoRef creates a new 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 NewSamplerBorderColorComponentMappingCreateInfoRef(ref unsafe.Pointer) *SamplerBorderColorComponentMappingCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderPropertiesNV) - obj.ref2ee3ccb7 = (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(unsafe.Pointer(ref)) + obj := new(SamplerBorderColorComponentMappingCreateInfo) + obj.ref652e9666 = (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT)(unsafe.Pointer(ref)) return obj } -// PassRef returns the 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) { - if x == nil { - return nil, nil - } else if x.ref2ee3ccb7 != nil { - return x.ref2ee3ccb7, nil - } - mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) - ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) - allocs2ee3ccb7 := new(cgoAllocMap) - allocs2ee3ccb7.Add(mem2ee3ccb7) - - var csType_allocs *cgoAllocMap - ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2ee3ccb7.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) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerBorderColorComponentMappingCreateInfo) PassRef() (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref652e9666 != nil { + return x.ref652e9666, nil + } + mem652e9666 := allocSamplerBorderColorComponentMappingCreateInfoMemory(1) + ref652e9666 := (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT)(mem652e9666) + allocs652e9666 := new(cgoAllocMap) + allocs652e9666.Add(mem652e9666) - var cmaxMeshOutputPrimitives_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshOutputPrimitives, cmaxMeshOutputPrimitives_allocs = (C.uint32_t)(x.MaxMeshOutputPrimitives), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshOutputPrimitives_allocs) + var csType_allocs *cgoAllocMap + ref652e9666.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs652e9666.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 + ref652e9666.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs652e9666.Borrow(cpNext_allocs) - var cmeshOutputPerVertexGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerVertexGranularity, cmeshOutputPerVertexGranularity_allocs = (C.uint32_t)(x.MeshOutputPerVertexGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerVertexGranularity_allocs) + var ccomponents_allocs *cgoAllocMap + ref652e9666.components, ccomponents_allocs = x.Components.PassValue() + allocs652e9666.Borrow(ccomponents_allocs) - var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) + var csrgb_allocs *cgoAllocMap + ref652e9666.srgb, csrgb_allocs = (C.VkBool32)(x.Srgb), cgoAllocsUnknown + allocs652e9666.Borrow(csrgb_allocs) - x.ref2ee3ccb7 = ref2ee3ccb7 - x.allocs2ee3ccb7 = allocs2ee3ccb7 - return ref2ee3ccb7, allocs2ee3ccb7 + x.ref652e9666 = ref652e9666 + x.allocs652e9666 = allocs652e9666 + return ref652e9666, allocs652e9666 } // 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 SamplerBorderColorComponentMappingCreateInfo) PassValue() (C.VkSamplerBorderColorComponentMappingCreateInfoEXT, *cgoAllocMap) { + if x.ref652e9666 != nil { + return *x.ref652e9666, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38481,98 +63466,91 @@ 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 *SamplerBorderColorComponentMappingCreateInfo) Deref() { + if x.ref652e9666 == 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.ref652e9666.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref652e9666.pNext)) + x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref652e9666.components)) + x.Srgb = (Bool32)(x.ref652e9666.srgb) } -// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV in C. +// allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory allocates memory for type C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePageableDeviceLocalMemoryFeaturesValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) +const sizeOfPhysicalDevicePageableDeviceLocalMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { +func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) Ref() *C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { if x == nil { return nil } - return x.refda6c46ea + return x.ref837987f8 } // Free invokes alloc map'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 *PhysicalDevicePageableDeviceLocalMemoryFeatures) Free() { + if x != nil && x.allocs837987f8 != nil { + x.allocs837987f8.(*cgoAllocMap).Free() + x.ref837987f8 = nil } } -// NewDrawMeshTasksIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePageableDeviceLocalMemoryFeaturesRef creates a new 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 NewPhysicalDevicePageableDeviceLocalMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePageableDeviceLocalMemoryFeatures { if ref == nil { return nil } - obj := new(DrawMeshTasksIndirectCommandNV) - obj.refda6c46ea = (*C.VkDrawMeshTasksIndirectCommandNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePageableDeviceLocalMemoryFeatures) + obj.ref837987f8 = (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDevicePageableDeviceLocalMemoryFeatures) PassRef() (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refda6c46ea != nil { - return x.refda6c46ea, nil + } else if x.ref837987f8 != nil { + return x.ref837987f8, nil } - memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) - refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) - allocsda6c46ea := new(cgoAllocMap) - allocsda6c46ea.Add(memda6c46ea) + mem837987f8 := allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory(1) + ref837987f8 := (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)(mem837987f8) + allocs837987f8 := new(cgoAllocMap) + allocs837987f8.Add(mem837987f8) - var ctaskCount_allocs *cgoAllocMap - refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown - allocsda6c46ea.Borrow(ctaskCount_allocs) + var csType_allocs *cgoAllocMap + ref837987f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs837987f8.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 + ref837987f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs837987f8.Borrow(cpNext_allocs) - x.refda6c46ea = refda6c46ea - x.allocsda6c46ea = allocsda6c46ea - return refda6c46ea, allocsda6c46ea + var cpageableDeviceLocalMemory_allocs *cgoAllocMap + ref837987f8.pageableDeviceLocalMemory, cpageableDeviceLocalMemory_allocs = (C.VkBool32)(x.PageableDeviceLocalMemory), cgoAllocsUnknown + allocs837987f8.Borrow(cpageableDeviceLocalMemory_allocs) + + x.ref837987f8 = ref837987f8 + x.allocs837987f8 = allocs837987f8 + return ref837987f8, allocs837987f8 } // 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 PhysicalDevicePageableDeviceLocalMemoryFeatures) PassValue() (C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, *cgoAllocMap) { + if x.ref837987f8 != nil { + return *x.ref837987f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38580,89 +63558,90 @@ 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 *PhysicalDevicePageableDeviceLocalMemoryFeatures) Deref() { + if x.ref837987f8 == nil { return } - x.TaskCount = (uint32)(x.refda6c46ea.taskCount) - x.FirstTask = (uint32)(x.refda6c46ea.firstTask) + x.SType = (StructureType)(x.ref837987f8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref837987f8.pNext)) + x.PageableDeviceLocalMemory = (Bool32)(x.ref837987f8.pageableDeviceLocalMemory) } -// allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV in C. +// allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory allocates memory for type C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV{}) +const sizeOfPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { +func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Ref() *C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { if x == nil { return nil } - return x.ref191b97c6 + return x.refa6b51ca7 } // Free invokes alloc map'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 *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Free() { + if x != nil && x.allocsa6b51ca7 != nil { + x.allocsa6b51ca7.(*cgoAllocMap).Free() + x.refa6b51ca7 = nil } } -// NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDescriptorSetHostMappingFeaturesVALVERef creates a new 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 NewPhysicalDeviceDescriptorSetHostMappingFeaturesVALVERef(ref unsafe.Pointer) *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShaderBarycentricFeaturesNV) - obj.ref191b97c6 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) + obj.refa6b51ca7 = (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) PassRef() (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref191b97c6 != nil { - return x.ref191b97c6, nil + } else if x.refa6b51ca7 != nil { + return x.refa6b51ca7, nil } - mem191b97c6 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(1) - ref191b97c6 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(mem191b97c6) - allocs191b97c6 := new(cgoAllocMap) - allocs191b97c6.Add(mem191b97c6) + mema6b51ca7 := allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory(1) + refa6b51ca7 := (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)(mema6b51ca7) + allocsa6b51ca7 := new(cgoAllocMap) + allocsa6b51ca7.Add(mema6b51ca7) var csType_allocs *cgoAllocMap - ref191b97c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs191b97c6.Borrow(csType_allocs) + refa6b51ca7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa6b51ca7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref191b97c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs191b97c6.Borrow(cpNext_allocs) + refa6b51ca7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa6b51ca7.Borrow(cpNext_allocs) - var cfragmentShaderBarycentric_allocs *cgoAllocMap - ref191b97c6.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown - allocs191b97c6.Borrow(cfragmentShaderBarycentric_allocs) + var cdescriptorSetHostMapping_allocs *cgoAllocMap + refa6b51ca7.descriptorSetHostMapping, cdescriptorSetHostMapping_allocs = (C.VkBool32)(x.DescriptorSetHostMapping), cgoAllocsUnknown + allocsa6b51ca7.Borrow(cdescriptorSetHostMapping_allocs) - x.ref191b97c6 = ref191b97c6 - x.allocs191b97c6 = allocs191b97c6 - return ref191b97c6, allocs191b97c6 + x.refa6b51ca7 = refa6b51ca7 + x.allocsa6b51ca7 = allocsa6b51ca7 + return refa6b51ca7, allocsa6b51ca7 } // 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 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) PassValue() (C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, *cgoAllocMap) { + if x.refa6b51ca7 != nil { + return *x.refa6b51ca7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38670,90 +63649,94 @@ 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 *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Deref() { + if x.refa6b51ca7 == 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.refa6b51ca7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6b51ca7.pNext)) + x.DescriptorSetHostMapping = (Bool32)(x.refa6b51ca7.descriptorSetHostMapping) } -// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV in C. +// allocDescriptorSetBindingReferenceVALVEMemory allocates memory for type C.VkDescriptorSetBindingReferenceVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDescriptorSetBindingReferenceVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetBindingReferenceVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) +const sizeOfDescriptorSetBindingReferenceVALVEValue = unsafe.Sizeof([1]C.VkDescriptorSetBindingReferenceVALVE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { +func (x *DescriptorSetBindingReferenceVALVE) Ref() *C.VkDescriptorSetBindingReferenceVALVE { if x == nil { return nil } - return x.ref9d61e1b2 + return x.refb8b72026 } // Free invokes alloc map'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 *DescriptorSetBindingReferenceVALVE) Free() { + if x != nil && x.allocsb8b72026 != nil { + x.allocsb8b72026.(*cgoAllocMap).Free() + x.refb8b72026 = nil } } -// NewPhysicalDeviceShaderImageFootprintFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDescriptorSetBindingReferenceVALVERef creates a new 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 NewDescriptorSetBindingReferenceVALVERef(ref unsafe.Pointer) *DescriptorSetBindingReferenceVALVE { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderImageFootprintFeaturesNV) - obj.ref9d61e1b2 = (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(unsafe.Pointer(ref)) + obj := new(DescriptorSetBindingReferenceVALVE) + obj.refb8b72026 = (*C.VkDescriptorSetBindingReferenceVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *DescriptorSetBindingReferenceVALVE) PassRef() (*C.VkDescriptorSetBindingReferenceVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9d61e1b2 != nil { - return x.ref9d61e1b2, nil + } else if x.refb8b72026 != nil { + return x.refb8b72026, nil } - mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) - ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) - allocs9d61e1b2 := new(cgoAllocMap) - allocs9d61e1b2.Add(mem9d61e1b2) + memb8b72026 := allocDescriptorSetBindingReferenceVALVEMemory(1) + refb8b72026 := (*C.VkDescriptorSetBindingReferenceVALVE)(memb8b72026) + allocsb8b72026 := new(cgoAllocMap) + allocsb8b72026.Add(memb8b72026) var csType_allocs *cgoAllocMap - ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9d61e1b2.Borrow(csType_allocs) + refb8b72026.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8b72026.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cpNext_allocs) + refb8b72026.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8b72026.Borrow(cpNext_allocs) - var cimageFootprint_allocs *cgoAllocMap - ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cimageFootprint_allocs) + var cdescriptorSetLayout_allocs *cgoAllocMap + refb8b72026.descriptorSetLayout, cdescriptorSetLayout_allocs = *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&x.DescriptorSetLayout)), cgoAllocsUnknown + allocsb8b72026.Borrow(cdescriptorSetLayout_allocs) - x.ref9d61e1b2 = ref9d61e1b2 - x.allocs9d61e1b2 = allocs9d61e1b2 - return ref9d61e1b2, allocs9d61e1b2 + var cbinding_allocs *cgoAllocMap + refb8b72026.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsb8b72026.Borrow(cbinding_allocs) + + x.refb8b72026 = refb8b72026 + x.allocsb8b72026 = allocsb8b72026 + return refb8b72026, allocsb8b72026 } // 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 DescriptorSetBindingReferenceVALVE) PassValue() (C.VkDescriptorSetBindingReferenceVALVE, *cgoAllocMap) { + if x.refb8b72026 != nil { + return *x.refb8b72026, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38761,94 +63744,95 @@ 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 *DescriptorSetBindingReferenceVALVE) Deref() { + if x.refb8b72026 == 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.refb8b72026.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8b72026.pNext)) + x.DescriptorSetLayout = *(*DescriptorSetLayout)(unsafe.Pointer(&x.refb8b72026.descriptorSetLayout)) + x.Binding = (uint32)(x.refb8b72026.binding) } -// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV in C. +// allocDescriptorSetLayoutHostMappingInfoVALVEMemory allocates memory for type C.VkDescriptorSetLayoutHostMappingInfoVALVE 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocDescriptorSetLayoutHostMappingInfoVALVEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutHostMappingInfoVALVEValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) +const sizeOfDescriptorSetLayoutHostMappingInfoVALVEValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutHostMappingInfoVALVE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { +func (x *DescriptorSetLayoutHostMappingInfoVALVE) Ref() *C.VkDescriptorSetLayoutHostMappingInfoVALVE { if x == nil { return nil } - return x.refa8715ba6 + return x.ref21a3fbe4 } // Free invokes alloc map'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 *DescriptorSetLayoutHostMappingInfoVALVE) Free() { + if x != nil && x.allocs21a3fbe4 != nil { + x.allocs21a3fbe4.(*cgoAllocMap).Free() + x.ref21a3fbe4 = nil } } -// NewPipelineViewportExclusiveScissorStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDescriptorSetLayoutHostMappingInfoVALVERef creates a new 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 NewDescriptorSetLayoutHostMappingInfoVALVERef(ref unsafe.Pointer) *DescriptorSetLayoutHostMappingInfoVALVE { if ref == nil { return nil } - obj := new(PipelineViewportExclusiveScissorStateCreateInfoNV) - obj.refa8715ba6 = (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(DescriptorSetLayoutHostMappingInfoVALVE) + obj.ref21a3fbe4 = (*C.VkDescriptorSetLayoutHostMappingInfoVALVE)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *DescriptorSetLayoutHostMappingInfoVALVE) PassRef() (*C.VkDescriptorSetLayoutHostMappingInfoVALVE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8715ba6 != nil { - return x.refa8715ba6, nil + } else if x.ref21a3fbe4 != nil { + return x.ref21a3fbe4, nil } - mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) - refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) - allocsa8715ba6 := new(cgoAllocMap) - allocsa8715ba6.Add(mema8715ba6) + mem21a3fbe4 := allocDescriptorSetLayoutHostMappingInfoVALVEMemory(1) + ref21a3fbe4 := (*C.VkDescriptorSetLayoutHostMappingInfoVALVE)(mem21a3fbe4) + allocs21a3fbe4 := new(cgoAllocMap) + allocs21a3fbe4.Add(mem21a3fbe4) var csType_allocs *cgoAllocMap - refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa8715ba6.Borrow(csType_allocs) + ref21a3fbe4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs21a3fbe4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa8715ba6.Borrow(cpNext_allocs) + ref21a3fbe4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs21a3fbe4.Borrow(cpNext_allocs) - var cexclusiveScissorCount_allocs *cgoAllocMap - refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown - allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) + var cdescriptorOffset_allocs *cgoAllocMap + ref21a3fbe4.descriptorOffset, cdescriptorOffset_allocs = (C.size_t)(x.DescriptorOffset), cgoAllocsUnknown + allocs21a3fbe4.Borrow(cdescriptorOffset_allocs) - var cpExclusiveScissors_allocs *cgoAllocMap - refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) - allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) + var cdescriptorSize_allocs *cgoAllocMap + ref21a3fbe4.descriptorSize, cdescriptorSize_allocs = (C.uint32_t)(x.DescriptorSize), cgoAllocsUnknown + allocs21a3fbe4.Borrow(cdescriptorSize_allocs) - x.refa8715ba6 = refa8715ba6 - x.allocsa8715ba6 = allocsa8715ba6 - return refa8715ba6, allocsa8715ba6 + x.ref21a3fbe4 = ref21a3fbe4 + x.allocs21a3fbe4 = allocs21a3fbe4 + return ref21a3fbe4, allocs21a3fbe4 } // 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 DescriptorSetLayoutHostMappingInfoVALVE) PassValue() (C.VkDescriptorSetLayoutHostMappingInfoVALVE, *cgoAllocMap) { + if x.ref21a3fbe4 != nil { + return *x.ref21a3fbe4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38856,91 +63840,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 *DescriptorSetLayoutHostMappingInfoVALVE) Deref() { + if x.ref21a3fbe4 == 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.ref21a3fbe4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref21a3fbe4.pNext)) + x.DescriptorOffset = (uint32)(x.ref21a3fbe4.descriptorOffset) + x.DescriptorSize = (uint32)(x.ref21a3fbe4.descriptorSize) } -// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV in C. +// allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) +const sizeOfPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { +func (x *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Ref() *C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { if x == nil { return nil } - return x.ref52c9fcfc + return x.refbc16fceb } // Free invokes alloc map'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 *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Free() { + if x != nil && x.allocsbc16fceb != nil { + x.allocsbc16fceb.(*cgoAllocMap).Free() + x.refbc16fceb = nil } } -// NewPhysicalDeviceExclusiveScissorFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMRef creates a new 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 NewPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { if ref == nil { return nil } - obj := new(PhysicalDeviceExclusiveScissorFeaturesNV) - obj.ref52c9fcfc = (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) + obj.refbc16fceb = (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref52c9fcfc != nil { - return x.ref52c9fcfc, nil + } else if x.refbc16fceb != nil { + return x.refbc16fceb, nil } - mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) - ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) - allocs52c9fcfc := new(cgoAllocMap) - allocs52c9fcfc.Add(mem52c9fcfc) + membc16fceb := allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory(1) + refbc16fceb := (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)(membc16fceb) + allocsbc16fceb := new(cgoAllocMap) + allocsbc16fceb.Add(membc16fceb) var csType_allocs *cgoAllocMap - ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs52c9fcfc.Borrow(csType_allocs) + refbc16fceb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc16fceb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cpNext_allocs) + refbc16fceb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc16fceb.Borrow(cpNext_allocs) - var cexclusiveScissor_allocs *cgoAllocMap - ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) + var cfragmentDensityMapOffset_allocs *cgoAllocMap + refbc16fceb.fragmentDensityMapOffset, cfragmentDensityMapOffset_allocs = (C.VkBool32)(x.FragmentDensityMapOffset), cgoAllocsUnknown + allocsbc16fceb.Borrow(cfragmentDensityMapOffset_allocs) - x.ref52c9fcfc = ref52c9fcfc - x.allocs52c9fcfc = allocs52c9fcfc - return ref52c9fcfc, allocs52c9fcfc + x.refbc16fceb = refbc16fceb + x.allocsbc16fceb = allocsbc16fceb + return refbc16fceb, allocsbc16fceb } // 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 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) PassValue() (C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, *cgoAllocMap) { + if x.refbc16fceb != nil { + return *x.refbc16fceb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38948,90 +63932,90 @@ 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 *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Deref() { + if x.refbc16fceb == 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.refbc16fceb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc16fceb.pNext)) + x.FragmentDensityMapOffset = (Bool32)(x.refbc16fceb.fragmentDensityMapOffset) } -// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV in C. +// allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) +const sizeOfPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { +func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Ref() *C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { if x == nil { return nil } - return x.ref351f58c6 + return x.refe9bba09c } // Free invokes alloc map'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 *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Free() { + if x != nil && x.allocse9bba09c != nil { + x.allocse9bba09c.(*cgoAllocMap).Free() + x.refe9bba09c = nil } } -// NewQueueFamilyCheckpointPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMRef creates a new 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 NewPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { if ref == nil { return nil } - obj := new(QueueFamilyCheckpointPropertiesNV) - obj.ref351f58c6 = (*C.VkQueueFamilyCheckpointPropertiesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) + obj.refe9bba09c = (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref351f58c6 != nil { - return x.ref351f58c6, nil + } else if x.refe9bba09c != nil { + return x.refe9bba09c, nil } - mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) - ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) - allocs351f58c6 := new(cgoAllocMap) - allocs351f58c6.Add(mem351f58c6) + meme9bba09c := allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory(1) + refe9bba09c := (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)(meme9bba09c) + allocse9bba09c := new(cgoAllocMap) + allocse9bba09c.Add(meme9bba09c) var csType_allocs *cgoAllocMap - ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs351f58c6.Borrow(csType_allocs) + refe9bba09c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse9bba09c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs351f58c6.Borrow(cpNext_allocs) + refe9bba09c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse9bba09c.Borrow(cpNext_allocs) - var ccheckpointExecutionStageMask_allocs *cgoAllocMap - ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown - allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) + var cfragmentDensityOffsetGranularity_allocs *cgoAllocMap + refe9bba09c.fragmentDensityOffsetGranularity, cfragmentDensityOffsetGranularity_allocs = x.FragmentDensityOffsetGranularity.PassValue() + allocse9bba09c.Borrow(cfragmentDensityOffsetGranularity_allocs) - x.ref351f58c6 = ref351f58c6 - x.allocs351f58c6 = allocs351f58c6 - return ref351f58c6, allocs351f58c6 + x.refe9bba09c = refe9bba09c + x.allocse9bba09c = allocse9bba09c + return refe9bba09c, allocse9bba09c } // 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 PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) PassValue() (C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, *cgoAllocMap) { + if x.refe9bba09c != nil { + return *x.refe9bba09c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39039,94 +64023,132 @@ 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 *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Deref() { + if x.refe9bba09c == 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.refe9bba09c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe9bba09c.pNext)) + x.FragmentDensityOffsetGranularity = *NewExtent2DRef(unsafe.Pointer(&x.refe9bba09c.fragmentDensityOffsetGranularity)) } -// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV in C. +// allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory allocates memory for type C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassFragmentDensityMapOffsetEndInfoQCOMValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) +const sizeOfSubpassFragmentDensityMapOffsetEndInfoQCOMValue = unsafe.Sizeof([1]C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM{}) + +// unpackSOffset2D transforms a sliced Go data structure into plain C format. +func unpackSOffset2D(x []Offset2D) (unpacked *C.VkOffset2D, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + len0 := len(x) + mem0 := allocOffset2DMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkOffset2D)(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.VkOffset2D)(h.Data) + return +} + +// packSOffset2D reads sliced Go data structure out from plain C format. +func packSOffset2D(v []Offset2D, ptr0 *C.VkOffset2D) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfOffset2DValue]C.VkOffset2D)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewOffset2DRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { +func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) Ref() *C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM { if x == nil { return nil } - return x.refd1c9224b + return x.ref17e4eb04 } // Free invokes alloc map'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 *SubpassFragmentDensityMapOffsetEndInfoQCOM) Free() { + if x != nil && x.allocs17e4eb04 != nil { + x.allocs17e4eb04.(*cgoAllocMap).Free() + x.ref17e4eb04 = nil } } -// NewCheckpointDataNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSubpassFragmentDensityMapOffsetEndInfoQCOMRef creates a new 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 NewSubpassFragmentDensityMapOffsetEndInfoQCOMRef(ref unsafe.Pointer) *SubpassFragmentDensityMapOffsetEndInfoQCOM { if ref == nil { return nil } - obj := new(CheckpointDataNV) - obj.refd1c9224b = (*C.VkCheckpointDataNV)(unsafe.Pointer(ref)) + obj := new(SubpassFragmentDensityMapOffsetEndInfoQCOM) + obj.ref17e4eb04 = (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *SubpassFragmentDensityMapOffsetEndInfoQCOM) PassRef() (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd1c9224b != nil { - return x.refd1c9224b, nil + } else if x.ref17e4eb04 != nil { + return x.ref17e4eb04, nil } - memd1c9224b := allocCheckpointDataNVMemory(1) - refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) - allocsd1c9224b := new(cgoAllocMap) - allocsd1c9224b.Add(memd1c9224b) + mem17e4eb04 := allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory(1) + ref17e4eb04 := (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM)(mem17e4eb04) + allocs17e4eb04 := new(cgoAllocMap) + allocs17e4eb04.Add(mem17e4eb04) var csType_allocs *cgoAllocMap - refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd1c9224b.Borrow(csType_allocs) + ref17e4eb04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17e4eb04.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpNext_allocs) + ref17e4eb04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17e4eb04.Borrow(cpNext_allocs) - var cstage_allocs *cgoAllocMap - refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown - allocsd1c9224b.Borrow(cstage_allocs) + var cfragmentDensityOffsetCount_allocs *cgoAllocMap + ref17e4eb04.fragmentDensityOffsetCount, cfragmentDensityOffsetCount_allocs = (C.uint32_t)(x.FragmentDensityOffsetCount), cgoAllocsUnknown + allocs17e4eb04.Borrow(cfragmentDensityOffsetCount_allocs) - var cpCheckpointMarker_allocs *cgoAllocMap - refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpCheckpointMarker_allocs) + var cpFragmentDensityOffsets_allocs *cgoAllocMap + ref17e4eb04.pFragmentDensityOffsets, cpFragmentDensityOffsets_allocs = unpackSOffset2D(x.PFragmentDensityOffsets) + allocs17e4eb04.Borrow(cpFragmentDensityOffsets_allocs) - x.refd1c9224b = refd1c9224b - x.allocsd1c9224b = allocsd1c9224b - return refd1c9224b, allocsd1c9224b + x.ref17e4eb04 = ref17e4eb04 + x.allocs17e4eb04 = allocs17e4eb04 + return ref17e4eb04, allocs17e4eb04 } // 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 SubpassFragmentDensityMapOffsetEndInfoQCOM) PassValue() (C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM, *cgoAllocMap) { + if x.ref17e4eb04 != nil { + return *x.ref17e4eb04, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39134,103 +64156,91 @@ 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 *SubpassFragmentDensityMapOffsetEndInfoQCOM) Deref() { + if x.ref17e4eb04 == 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)) + x.SType = (StructureType)(x.ref17e4eb04.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17e4eb04.pNext)) + x.FragmentDensityOffsetCount = (uint32)(x.ref17e4eb04.fragmentDensityOffsetCount) + packSOffset2D(x.PFragmentDensityOffsets, x.ref17e4eb04.pFragmentDensityOffsets) } -// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT in C. +// allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) +func allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLinearColorAttachmentFeaturesNVValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) } return mem } -const sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) +const sizeOfPhysicalDeviceLinearColorAttachmentFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { +func (x *PhysicalDeviceLinearColorAttachmentFeaturesNV) Ref() *C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV { if x == nil { return nil } - return x.refdd9947ff + return x.ref32a130f5 } // Free invokes alloc map'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 *PhysicalDeviceLinearColorAttachmentFeaturesNV) Free() { + if x != nil && x.allocs32a130f5 != nil { + x.allocs32a130f5.(*cgoAllocMap).Free() + x.ref32a130f5 = nil } } -// NewPhysicalDevicePCIBusInfoPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceLinearColorAttachmentFeaturesNVRef creates a new 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 NewPhysicalDeviceLinearColorAttachmentFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceLinearColorAttachmentFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDevicePCIBusInfoProperties) - obj.refdd9947ff = (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceLinearColorAttachmentFeaturesNV) + obj.ref32a130f5 = (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *PhysicalDeviceLinearColorAttachmentFeaturesNV) PassRef() (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdd9947ff != nil { - return x.refdd9947ff, nil + } else if x.ref32a130f5 != nil { + return x.ref32a130f5, nil } - memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) - refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) - allocsdd9947ff := new(cgoAllocMap) - allocsdd9947ff.Add(memdd9947ff) + mem32a130f5 := allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory(1) + ref32a130f5 := (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV)(mem32a130f5) + allocs32a130f5 := new(cgoAllocMap) + allocs32a130f5.Add(mem32a130f5) var csType_allocs *cgoAllocMap - refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdd9947ff.Borrow(csType_allocs) + ref32a130f5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs32a130f5.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) - - var cpciDevice_allocs *cgoAllocMap - refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint8_t)(x.PciDevice), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciDevice_allocs) + ref32a130f5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs32a130f5.Borrow(cpNext_allocs) - var cpciFunction_allocs *cgoAllocMap - refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint8_t)(x.PciFunction), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciFunction_allocs) + var clinearColorAttachment_allocs *cgoAllocMap + ref32a130f5.linearColorAttachment, clinearColorAttachment_allocs = (C.VkBool32)(x.LinearColorAttachment), cgoAllocsUnknown + allocs32a130f5.Borrow(clinearColorAttachment_allocs) - x.refdd9947ff = refdd9947ff - x.allocsdd9947ff = allocsdd9947ff - return refdd9947ff, allocsdd9947ff + x.ref32a130f5 = ref32a130f5 + x.allocs32a130f5 = allocs32a130f5 + return ref32a130f5, allocs32a130f5 } // 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 PhysicalDeviceLinearColorAttachmentFeaturesNV) PassValue() (C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV, *cgoAllocMap) { + if x.ref32a130f5 != nil { + return *x.ref32a130f5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39238,16 +64248,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 *PhysicalDeviceLinearColorAttachmentFeaturesNV) Deref() { + if x.ref32a130f5 == 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.ref32a130f5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref32a130f5.pNext)) + x.LinearColorAttachment = (Bool32)(x.ref32a130f5.linearColorAttachment) } // unpackArgSQueueFamilyProperties transforms a sliced Go data structure into plain C format. @@ -39256,8 +64263,8 @@ func unpackArgSQueueFamilyProperties(x []QueueFamilyProperties) (unpacked *C.VkQ return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkQueueFamilyProperties) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39294,8 +64301,8 @@ func unpackArgSExtensionProperties(x []ExtensionProperties) (unpacked *C.VkExten return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkExtensionProperties) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39332,8 +64339,8 @@ func unpackArgSLayerProperties(x []LayerProperties) (unpacked *C.VkLayerProperti return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkLayerProperties) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39370,8 +64377,8 @@ func unpackArgSSubmitInfo(x []SubmitInfo) (unpacked *C.VkSubmitInfo, allocs *cgo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubmitInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39408,8 +64415,8 @@ func unpackArgSMappedMemoryRange(x []MappedMemoryRange) (unpacked *C.VkMappedMem return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkMappedMemoryRange) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39446,8 +64453,8 @@ func unpackArgSSparseImageMemoryRequirements(x []SparseImageMemoryRequirements) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryRequirements) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39484,8 +64491,8 @@ func unpackArgSSparseImageFormatProperties(x []SparseImageFormatProperties) (unp return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageFormatProperties) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39522,8 +64529,8 @@ func unpackArgSBindSparseInfo(x []BindSparseInfo) (unpacked *C.VkBindSparseInfo, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkBindSparseInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39554,14 +64561,72 @@ func packSBindSparseInfo(v []BindSparseInfo, ptr0 *C.VkBindSparseInfo) { } } +// copyPFenceBytes copies the data from Go slice as *C.VkFence. +func copyPFenceBytes(slice *sliceHeader) (*C.VkFence, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfFenceValue) * slice.Len, + Cap: int(sizeOfFenceValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkFence)(mem0), allocs +} + +// allocFenceMemory allocates memory for type C.VkFence in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFenceMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfFenceValue = unsafe.Sizeof([1]C.VkFence{}) + +// copyPPipelineCacheBytes copies the data from Go slice as *C.VkPipelineCache. +func copyPPipelineCacheBytes(slice *sliceHeader) (*C.VkPipelineCache, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfPipelineCacheValue) * slice.Len, + Cap: int(sizeOfPipelineCacheValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkPipelineCache)(mem0), allocs +} + +// allocPipelineCacheMemory allocates memory for type C.VkPipelineCache in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCacheMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCacheValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPipelineCacheValue = unsafe.Sizeof([1]C.VkPipelineCache{}) + // unpackArgSGraphicsPipelineCreateInfo transforms a sliced Go data structure into plain C format. func unpackArgSGraphicsPipelineCreateInfo(x []GraphicsPipelineCreateInfo) (unpacked *C.VkGraphicsPipelineCreateInfo, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkGraphicsPipelineCreateInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39598,8 +64663,8 @@ func unpackArgSComputePipelineCreateInfo(x []ComputePipelineCreateInfo) (unpacke return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkComputePipelineCreateInfo) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39636,8 +64701,8 @@ func unpackArgSWriteDescriptorSet(x []WriteDescriptorSet) (unpacked *C.VkWriteDe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkWriteDescriptorSet) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39674,8 +64739,8 @@ func unpackArgSCopyDescriptorSet(x []CopyDescriptorSet) (unpacked *C.VkCopyDescr return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkCopyDescriptorSet) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39712,8 +64777,8 @@ func unpackArgSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocM return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkViewport) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39741,8 +64806,8 @@ func unpackArgSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkRect2D) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39764,14 +64829,101 @@ func unpackArgSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { return } +// copyPDescriptorSetBytes copies the data from Go slice as *C.VkDescriptorSet. +func copyPDescriptorSetBytes(slice *sliceHeader) (*C.VkDescriptorSet, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDescriptorSetValue) * slice.Len, + Cap: int(sizeOfDescriptorSetValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDescriptorSet)(mem0), allocs +} + +// allocDescriptorSetMemory allocates memory for type C.VkDescriptorSet in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDescriptorSetValue = unsafe.Sizeof([1]C.VkDescriptorSet{}) + +// copyPBufferBytes copies the data from Go slice as *C.VkBuffer. +func copyPBufferBytes(slice *sliceHeader) (*C.VkBuffer, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfBufferValue) * slice.Len, + Cap: int(sizeOfBufferValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkBuffer)(mem0), allocs +} + +// allocBufferMemory allocates memory for type C.VkBuffer in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfBufferValue = unsafe.Sizeof([1]C.VkBuffer{}) + +// copyPDeviceSizeBytes copies the data from Go slice as *C.VkDeviceSize. +func copyPDeviceSizeBytes(slice *sliceHeader) (*C.VkDeviceSize, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDeviceSizeValue) * slice.Len, + Cap: int(sizeOfDeviceSizeValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDeviceSize)(mem0), allocs +} + +// allocDeviceSizeMemory allocates memory for type C.VkDeviceSize in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceSizeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceSizeValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDeviceSizeValue = unsafe.Sizeof([1]C.VkDeviceSize{}) + // unpackArgSBufferCopy transforms a sliced Go data structure into plain C format. func unpackArgSBufferCopy(x []BufferCopy) (unpacked *C.VkBufferCopy, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCopy) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39808,8 +64960,8 @@ func unpackArgSImageCopy(x []ImageCopy) (unpacked *C.VkImageCopy, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCopy) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39846,8 +64998,8 @@ func unpackArgSImageBlit(x []ImageBlit) (unpacked *C.VkImageBlit, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkImageBlit) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39884,8 +65036,8 @@ func unpackArgSBufferImageCopy(x []BufferImageCopy) (unpacked *C.VkBufferImageCo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferImageCopy) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39922,8 +65074,8 @@ func unpackArgSImageSubresourceRange(x []ImageSubresourceRange) (unpacked *C.VkI return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkImageSubresourceRange) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39960,8 +65112,8 @@ func unpackArgSClearAttachment(x []ClearAttachment) (unpacked *C.VkClearAttachme return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkClearAttachment) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -39998,8 +65150,8 @@ func unpackArgSClearRect(x []ClearRect) (unpacked *C.VkClearRect, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkClearRect) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40036,8 +65188,8 @@ func unpackArgSImageResolve(x []ImageResolve) (unpacked *C.VkImageResolve, alloc return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkImageResolve) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40068,14 +65220,43 @@ func packSImageResolve(v []ImageResolve, ptr0 *C.VkImageResolve) { } } +// copyPEventBytes copies the data from Go slice as *C.VkEvent. +func copyPEventBytes(slice *sliceHeader) (*C.VkEvent, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfEventValue) * slice.Len, + Cap: int(sizeOfEventValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkEvent)(mem0), allocs +} + +// allocEventMemory allocates memory for type C.VkEvent in C. +// The caller is responsible for freeing the this memory via C.free. +func allocEventMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfEventValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfEventValue = unsafe.Sizeof([1]C.VkEvent{}) + // unpackArgSMemoryBarrier transforms a sliced Go data structure into plain C format. func unpackArgSMemoryBarrier(x []MemoryBarrier) (unpacked *C.VkMemoryBarrier, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkMemoryBarrier) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40112,8 +65293,8 @@ func unpackArgSBufferMemoryBarrier(x []BufferMemoryBarrier) (unpacked *C.VkBuffe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferMemoryBarrier) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40150,8 +65331,8 @@ func unpackArgSImageMemoryBarrier(x []ImageMemoryBarrier) (unpacked *C.VkImageMe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkImageMemoryBarrier) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40188,8 +65369,8 @@ func unpackArgSSurfaceFormat(x []SurfaceFormat) (unpacked *C.VkSurfaceFormatKHR, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSurfaceFormatKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40220,14 +65401,72 @@ func packSSurfaceFormat(v []SurfaceFormat, ptr0 *C.VkSurfaceFormatKHR) { } } +// copyPPresentModeBytes copies the data from Go slice as *C.VkPresentModeKHR. +func copyPPresentModeBytes(slice *sliceHeader) (*C.VkPresentModeKHR, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfPresentModeValue) * slice.Len, + Cap: int(sizeOfPresentModeValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkPresentModeKHR)(mem0), allocs +} + +// allocPresentModeMemory allocates memory for type C.VkPresentModeKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPresentModeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentModeValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfPresentModeValue = unsafe.Sizeof([1]C.VkPresentModeKHR{}) + +// copyPImageBytes copies the data from Go slice as *C.VkImage. +func copyPImageBytes(slice *sliceHeader) (*C.VkImage, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfImageValue) * slice.Len, + Cap: int(sizeOfImageValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkImage)(mem0), allocs +} + +// allocImageMemory allocates memory for type C.VkImage in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfImageValue = unsafe.Sizeof([1]C.VkImage{}) + // unpackArgSDisplayProperties transforms a sliced Go data structure into plain C format. func unpackArgSDisplayProperties(x []DisplayProperties) (unpacked *C.VkDisplayPropertiesKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayPropertiesKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40264,8 +65503,8 @@ func unpackArgSDisplayPlaneProperties(x []DisplayPlaneProperties) (unpacked *C.V return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayPlanePropertiesKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40296,14 +65535,43 @@ func packSDisplayPlaneProperties(v []DisplayPlaneProperties, ptr0 *C.VkDisplayPl } } +// copyPDisplayBytes copies the data from Go slice as *C.VkDisplayKHR. +func copyPDisplayBytes(slice *sliceHeader) (*C.VkDisplayKHR, *cgoAllocMap) { + allocs := new(cgoAllocMap) + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() + }) + + mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ + Data: slice.Data, + Len: int(sizeOfDisplayValue) * slice.Len, + Cap: int(sizeOfDisplayValue) * slice.Len, + })))) + allocs.Add(mem0) + + return (*C.VkDisplayKHR)(mem0), allocs +} + +// allocDisplayMemory allocates memory for type C.VkDisplayKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDisplayMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayValue)) + if mem == nil { + panic(fmt.Sprintln("memory alloc error: ", err)) + } + return mem +} + +const sizeOfDisplayValue = unsafe.Sizeof([1]C.VkDisplayKHR{}) + // unpackArgSDisplayModeProperties transforms a sliced Go data structure into plain C format. func unpackArgSDisplayModeProperties(x []DisplayModeProperties) (unpacked *C.VkDisplayModePropertiesKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayModePropertiesKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) @@ -40340,8 +65608,8 @@ func unpackArgSSwapchainCreateInfo(x []SwapchainCreateInfo) (unpacked *C.VkSwapc return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSwapchainCreateInfoKHR) { - go allocs.Free() + defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { + go a.Free() }) len0 := len(x) diff --git a/cgo_helpers.h b/cgo_helpers.h index 78c2901..2ecf3e0 100644 --- a/cgo_helpers.h +++ b/cgo_helpers.h @@ -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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "vulkan/vulkan.h" @@ -14,3 +14,6 @@ // 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); +// 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..01cca7a 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 Thu, 12 May 2022 00:52:13 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -18,812 +18,1484 @@ import "C" const ( // NoPrototypes as defined in vulkan/:24 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 = 211 + // UuidSize as defined in vulkan/vulkan_core.h:123 + UuidSize = uint32(16) + // AttachmentUnused as defined in vulkan/vulkan_core.h:124 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:125 False = 0 - // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:104 + // LodClampNone as defined in vulkan/vulkan_core.h:126 + LodClampNone = 1000.0 + // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:127 QueueFamilyIgnored = (^uint32(0)) - // SubpassExternal as defined in vulkan/vulkan_core.h:105 + // RemainingArrayLayers as defined in vulkan/vulkan_core.h:128 + RemainingArrayLayers = (^uint32(0)) + // RemainingMipLevels as defined in vulkan/vulkan_core.h:129 + RemainingMipLevels = (^uint32(0)) + // SubpassExternal as defined in vulkan/vulkan_core.h:130 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:131 + True = 1 + // WholeSize as defined in vulkan/vulkan_core.h:132 + WholeSize = (^uint64(0)) + // MaxMemoryTypes as defined in vulkan/vulkan_core.h:133 + MaxMemoryTypes = uint32(32) + // MaxMemoryHeaps as defined in vulkan/vulkan_core.h:134 + MaxMemoryHeaps = uint32(16) + // MaxPhysicalDeviceNameSize as defined in vulkan/vulkan_core.h:135 + MaxPhysicalDeviceNameSize = uint32(256) + // MaxExtensionNameSize as defined in vulkan/vulkan_core.h:136 + MaxExtensionNameSize = uint32(256) + // MaxDescriptionSize as defined in vulkan/vulkan_core.h:137 + MaxDescriptionSize = uint32(256) + // Version11 as defined in vulkan/vulkan_core.h:4632 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:4638 + MaxDeviceGroupSize = uint32(32) + // LuidSize as defined in vulkan/vulkan_core.h:4639 + LuidSize = uint32(8) + // QueueFamilyExternal as defined in vulkan/vulkan_core.h:4640 + QueueFamilyExternal = (^uint32(1)) + // Version12 as defined in vulkan/vulkan_core.h:5497 + Version12 = 1 + // MaxDriverNameSize as defined in vulkan/vulkan_core.h:5501 + MaxDriverNameSize = uint32(256) + // MaxDriverInfoSize as defined in vulkan/vulkan_core.h:5502 + MaxDriverInfoSize = uint32(256) + // Version13 as defined in vulkan/vulkan_core.h:6248 + Version13 = 1 + // KhrSurface as defined in vulkan/vulkan_core.h:7279 KhrSurface = 1 - // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:4668 + // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:7281 KhrSurfaceSpecVersion = 25 - // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:4669 + // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:7282 KhrSurfaceExtensionName = "VK_KHR_surface" - // KhrSwapchain as defined in vulkan/vulkan_core.h:4787 + // KhrSwapchain as defined in vulkan/vulkan_core.h:7393 KhrSwapchain = 1 - // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:4790 + // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:7395 KhrSwapchainSpecVersion = 70 - // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:4791 + // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:7396 KhrSwapchainExtensionName = "VK_KHR_swapchain" - // KhrDisplay as defined in vulkan/vulkan_core.h:4948 + // KhrDisplay as defined in vulkan/vulkan_core.h:7552 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:7555 + KhrDisplaySpecVersion = 23 + // KhrDisplayExtensionName as defined in vulkan/vulkan_core.h:7556 KhrDisplayExtensionName = "VK_KHR_display" - // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:5076 + // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:7677 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:7678 + KhrDisplaySwapchainSpecVersion = 10 + // KhrDisplaySwapchainExtensionName as defined in vulkan/vulkan_core.h:7679 KhrDisplaySwapchainExtensionName = "VK_KHR_display_swapchain" - // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:5100 + // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:7700 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:7701 + KhrSamplerMirrorClampToEdgeSpecVersion = 3 + // KhrSamplerMirrorClampToEdgeExtensionName as defined in vulkan/vulkan_core.h:7702 KhrSamplerMirrorClampToEdgeExtensionName = "VK_KHR_sampler_mirror_clamp_to_edge" - // KhrMultiview as defined in vulkan/vulkan_core.h:5105 + // KhrDynamicRendering as defined in vulkan/vulkan_core.h:7705 + KhrDynamicRendering = 1 + // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:7706 + KhrDynamicRenderingSpecVersion = 1 + // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:7707 + KhrDynamicRenderingExtensionName = "VK_KHR_dynamic_rendering" + // KhrMultiview as defined in vulkan/vulkan_core.h:7767 KhrMultiview = 1 - // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:5106 + // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:7768 KhrMultiviewSpecVersion = 1 - // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:5107 + // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:7769 KhrMultiviewExtensionName = "VK_KHR_multiview" - // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:5117 + // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:7778 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:7779 + KhrGetPhysicalDeviceProperties2SpecVersion = 2 + // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:7780 KhrGetPhysicalDeviceProperties2ExtensionName = "VK_KHR_get_physical_device_properties2" - // KhrDeviceGroup as defined in vulkan/vulkan_core.h:5183 + // KhrDeviceGroup as defined in vulkan/vulkan_core.h:7843 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:7844 + KhrDeviceGroupSpecVersion = 4 + // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:7845 KhrDeviceGroupExtensionName = "VK_KHR_device_group" - // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:5237 + // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:7895 KhrShaderDrawParameters = 1 - // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:5238 + // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:7896 KhrShaderDrawParametersSpecVersion = 1 - // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:5239 + // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:7897 KhrShaderDrawParametersExtensionName = "VK_KHR_shader_draw_parameters" - // KhrMaintenance1 as defined in vulkan/vulkan_core.h:5242 + // KhrMaintenance1 as defined in vulkan/vulkan_core.h:7900 KhrMaintenance1 = 1 - // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:5243 + // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:7901 KhrMaintenance1SpecVersion = 2 - // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:5244 + // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:7902 KhrMaintenance1ExtensionName = "VK_KHR_maintenance1" - // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:5258 + // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:7917 KhrDeviceGroupCreation = 1 - // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:5259 + // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:7918 KhrDeviceGroupCreationSpecVersion = 1 - // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:5260 + // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:7919 KhrDeviceGroupCreationExtensionName = "VK_KHR_device_group_creation" - // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:5277 + // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:7935 KhrExternalMemoryCapabilities = 1 - // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5278 + // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:7936 KhrExternalMemoryCapabilitiesSpecVersion = 1 - // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5279 + // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:7937 KhrExternalMemoryCapabilitiesExtensionName = "VK_KHR_external_memory_capabilities" - // KhrExternalMemory as defined in vulkan/vulkan_core.h:5313 + // KhrExternalMemory as defined in vulkan/vulkan_core.h:7969 KhrExternalMemory = 1 - // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:5314 + // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:7970 KhrExternalMemorySpecVersion = 1 - // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:5315 + // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:7971 KhrExternalMemoryExtensionName = "VK_KHR_external_memory" - // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:5326 + // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:7981 KhrExternalMemoryFd = 1 - // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:5327 + // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:7982 KhrExternalMemoryFdSpecVersion = 1 - // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:5328 + // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:7983 KhrExternalMemoryFdExtensionName = "VK_KHR_external_memory_fd" - // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:5367 + // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8021 KhrExternalSemaphoreCapabilities = 1 - // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5368 + // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8022 KhrExternalSemaphoreCapabilitiesSpecVersion = 1 - // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5369 + // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8023 KhrExternalSemaphoreCapabilitiesExtensionName = "VK_KHR_external_semaphore_capabilities" - // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:5394 + // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8046 KhrExternalSemaphore = 1 - // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:5395 + // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8047 KhrExternalSemaphoreSpecVersion = 1 - // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:5396 + // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8048 KhrExternalSemaphoreExtensionName = "VK_KHR_external_semaphore" - // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:5407 + // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8057 KhrExternalSemaphoreFd = 1 - // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:5408 + // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8058 KhrExternalSemaphoreFdSpecVersion = 1 - // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:5409 + // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8059 KhrExternalSemaphoreFdExtensionName = "VK_KHR_external_semaphore_fd" - // KhrPushDescriptor as defined in vulkan/vulkan_core.h:5442 + // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8091 KhrPushDescriptor = 1 - // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:5443 + // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8092 KhrPushDescriptorSpecVersion = 2 - // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:5444 + // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8093 KhrPushDescriptorExtensionName = "VK_KHR_push_descriptor" - // Khr16bitStorage as defined in vulkan/vulkan_core.h:5473 + // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8121 + KhrShaderFloat16Int8 = 1 + // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8122 + KhrShaderFloat16Int8SpecVersion = 1 + // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8123 + KhrShaderFloat16Int8ExtensionName = "VK_KHR_shader_float16_int8" + // Khr16bitStorage as defined in vulkan/vulkan_core.h:8130 Khr16bitStorage = 1 - // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:5474 + // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8131 Khr16bitStorageSpecVersion = 1 - // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:5475 + // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8132 Khr16bitStorageExtensionName = "VK_KHR_16bit_storage" - // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:5481 + // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8137 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:8138 + KhrIncrementalPresentSpecVersion = 2 + // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8139 KhrIncrementalPresentExtensionName = "VK_KHR_incremental_present" - // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:5505 + // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8160 KhrDescriptorUpdateTemplate = 1 - // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:5509 + // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8163 KhrDescriptorUpdateTemplateSpecVersion = 1 - // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:5510 + // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8164 KhrDescriptorUpdateTemplateExtensionName = "VK_KHR_descriptor_update_template" - // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:5546 + // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8197 + KhrImagelessFramebuffer = 1 + // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8198 + KhrImagelessFramebufferSpecVersion = 1 + // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8199 + KhrImagelessFramebufferExtensionName = "VK_KHR_imageless_framebuffer" + // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8210 KhrCreateRenderpass2 = 1 - // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:5547 + // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8211 KhrCreateRenderpass2SpecVersion = 1 - // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:5548 + // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8212 KhrCreateRenderpass2ExtensionName = "VK_KHR_create_renderpass2" - // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:5654 + // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8255 KhrSharedPresentableImage = 1 - // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:5655 + // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8256 KhrSharedPresentableImageSpecVersion = 1 - // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:5656 + // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8257 KhrSharedPresentableImageExtensionName = "VK_KHR_shared_presentable_image" - // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:5673 + // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8273 KhrExternalFenceCapabilities = 1 - // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5674 + // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8274 KhrExternalFenceCapabilitiesSpecVersion = 1 - // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5675 + // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8275 KhrExternalFenceCapabilitiesExtensionName = "VK_KHR_external_fence_capabilities" - // KhrExternalFence as defined in vulkan/vulkan_core.h:5700 + // KhrExternalFence as defined in vulkan/vulkan_core.h:8298 KhrExternalFence = 1 - // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:5701 + // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8299 KhrExternalFenceSpecVersion = 1 - // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:5702 + // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8300 KhrExternalFenceExtensionName = "VK_KHR_external_fence" - // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:5713 + // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8309 KhrExternalFenceFd = 1 - // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:5714 + // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8310 KhrExternalFenceFdSpecVersion = 1 - // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:5715 + // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8311 KhrExternalFenceFdExtensionName = "VK_KHR_external_fence_fd" - // KhrMaintenance2 as defined in vulkan/vulkan_core.h:5748 + // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8343 + KhrPerformanceQuery = 1 + // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8344 + KhrPerformanceQuerySpecVersion = 1 + // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8345 + KhrPerformanceQueryExtensionName = "VK_KHR_performance_query" + // KhrMaintenance2 as defined in vulkan/vulkan_core.h:8483 KhrMaintenance2 = 1 - // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:5749 + // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:8484 KhrMaintenance2SpecVersion = 1 - // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:5750 + // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:8485 KhrMaintenance2ExtensionName = "VK_KHR_maintenance2" - // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:5769 + // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:8504 KhrGetSurfaceCapabilities2 = 1 - // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:5770 + // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:8505 KhrGetSurfaceCapabilities2SpecVersion = 1 - // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:5771 + // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:8506 KhrGetSurfaceCapabilities2ExtensionName = "VK_KHR_get_surface_capabilities2" - // KhrVariablePointers as defined in vulkan/vulkan_core.h:5808 + // KhrVariablePointers as defined in vulkan/vulkan_core.h:8542 KhrVariablePointers = 1 - // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:5809 + // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:8543 KhrVariablePointersSpecVersion = 1 - // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:5810 + // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:8544 KhrVariablePointersExtensionName = "VK_KHR_variable_pointers" - // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:5816 + // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:8551 KhrGetDisplayProperties2 = 1 - // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:5817 + // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:8552 KhrGetDisplayProperties2SpecVersion = 1 - // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:5818 + // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:8553 KhrGetDisplayProperties2ExtensionName = "VK_KHR_get_display_properties2" - // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:5880 + // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:8614 KhrDedicatedAllocation = 1 - // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:5881 + // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:8615 KhrDedicatedAllocationSpecVersion = 3 - // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:5882 + // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:8616 KhrDedicatedAllocationExtensionName = "VK_KHR_dedicated_allocation" - // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:5890 + // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:8623 KhrStorageBufferStorageClass = 1 - // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:5891 + // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:8624 KhrStorageBufferStorageClassSpecVersion = 1 - // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:5892 + // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:8625 KhrStorageBufferStorageClassExtensionName = "VK_KHR_storage_buffer_storage_class" - // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:5895 + // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:8628 KhrRelaxedBlockLayout = 1 - // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:5896 + // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:8629 KhrRelaxedBlockLayoutSpecVersion = 1 - // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:5897 + // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:8630 KhrRelaxedBlockLayoutExtensionName = "VK_KHR_relaxed_block_layout" - // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:5900 + // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:8633 KhrGetMemoryRequirements2 = 1 - // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:5901 + // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:8634 KhrGetMemoryRequirements2SpecVersion = 1 - // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:5902 + // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:8635 KhrGetMemoryRequirements2ExtensionName = "VK_KHR_get_memory_requirements2" - // KhrImageFormatList as defined in vulkan/vulkan_core.h:5935 + // KhrImageFormatList as defined in vulkan/vulkan_core.h:8669 KhrImageFormatList = 1 - // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:5936 + // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:8670 KhrImageFormatListSpecVersion = 1 - // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:5937 + // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:8671 KhrImageFormatListExtensionName = "VK_KHR_image_format_list" - // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:5948 + // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:8676 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:8679 + KhrSamplerYcbcrConversionSpecVersion = 14 + // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:8680 KhrSamplerYcbcrConversionExtensionName = "VK_KHR_sampler_ycbcr_conversion" - // KhrBindMemory2 as defined in vulkan/vulkan_core.h:5991 + // KhrBindMemory2 as defined in vulkan/vulkan_core.h:8716 KhrBindMemory2 = 1 - // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:5992 + // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:8717 KhrBindMemory2SpecVersion = 1 - // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:5993 + // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:8718 KhrBindMemory2ExtensionName = "VK_KHR_bind_memory2" - // KhrMaintenance3 as defined in vulkan/vulkan_core.h:6015 + // KhrMaintenance3 as defined in vulkan/vulkan_core.h:8739 KhrMaintenance3 = 1 - // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:6016 + // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:8740 KhrMaintenance3SpecVersion = 1 - // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:6017 + // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:8741 KhrMaintenance3ExtensionName = "VK_KHR_maintenance3" - // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:6033 + // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:8758 KhrDrawIndirectCount = 1 - // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:6034 + // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:8759 KhrDrawIndirectCountSpecVersion = 1 - // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:6035 + // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:8760 KhrDrawIndirectCountExtensionName = "VK_KHR_draw_indirect_count" - // Khr8bitStorage as defined in vulkan/vulkan_core.h:6060 + // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:8785 + KhrShaderSubgroupExtendedTypes = 1 + // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:8786 + KhrShaderSubgroupExtendedTypesSpecVersion = 1 + // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:8787 + KhrShaderSubgroupExtendedTypesExtensionName = "VK_KHR_shader_subgroup_extended_types" + // Khr8bitStorage as defined in vulkan/vulkan_core.h:8792 Khr8bitStorage = 1 - // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:6061 + // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8793 Khr8bitStorageSpecVersion = 1 - // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:6062 + // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:8794 Khr8bitStorageExtensionName = "VK_KHR_8bit_storage" - // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:6074 + // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:8799 KhrShaderAtomicInt64 = 1 - // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:6075 + // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:8800 KhrShaderAtomicInt64SpecVersion = 1 - // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:6076 + // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:8801 KhrShaderAtomicInt64ExtensionName = "VK_KHR_shader_atomic_int64" - // KhrDriverProperties as defined in vulkan/vulkan_core.h:6087 + // KhrShaderClock as defined in vulkan/vulkan_core.h:8806 + KhrShaderClock = 1 + // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:8807 + KhrShaderClockSpecVersion = 1 + // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:8808 + KhrShaderClockExtensionName = "VK_KHR_shader_clock" + // KhrGlobalPriority as defined in vulkan/vulkan_core.h:8818 + 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:8820 + KhrGlobalPrioritySpecVersion = 1 + // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:8821 + KhrGlobalPriorityExtensionName = "VK_KHR_global_priority" + // KhrDriverProperties as defined in vulkan/vulkan_core.h:8855 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:8856 KhrDriverPropertiesSpecVersion = 1 - // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:6091 + // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:8857 KhrDriverPropertiesExtensionName = "VK_KHR_driver_properties" - // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:6128 + // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:8868 + KhrShaderFloatControls = 1 + // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:8869 + KhrShaderFloatControlsSpecVersion = 4 + // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:8870 + KhrShaderFloatControlsExtensionName = "VK_KHR_shader_float_controls" + // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:8877 + KhrDepthStencilResolve = 1 + // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:8878 + KhrDepthStencilResolveSpecVersion = 1 + // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:8879 + KhrDepthStencilResolveExtensionName = "VK_KHR_depth_stencil_resolve" + // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:8890 + KhrSwapchainMutableFormat = 1 + // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:8891 + KhrSwapchainMutableFormatSpecVersion = 1 + // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:8892 + KhrSwapchainMutableFormatExtensionName = "VK_KHR_swapchain_mutable_format" + // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:8895 + KhrTimelineSemaphore = 1 + // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8896 + KhrTimelineSemaphoreSpecVersion = 2 + // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8897 + KhrTimelineSemaphoreExtensionName = "VK_KHR_timeline_semaphore" + // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:8937 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:8938 + KhrVulkanMemoryModelSpecVersion = 3 + // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:8939 KhrVulkanMemoryModelExtensionName = "VK_KHR_vulkan_memory_model" - // ExtDebugReport as defined in vulkan/vulkan_core.h:6141 + // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:8944 + KhrShaderTerminateInvocation = 1 + // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:8945 + KhrShaderTerminateInvocationSpecVersion = 1 + // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:8946 + KhrShaderTerminateInvocationExtensionName = "VK_KHR_shader_terminate_invocation" + // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:8951 + KhrFragmentShadingRate = 1 + // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:8952 + KhrFragmentShadingRateSpecVersion = 2 + // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:8953 + KhrFragmentShadingRateExtensionName = "VK_KHR_fragment_shading_rate" + // KhrSpirv14 as defined in vulkan/vulkan_core.h:9030 + KhrSpirv14 = 1 + // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9031 + KhrSpirv14SpecVersion = 1 + // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9032 + KhrSpirv14ExtensionName = "VK_KHR_spirv_1_4" + // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9035 + KhrSurfaceProtectedCapabilities = 1 + // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9036 + KhrSurfaceProtectedCapabilitiesSpecVersion = 1 + // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9037 + KhrSurfaceProtectedCapabilitiesExtensionName = "VK_KHR_surface_protected_capabilities" + // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9046 + KhrSeparateDepthStencilLayouts = 1 + // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9047 + KhrSeparateDepthStencilLayoutsSpecVersion = 1 + // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9048 + KhrSeparateDepthStencilLayoutsExtensionName = "VK_KHR_separate_depth_stencil_layouts" + // KhrPresentWait as defined in vulkan/vulkan_core.h:9057 + KhrPresentWait = 1 + // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9058 + KhrPresentWaitSpecVersion = 1 + // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9059 + KhrPresentWaitExtensionName = "VK_KHR_present_wait" + // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9077 + KhrUniformBufferStandardLayout = 1 + // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9078 + KhrUniformBufferStandardLayoutSpecVersion = 1 + // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9079 + KhrUniformBufferStandardLayoutExtensionName = "VK_KHR_uniform_buffer_standard_layout" + // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9084 + KhrBufferDeviceAddress = 1 + // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9085 + KhrBufferDeviceAddressSpecVersion = 1 + // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9086 + KhrBufferDeviceAddressExtensionName = "VK_KHR_buffer_device_address" + // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9116 + KhrDeferredHostOperations = 1 + // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9118 + KhrDeferredHostOperationsSpecVersion = 4 + // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9119 + KhrDeferredHostOperationsExtensionName = "VK_KHR_deferred_host_operations" + // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9151 + KhrPipelineExecutableProperties = 1 + // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9152 + KhrPipelineExecutablePropertiesSpecVersion = 1 + // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9153 + KhrPipelineExecutablePropertiesExtensionName = "VK_KHR_pipeline_executable_properties" + // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9241 + KhrShaderIntegerDotProduct = 1 + // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9242 + KhrShaderIntegerDotProductSpecVersion = 1 + // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9243 + KhrShaderIntegerDotProductExtensionName = "VK_KHR_shader_integer_dot_product" + // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9250 + KhrPipelineLibrary = 1 + // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9251 + KhrPipelineLibrarySpecVersion = 1 + // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9252 + KhrPipelineLibraryExtensionName = "VK_KHR_pipeline_library" + // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9262 + KhrShaderNonSemanticInfo = 1 + // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9263 + KhrShaderNonSemanticInfoSpecVersion = 1 + // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9264 + KhrShaderNonSemanticInfoExtensionName = "VK_KHR_shader_non_semantic_info" + // KhrPresentId as defined in vulkan/vulkan_core.h:9267 + KhrPresentId = 1 + // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9268 + KhrPresentIdSpecVersion = 1 + // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9269 + KhrPresentIdExtensionName = "VK_KHR_present_id" + // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9285 + KhrSynchronization2 = 1 + // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9286 + KhrSynchronization2SpecVersion = 1 + // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9287 + KhrSynchronization2ExtensionName = "VK_KHR_synchronization2" + // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9385 + KhrShaderSubgroupUniformControlFlow = 1 + // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9386 + KhrShaderSubgroupUniformControlFlowSpecVersion = 1 + // KhrShaderSubgroupUniformControlFlowExtensionName as defined in vulkan/vulkan_core.h:9387 + KhrShaderSubgroupUniformControlFlowExtensionName = "VK_KHR_shader_subgroup_uniform_control_flow" + // KhrZeroInitializeWorkgroupMemory as defined in vulkan/vulkan_core.h:9396 + KhrZeroInitializeWorkgroupMemory = 1 + // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:9397 + KhrZeroInitializeWorkgroupMemorySpecVersion = 1 + // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:9398 + KhrZeroInitializeWorkgroupMemoryExtensionName = "VK_KHR_zero_initialize_workgroup_memory" + // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:9403 + KhrWorkgroupMemoryExplicitLayout = 1 + // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:9404 + KhrWorkgroupMemoryExplicitLayoutSpecVersion = 1 + // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:9405 + KhrWorkgroupMemoryExplicitLayoutExtensionName = "VK_KHR_workgroup_memory_explicit_layout" + // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:9417 + KhrCopyCommands2 = 1 + // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:9418 + KhrCopyCommands2SpecVersion = 1 + // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:9419 + KhrCopyCommands2ExtensionName = "VK_KHR_copy_commands2" + // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:9476 + KhrFormatFeatureFlags2 = 1 + // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:9477 + KhrFormatFeatureFlags2SpecVersion = 1 + // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:9478 + KhrFormatFeatureFlags2ExtensionName = "VK_KHR_format_feature_flags2" + // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:9487 + KhrPortabilityEnumeration = 1 + // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:9488 + KhrPortabilityEnumerationSpecVersion = 1 + // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:9489 + KhrPortabilityEnumerationExtensionName = "VK_KHR_portability_enumeration" + // KhrMaintenance4 as defined in vulkan/vulkan_core.h:9492 + KhrMaintenance4 = 1 + // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:9493 + KhrMaintenance4SpecVersion = 2 + // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:9494 + KhrMaintenance4ExtensionName = "VK_KHR_maintenance4" + // ExtDebugReport as defined in vulkan/vulkan_core.h:9526 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:9528 + ExtDebugReportSpecVersion = 10 + // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:9529 ExtDebugReportExtensionName = "VK_EXT_debug_report" - // NvGlslShader as defined in vulkan/vulkan_core.h:6253 + // NvGlslShader as defined in vulkan/vulkan_core.h:9633 NvGlslShader = 1 - // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:6254 + // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:9634 NvGlslShaderSpecVersion = 1 - // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:6255 + // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:9635 NvGlslShaderExtensionName = "VK_NV_glsl_shader" - // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:6258 + // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:9638 ExtDepthRangeUnrestricted = 1 - // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:6259 + // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:9639 ExtDepthRangeUnrestrictedSpecVersion = 1 - // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:6260 + // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:9640 ExtDepthRangeUnrestrictedExtensionName = "VK_EXT_depth_range_unrestricted" - // ImgFilterCubic as defined in vulkan/vulkan_core.h:6263 + // ImgFilterCubic as defined in vulkan/vulkan_core.h:9643 ImgFilterCubic = 1 - // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:6264 + // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:9644 ImgFilterCubicSpecVersion = 1 - // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:6265 + // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:9645 ImgFilterCubicExtensionName = "VK_IMG_filter_cubic" - // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:6268 + // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:9648 AmdRasterizationOrder = 1 - // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:6269 + // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:9649 AmdRasterizationOrderSpecVersion = 1 - // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:6270 + // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:9650 AmdRasterizationOrderExtensionName = "VK_AMD_rasterization_order" - // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:6290 + // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:9665 AmdShaderTrinaryMinmax = 1 - // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:6291 + // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:9666 AmdShaderTrinaryMinmaxSpecVersion = 1 - // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:6292 + // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:9667 AmdShaderTrinaryMinmaxExtensionName = "VK_AMD_shader_trinary_minmax" - // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:6295 + // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:9670 AmdShaderExplicitVertexParameter = 1 - // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:6296 + // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:9671 AmdShaderExplicitVertexParameterSpecVersion = 1 - // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:6297 + // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:9672 AmdShaderExplicitVertexParameterExtensionName = "VK_AMD_shader_explicit_vertex_parameter" - // ExtDebugMarker as defined in vulkan/vulkan_core.h:6300 + // ExtDebugMarker as defined in vulkan/vulkan_core.h:9675 ExtDebugMarker = 1 - // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:6301 + // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:9676 ExtDebugMarkerSpecVersion = 4 - // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:6302 + // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:9677 ExtDebugMarkerExtensionName = "VK_EXT_debug_marker" - // AmdGcnShader as defined in vulkan/vulkan_core.h:6357 + // AmdGcnShader as defined in vulkan/vulkan_core.h:9731 AmdGcnShader = 1 - // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:6358 + // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:9732 AmdGcnShaderSpecVersion = 1 - // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:6359 + // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:9733 AmdGcnShaderExtensionName = "VK_AMD_gcn_shader" - // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:6362 + // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:9736 NvDedicatedAllocation = 1 - // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:6363 + // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9737 NvDedicatedAllocationSpecVersion = 1 - // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:6364 + // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9738 NvDedicatedAllocationExtensionName = "VK_NV_dedicated_allocation" - // ExtTransformFeedback as defined in vulkan/vulkan_core.h:6387 + // ExtTransformFeedback as defined in vulkan/vulkan_core.h:9760 ExtTransformFeedback = 1 - // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:6388 + // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:9761 ExtTransformFeedbackSpecVersion = 1 - // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:6389 + // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:9762 ExtTransformFeedbackExtensionName = "VK_EXT_transform_feedback" - // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:6476 + // NvxImageViewHandle as defined in vulkan/vulkan_core.h:9918 + NvxImageViewHandle = 1 + // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:9919 + NvxImageViewHandleSpecVersion = 2 + // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:9920 + NvxImageViewHandleExtensionName = "VK_NVX_image_view_handle" + // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:9951 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:9952 + AmdDrawIndirectCountSpecVersion = 2 + // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9953 AmdDrawIndirectCountExtensionName = "VK_AMD_draw_indirect_count" - // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:6503 + // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:9978 AmdNegativeViewportHeight = 1 - // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:6504 + // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:9979 AmdNegativeViewportHeightSpecVersion = 1 - // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:6505 + // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:9980 AmdNegativeViewportHeightExtensionName = "VK_AMD_negative_viewport_height" - // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:6508 + // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:9983 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:9984 + AmdGpuShaderHalfFloatSpecVersion = 2 + // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:9985 AmdGpuShaderHalfFloatExtensionName = "VK_AMD_gpu_shader_half_float" - // AmdShaderBallot as defined in vulkan/vulkan_core.h:6513 + // AmdShaderBallot as defined in vulkan/vulkan_core.h:9988 AmdShaderBallot = 1 - // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:6514 + // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:9989 AmdShaderBallotSpecVersion = 1 - // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:6515 + // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:9990 AmdShaderBallotExtensionName = "VK_AMD_shader_ballot" - // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:6518 + // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:9993 AmdTextureGatherBiasLod = 1 - // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:6519 + // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:9994 AmdTextureGatherBiasLodSpecVersion = 1 - // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:6520 + // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:9995 AmdTextureGatherBiasLodExtensionName = "VK_AMD_texture_gather_bias_lod" - // AmdShaderInfo as defined in vulkan/vulkan_core.h:6530 + // AmdShaderInfo as defined in vulkan/vulkan_core.h:10004 AmdShaderInfo = 1 - // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:6531 + // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10005 AmdShaderInfoSpecVersion = 1 - // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:6532 + // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10006 AmdShaderInfoExtensionName = "VK_AMD_shader_info" - // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:6576 + // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10045 AmdShaderImageLoadStoreLod = 1 - // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:6577 + // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10046 AmdShaderImageLoadStoreLodSpecVersion = 1 - // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:6578 + // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:10047 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:10050 NvCornerSampledImage = 1 - // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:6582 + // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10051 NvCornerSampledImageSpecVersion = 2 - // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:6583 + // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10052 NvCornerSampledImageExtensionName = "VK_NV_corner_sampled_image" - // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:6593 + // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10061 ImgFormatPvrtc = 1 - // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:6594 + // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10062 ImgFormatPvrtcSpecVersion = 1 - // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:6595 + // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10063 ImgFormatPvrtcExtensionName = "VK_IMG_format_pvrtc" - // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:6598 + // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10066 NvExternalMemoryCapabilities = 1 - // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:6599 + // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10067 NvExternalMemoryCapabilitiesSpecVersion = 1 - // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:6600 + // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10068 NvExternalMemoryCapabilitiesExtensionName = "VK_NV_external_memory_capabilities" - // NvExternalMemory as defined in vulkan/vulkan_core.h:6642 + // NvExternalMemory as defined in vulkan/vulkan_core.h:10108 NvExternalMemory = 1 - // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:6643 + // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10109 NvExternalMemorySpecVersion = 1 - // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:6644 + // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10110 NvExternalMemoryExtensionName = "VK_NV_external_memory" - // ExtValidationFlags as defined in vulkan/vulkan_core.h:6660 + // ExtValidationFlags as defined in vulkan/vulkan_core.h:10125 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:10126 + ExtValidationFlagsSpecVersion = 2 + // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10127 ExtValidationFlagsExtensionName = "VK_EXT_validation_flags" - // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:6683 + // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10143 ExtShaderSubgroupBallot = 1 - // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:6684 + // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10144 ExtShaderSubgroupBallotSpecVersion = 1 - // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:6685 + // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10145 ExtShaderSubgroupBallotExtensionName = "VK_EXT_shader_subgroup_ballot" - // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:6688 + // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10148 ExtShaderSubgroupVote = 1 - // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:6689 + // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10149 ExtShaderSubgroupVoteSpecVersion = 1 - // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:6690 + // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10150 ExtShaderSubgroupVoteExtensionName = "VK_EXT_shader_subgroup_vote" - // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:6693 + // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10153 + ExtTextureCompressionAstcHdr = 1 + // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10154 + ExtTextureCompressionAstcHdrSpecVersion = 1 + // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10155 + ExtTextureCompressionAstcHdrExtensionName = "VK_EXT_texture_compression_astc_hdr" + // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10160 ExtAstcDecodeMode = 1 - // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:6694 + // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10161 ExtAstcDecodeModeSpecVersion = 1 - // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:6695 + // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10162 ExtAstcDecodeModeExtensionName = "VK_EXT_astc_decode_mode" - // ExtConditionalRendering as defined in vulkan/vulkan_core.h:6711 + // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10177 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:10178 + ExtConditionalRenderingSpecVersion = 2 + // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10179 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:10220 NvClipSpaceWScaling = 1 - // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:6984 + // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10221 NvClipSpaceWScalingSpecVersion = 1 - // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:6985 + // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10222 NvClipSpaceWScalingExtensionName = "VK_NV_clip_space_w_scaling" - // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:7011 + // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10247 ExtDirectModeDisplay = 1 - // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:7012 + // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10248 ExtDirectModeDisplaySpecVersion = 1 - // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:7013 + // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10249 ExtDirectModeDisplayExtensionName = "VK_EXT_direct_mode_display" - // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:7023 + // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10259 ExtDisplaySurfaceCounter = 1 - // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:7024 + // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10260 ExtDisplaySurfaceCounterSpecVersion = 1 - // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:7025 + // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10261 ExtDisplaySurfaceCounterExtensionName = "VK_EXT_display_surface_counter" - // ExtDisplayControl as defined in vulkan/vulkan_core.h:7060 + // ExtDisplayControl as defined in vulkan/vulkan_core.h:10295 ExtDisplayControl = 1 - // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:7061 + // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10296 ExtDisplayControlSpecVersion = 1 - // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:7062 + // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10297 ExtDisplayControlExtensionName = "VK_EXT_display_control" - // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:7147 + // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:10371 GoogleDisplayTiming = 1 - // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:7148 + // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:10372 GoogleDisplayTimingSpecVersion = 1 - // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:7149 + // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:10373 GoogleDisplayTimingExtensionName = "VK_GOOGLE_display_timing" - // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:7192 + // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:10415 NvSampleMaskOverrideCoverage = 1 - // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:7193 + // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:10416 NvSampleMaskOverrideCoverageSpecVersion = 1 - // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:7194 + // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:10417 NvSampleMaskOverrideCoverageExtensionName = "VK_NV_sample_mask_override_coverage" - // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:7197 + // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:10420 NvGeometryShaderPassthrough = 1 - // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:7198 + // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:10421 NvGeometryShaderPassthroughSpecVersion = 1 - // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:7199 + // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:10422 NvGeometryShaderPassthroughExtensionName = "VK_NV_geometry_shader_passthrough" - // NvViewportArray2 as defined in vulkan/vulkan_core.h:7202 + // NvViewportArray2 as defined in vulkan/vulkan_core.h:10425 NvViewportArray2 = 1 - // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:7203 + // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:10426 NvViewportArray2SpecVersion = 1 - // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:7204 + // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:10427 NvViewportArray2ExtensionName = "VK_NV_viewport_array2" - // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:7207 + // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:10432 NvxMultiviewPerViewAttributes = 1 - // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:7208 + // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:10433 NvxMultiviewPerViewAttributesSpecVersion = 1 - // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:7209 + // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:10434 NvxMultiviewPerViewAttributesExtensionName = "VK_NVX_multiview_per_view_attributes" - // NvViewportSwizzle as defined in vulkan/vulkan_core.h:7219 + // NvViewportSwizzle as defined in vulkan/vulkan_core.h:10443 NvViewportSwizzle = 1 - // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:7220 + // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:10444 NvViewportSwizzleSpecVersion = 1 - // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:7221 + // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:10445 NvViewportSwizzleExtensionName = "VK_NV_viewport_swizzle" - // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:7258 + // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:10476 ExtDiscardRectangles = 1 - // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:7259 + // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:10477 ExtDiscardRectanglesSpecVersion = 1 - // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:7260 + // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:10478 ExtDiscardRectanglesExtensionName = "VK_EXT_discard_rectangles" - // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:7300 + // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:10512 ExtConservativeRasterization = 1 - // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:7301 + // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:10513 ExtConservativeRasterizationSpecVersion = 1 - // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:7302 + // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:10514 ExtConservativeRasterizationExtensionName = "VK_EXT_conservative_rasterization" - // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:7341 + // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:10547 + ExtDepthClipEnable = 1 + // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:10548 + ExtDepthClipEnableSpecVersion = 1 + // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:10549 + ExtDepthClipEnableExtensionName = "VK_EXT_depth_clip_enable" + // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:10566 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:10567 + ExtSwapchainColorSpaceSpecVersion = 4 + // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:10568 ExtSwapchainColorSpaceExtensionName = "VK_EXT_swapchain_colorspace" - // ExtHdrMetadata as defined in vulkan/vulkan_core.h:7346 + // ExtHdrMetadata as defined in vulkan/vulkan_core.h:10571 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:10572 + ExtHdrMetadataSpecVersion = 2 + // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:10573 ExtHdrMetadataExtensionName = "VK_EXT_hdr_metadata" - // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:7379 + // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:10603 ExtExternalMemoryDmaBuf = 1 - // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:7380 + // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:10604 ExtExternalMemoryDmaBufSpecVersion = 1 - // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:7381 + // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:10605 ExtExternalMemoryDmaBufExtensionName = "VK_EXT_external_memory_dma_buf" - // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:7384 + // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:10608 ExtQueueFamilyForeign = 1 - // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:7385 + // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:10609 ExtQueueFamilyForeignSpecVersion = 1 - // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:7386 + // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:10610 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:10611 + QueueFamilyForeign = (^uint32(2)) + // ExtDebugUtils as defined in vulkan/vulkan_core.h:10614 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:10616 + ExtDebugUtilsSpecVersion = 2 + // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:10617 ExtDebugUtilsExtensionName = "VK_EXT_debug_utils" - // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:7534 + // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:10755 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:10756 + ExtSamplerFilterMinmaxSpecVersion = 2 + // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:10757 ExtSamplerFilterMinmaxExtensionName = "VK_EXT_sampler_filter_minmax" - // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:7564 + // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:10766 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:10767 + AmdGpuShaderInt16SpecVersion = 2 + // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:10768 AmdGpuShaderInt16ExtensionName = "VK_AMD_gpu_shader_int16" - // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:7569 + // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:10771 AmdMixedAttachmentSamples = 1 - // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:7570 + // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:10772 AmdMixedAttachmentSamplesSpecVersion = 1 - // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:7571 + // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:10773 AmdMixedAttachmentSamplesExtensionName = "VK_AMD_mixed_attachment_samples" - // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:7574 + // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:10776 AmdShaderFragmentMask = 1 - // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:7575 + // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:10777 AmdShaderFragmentMaskSpecVersion = 1 - // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:7576 + // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:10778 AmdShaderFragmentMaskExtensionName = "VK_AMD_shader_fragment_mask" - // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:7579 + // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:10781 ExtInlineUniformBlock = 1 - // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:7580 + // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:10782 ExtInlineUniformBlockSpecVersion = 1 - // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:7581 + // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:10783 ExtInlineUniformBlockExtensionName = "VK_EXT_inline_uniform_block" - // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:7615 + // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:10794 ExtShaderStencilExport = 1 - // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:7616 + // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:10795 ExtShaderStencilExportSpecVersion = 1 - // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:7617 + // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:10796 ExtShaderStencilExportExtensionName = "VK_EXT_shader_stencil_export" - // ExtSampleLocations as defined in vulkan/vulkan_core.h:7620 + // ExtSampleLocations as defined in vulkan/vulkan_core.h:10799 ExtSampleLocations = 1 - // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:7621 + // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:10800 ExtSampleLocationsSpecVersion = 1 - // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:7622 + // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:10801 ExtSampleLocationsExtensionName = "VK_EXT_sample_locations" - // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:7695 + // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:10873 ExtBlendOperationAdvanced = 1 - // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:7696 + // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:10874 ExtBlendOperationAdvancedSpecVersion = 2 - // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:7697 + // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:10875 ExtBlendOperationAdvancedExtensionName = "VK_EXT_blend_operation_advanced" - // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:7737 + // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:10910 NvFragmentCoverageToColor = 1 - // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:7738 + // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:10911 NvFragmentCoverageToColorSpecVersion = 1 - // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:7739 + // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:10912 NvFragmentCoverageToColorExtensionName = "VK_NV_fragment_coverage_to_color" - // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:7753 + // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:10924 NvFramebufferMixedSamples = 1 - // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:7754 + // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:10925 NvFramebufferMixedSamplesSpecVersion = 1 - // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:7755 + // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:10926 NvFramebufferMixedSamplesExtensionName = "VK_NV_framebuffer_mixed_samples" - // NvFillRectangle as defined in vulkan/vulkan_core.h:7783 + // NvFillRectangle as defined in vulkan/vulkan_core.h:10948 NvFillRectangle = 1 - // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:7784 + // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:10949 NvFillRectangleSpecVersion = 1 - // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:7785 + // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:10950 NvFillRectangleExtensionName = "VK_NV_fill_rectangle" - // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:7788 + // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:10953 + NvShaderSmBuiltins = 1 + // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:10954 + NvShaderSmBuiltinsSpecVersion = 1 + // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:10955 + NvShaderSmBuiltinsExtensionName = "VK_NV_shader_sm_builtins" + // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:10971 ExtPostDepthCoverage = 1 - // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:7789 + // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:10972 ExtPostDepthCoverageSpecVersion = 1 - // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:7790 + // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:10973 ExtPostDepthCoverageExtensionName = "VK_EXT_post_depth_coverage" - // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:7793 + // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:10976 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:10977 + ExtImageDrmFormatModifierSpecVersion = 2 + // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:10978 ExtImageDrmFormatModifierExtensionName = "VK_EXT_image_drm_format_modifier" - // ExtValidationCache as defined in vulkan/vulkan_core.h:7852 + // ExtValidationCache as defined in vulkan/vulkan_core.h:11045 ExtValidationCache = 1 - // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:7855 + // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11047 ExtValidationCacheSpecVersion = 1 - // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:7856 + // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11048 ExtValidationCacheExtensionName = "VK_EXT_validation_cache" - // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:7914 + // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11100 ExtDescriptorIndexing = 1 - // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:7915 + // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11101 ExtDescriptorIndexingSpecVersion = 2 - // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:7916 + // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11102 ExtDescriptorIndexingExtensionName = "VK_EXT_descriptor_indexing" - // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:8003 + // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11119 ExtShaderViewportIndexLayer = 1 - // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:8004 + // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11120 ExtShaderViewportIndexLayerSpecVersion = 1 - // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:8005 + // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11121 ExtShaderViewportIndexLayerExtensionName = "VK_EXT_shader_viewport_index_layer" - // NvShadingRateImage as defined in vulkan/vulkan_core.h:8008 + // NvShadingRateImage as defined in vulkan/vulkan_core.h:11124 NvShadingRateImage = 1 - // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:8009 + // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11125 NvShadingRateImageSpecVersion = 3 - // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:8010 + // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11126 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:11596 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:11597 + NvRepresentativeFragmentTestSpecVersion = 2 + // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:11598 NvRepresentativeFragmentTestExtensionName = "VK_NV_representative_fragment_test" - // ExtGlobalPriority as defined in vulkan/vulkan_core.h:8399 + // ExtFilterCubic as defined in vulkan/vulkan_core.h:11613 + ExtFilterCubic = 1 + // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:11614 + ExtFilterCubicSpecVersion = 3 + // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:11615 + ExtFilterCubicExtensionName = "VK_EXT_filter_cubic" + // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:11631 + QcomRenderPassShaderResolve = 1 + // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:11632 + QcomRenderPassShaderResolveSpecVersion = 4 + // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:11633 + QcomRenderPassShaderResolveExtensionName = "VK_QCOM_render_pass_shader_resolve" + // ExtGlobalPriority as defined in vulkan/vulkan_core.h:11636 ExtGlobalPriority = 1 - // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:8400 + // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:11637 ExtGlobalPrioritySpecVersion = 2 - // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:8401 + // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:11638 ExtGlobalPriorityExtensionName = "VK_EXT_global_priority" - // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:8423 + // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:11645 ExtExternalMemoryHost = 1 - // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:8424 + // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:11646 ExtExternalMemoryHostSpecVersion = 1 - // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:8425 + // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:11647 ExtExternalMemoryHostExtensionName = "VK_EXT_external_memory_host" - // AmdBufferMarker as defined in vulkan/vulkan_core.h:8457 + // AmdBufferMarker as defined in vulkan/vulkan_core.h:11678 AmdBufferMarker = 1 - // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:8458 + // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:11679 AmdBufferMarkerSpecVersion = 1 - // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:8459 + // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:11680 AmdBufferMarkerExtensionName = "VK_AMD_buffer_marker" - // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:8472 + // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:11693 + AmdPipelineCompilerControl = 1 + // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:11694 + AmdPipelineCompilerControlSpecVersion = 1 + // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:11695 + AmdPipelineCompilerControlExtensionName = "VK_AMD_pipeline_compiler_control" + // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:11709 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:11710 + ExtCalibratedTimestampsSpecVersion = 2 + // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:11711 ExtCalibratedTimestampsExtensionName = "VK_EXT_calibrated_timestamps" - // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:8512 + // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:11744 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:11745 + AmdShaderCorePropertiesSpecVersion = 2 + // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:11746 AmdShaderCorePropertiesExtensionName = "VK_AMD_shader_core_properties" - // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:8537 + // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:11768 + AmdMemoryOverallocationBehavior = 1 + // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:11769 + AmdMemoryOverallocationBehaviorSpecVersion = 1 + // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:11770 + AmdMemoryOverallocationBehaviorExtensionName = "VK_AMD_memory_overallocation_behavior" + // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:11786 ExtVertexAttributeDivisor = 1 - // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:8538 + // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:11787 ExtVertexAttributeDivisorSpecVersion = 3 - // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:8539 + // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:11788 ExtVertexAttributeDivisorExtensionName = "VK_EXT_vertex_attribute_divisor" - // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:8568 + // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:11816 + ExtPipelineCreationFeedback = 1 + // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:11817 + ExtPipelineCreationFeedbackSpecVersion = 1 + // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:11818 + ExtPipelineCreationFeedbackExtensionName = "VK_EXT_pipeline_creation_feedback" + // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:11829 NvShaderSubgroupPartitioned = 1 - // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:8569 + // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:11830 NvShaderSubgroupPartitionedSpecVersion = 1 - // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:8570 + // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:11831 NvShaderSubgroupPartitionedExtensionName = "VK_NV_shader_subgroup_partitioned" - // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:8573 + // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:11834 NvComputeShaderDerivatives = 1 - // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:8574 + // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:11835 NvComputeShaderDerivativesSpecVersion = 1 - // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:8575 + // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:11836 NvComputeShaderDerivativesExtensionName = "VK_NV_compute_shader_derivatives" - // NvMeshShader as defined in vulkan/vulkan_core.h:8586 + // NvMeshShader as defined in vulkan/vulkan_core.h:11846 NvMeshShader = 1 - // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:8587 + // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:11847 NvMeshShaderSpecVersion = 1 - // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:8588 + // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:11848 NvMeshShaderExtensionName = "VK_NV_mesh_shader" - // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:8648 + // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:11907 NvFragmentShaderBarycentric = 1 - // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:8649 + // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:11908 NvFragmentShaderBarycentricSpecVersion = 1 - // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:8650 + // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:11909 NvFragmentShaderBarycentricExtensionName = "VK_NV_fragment_shader_barycentric" - // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:8660 + // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:11918 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:11919 + NvShaderImageFootprintSpecVersion = 2 + // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:11920 NvShaderImageFootprintExtensionName = "VK_NV_shader_image_footprint" - // NvScissorExclusive as defined in vulkan/vulkan_core.h:8672 + // NvScissorExclusive as defined in vulkan/vulkan_core.h:11929 NvScissorExclusive = 1 - // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:8673 + // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:11930 NvScissorExclusiveSpecVersion = 1 - // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:8674 + // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:11931 NvScissorExclusiveExtensionName = "VK_NV_scissor_exclusive" - // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:8700 + // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:11956 NvDeviceDiagnosticCheckpoints = 1 - // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:8701 + // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:11957 NvDeviceDiagnosticCheckpointsSpecVersion = 2 - // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:8702 + // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:11958 NvDeviceDiagnosticCheckpointsExtensionName = "VK_NV_device_diagnostic_checkpoints" - // ExtPciBusInfo as defined in vulkan/vulkan_core.h:8732 + // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:11987 + IntelShaderIntegerFunctions2 = 1 + // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:11988 + IntelShaderIntegerFunctions2SpecVersion = 1 + // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:11989 + IntelShaderIntegerFunctions2ExtensionName = "VK_INTEL_shader_integer_functions2" + // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:11998 + IntelPerformanceQuery = 1 + // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12000 + IntelPerformanceQuerySpecVersion = 2 + // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12001 + IntelPerformanceQueryExtensionName = "VK_INTEL_performance_query" + // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12136 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:12137 + ExtPciBusInfoSpecVersion = 2 + // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12138 ExtPciBusInfoExtensionName = "VK_EXT_pci_bus_info" - // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:8747 + // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12150 + AmdDisplayNativeHdr = 1 + // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12151 + AmdDisplayNativeHdrSpecVersion = 1 + // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12152 + AmdDisplayNativeHdrExtensionName = "VK_AMD_display_native_hdr" + // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12175 + ExtFragmentDensityMap = 1 + // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12176 + ExtFragmentDensityMapSpecVersion = 2 + // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12177 + ExtFragmentDensityMapExtensionName = "VK_EXT_fragment_density_map" + // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12202 + ExtScalarBlockLayout = 1 + // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12203 + ExtScalarBlockLayoutSpecVersion = 1 + // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12204 + ExtScalarBlockLayoutExtensionName = "VK_EXT_scalar_block_layout" + // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12209 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:12210 + GoogleHlslFunctionality1SpecVersion = 1 + // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12211 GoogleHlslFunctionality1ExtensionName = "VK_GOOGLE_hlsl_functionality1" - // GoogleDecorateString as defined in vulkan/vulkan_core.h:8752 + // GoogleDecorateString as defined in vulkan/vulkan_core.h:12216 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:12217 + GoogleDecorateStringSpecVersion = 1 + // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12218 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:12221 + ExtSubgroupSizeControl = 1 + // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12222 + ExtSubgroupSizeControlSpecVersion = 2 + // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12223 + ExtSubgroupSizeControlExtensionName = "VK_EXT_subgroup_size_control" + // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12232 + AmdShaderCoreProperties2 = 1 + // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12233 + AmdShaderCoreProperties2SpecVersion = 1 + // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12234 + AmdShaderCoreProperties2ExtensionName = "VK_AMD_shader_core_properties2" + // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12249 + AmdDeviceCoherentMemory = 1 + // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12250 + AmdDeviceCoherentMemorySpecVersion = 1 + // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12251 + AmdDeviceCoherentMemoryExtensionName = "VK_AMD_device_coherent_memory" + // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12260 + ExtShaderImageAtomicInt64 = 1 + // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12261 + ExtShaderImageAtomicInt64SpecVersion = 1 + // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12262 + ExtShaderImageAtomicInt64ExtensionName = "VK_EXT_shader_image_atomic_int64" + // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12272 + ExtMemoryBudget = 1 + // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12273 + ExtMemoryBudgetSpecVersion = 1 + // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12274 + ExtMemoryBudgetExtensionName = "VK_EXT_memory_budget" + // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12284 + ExtMemoryPriority = 1 + // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12285 + ExtMemoryPrioritySpecVersion = 1 + // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12286 + ExtMemoryPriorityExtensionName = "VK_EXT_memory_priority" + // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12301 + NvDedicatedAllocationImageAliasing = 1 + // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12302 + NvDedicatedAllocationImageAliasingSpecVersion = 1 + // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12303 + NvDedicatedAllocationImageAliasingExtensionName = "VK_NV_dedicated_allocation_image_aliasing" + // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:12312 + ExtBufferDeviceAddress = 1 + // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:12313 + ExtBufferDeviceAddressSpecVersion = 2 + // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:12314 + ExtBufferDeviceAddressExtensionName = "VK_EXT_buffer_device_address" + // ExtToolingInfo as defined in vulkan/vulkan_core.h:12342 + ExtToolingInfo = 1 + // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:12343 + ExtToolingInfoSpecVersion = 1 + // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:12344 + ExtToolingInfoExtensionName = "VK_EXT_tooling_info" + // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:12361 + ExtSeparateStencilUsage = 1 + // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:12362 + ExtSeparateStencilUsageSpecVersion = 1 + // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:12363 + ExtSeparateStencilUsageExtensionName = "VK_EXT_separate_stencil_usage" + // ExtValidationFeatures as defined in vulkan/vulkan_core.h:12368 + ExtValidationFeatures = 1 + // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:12369 + ExtValidationFeaturesSpecVersion = 5 + // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:12370 + ExtValidationFeaturesExtensionName = "VK_EXT_validation_features" + // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:12403 + NvCooperativeMatrix = 1 + // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:12404 + NvCooperativeMatrixSpecVersion = 1 + // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:12405 + NvCooperativeMatrixExtensionName = "VK_NV_cooperative_matrix" + // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:12465 + NvCoverageReductionMode = 1 + // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:12466 + NvCoverageReductionModeSpecVersion = 1 + // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:12467 + NvCoverageReductionModeExtensionName = "VK_NV_coverage_reduction_mode" + // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:12507 + ExtFragmentShaderInterlock = 1 + // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:12508 + ExtFragmentShaderInterlockSpecVersion = 1 + // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:12509 + ExtFragmentShaderInterlockExtensionName = "VK_EXT_fragment_shader_interlock" + // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:12520 + ExtYcbcrImageArrays = 1 + // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:12521 + ExtYcbcrImageArraysSpecVersion = 1 + // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:12522 + ExtYcbcrImageArraysExtensionName = "VK_EXT_ycbcr_image_arrays" + // ExtProvokingVertex as defined in vulkan/vulkan_core.h:12531 + ExtProvokingVertex = 1 + // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:12532 + ExtProvokingVertexSpecVersion = 1 + // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:12533 + ExtProvokingVertexExtensionName = "VK_EXT_provoking_vertex" + // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:12562 + ExtHeadlessSurface = 1 + // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:12563 + ExtHeadlessSurfaceSpecVersion = 1 + // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:12564 + ExtHeadlessSurfaceExtensionName = "VK_EXT_headless_surface" + // ExtLineRasterization as defined in vulkan/vulkan_core.h:12583 + ExtLineRasterization = 1 + // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:12584 + ExtLineRasterizationSpecVersion = 1 + // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:12585 + ExtLineRasterizationExtensionName = "VK_EXT_line_rasterization" + // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:12630 + ExtShaderAtomicFloat = 1 + // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:12631 + ExtShaderAtomicFloatSpecVersion = 1 + // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:12632 + ExtShaderAtomicFloatExtensionName = "VK_EXT_shader_atomic_float" + // ExtHostQueryReset as defined in vulkan/vulkan_core.h:12652 + ExtHostQueryReset = 1 + // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:12653 + ExtHostQueryResetSpecVersion = 1 + // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:12654 + ExtHostQueryResetExtensionName = "VK_EXT_host_query_reset" + // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:12668 + ExtIndexTypeUint8 = 1 + // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:12669 + ExtIndexTypeUint8SpecVersion = 1 + // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:12670 + ExtIndexTypeUint8ExtensionName = "VK_EXT_index_type_uint8" + // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:12679 + ExtExtendedDynamicState = 1 + // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:12680 + ExtExtendedDynamicStateSpecVersion = 1 + // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:12681 + ExtExtendedDynamicStateExtensionName = "VK_EXT_extended_dynamic_state" + // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:12763 + ExtShaderAtomicFloat2 = 1 + // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:12764 + ExtShaderAtomicFloat2SpecVersion = 1 + // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:12765 + ExtShaderAtomicFloat2ExtensionName = "VK_EXT_shader_atomic_float2" + // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:12785 + ExtShaderDemoteToHelperInvocation = 1 + // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:12786 + ExtShaderDemoteToHelperInvocationSpecVersion = 1 + // ExtShaderDemoteToHelperInvocationExtensionName as defined in vulkan/vulkan_core.h:12787 + ExtShaderDemoteToHelperInvocationExtensionName = "VK_EXT_shader_demote_to_helper_invocation" + // NvDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:12792 + NvDeviceGeneratedCommands = 1 + // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:12794 + NvDeviceGeneratedCommandsSpecVersion = 3 + // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:12795 + NvDeviceGeneratedCommandsExtensionName = "VK_NV_device_generated_commands" + // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:12982 + NvInheritedViewportScissor = 1 + // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:12983 + NvInheritedViewportScissorSpecVersion = 1 + // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:12984 + NvInheritedViewportScissorExtensionName = "VK_NV_inherited_viewport_scissor" + // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13001 + ExtTexelBufferAlignment = 1 + // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13002 + ExtTexelBufferAlignmentSpecVersion = 1 + // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13003 + ExtTexelBufferAlignmentExtensionName = "VK_EXT_texel_buffer_alignment" + // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13014 + QcomRenderPassTransform = 1 + // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13015 + QcomRenderPassTransformSpecVersion = 2 + // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13016 + QcomRenderPassTransformExtensionName = "VK_QCOM_render_pass_transform" + // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13032 + ExtDeviceMemoryReport = 1 + // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13033 + ExtDeviceMemoryReportSpecVersion = 2 + // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13034 + ExtDeviceMemoryReportExtensionName = "VK_EXT_device_memory_report" + // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13077 + ExtAcquireDrmDisplay = 1 + // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13078 + ExtAcquireDrmDisplaySpecVersion = 1 + // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13079 + ExtAcquireDrmDisplayExtensionName = "VK_EXT_acquire_drm_display" + // ExtRobustness2 as defined in vulkan/vulkan_core.h:13097 + ExtRobustness2 = 1 + // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13098 + ExtRobustness2SpecVersion = 1 + // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13099 + ExtRobustness2ExtensionName = "VK_EXT_robustness2" + // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13117 + ExtCustomBorderColor = 1 + // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13118 + ExtCustomBorderColorSpecVersion = 12 + // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13119 + ExtCustomBorderColorExtensionName = "VK_EXT_custom_border_color" + // GoogleUserType as defined in vulkan/vulkan_core.h:13142 + GoogleUserType = 1 + // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13143 + GoogleUserTypeSpecVersion = 1 + // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13144 + GoogleUserTypeExtensionName = "VK_GOOGLE_user_type" + // ExtPrivateData as defined in vulkan/vulkan_core.h:13147 + ExtPrivateData = 1 + // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13150 + ExtPrivateDataSpecVersion = 1 + // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13151 + ExtPrivateDataExtensionName = "VK_EXT_private_data" + // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:13193 + ExtPipelineCreationCacheControl = 1 + // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:13194 + ExtPipelineCreationCacheControlSpecVersion = 3 + // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:13195 + ExtPipelineCreationCacheControlExtensionName = "VK_EXT_pipeline_creation_cache_control" + // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:13200 + NvDeviceDiagnosticsConfig = 1 + // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:13201 + NvDeviceDiagnosticsConfigSpecVersion = 1 + // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:13202 + NvDeviceDiagnosticsConfigExtensionName = "VK_NV_device_diagnostics_config" + // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:13225 + QcomRenderPassStoreOps = 1 + // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:13226 + QcomRenderPassStoreOpsSpecVersion = 2 + // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:13227 + QcomRenderPassStoreOpsExtensionName = "VK_QCOM_render_pass_store_ops" + // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:13230 + ExtGraphicsPipelineLibrary = 1 + // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:13231 + ExtGraphicsPipelineLibrarySpecVersion = 1 + // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:13232 + ExtGraphicsPipelineLibraryExtensionName = "VK_EXT_graphics_pipeline_library" + // NvFragmentShadingRateEnums as defined in vulkan/vulkan_core.h:13263 + NvFragmentShadingRateEnums = 1 + // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:13264 + NvFragmentShadingRateEnumsSpecVersion = 1 + // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:13265 + NvFragmentShadingRateEnumsExtensionName = "VK_NV_fragment_shading_rate_enums" + // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:13411 + ExtYcbcr2plane444Formats = 1 + // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:13412 + ExtYcbcr2plane444FormatsSpecVersion = 1 + // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:13413 + ExtYcbcr2plane444FormatsExtensionName = "VK_EXT_ycbcr_2plane_444_formats" + // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:13422 + ExtFragmentDensityMap2 = 1 + // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:13423 + ExtFragmentDensityMap2SpecVersion = 1 + // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:13424 + ExtFragmentDensityMap2ExtensionName = "VK_EXT_fragment_density_map2" + // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:13442 + QcomRotatedCopyCommands = 1 + // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:13443 + QcomRotatedCopyCommandsSpecVersion = 1 + // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:13444 + QcomRotatedCopyCommandsExtensionName = "VK_QCOM_rotated_copy_commands" + // ExtImageRobustness as defined in vulkan/vulkan_core.h:13453 + ExtImageRobustness = 1 + // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:13454 + ExtImageRobustnessSpecVersion = 1 + // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:13455 + ExtImageRobustnessExtensionName = "VK_EXT_image_robustness" + // Ext4444Formats as defined in vulkan/vulkan_core.h:13460 + Ext4444Formats = 1 + // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:13461 + Ext4444FormatsSpecVersion = 1 + // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:13462 + Ext4444FormatsExtensionName = "VK_EXT_4444_formats" + // ArmRasterizationOrderAttachmentAccess as defined in vulkan/vulkan_core.h:13472 + ArmRasterizationOrderAttachmentAccess = 1 + // ArmRasterizationOrderAttachmentAccessSpecVersion as defined in vulkan/vulkan_core.h:13473 + ArmRasterizationOrderAttachmentAccessSpecVersion = 1 + // ArmRasterizationOrderAttachmentAccessExtensionName as defined in vulkan/vulkan_core.h:13474 + ArmRasterizationOrderAttachmentAccessExtensionName = "VK_ARM_rasterization_order_attachment_access" + // ExtRgba10x6Formats as defined in vulkan/vulkan_core.h:13485 + ExtRgba10x6Formats = 1 + // ExtRgba10x6FormatsSpecVersion as defined in vulkan/vulkan_core.h:13486 + ExtRgba10x6FormatsSpecVersion = 1 + // ExtRgba10x6FormatsExtensionName as defined in vulkan/vulkan_core.h:13487 + ExtRgba10x6FormatsExtensionName = "VK_EXT_rgba10x6_formats" + // NvAcquireWinrtDisplay as defined in vulkan/vulkan_core.h:13496 + NvAcquireWinrtDisplay = 1 + // NvAcquireWinrtDisplaySpecVersion as defined in vulkan/vulkan_core.h:13497 + NvAcquireWinrtDisplaySpecVersion = 1 + // NvAcquireWinrtDisplayExtensionName as defined in vulkan/vulkan_core.h:13498 + NvAcquireWinrtDisplayExtensionName = "VK_NV_acquire_winrt_display" + // ValveMutableDescriptorType as defined in vulkan/vulkan_core.h:13514 + ValveMutableDescriptorType = 1 + // ValveMutableDescriptorTypeSpecVersion as defined in vulkan/vulkan_core.h:13515 + ValveMutableDescriptorTypeSpecVersion = 1 + // ValveMutableDescriptorTypeExtensionName as defined in vulkan/vulkan_core.h:13516 + ValveMutableDescriptorTypeExtensionName = "VK_VALVE_mutable_descriptor_type" + // ExtVertexInputDynamicState as defined in vulkan/vulkan_core.h:13537 + ExtVertexInputDynamicState = 1 + // ExtVertexInputDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13538 + ExtVertexInputDynamicStateSpecVersion = 2 + // ExtVertexInputDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13539 + ExtVertexInputDynamicStateExtensionName = "VK_EXT_vertex_input_dynamic_state" + // ExtPhysicalDeviceDrm as defined in vulkan/vulkan_core.h:13576 + ExtPhysicalDeviceDrm = 1 + // ExtPhysicalDeviceDrmSpecVersion as defined in vulkan/vulkan_core.h:13577 + ExtPhysicalDeviceDrmSpecVersion = 1 + // ExtPhysicalDeviceDrmExtensionName as defined in vulkan/vulkan_core.h:13578 + ExtPhysicalDeviceDrmExtensionName = "VK_EXT_physical_device_drm" + // ExtDepthClipControl as defined in vulkan/vulkan_core.h:13592 + ExtDepthClipControl = 1 + // ExtDepthClipControlSpecVersion as defined in vulkan/vulkan_core.h:13593 + ExtDepthClipControlSpecVersion = 1 + // ExtDepthClipControlExtensionName as defined in vulkan/vulkan_core.h:13594 + ExtDepthClipControlExtensionName = "VK_EXT_depth_clip_control" + // ExtPrimitiveTopologyListRestart as defined in vulkan/vulkan_core.h:13609 + ExtPrimitiveTopologyListRestart = 1 + // ExtPrimitiveTopologyListRestartSpecVersion as defined in vulkan/vulkan_core.h:13610 + ExtPrimitiveTopologyListRestartSpecVersion = 1 + // ExtPrimitiveTopologyListRestartExtensionName as defined in vulkan/vulkan_core.h:13611 + ExtPrimitiveTopologyListRestartExtensionName = "VK_EXT_primitive_topology_list_restart" + // HuaweiSubpassShading as defined in vulkan/vulkan_core.h:13621 + HuaweiSubpassShading = 1 + // HuaweiSubpassShadingSpecVersion as defined in vulkan/vulkan_core.h:13622 + HuaweiSubpassShadingSpecVersion = 2 + // HuaweiSubpassShadingExtensionName as defined in vulkan/vulkan_core.h:13623 + HuaweiSubpassShadingExtensionName = "VK_HUAWEI_subpass_shading" + // HuaweiInvocationMask as defined in vulkan/vulkan_core.h:13657 + HuaweiInvocationMask = 1 + // HuaweiInvocationMaskSpecVersion as defined in vulkan/vulkan_core.h:13658 + HuaweiInvocationMaskSpecVersion = 1 + // HuaweiInvocationMaskExtensionName as defined in vulkan/vulkan_core.h:13659 + HuaweiInvocationMaskExtensionName = "VK_HUAWEI_invocation_mask" + // NvExternalMemoryRdma as defined in vulkan/vulkan_core.h:13676 + NvExternalMemoryRdma = 1 + // NvExternalMemoryRdmaSpecVersion as defined in vulkan/vulkan_core.h:13678 + NvExternalMemoryRdmaSpecVersion = 1 + // NvExternalMemoryRdmaExtensionName as defined in vulkan/vulkan_core.h:13679 + NvExternalMemoryRdmaExtensionName = "VK_NV_external_memory_rdma" + // ExtExtendedDynamicState2 as defined in vulkan/vulkan_core.h:13703 + ExtExtendedDynamicState2 = 1 + // ExtExtendedDynamicState2SpecVersion as defined in vulkan/vulkan_core.h:13704 + ExtExtendedDynamicState2SpecVersion = 1 + // ExtExtendedDynamicState2ExtensionName as defined in vulkan/vulkan_core.h:13705 + ExtExtendedDynamicState2ExtensionName = "VK_EXT_extended_dynamic_state2" + // ExtColorWriteEnable as defined in vulkan/vulkan_core.h:13743 + ExtColorWriteEnable = 1 + // ExtColorWriteEnableSpecVersion as defined in vulkan/vulkan_core.h:13744 + ExtColorWriteEnableSpecVersion = 1 + // ExtColorWriteEnableExtensionName as defined in vulkan/vulkan_core.h:13745 + ExtColorWriteEnableExtensionName = "VK_EXT_color_write_enable" + // ExtPrimitivesGeneratedQuery as defined in vulkan/vulkan_core.h:13769 + ExtPrimitivesGeneratedQuery = 1 + // ExtPrimitivesGeneratedQuerySpecVersion as defined in vulkan/vulkan_core.h:13770 + ExtPrimitivesGeneratedQuerySpecVersion = 1 + // ExtPrimitivesGeneratedQueryExtensionName as defined in vulkan/vulkan_core.h:13771 + ExtPrimitivesGeneratedQueryExtensionName = "VK_EXT_primitives_generated_query" + // ExtGlobalPriorityQuery as defined in vulkan/vulkan_core.h:13782 + ExtGlobalPriorityQuery = 1 + // ExtGlobalPriorityQuerySpecVersion as defined in vulkan/vulkan_core.h:13783 + ExtGlobalPriorityQuerySpecVersion = 1 + // ExtGlobalPriorityQueryExtensionName as defined in vulkan/vulkan_core.h:13784 + ExtGlobalPriorityQueryExtensionName = "VK_EXT_global_priority_query" + // ExtImageViewMinLod as defined in vulkan/vulkan_core.h:13792 + ExtImageViewMinLod = 1 + // ExtImageViewMinLodSpecVersion as defined in vulkan/vulkan_core.h:13793 + ExtImageViewMinLodSpecVersion = 1 + // ExtImageViewMinLodExtensionName as defined in vulkan/vulkan_core.h:13794 + ExtImageViewMinLodExtensionName = "VK_EXT_image_view_min_lod" + // ExtMultiDraw as defined in vulkan/vulkan_core.h:13809 + ExtMultiDraw = 1 + // ExtMultiDrawSpecVersion as defined in vulkan/vulkan_core.h:13810 + ExtMultiDrawSpecVersion = 1 + // ExtMultiDrawExtensionName as defined in vulkan/vulkan_core.h:13811 + ExtMultiDrawExtensionName = "VK_EXT_multi_draw" + // ExtImage2dViewOf3d as defined in vulkan/vulkan_core.h:13858 + ExtImage2dViewOf3d = 1 + // ExtImage2dViewOf3dSpecVersion as defined in vulkan/vulkan_core.h:13859 + ExtImage2dViewOf3dSpecVersion = 1 + // ExtImage2dViewOf3dExtensionName as defined in vulkan/vulkan_core.h:13860 + ExtImage2dViewOf3dExtensionName = "VK_EXT_image_2d_view_of_3d" + // ExtLoadStoreOpNone as defined in vulkan/vulkan_core.h:13870 + ExtLoadStoreOpNone = 1 + // ExtLoadStoreOpNoneSpecVersion as defined in vulkan/vulkan_core.h:13871 + ExtLoadStoreOpNoneSpecVersion = 1 + // ExtLoadStoreOpNoneExtensionName as defined in vulkan/vulkan_core.h:13872 + ExtLoadStoreOpNoneExtensionName = "VK_EXT_load_store_op_none" + // ExtBorderColorSwizzle as defined in vulkan/vulkan_core.h:13875 + ExtBorderColorSwizzle = 1 + // ExtBorderColorSwizzleSpecVersion as defined in vulkan/vulkan_core.h:13876 + ExtBorderColorSwizzleSpecVersion = 1 + // ExtBorderColorSwizzleExtensionName as defined in vulkan/vulkan_core.h:13877 + ExtBorderColorSwizzleExtensionName = "VK_EXT_border_color_swizzle" + // ExtPageableDeviceLocalMemory as defined in vulkan/vulkan_core.h:13894 + ExtPageableDeviceLocalMemory = 1 + // ExtPageableDeviceLocalMemorySpecVersion as defined in vulkan/vulkan_core.h:13895 + ExtPageableDeviceLocalMemorySpecVersion = 1 + // ExtPageableDeviceLocalMemoryExtensionName as defined in vulkan/vulkan_core.h:13896 + ExtPageableDeviceLocalMemoryExtensionName = "VK_EXT_pageable_device_local_memory" + // ValveDescriptorSetHostMapping as defined in vulkan/vulkan_core.h:13913 + ValveDescriptorSetHostMapping = 1 + // ValveDescriptorSetHostMappingSpecVersion as defined in vulkan/vulkan_core.h:13914 + ValveDescriptorSetHostMappingSpecVersion = 1 + // ValveDescriptorSetHostMappingExtensionName as defined in vulkan/vulkan_core.h:13915 + ValveDescriptorSetHostMappingExtensionName = "VK_VALVE_descriptor_set_host_mapping" + // QcomFragmentDensityMapOffset as defined in vulkan/vulkan_core.h:13952 + QcomFragmentDensityMapOffset = 1 + // QcomFragmentDensityMapOffsetSpecVersion as defined in vulkan/vulkan_core.h:13953 + QcomFragmentDensityMapOffsetSpecVersion = 1 + // QcomFragmentDensityMapOffsetExtensionName as defined in vulkan/vulkan_core.h:13954 + QcomFragmentDensityMapOffsetExtensionName = "VK_QCOM_fragment_density_map_offset" + // NvLinearColorAttachment as defined in vulkan/vulkan_core.h:13976 + NvLinearColorAttachment = 1 + // NvLinearColorAttachmentSpecVersion as defined in vulkan/vulkan_core.h:13977 + NvLinearColorAttachmentSpecVersion = 1 + // NvLinearColorAttachmentExtensionName as defined in vulkan/vulkan_core.h:13978 + NvLinearColorAttachmentExtensionName = "VK_NV_linear_color_attachment" + // GoogleSurfacelessQuery as defined in vulkan/vulkan_core.h:13987 + GoogleSurfacelessQuery = 1 + // GoogleSurfacelessQuerySpecVersion as defined in vulkan/vulkan_core.h:13988 + GoogleSurfacelessQuerySpecVersion = 1 + // GoogleSurfacelessQueryExtensionName as defined in vulkan/vulkan_core.h:13989 + GoogleSurfacelessQueryExtensionName = "VK_GOOGLE_surfaceless_query" ) // Result as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResult.html @@ -849,8 +1521,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 @@ -859,11 +1535,14 @@ const ( ErrorValidationFailed Result = -1000011001 ErrorInvalidShaderNv Result = -1000012000 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 + ErrorInvalidDeviceAddress Result = -1000257000 + ErrorPipelineCompileRequired Result = 1000297000 ResultMaxEnum Result = 2147483647 ) @@ -872,307 +1551,692 @@ 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 + 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 + 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 + 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 + 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 + 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 + StructureTypePhysicalDeviceFragmentShaderBarycentricFeaturesNv StructureType = 1000203000 + 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 + 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 + StructureTypePresentId StructureType = 1000294000 + StructureTypePhysicalDevicePresentIdFeatures StructureType = 1000294001 + StructureTypePhysicalDeviceDiagnosticsConfigFeaturesNv StructureType = 1000300000 + StructureTypeDeviceDiagnosticsConfigCreateInfoNv StructureType = 1000300001 + StructureTypeQueueFamilyCheckpointProperties2Nv StructureType = 1000314008 + StructureTypeCheckpointData2Nv StructureType = 1000314009 + StructureTypePhysicalDeviceGraphicsPipelineLibraryFeatures StructureType = 1000320000 + StructureTypePhysicalDeviceGraphicsPipelineLibraryProperties StructureType = 1000320001 + StructureTypeGraphicsPipelineLibraryCreateInfo StructureType = 1000320002 + StructureTypePhysicalDeviceShaderSubgroupUniformControlFlowFeatures StructureType = 1000323000 + StructureTypePhysicalDeviceFragmentShadingRateEnumsPropertiesNv StructureType = 1000326000 + StructureTypePhysicalDeviceFragmentShadingRateEnumsFeaturesNv StructureType = 1000326001 + StructureTypePipelineFragmentShadingRateEnumStateCreateInfoNv StructureType = 1000326002 + StructureTypeAccelerationStructureGeometryMotionTrianglesDataNv StructureType = 1000327000 + StructureTypePhysicalDeviceRayTracingMotionBlurFeaturesNv StructureType = 1000327001 + StructureTypeAccelerationStructureMotionInfoNv StructureType = 1000327002 + StructureTypePhysicalDeviceYcbcr2Plane444FormatsFeatures StructureType = 1000330000 + StructureTypePhysicalDeviceFragmentDensityMap2Features StructureType = 1000332000 + StructureTypePhysicalDeviceFragmentDensityMap2Properties StructureType = 1000332001 + StructureTypeCopyCommandTransformInfoQcom StructureType = 1000333000 + StructureTypePhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures StructureType = 1000336000 + StructureTypePhysicalDevice4444FormatsFeatures StructureType = 1000340000 + StructureTypePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesArm StructureType = 1000342000 + StructureTypePhysicalDeviceRgba10x6FormatsFeatures StructureType = 1000344000 + StructureTypeDirectfbSurfaceCreateInfo StructureType = 1000346000 + StructureTypePhysicalDeviceMutableDescriptorTypeFeaturesValve StructureType = 1000351000 + StructureTypeMutableDescriptorTypeCreateInfoValve StructureType = 1000351002 + StructureTypePhysicalDeviceVertexInputDynamicStateFeatures StructureType = 1000352000 + StructureTypeVertexInputBindingDescription2 StructureType = 1000352001 + StructureTypeVertexInputAttributeDescription2 StructureType = 1000352002 + StructureTypePhysicalDeviceDrmProperties StructureType = 1000353000 + 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 + StructureTypePhysicalDeviceExtendedDynamicState2Features StructureType = 1000377000 + StructureTypeScreenSurfaceCreateInfoQnx StructureType = 1000378000 + StructureTypePhysicalDeviceColorWriteEnableFeatures StructureType = 1000381000 + StructureTypePipelineColorWriteCreateInfo StructureType = 1000381001 + StructureTypePhysicalDevicePrimitivesGeneratedQueryFeatures StructureType = 1000382000 + StructureTypePhysicalDeviceImageViewMinLodFeatures StructureType = 1000391000 + StructureTypeImageViewMinLodCreateInfo StructureType = 1000391001 + StructureTypePhysicalDeviceMultiDrawFeatures StructureType = 1000392000 + StructureTypePhysicalDeviceMultiDrawProperties StructureType = 1000392001 + StructureTypePhysicalDeviceImage2dViewOf3dFeatures StructureType = 1000393000 + StructureTypePhysicalDeviceBorderColorSwizzleFeatures StructureType = 1000411000 + StructureTypeSamplerBorderColorComponentMappingCreateInfo StructureType = 1000411001 + StructureTypePhysicalDevicePageableDeviceLocalMemoryFeatures StructureType = 1000412000 + StructureTypePhysicalDeviceDescriptorSetHostMappingFeaturesValve StructureType = 1000420000 + StructureTypeDescriptorSetBindingReferenceValve StructureType = 1000420001 + StructureTypeDescriptorSetLayoutHostMappingInfoValve StructureType = 1000420002 + StructureTypePhysicalDeviceFragmentDensityMapOffsetFeaturesQcom StructureType = 1000425000 + StructureTypePhysicalDeviceFragmentDensityMapOffsetPropertiesQcom StructureType = 1000425001 + StructureTypeSubpassFragmentDensityMapOffsetEndInfoQcom StructureType = 1000425002 + StructureTypePhysicalDeviceLinearColorAttachmentFeaturesNv StructureType = 1000430000 + StructureTypePhysicalDeviceVariablePointerFeatures StructureType = 1000120000 + StructureTypePhysicalDeviceShaderDrawParameterFeatures StructureType = 1000063000 + StructureTypeDebugReportCreateInfo StructureType = 1000011000 + StructureTypeAttachmentSampleCountInfoNv StructureType = 1000044008 + StructureTypePhysicalDeviceFloat16Int8Features StructureType = 1000082000 + StructureTypeQueryPoolCreateInfoIntel StructureType = 1000210000 + StructureTypePhysicalDeviceBufferAddressFeatures StructureType = 1000244000 + StructureTypeMaxEnum StructureType = 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 + ImageLayoutSharedPresent ImageLayout = 1000111000 + ImageLayoutFragmentDensityMapOptimal ImageLayout = 1000218000 + ImageLayoutFragmentShadingRateAttachmentOptimal ImageLayout = 1000164003 + 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 + 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 + ObjectTypeMaxEnum ObjectType = 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 +) + +// 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 +2244,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 +2258,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 +2485,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 +2513,9 @@ const ( FormatPvrtc14bppSrgbBlockImg Format = 1000054005 FormatPvrtc22bppSrgbBlockImg Format = 1000054006 FormatPvrtc24bppSrgbBlockImg Format = 1000054007 - FormatBeginRange Format = 0 - FormatEndRange Format = 184 - FormatRangeSize Format = 185 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 +2524,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 +2548,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 +2556,17 @@ 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 + QueryTypeTransformFeedbackStream QueryType = 1000028004 + QueryTypePerformanceQuery QueryType = 1000116000 + QueryTypeAccelerationStructureCompactedSize QueryType = 1000150000 + QueryTypeAccelerationStructureSerializationSize QueryType = 1000150001 + QueryTypeAccelerationStructureCompactedSizeNv QueryType = 1000165000 + QueryTypePerformanceQueryIntel QueryType = 1000210000 + QueryTypePrimitivesGenerated QueryType = 1000382000 + QueryTypeMaxEnum QueryType = 2147483647 ) // SharingMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSharingMode.html @@ -1508,199 +2576,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 +2633,6 @@ const ( BlendFactorOneMinusSrc1Color BlendFactor = 16 BlendFactorSrc1Alpha BlendFactor = 17 BlendFactorOneMinusSrc1Alpha BlendFactor = 18 - BlendFactorBeginRange BlendFactor = 0 - BlendFactorEndRange BlendFactor = 18 - BlendFactorRangeSize BlendFactor = 19 BlendFactorMaxEnum BlendFactor = 2147483647 ) @@ -1789,12 +2692,25 @@ const ( BlendOpRed BlendOp = 1000148043 BlendOpGreen BlendOp = 1000148044 BlendOpBlue BlendOp = 1000148045 - BlendOpBeginRange BlendOp = 0 - BlendOpEndRange BlendOp = 4 - BlendOpRangeSize BlendOp = 5 BlendOpMaxEnum BlendOp = 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 + CompareOpMaxEnum CompareOp = 2147483647 +) + // DynamicState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.html type DynamicState int32 @@ -1809,64 +2725,131 @@ const ( 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 - DynamicStateBeginRange DynamicState = 0 - DynamicStateEndRange DynamicState = 8 - DynamicStateRangeSize DynamicState = 9 + DynamicStateFragmentShadingRate DynamicState = 1000226000 + DynamicStateLineStipple DynamicState = 1000259000 + DynamicStateVertexInput DynamicState = 1000352000 + DynamicStatePatchControlPoints DynamicState = 1000377000 + DynamicStateLogicOp DynamicState = 1000377003 + DynamicStateColorWriteEnable DynamicState = 1000381000 DynamicStateMaxEnum DynamicState = 2147483647 ) -// Filter as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html -type Filter int32 +// FrontFace as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html +type FrontFace int32 -// Filter enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html +// FrontFace enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html const ( - FilterNearest Filter = iota - FilterLinear Filter = 1 - FilterCubicImg Filter = 1000015000 - FilterBeginRange Filter = 0 - FilterEndRange Filter = 1 - FilterRangeSize Filter = 2 - FilterMaxEnum Filter = 2147483647 + FrontFaceCounterClockwise FrontFace = iota + FrontFaceClockwise FrontFace = 1 + FrontFaceMaxEnum FrontFace = 2147483647 ) -// SamplerMipmapMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html -type SamplerMipmapMode int32 +// VertexInputRate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html +type VertexInputRate int32 -// SamplerMipmapMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html +// VertexInputRate enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html const ( - SamplerMipmapModeNearest SamplerMipmapMode = iota - SamplerMipmapModeLinear SamplerMipmapMode = 1 - SamplerMipmapModeBeginRange SamplerMipmapMode = 0 - SamplerMipmapModeEndRange SamplerMipmapMode = 1 - SamplerMipmapModeRangeSize SamplerMipmapMode = 2 - SamplerMipmapModeMaxEnum SamplerMipmapMode = 2147483647 + VertexInputRateVertex VertexInputRate = iota + VertexInputRateInstance VertexInputRate = 1 + VertexInputRateMaxEnum VertexInputRate = 2147483647 ) -// SamplerAddressMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html -type SamplerAddressMode int32 +// PrimitiveTopology as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.html +type PrimitiveTopology int32 -// SamplerAddressMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html +// PrimitiveTopology enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.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 -) - -// BorderColor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBorderColor.html -type BorderColor int32 - + 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 @@ -1875,34 +2858,67 @@ 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 + FilterCubicImg Filter = 1000015000 + FilterCubic 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 + 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 +2926,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 +2938,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 +2950,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 +2963,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 +2973,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 +2988,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,28 +3078,15 @@ const ( FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceableBit FormatFeatureFlagBits = 2097152 FormatFeatureDisjointBit FormatFeatureFlagBits = 4194304 FormatFeatureCositedChromaSamplesBit FormatFeatureFlagBits = 8388608 - FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 FormatFeatureSampledImageFilterMinmaxBit FormatFeatureFlagBits = 65536 + FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 + FormatFeatureAccelerationStructureVertexBufferBit FormatFeatureFlagBits = 536870912 + FormatFeatureFragmentDensityMapBit FormatFeatureFlagBits = 16777216 + FormatFeatureFragmentShadingRateAttachmentBit FormatFeatureFlagBits = 1073741824 + FormatFeatureSampledImageFilterCubicBit 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 @@ -2116,6 +3106,9 @@ const ( ImageCreateDisjointBit ImageCreateFlagBits = 512 ImageCreateCornerSampledBitNv ImageCreateFlagBits = 8192 ImageCreateSampleLocationsCompatibleDepthBit ImageCreateFlagBits = 4096 + ImageCreateSubsampledBit ImageCreateFlagBits = 16384 + ImageCreate2dViewCompatibleBit ImageCreateFlagBits = 131072 + ImageCreateFragmentDensityMapOffsetBitQcom ImageCreateFlagBits = 32768 ImageCreateFlagBitsMaxEnum ImageCreateFlagBits = 2147483647 ) @@ -2134,31 +3127,33 @@ 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 + ImageUsageFragmentDensityMapBit ImageUsageFlagBits = 512 + ImageUsageFragmentShadingRateAttachmentBit ImageUsageFlagBits = 256 + ImageUsageInvocationMaskBitHuawei ImageUsageFlagBits = 262144 + ImageUsageShadingRateImageBitNv ImageUsageFlagBits = 256 + ImageUsageFlagBitsMaxEnum ImageUsageFlagBits = 2147483647 ) -// MemoryPropertyFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlagBits.html -type MemoryPropertyFlagBits int32 +// InstanceCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlagBits.html +type InstanceCreateFlagBits int32 -// MemoryPropertyFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlagBits.html +// InstanceCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlagBits.html const ( - MemoryPropertyDeviceLocalBit MemoryPropertyFlagBits = 1 - MemoryPropertyHostVisibleBit MemoryPropertyFlagBits = 2 - MemoryPropertyHostCoherentBit MemoryPropertyFlagBits = 4 - MemoryPropertyHostCachedBit MemoryPropertyFlagBits = 8 - MemoryPropertyLazilyAllocatedBit MemoryPropertyFlagBits = 16 - MemoryPropertyProtectedBit MemoryPropertyFlagBits = 32 - MemoryPropertyFlagBitsMaxEnum MemoryPropertyFlagBits = 2147483647 + InstanceCreateEnumeratePortabilityBit InstanceCreateFlagBits = 1 + InstanceCreateFlagBitsMaxEnum InstanceCreateFlagBits = 2147483647 ) // MemoryHeapFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlagBits.html @@ -2171,6 +3166,36 @@ const ( MemoryHeapFlagBitsMaxEnum MemoryHeapFlagBits = 2147483647 ) +// MemoryPropertyFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlagBits.html +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 + MemoryPropertyDeviceCoherentBitAmd MemoryPropertyFlagBits = 64 + MemoryPropertyDeviceUncachedBitAmd MemoryPropertyFlagBits = 128 + MemoryPropertyRdmaCapableBitNv MemoryPropertyFlagBits = 256 + MemoryPropertyFlagBitsMaxEnum MemoryPropertyFlagBits = 2147483647 +) + +// QueueFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html +type QueueFlagBits int32 + +// QueueFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html +const ( + QueueGraphicsBit QueueFlagBits = 1 + QueueComputeBit QueueFlagBits = 2 + QueueTransferBit QueueFlagBits = 4 + QueueSparseBindingBit QueueFlagBits = 8 + QueueProtectedBit QueueFlagBits = 16 + QueueFlagBitsMaxEnum QueueFlagBits = 2147483647 +) + // DeviceQueueCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateFlagBits.html type DeviceQueueCreateFlagBits int32 @@ -2185,50 +3210,46 @@ 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 + PipelineStageTaskShaderBitNv PipelineStageFlagBits = 524288 + PipelineStageMeshShaderBitNv PipelineStageFlagBits = 1048576 + PipelineStageFragmentDensityProcessBit PipelineStageFlagBits = 8388608 + PipelineStageFragmentShadingRateAttachmentBit PipelineStageFlagBits = 4194304 + PipelineStageCommandPreprocessBitNv PipelineStageFlagBits = 131072 + PipelineStageShadingRateImageBitNv PipelineStageFlagBits = 4194304 + PipelineStageRayTracingShaderBitNv PipelineStageFlagBits = 2097152 + PipelineStageAccelerationStructureBuildBitNv PipelineStageFlagBits = 33554432 + 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 +3263,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 +3272,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 @@ -2296,11 +3317,12 @@ 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 + BufferCreateFlagBitsMaxEnum BufferCreateFlagBits = 2147483647 ) // BufferUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferUsageFlagBits.html @@ -2308,20 +3330,55 @@ 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 + BufferUsageTransformFeedbackBufferBit BufferUsageFlagBits = 2048 + BufferUsageTransformFeedbackCounterBufferBit BufferUsageFlagBits = 4096 + BufferUsageConditionalRenderingBit BufferUsageFlagBits = 512 + BufferUsageAccelerationStructureBuildInputReadOnlyBit BufferUsageFlagBits = 524288 + BufferUsageAccelerationStructureStorageBit BufferUsageFlagBits = 1048576 + BufferUsageShaderBindingTableBit BufferUsageFlagBits = 1024 + 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 + 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 +3386,44 @@ 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 + PipelineCreateRetainLinkTimeOptimizationInfoBit PipelineCreateFlagBits = 8388608 + PipelineCreateLinkTimeOptimizationBit PipelineCreateFlagBits = 1024 + PipelineCreateRayTracingAllowMotionBitNv PipelineCreateFlagBits = 1048576 + 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,14 +3439,21 @@ 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 ShaderStageTaskBitNv ShaderStageFlagBits = 64 ShaderStageMeshBitNv ShaderStageFlagBits = 128 + ShaderStageSubpassShadingBitHuawei ShaderStageFlagBits = 16384 + ShaderStageRaygenBitNv ShaderStageFlagBits = 256 + ShaderStageAnyHitBitNv ShaderStageFlagBits = 512 + ShaderStageClosestHitBitNv ShaderStageFlagBits = 1024 + ShaderStageMissBitNv ShaderStageFlagBits = 2048 + ShaderStageIntersectionBitNv ShaderStageFlagBits = 4096 + ShaderStageCallableBitNv ShaderStageFlagBits = 8192 ShaderStageFlagBitsMaxEnum ShaderStageFlagBits = 2147483647 ) @@ -2374,26 +3469,42 @@ 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 + 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 ( - DescriptorSetLayoutCreatePushDescriptorBit DescriptorSetLayoutCreateFlagBits = 1 - DescriptorSetLayoutCreateUpdateAfterBindPoolBit DescriptorSetLayoutCreateFlagBits = 2 - DescriptorSetLayoutCreateFlagBitsMaxEnum DescriptorSetLayoutCreateFlagBits = 2147483647 + 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 ( + SamplerCreateSubsampledBit SamplerCreateFlagBits = 1 + SamplerCreateSubsampledCoarseReconstructionBit SamplerCreateFlagBits = 2 + SamplerCreateFlagBitsMaxEnum SamplerCreateFlagBits = 2147483647 ) // DescriptorPoolCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateFlagBits.html @@ -2403,9 +3514,21 @@ type DescriptorPoolCreateFlagBits int32 const ( DescriptorPoolCreateFreeDescriptorSetBit DescriptorPoolCreateFlagBits = 1 DescriptorPoolCreateUpdateAfterBindBit DescriptorPoolCreateFlagBits = 2 + 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 + 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 +3538,48 @@ 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 + 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 ( + 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 ( - DependencyByRegionBit DependencyFlagBits = 1 - DependencyDeviceGroupBit DependencyFlagBits = 4 - DependencyViewLocalBit DependencyFlagBits = 2 - DependencyFlagBitsMaxEnum DependencyFlagBits = 2147483647 + SubpassDescriptionPerViewAttributesBitNvx SubpassDescriptionFlagBits = 1 + SubpassDescriptionPerViewPositionXOnlyBitNvx SubpassDescriptionFlagBits = 2 + SubpassDescriptionFragmentRegionBitQcom SubpassDescriptionFlagBits = 4 + SubpassDescriptionShaderResolveBitQcom SubpassDescriptionFlagBits = 8 + 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 +3638,7 @@ type StencilFaceFlagBits int32 const ( StencilFaceFrontBit StencilFaceFlagBits = 1 StencilFaceBackBit StencilFaceFlagBits = 2 + StencilFaceFrontAndBack StencilFaceFlagBits = 3 StencilFrontAndBack StencilFaceFlagBits = 3 StencilFaceFlagBitsMaxEnum StencilFaceFlagBits = 2147483647 ) @@ -2538,9 +3650,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 +3658,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 +3673,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 +3681,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 +3693,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 +3703,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 +3740,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 +3762,8 @@ const ( ExternalMemoryHandleTypeAndroidHardwareBufferBitAndroid ExternalMemoryHandleTypeFlagBits = 1024 ExternalMemoryHandleTypeHostAllocationBit ExternalMemoryHandleTypeFlagBits = 128 ExternalMemoryHandleTypeHostMappedForeignMemoryBit ExternalMemoryHandleTypeFlagBits = 256 + ExternalMemoryHandleTypeZirconVmoBitFuchsia ExternalMemoryHandleTypeFlagBits = 2048 + ExternalMemoryHandleTypeRdmaAddressBitNv ExternalMemoryHandleTypeFlagBits = 4096 ExternalMemoryHandleTypeFlagBitsMaxEnum ExternalMemoryHandleTypeFlagBits = 2147483647 ) @@ -2725,12 +3823,14 @@ 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 - ExternalSemaphoreHandleTypeFlagBitsMaxEnum ExternalSemaphoreHandleTypeFlagBits = 2147483647 + 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 @@ -2743,6 +3843,162 @@ const ( 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 + 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 +) + +// PipelineCreationFeedbackFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackFlagBits.html +type PipelineCreationFeedbackFlagBits int32 + +// PipelineCreationFeedbackFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackFlagBits.html +const ( + PipelineCreationFeedbackValidBit PipelineCreationFeedbackFlagBits = 1 + PipelineCreationFeedbackApplicationPipelineCacheHitBit PipelineCreationFeedbackFlagBits = 2 + PipelineCreationFeedbackBasePipelineAccelerationBit PipelineCreationFeedbackFlagBits = 4 + PipelineCreationFeedbackFlagBitsMaxEnum PipelineCreationFeedbackFlagBits = 2147483647 +) + +// ToolPurposeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkToolPurposeFlagBits.html +type ToolPurposeFlagBits int32 + +// ToolPurposeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkToolPurposeFlagBits.html +const ( + ToolPurposeValidationBit ToolPurposeFlagBits = 1 + ToolPurposeProfilingBit ToolPurposeFlagBits = 2 + ToolPurposeTracingBit ToolPurposeFlagBits = 4 + ToolPurposeAdditionalFeaturesBit ToolPurposeFlagBits = 8 + ToolPurposeModifyingFeaturesBit ToolPurposeFlagBits = 16 + ToolPurposeDebugReportingBit ToolPurposeFlagBits = 32 + ToolPurposeDebugMarkersBit ToolPurposeFlagBits = 64 + ToolPurposeFlagBitsMaxEnum ToolPurposeFlagBits = 2147483647 +) + +// SubmitFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitFlagBits.html +type SubmitFlagBits int32 + +// SubmitFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitFlagBits.html +const ( + SubmitProtectedBit SubmitFlagBits = 1 + SubmitFlagBitsMaxEnum SubmitFlagBits = 2147483647 +) + +// RenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFlagBits.html +type RenderingFlagBits int32 + +// RenderingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFlagBits.html +const ( + RenderingContentsSecondaryCommandBuffersBit RenderingFlagBits = 1 + RenderingSuspendingBit RenderingFlagBits = 2 + RenderingResumingBit RenderingFlagBits = 4 + RenderingFlagBitsMaxEnum RenderingFlagBits = 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 + PresentModeMaxEnum PresentMode = 2147483647 +) + // ColorSpace as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkColorSpaceKHR type ColorSpace int32 @@ -2751,7 +4007,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 +4019,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 +4061,7 @@ type SwapchainCreateFlagBits int32 const ( SwapchainCreateSplitInstanceBindRegionsBit SwapchainCreateFlagBits = 1 SwapchainCreateProtectedBit SwapchainCreateFlagBits = 2 + SwapchainCreateMutableFormatBit SwapchainCreateFlagBits = 4 SwapchainCreateFlagBitsMaxEnum SwapchainCreateFlagBits = 2147483647 ) @@ -2850,24 +4089,108 @@ 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 +// PerformanceCounterUnit as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR +type PerformanceCounterUnit int32 -// DriverId enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDriverIdKHR +// PerformanceCounterUnit enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR 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 + 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 ( + 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 +4229,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 +4262,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 +4275,6 @@ const ( ShaderInfoTypeStatisticsAmd ShaderInfoTypeAMD = iota ShaderInfoTypeBinaryAmd ShaderInfoTypeAMD = 1 ShaderInfoTypeDisassemblyAmd ShaderInfoTypeAMD = 2 - ShaderInfoTypeBeginRangeAmd ShaderInfoTypeAMD = 0 - ShaderInfoTypeEndRangeAmd ShaderInfoTypeAMD = 2 - ShaderInfoTypeRangeSizeAmd ShaderInfoTypeAMD = 3 ShaderInfoTypeMaxEnumAmd ShaderInfoTypeAMD = 2147483647 ) @@ -2990,12 +4306,9 @@ 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 + ValidationCheckAll ValidationCheck = iota + ValidationCheckShaders ValidationCheck = 1 + ValidationCheckMaxEnum ValidationCheck = 2147483647 ) // ConditionalRenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html @@ -3007,68 +4320,12 @@ const ( 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 -) - -// ObjectEntryTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryTypeNVX -type ObjectEntryTypeNVX int32 - -// ObjectEntryTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryTypeNVX -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 -) - -// IndirectCommandsLayoutUsageFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutUsageFlagBitsNVX -type IndirectCommandsLayoutUsageFlagBitsNVX int32 - -// IndirectCommandsLayoutUsageFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutUsageFlagBitsNVX -const ( - IndirectCommandsLayoutUsageUnorderedSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 1 - IndirectCommandsLayoutUsageSparseSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 2 - IndirectCommandsLayoutUsageEmptyExecutionsBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 4 - IndirectCommandsLayoutUsageIndexedSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 8 - IndirectCommandsLayoutUsageFlagBitsMaxEnumNvx IndirectCommandsLayoutUsageFlagBitsNVX = 2147483647 -) - -// ObjectEntryUsageFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagBitsNVX -type ObjectEntryUsageFlagBitsNVX int32 - -// ObjectEntryUsageFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagBitsNVX -const ( - ObjectEntryUsageGraphicsBitNvx ObjectEntryUsageFlagBitsNVX = 1 - ObjectEntryUsageComputeBitNvx ObjectEntryUsageFlagBitsNVX = 2 - ObjectEntryUsageFlagBitsMaxEnumNvx ObjectEntryUsageFlagBitsNVX = 2147483647 -) - // SurfaceCounterFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagBitsEXT.html 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 +4335,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 +4347,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 +4356,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 +4364,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 +4380,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 +4393,6 @@ const ( ConservativeRasterizationModeDisabled ConservativeRasterizationMode = iota ConservativeRasterizationModeOverestimate ConservativeRasterizationMode = 1 ConservativeRasterizationModeUnderestimate ConservativeRasterizationMode = 2 - ConservativeRasterizationModeBeginRange ConservativeRasterizationMode = 0 - ConservativeRasterizationModeEndRange ConservativeRasterizationMode = 2 - ConservativeRasterizationModeRangeSize ConservativeRasterizationMode = 3 ConservativeRasterizationModeMaxEnum ConservativeRasterizationMode = 2147483647 ) @@ -3180,20 +4419,6 @@ const ( 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 -) - // BlendOverlap as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBlendOverlapEXT.html type BlendOverlap int32 @@ -3202,9 +4427,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 +4435,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 +4447,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 +4468,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 +4480,289 @@ 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 -// GeometryTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryTypeNVX +// PipelineCompilerControlFlagBitsAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlFlagBitsAMD const ( - GeometryTypeTrianglesNvx GeometryTypeNVX = iota - GeometryTypeAabbsNvx GeometryTypeNVX = 1 - GeometryTypeBeginRangeNvx GeometryTypeNVX = 0 - GeometryTypeEndRangeNvx GeometryTypeNVX = 1 - GeometryTypeRangeSizeNvx GeometryTypeNVX = 2 - GeometryTypeMaxEnumNvx GeometryTypeNVX = 2147483647 + PipelineCompilerControlFlagBitsMaxEnumAmd PipelineCompilerControlFlagBitsAMD = 2147483647 ) -// AccelerationStructureTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureTypeNVX -type AccelerationStructureTypeNVX int32 +// TimeDomain as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html +type TimeDomain int32 -// AccelerationStructureTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureTypeNVX +// TimeDomain enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html const ( - AccelerationStructureTypeTopLevelNvx AccelerationStructureTypeNVX = iota - AccelerationStructureTypeBottomLevelNvx AccelerationStructureTypeNVX = 1 - AccelerationStructureTypeBeginRangeNvx AccelerationStructureTypeNVX = 0 - AccelerationStructureTypeEndRangeNvx AccelerationStructureTypeNVX = 1 - AccelerationStructureTypeRangeSizeNvx AccelerationStructureTypeNVX = 2 - AccelerationStructureTypeMaxEnumNvx AccelerationStructureTypeNVX = 2147483647 + TimeDomainDevice TimeDomain = iota + TimeDomainClockMonotonic TimeDomain = 1 + TimeDomainClockMonotonicRaw TimeDomain = 2 + TimeDomainQueryPerformanceCounter TimeDomain = 3 + TimeDomainMaxEnum TimeDomain = 2147483647 ) -// CopyAccelerationStructureModeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCopyAccelerationStructureModeNVX -type CopyAccelerationStructureModeNVX int32 +// MemoryOverallocationBehaviorAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryOverallocationBehaviorAMD +type MemoryOverallocationBehaviorAMD int32 -// CopyAccelerationStructureModeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCopyAccelerationStructureModeNVX +// MemoryOverallocationBehaviorAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryOverallocationBehaviorAMD const ( - CopyAccelerationStructureModeCloneNvx CopyAccelerationStructureModeNVX = iota - CopyAccelerationStructureModeCompactNvx CopyAccelerationStructureModeNVX = 1 - CopyAccelerationStructureModeBeginRangeNvx CopyAccelerationStructureModeNVX = 0 - CopyAccelerationStructureModeEndRangeNvx CopyAccelerationStructureModeNVX = 1 - CopyAccelerationStructureModeRangeSizeNvx CopyAccelerationStructureModeNVX = 2 - CopyAccelerationStructureModeMaxEnumNvx CopyAccelerationStructureModeNVX = 2147483647 + MemoryOverallocationBehaviorDefaultAmd MemoryOverallocationBehaviorAMD = iota + MemoryOverallocationBehaviorAllowedAmd MemoryOverallocationBehaviorAMD = 1 + MemoryOverallocationBehaviorDisallowedAmd MemoryOverallocationBehaviorAMD = 2 + MemoryOverallocationBehaviorMaxEnumAmd MemoryOverallocationBehaviorAMD = 2147483647 ) -// GeometryFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryFlagBitsNVX -type GeometryFlagBitsNVX int32 +// PerformanceConfigurationTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationTypeINTEL.html +type PerformanceConfigurationTypeINTEL int32 -// GeometryFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryFlagBitsNVX +// PerformanceConfigurationTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationTypeINTEL.html const ( - GeometryOpaqueBitNvx GeometryFlagBitsNVX = 1 - GeometryNoDuplicateAnyHitInvocationBitNvx GeometryFlagBitsNVX = 2 - GeometryFlagBitsMaxEnumNvx GeometryFlagBitsNVX = 2147483647 + PerformanceConfigurationTypeCommandQueueMetricsDiscoveryActivatedIntel PerformanceConfigurationTypeINTEL = iota + PerformanceConfigurationTypeMaxEnumIntel PerformanceConfigurationTypeINTEL = 2147483647 ) -// GeometryInstanceFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagBitsNVX -type GeometryInstanceFlagBitsNVX int32 +// QueryPoolSamplingModeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolSamplingModeINTEL.html +type QueryPoolSamplingModeINTEL int32 -// GeometryInstanceFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagBitsNVX +// QueryPoolSamplingModeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolSamplingModeINTEL.html const ( - GeometryInstanceTriangleCullDisableBitNvx GeometryInstanceFlagBitsNVX = 1 - GeometryInstanceTriangleCullFlipWindingBitNvx GeometryInstanceFlagBitsNVX = 2 - GeometryInstanceForceOpaqueBitNvx GeometryInstanceFlagBitsNVX = 4 - GeometryInstanceForceNoOpaqueBitNvx GeometryInstanceFlagBitsNVX = 8 - GeometryInstanceFlagBitsMaxEnumNvx GeometryInstanceFlagBitsNVX = 2147483647 + QueryPoolSamplingModeManualIntel QueryPoolSamplingModeINTEL = iota + QueryPoolSamplingModeMaxEnumIntel QueryPoolSamplingModeINTEL = 2147483647 ) -// BuildAccelerationStructureFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagBitsNVX -type BuildAccelerationStructureFlagBitsNVX int32 +// PerformanceOverrideTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceOverrideTypeINTEL.html +type PerformanceOverrideTypeINTEL int32 -// BuildAccelerationStructureFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagBitsNVX +// PerformanceOverrideTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceOverrideTypeINTEL.html const ( - BuildAccelerationStructureAllowUpdateBitNvx BuildAccelerationStructureFlagBitsNVX = 1 - BuildAccelerationStructureAllowCompactionBitNvx BuildAccelerationStructureFlagBitsNVX = 2 - BuildAccelerationStructurePreferFastTraceBitNvx BuildAccelerationStructureFlagBitsNVX = 4 - BuildAccelerationStructurePreferFastBuildBitNvx BuildAccelerationStructureFlagBitsNVX = 8 - BuildAccelerationStructureLowMemoryBitNvx BuildAccelerationStructureFlagBitsNVX = 16 - BuildAccelerationStructureFlagBitsMaxEnumNvx BuildAccelerationStructureFlagBitsNVX = 2147483647 + PerformanceOverrideTypeNullHardwareIntel PerformanceOverrideTypeINTEL = iota + PerformanceOverrideTypeFlushGpuCachesIntel PerformanceOverrideTypeINTEL = 1 + PerformanceOverrideTypeMaxEnumIntel PerformanceOverrideTypeINTEL = 2147483647 ) -// QueueGlobalPriority as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueGlobalPriorityEXT.html -type QueueGlobalPriority int32 +// PerformanceParameterTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceParameterTypeINTEL.html +type PerformanceParameterTypeINTEL int32 -// QueueGlobalPriority enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueGlobalPriorityEXT.html +// PerformanceParameterTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceParameterTypeINTEL.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 + PerformanceParameterTypeHwCountersSupportedIntel PerformanceParameterTypeINTEL = iota + PerformanceParameterTypeStreamMarkerValidBitsIntel PerformanceParameterTypeINTEL = 1 + PerformanceParameterTypeMaxEnumIntel PerformanceParameterTypeINTEL = 2147483647 ) -// TimeDomain as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html -type TimeDomain int32 +// PerformanceValueTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueTypeINTEL.html +type PerformanceValueTypeINTEL int32 -// TimeDomain enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html +// PerformanceValueTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueTypeINTEL.html 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 + PerformanceValueTypeUint32Intel PerformanceValueTypeINTEL = iota + PerformanceValueTypeUint64Intel PerformanceValueTypeINTEL = 1 + PerformanceValueTypeFloatIntel PerformanceValueTypeINTEL = 2 + PerformanceValueTypeBoolIntel PerformanceValueTypeINTEL = 3 + PerformanceValueTypeStringIntel PerformanceValueTypeINTEL = 4 + PerformanceValueTypeMaxEnumIntel PerformanceValueTypeINTEL = 2147483647 +) + +// ShaderCorePropertiesFlagBitsAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagBitsAMD +type ShaderCorePropertiesFlagBitsAMD int32 + +// ShaderCorePropertiesFlagBitsAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagBitsAMD +const ( + 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 +) + +// 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 + 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 + 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 ) diff --git a/const_go.patch b/const_go.patch new file mode 100644 index 0000000..e159ccd --- /dev/null +++ b/const_go.patch @@ -0,0 +1,37 @@ +--- const.go 2022-05-12 01:22:31.000000000 -0700 ++++ const_fixed.go 2022-05-12 01:22:24.000000000 -0700 +@@ -1,6 +1,6 @@ + // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. + +-// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. ++// WARNING: This file has automatically been generated on Thu, 12 May 2022 00:52:13 PDT. + // Code generated by https://git.io/c-for-go. DO NOT EDIT. + + package vulkan +@@ -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 + ) + diff --git a/doc.go b/doc.go index 555e9be..40ba4b4 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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. /* diff --git a/moltenVK/vk_mvk_moltenvk.h b/moltenVK/vk_mvk_moltenvk.h index b240ca1..d4163a9 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-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. */ @@ -20,90 +24,989 @@ #ifdef __cplusplus extern "C" { -#endif // __cplusplus - +#endif // __cplusplus + +#include "mvk_vulkan.h" +#include #ifdef __OBJC__ #import -#import +#else +typedef unsigned long MTLLanguageVersion; #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 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" -/** 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; + +/** + * 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 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 { - 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. */ } MVKPhysicalDeviceMetalFeatures; -/** MoltenVK swapchain performance statistics. */ +/** 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 { - 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; + 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 a particular type of shader compilation event. */ +/** MoltenVK performance of pipeline cache 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 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 shader compilation events for a VkDevice. */ +/** MoltenVK performance of queue 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 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, 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 +1015,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 +1165,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 +1202,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 +1253,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..c38ce19 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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -16,18 +16,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 +61,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 +82,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 +148,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 +163,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 +190,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 +217,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 +226,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 +238,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 +280,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,4129 +297,6889 @@ 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 - MaxTessellationGenerationLevel uint32 - MaxTessellationPatchSize uint32 - MaxTessellationControlPerVertexInputComponents uint32 - MaxTessellationControlPerVertexOutputComponents uint32 - MaxTessellationControlPerPatchOutputComponents uint32 - MaxTessellationControlTotalOutputComponents uint32 - MaxTessellationEvaluationInputComponents uint32 - MaxTessellationEvaluationOutputComponents uint32 - MaxGeometryShaderInvocations uint32 - MaxGeometryInputComponents uint32 - MaxGeometryOutputComponents uint32 - MaxGeometryOutputVertices uint32 - MaxGeometryTotalOutputComponents uint32 - MaxFragmentInputComponents uint32 - MaxFragmentOutputAttachments uint32 - MaxFragmentDualSrcAttachments uint32 - MaxFragmentCombinedOutputResources uint32 - MaxComputeSharedMemorySize uint32 - MaxComputeWorkGroupCount [3]uint32 - MaxComputeWorkGroupInvocations uint32 - MaxComputeWorkGroupSize [3]uint32 - SubPixelPrecisionBits uint32 - SubTexelPrecisionBits uint32 - MipmapPrecisionBits uint32 - MaxDrawIndexedIndexValue uint32 - MaxDrawIndirectCount uint32 - MaxSamplerLodBias float32 - MaxSamplerAnisotropy float32 - MaxViewports uint32 - MaxViewportDimensions [2]uint32 - ViewportBoundsRange [2]float32 - ViewportSubPixelBits uint32 - MinMemoryMapAlignment uint - MinTexelBufferOffsetAlignment DeviceSize - MinUniformBufferOffsetAlignment DeviceSize - MinStorageBufferOffsetAlignment DeviceSize - MinTexelOffset int32 - MaxTexelOffset uint32 - MinTexelGatherOffset int32 - MaxTexelGatherOffset uint32 - MinInterpolationOffset float32 - MaxInterpolationOffset float32 - SubPixelInterpolationOffsetBits uint32 - MaxFramebufferWidth uint32 - MaxFramebufferHeight uint32 - MaxFramebufferLayers uint32 - FramebufferColorSampleCounts SampleCountFlags - FramebufferDepthSampleCounts SampleCountFlags - FramebufferStencilSampleCounts SampleCountFlags - FramebufferNoAttachmentsSampleCounts SampleCountFlags - MaxColorAttachments uint32 - SampledImageColorSampleCounts SampleCountFlags - SampledImageIntegerSampleCounts SampleCountFlags - SampledImageDepthSampleCounts SampleCountFlags - SampledImageStencilSampleCounts SampleCountFlags - StorageImageSampleCounts SampleCountFlags - MaxSampleMaskWords uint32 - TimestampComputeAndGraphics Bool32 - TimestampPeriod float32 - MaxClipDistances uint32 - MaxCullDistances uint32 - MaxCombinedClipAndCullDistances uint32 - DiscreteQueuePriorities uint32 - PointSizeRange [2]float32 - LineWidthRange [2]float32 - PointSizeGranularity float32 - LineWidthGranularity float32 - StrictLines Bool32 - StandardSampleLocations Bool32 - OptimalBufferCopyOffsetAlignment DeviceSize - OptimalBufferCopyRowPitchAlignment DeviceSize - NonCoherentAtomSize DeviceSize - ref7926795a *C.VkPhysicalDeviceLimits - allocs7926795a 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{} } -// 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{} +// 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{} } -// PhysicalDeviceProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties.html -type PhysicalDeviceProperties struct { - ApiVersion uint32 - DriverVersion uint32 +// 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 - DeviceType PhysicalDeviceType - DeviceName [256]byte PipelineCacheUUID [16]byte - Limits PhysicalDeviceLimits - SparseProperties PhysicalDeviceSparseProperties - ref1080ca9d *C.VkPhysicalDeviceProperties - allocs1080ca9d interface{} + refa2162ec9 *C.VkPipelineCacheHeaderVersionOne + allocsa2162ec9 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + MaxTessellationControlPerVertexOutputComponents uint32 + MaxTessellationControlPerPatchOutputComponents uint32 + MaxTessellationControlTotalOutputComponents uint32 + MaxTessellationEvaluationInputComponents uint32 + MaxTessellationEvaluationOutputComponents uint32 + MaxGeometryShaderInvocations uint32 + MaxGeometryInputComponents uint32 + MaxGeometryOutputComponents uint32 + MaxGeometryOutputVertices uint32 + MaxGeometryTotalOutputComponents uint32 + MaxFragmentInputComponents uint32 + MaxFragmentOutputAttachments uint32 + MaxFragmentDualSrcAttachments uint32 + MaxFragmentCombinedOutputResources uint32 + MaxComputeSharedMemorySize uint32 + MaxComputeWorkGroupCount [3]uint32 + MaxComputeWorkGroupInvocations uint32 + MaxComputeWorkGroupSize [3]uint32 + SubPixelPrecisionBits uint32 + SubTexelPrecisionBits uint32 + MipmapPrecisionBits uint32 + MaxDrawIndexedIndexValue uint32 + MaxDrawIndirectCount uint32 + MaxSamplerLodBias float32 + MaxSamplerAnisotropy float32 + MaxViewports uint32 + MaxViewportDimensions [2]uint32 + ViewportBoundsRange [2]float32 + ViewportSubPixelBits uint32 + MinMemoryMapAlignment uint32 + MinTexelBufferOffsetAlignment DeviceSize + MinUniformBufferOffsetAlignment DeviceSize + MinStorageBufferOffsetAlignment DeviceSize + MinTexelOffset int32 + MaxTexelOffset uint32 + MinTexelGatherOffset int32 + MaxTexelGatherOffset uint32 + MinInterpolationOffset float32 + MaxInterpolationOffset float32 + SubPixelInterpolationOffsetBits uint32 + MaxFramebufferWidth uint32 + MaxFramebufferHeight uint32 + MaxFramebufferLayers uint32 + FramebufferColorSampleCounts SampleCountFlags + FramebufferDepthSampleCounts SampleCountFlags + FramebufferStencilSampleCounts SampleCountFlags + FramebufferNoAttachmentsSampleCounts SampleCountFlags + MaxColorAttachments uint32 + SampledImageColorSampleCounts SampleCountFlags + SampledImageIntegerSampleCounts SampleCountFlags + SampledImageDepthSampleCounts SampleCountFlags + SampledImageStencilSampleCounts SampleCountFlags + StorageImageSampleCounts SampleCountFlags + MaxSampleMaskWords uint32 + TimestampComputeAndGraphics Bool32 + TimestampPeriod float32 + MaxClipDistances uint32 + MaxCullDistances uint32 + MaxCombinedClipAndCullDistances uint32 + DiscreteQueuePriorities uint32 + PointSizeRange [2]float32 + LineWidthRange [2]float32 + PointSizeGranularity float32 + LineWidthGranularity float32 + StrictLines Bool32 + StandardSampleLocations Bool32 + OptimalBufferCopyOffsetAlignment DeviceSize + OptimalBufferCopyRowPitchAlignment DeviceSize + NonCoherentAtomSize DeviceSize + ref7926795a *C.VkPhysicalDeviceLimits + allocs7926795a 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 uint32 + 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 uint32 + 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 uint32 + 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 uint32 + 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 uint32 + Stride uint32 + 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// MappedMemoryRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMappedMemoryRange.html -type MappedMemoryRange struct { +// 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 - Memory DeviceMemory - Offset DeviceSize - Size DeviceSize - ref42a37320 *C.VkMappedMemoryRange - allocs42a37320 interface{} + HandleTypes ExternalSemaphoreHandleTypeFlags + ref17b8d6c5 *C.VkExportSemaphoreCreateInfo + allocs17b8d6c5 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} -} +// ResolveModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResolveModeFlags.html +type ResolveModeFlags 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{} -} +// DescriptorBindingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlags.html +type DescriptorBindingFlags uint32 -// 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{} -} +// SemaphoreWaitFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreWaitFlags.html +type SemaphoreWaitFlags uint32 -// 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{} +// 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{} } -// 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{} +// 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{} } -// FenceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceCreateInfo.html -type FenceCreateInfo struct { +// 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 FenceCreateFlags - refb8ff4840 *C.VkFenceCreateInfo - allocsb8ff4840 interface{} + Flags AttachmentDescriptionFlags + Format Format + Samples SampleCountFlagBits + LoadOp AttachmentLoadOp + StoreOp AttachmentStoreOp + StencilLoadOp AttachmentLoadOp + StencilStoreOp AttachmentStoreOp + InitialLayout ImageLayout + FinalLayout ImageLayout + refae7bd6bf *C.VkAttachmentDescription2 + allocsae7bd6bf interface{} } -// SemaphoreCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreCreateInfo.html -type SemaphoreCreateInfo struct { +// 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 - Flags SemaphoreCreateFlags - reff130cd2b *C.VkSemaphoreCreateInfo - allocsf130cd2b interface{} + Attachment uint32 + Layout ImageLayout + AspectMask ImageAspectFlags + ref7b5106a8 *C.VkAttachmentReference2 + allocs7b5106a8 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// BufferViewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferViewCreateInfo.html -type BufferViewCreateInfo struct { +// 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 - 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{} + Contents SubpassContents + ref941a38e5 *C.VkSubpassBeginInfo + allocs941a38e5 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// ShaderModuleCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderModuleCreateInfo.html -type ShaderModuleCreateInfo struct { +// 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 - Flags ShaderModuleCreateFlags - CodeSize uint - PCode []uint32 - refc663d23e *C.VkShaderModuleCreateInfo - allocsc663d23e interface{} + ShaderFloat16 Bool32 + ShaderInt8 Bool32 + refc9d315b6 *C.VkPhysicalDeviceShaderFloat16Int8Features + allocsc9d315b6 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} +} + +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + StencilInitialLayout ImageLayout + StencilFinalLayout ImageLayout + refc8065ded *C.VkAttachmentDescriptionStencilLayout + allocsc8065ded interface{} } -// PipelineDynamicStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDynamicStateCreateInfo.html -type PipelineDynamicStateCreateInfo struct { +// 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{} +} + +// 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 - Flags PipelineDynamicStateCreateFlags - DynamicStateCount uint32 - PDynamicStates []DynamicState - ref246d7bc8 *C.VkPipelineDynamicStateCreateInfo - allocs246d7bc8 interface{} + TimelineSemaphore Bool32 + ref9260df2e *C.VkPhysicalDeviceTimelineSemaphoreFeatures + allocs9260df2e 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{} +// 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{} } -// 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{} +// 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 + SemaphoreType SemaphoreType + InitialValue uint64 + ref4e668d65 *C.VkSemaphoreTypeCreateInfo + allocs4e668d65 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// DescriptorSetLayoutCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateInfo.html -type DescriptorSetLayoutCreateInfo 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 - Flags DescriptorSetLayoutCreateFlags - BindingCount uint32 - PBindings []DescriptorSetLayoutBinding - ref5ee8e0ed *C.VkDescriptorSetLayoutCreateInfo - allocs5ee8e0ed interface{} + Buffer Buffer + ref347b43e3 *C.VkBufferDeviceAddressInfo + allocs347b43e3 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{} +// 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{} } -// DescriptorPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateInfo.html -type DescriptorPoolCreateInfo struct { +// 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{} +} + +// 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 - Flags DescriptorPoolCreateFlags - MaxSets uint32 - PoolSizeCount uint32 - PPoolSizes []DescriptorPoolSize - ref19868463 *C.VkDescriptorPoolCreateInfo - allocs19868463 interface{} + Memory DeviceMemory + refbbe30c6e *C.VkDeviceMemoryOpaqueCaptureAddressInfo + allocsbbe30c6e 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{} -} +// Flags64 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFlags64.html +type Flags64 uint64 -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + PrivateData Bool32 + refeee8cb11 *C.VkPhysicalDevicePrivateDataFeatures + allocseee8cb11 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{} +// 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{} } -// 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{} +// 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 PrivateDataSlotCreateFlags + reffd6b0ff3 *C.VkPrivateDataSlotCreateInfo + allocsfd6b0ff3 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{} +// 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{} } -// 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{} +// 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 + SrcStageMask PipelineStageFlags2 + SrcAccessMask AccessFlags2 + DstStageMask PipelineStageFlags2 + DstAccessMask AccessFlags2 + ref8b26ae0e *C.VkMemoryBarrier2 + allocs8b26ae0e 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + Semaphore Semaphore + Value uint64 + StageMask PipelineStageFlags2 + DeviceIndex uint32 + ref9d52ed10 *C.VkSemaphoreSubmitInfo + allocs9d52ed10 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{} +// 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{} } -// CommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferBeginInfo.html -type CommandBufferBeginInfo struct { +// 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 - Flags CommandBufferUsageFlags - PInheritanceInfo []CommandBufferInheritanceInfo - ref266762df *C.VkCommandBufferBeginInfo - allocs266762df interface{} + Synchronization2 Bool32 + ref64be4f9 *C.VkPhysicalDeviceSynchronization2Features + allocs64be4f9 interface{} } -// BufferCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCopy.html -type BufferCopy struct { +// 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{} +} + +// 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{} +} + +// 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 - ref12184ffd *C.VkBufferCopy - allocs12184ffd interface{} + refd9cb28e3 *C.VkBufferCopy2 + allocsd9cb28e3 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{} +// 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 + SrcBuffer Buffer + DstBuffer Buffer + RegionCount uint32 + PRegions []BufferCopy2 + ref95a1aa26 *C.VkCopyBufferInfo2 + allocs95a1aa26 interface{} } -// ImageCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCopy.html -type ImageCopy struct { +// 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 - ref4e7a1214 *C.VkImageCopy - allocs4e7a1214 interface{} + ref411062 *C.VkImageCopy2 + allocs411062 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// ClearColorValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearColorValue.html -const sizeofClearColorValue = unsafe.Sizeof(C.VkClearColorValue{}) +// 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{} +} -type ClearColorValue [sizeofClearColorValue]byte +// 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{} +} -// 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{} +// 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{} } -// ClearValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearValue.html -const sizeofClearValue = unsafe.Sizeof(C.VkClearValue{}) +// 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 RenderingFlags + ViewMask uint32 + ColorAttachmentCount uint32 + PColorAttachmentFormats []Format + DepthAttachmentFormat Format + StencilAttachmentFormat Format + RasterizationSamples SampleCountFlagBits + reff704c204 *C.VkCommandBufferInheritanceRenderingInfo + allocsf704c204 interface{} +} -type ClearValue [sizeofClearValue]byte +// 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 + LinearTilingFeatures FormatFeatureFlags2 + OptimalTilingFeatures FormatFeatureFlags2 + BufferFeatures FormatFeatureFlags2 + refaac19fbc *C.VkFormatProperties3 + allocsaac19fbc 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// MemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryBarrier.html -type MemoryBarrier struct { +// 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 - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - ref977c944e *C.VkMemoryBarrier - allocs977c944e interface{} + PCreateInfo []ImageCreateInfo + PlaneAspect ImageAspectFlagBits + refd9532ea3 *C.VkDeviceImageMemoryRequirements + allocsd9532ea3 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{} +// Surface as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceKHR +type Surface C.VkSurfaceKHR + +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + Swapchain Swapchain + refd83cc5d0 *C.VkImageSwapchainCreateInfoKHR + allocsd83cc5d0 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{} +// 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{} +} + +// 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 + Swapchain Swapchain + Timeout uint64 + Semaphore Semaphore + Fence Fence + DeviceMask uint32 + ref588806a5 *C.VkAcquireNextImageInfoKHR + allocs588806a5 interface{} } -// BaseOutStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseOutStructure.html -type BaseOutStructure struct { +// 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 []BaseOutStructure - refd536fcd0 *C.VkBaseOutStructure - allocsd536fcd0 interface{} + PNext unsafe.Pointer + PresentMask [32]uint32 + Modes DeviceGroupPresentModeFlags + refa3962c81 *C.VkDeviceGroupPresentCapabilitiesKHR + allocsa3962c81 interface{} } -// BaseInStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseInStructure.html -type BaseInStructure struct { +// 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 []BaseInStructure - refeae401a9 *C.VkBaseInStructure - allocseae401a9 interface{} + PNext unsafe.Pointer + SwapchainCount uint32 + PDeviceMasks []uint32 + Mode DeviceGroupPresentModeFlagBits + reff6912d09 *C.VkDeviceGroupPresentInfoKHR + allocsf6912d09 interface{} } -// SamplerYcbcrConversion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversion.html -type SamplerYcbcrConversion C.VkSamplerYcbcrConversion +// 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{} +} -// DescriptorUpdateTemplate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplate.html -type DescriptorUpdateTemplate C.VkDescriptorUpdateTemplate +// Display as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayKHR +type Display C.VkDisplayKHR -// SubgroupFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubgroupFeatureFlags.html -type SubgroupFeatureFlags uint32 +// DisplayMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeKHR +type DisplayMode C.VkDisplayModeKHR -// PeerMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPeerMemoryFeatureFlags.html -type PeerMemoryFeatureFlags uint32 +// DisplayModeCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeCreateFlagsKHR +type DisplayModeCreateFlags uint32 -// MemoryAllocateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlags.html -type MemoryAllocateFlags uint32 +// DisplayPlaneAlphaFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneAlphaFlagsKHR +type DisplayPlaneAlphaFlags uint32 -// CommandPoolTrimFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolTrimFlags.html -type CommandPoolTrimFlags uint32 +// DisplaySurfaceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplaySurfaceCreateFlagsKHR +type DisplaySurfaceCreateFlags uint32 -// DescriptorUpdateTemplateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateCreateFlags.html -type DescriptorUpdateTemplateCreateFlags 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{} +} -// ExternalMemoryHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlags.html -type ExternalMemoryHandleTypeFlags 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{} +} -// ExternalMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlags.html -type ExternalMemoryFeatureFlags uint32 +// 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{} +} -// ExternalFenceHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceHandleTypeFlags.html -type ExternalFenceHandleTypeFlags uint32 +// 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{} +} -// ExternalFenceFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlags.html -type ExternalFenceFeatureFlags uint32 +// 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{} +} -// FenceImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlags.html -type FenceImportFlags 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{} +} -// SemaphoreImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlags.html -type SemaphoreImportFlags uint32 +// 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 DisplaySurfaceCreateFlags + DisplayMode DisplayMode + PlaneIndex uint32 + PlaneStackIndex uint32 + Transform SurfaceTransformFlagBits + GlobalAlpha float32 + AlphaMode DisplayPlaneAlphaFlagBits + ImageExtent Extent2D + ref58445c35 *C.VkDisplaySurfaceCreateInfoKHR + allocs58445c35 interface{} +} -// ExternalSemaphoreHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlags.html -type ExternalSemaphoreHandleTypeFlags uint32 +// 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{} +} -// ExternalSemaphoreFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlags.html -type ExternalSemaphoreFeatureFlags uint32 +// 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{} +} -// 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{} +// 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{} } -// BindBufferMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindBufferMemoryInfo.html -type BindBufferMemoryInfo struct { +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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 - Buffer Buffer - Memory DeviceMemory - MemoryOffset DeviceSize - refd392322d *C.VkBindBufferMemoryInfo - allocsd392322d interface{} + HandleType ExternalMemoryHandleTypeFlagBits + Fd int32 + ref73f83287 *C.VkImportMemoryFdInfoKHR + allocs73f83287 interface{} } -// BindImageMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImageMemoryInfo.html -type BindImageMemoryInfo 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 unsafe.Pointer + MemoryTypeBits uint32 + ref51e16d38 *C.VkMemoryFdPropertiesKHR + allocs51e16d38 interface{} +} + +// 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 - Image Image Memory DeviceMemory - MemoryOffset DeviceSize - ref767a2113 *C.VkBindImageMemoryInfo - allocs767a2113 interface{} + HandleType ExternalMemoryHandleTypeFlagBits + ref75a079b1 *C.VkMemoryGetFdInfoKHR + allocs75a079b1 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{} +// 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{} } -// 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{} +// 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{} } -// MemoryDedicatedAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryDedicatedAllocateInfo.html -type MemoryDedicatedAllocateInfo struct { +// 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{} +} + +// 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 - Image Image - Buffer Buffer - reff8fabe62 *C.VkMemoryDedicatedAllocateInfo - allocsf8fabe62 interface{} + ShaderFloat16 Bool32 + ShaderInt8 Bool32 + refc9d315b6 *C.VkPhysicalDeviceShaderFloat16Int8Features + allocsc9d315b6 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{} +// 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{} } -// 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{} +// 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{} } -// DeviceGroupCommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupCommandBufferBeginInfo.html -type DeviceGroupCommandBufferBeginInfo struct { +// 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 - DeviceMask uint32 - refb9a8f0cd *C.VkDeviceGroupCommandBufferBeginInfo - allocsb9a8f0cd interface{} + SwapchainCount uint32 + PRegions []PresentRegion + ref62958060 *C.VkPresentRegionsKHR + allocs62958060 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} -} +// PerformanceCounterDescriptionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterDescriptionFlagsKHR +type PerformanceCounterDescriptionFlags uint32 -// 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{} +// 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{} } -// 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{} +// 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{} } -// BufferMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryRequirementsInfo2.html -type BufferMemoryRequirementsInfo2 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 - Buffer Buffer - reff54a2a42 *C.VkBufferMemoryRequirementsInfo2 - allocsf54a2a42 interface{} + Unit PerformanceCounterUnit + Scope PerformanceCounterScope + Storage PerformanceCounterStorage + Uuid [16]byte + refc754b4e5 *C.VkPerformanceCounterKHR + allocsc754b4e5 interface{} } -// ImageMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryRequirementsInfo2.html -type ImageMemoryRequirementsInfo2 struct { +// 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 - Image Image - ref75b3ca05 *C.VkImageMemoryRequirementsInfo2 - allocs75b3ca05 interface{} + Flags PerformanceCounterDescriptionFlags + Name [256]byte + Category [256]byte + Description [256]byte + ref95209df5 *C.VkPerformanceCounterDescriptionKHR + allocs95209df5 interface{} } -// ImageSparseMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSparseMemoryRequirementsInfo2.html -type ImageSparseMemoryRequirementsInfo2 struct { +// 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{} +} + +// 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 - Image Image - ref878956f7 *C.VkImageSparseMemoryRequirementsInfo2 - allocs878956f7 interface{} + Flags AcquireProfilingLockFlags + Timeout uint64 + ref73cbb121 *C.VkAcquireProfilingLockInfoKHR + allocs73cbb121 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// PhysicalDeviceProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties2.html -type PhysicalDeviceProperties2 struct { +// 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 - Properties PhysicalDeviceProperties - ref947bd13e *C.VkPhysicalDeviceProperties2 - allocs947bd13e interface{} + SurfaceFormat SurfaceFormat + ref8867f0ed *C.VkSurfaceFormat2KHR + allocs8867f0ed 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{} +// 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{} } -// ImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatProperties2.html -type ImageFormatProperties2 struct { +// 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{} +} + +// 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 - ImageFormatProperties ImageFormatProperties - ref224187e7 *C.VkImageFormatProperties2 - allocs224187e7 interface{} + DisplayModeProperties DisplayModeProperties + refc566048d *C.VkDisplayModeProperties2KHR + allocsc566048d interface{} } -// PhysicalDeviceImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageFormatInfo2.html -type PhysicalDeviceImageFormatInfo2 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 - Format Format - Type ImageType - Tiling ImageTiling - Usage ImageUsageFlags - Flags ImageCreateFlags - ref5934b445 *C.VkPhysicalDeviceImageFormatInfo2 - allocs5934b445 interface{} + Mode DisplayMode + PlaneIndex uint32 + reff355ccbf *C.VkDisplayPlaneInfo2KHR + allocsf355ccbf 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{} +// 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{} } -// 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{} +// 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{} } -// SparseImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatProperties2.html -type SparseImageFormatProperties2 struct { +// 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 - Properties SparseImageFormatProperties - ref6b48294b *C.VkSparseImageFormatProperties2 - allocs6b48294b interface{} + GlobalPriority QueueGlobalPriority + refdf0afc28 *C.VkDeviceQueueGlobalPriorityCreateInfoKHR + allocsdf0afc28 interface{} } -// PhysicalDeviceSparseImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html -type PhysicalDeviceSparseImageFormatInfo2 struct { +// 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{} +} + +// 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 - Format Format - Type ImageType - Samples SampleCountFlagBits - Usage ImageUsageFlags - Tiling ImageTiling - ref566d5513 *C.VkPhysicalDeviceSparseImageFormatInfo2 - allocs566d5513 interface{} + PriorityCount uint32 + Priorities [16]QueueGlobalPriority + reff5bb6c4d *C.VkQueueFamilyGlobalPriorityPropertiesKHR + allocsf5bb6c4d 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{} +// 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{} } -// 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{} +// 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 + FragmentSize Extent2D + CombinerOps [2]FragmentShadingRateCombinerOp + ref47a79f27 *C.VkPipelineFragmentShadingRateStateCreateInfoKHR + allocs47a79f27 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{} +// 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{} } -// ImageViewUsageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewUsageCreateInfo.html -type ImageViewUsageCreateInfo 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 - Usage ImageUsageFlags - ref3791cec9 *C.VkImageViewUsageCreateInfo - allocs3791cec9 interface{} + SampleCounts SampleCountFlags + FragmentSize Extent2D + ref17914e16 *C.VkPhysicalDeviceFragmentShadingRateKHR + allocs17914e16 interface{} } -// PipelineTessellationDomainOriginStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html -type PipelineTessellationDomainOriginStateCreateInfo struct { +// 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{} +} + +// 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 - DomainOrigin TessellationDomainOrigin - ref58ef29bf *C.VkPipelineTessellationDomainOriginStateCreateInfo - allocs58ef29bf interface{} + PresentWait Bool32 + ref1cd9c482 *C.VkPhysicalDevicePresentWaitFeaturesKHR + allocs1cd9c482 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{} -} +// DeferredOperation as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeferredOperationKHR +type DeferredOperation C.VkDeferredOperationKHR -// 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{} +// 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{} } -// 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{} +// 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 + Pipeline Pipeline + refcd879ca1 *C.VkPipelineInfoKHR + allocscd879ca1 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{} +// 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 + Stages ShaderStageFlags + Name [256]byte + Description [256]byte + SubgroupSize uint32 + ref4eb592a4 *C.VkPipelineExecutablePropertiesKHR + allocs4eb592a4 interface{} } -// PhysicalDeviceProtectedMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html -type PhysicalDeviceProtectedMemoryFeatures struct { +// 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 - ProtectedMemory Bool32 - refac441ed1 *C.VkPhysicalDeviceProtectedMemoryFeatures - allocsac441ed1 interface{} + Pipeline Pipeline + ExecutableIndex uint32 + ref9b891dad *C.VkPipelineExecutableInfoKHR + allocs9b891dad 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{} -} +// 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{}) -// 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{} -} +type PipelineExecutableStatisticValue [sizeofPipelineExecutableStatisticValue]byte -// 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{} +// 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{} } -// 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{} +// 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 uint32 + PData unsafe.Pointer + ref20e334f7 *C.VkPipelineExecutableInternalRepresentationKHR + allocs20e334f7 interface{} } -// SamplerYcbcrConversionInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionInfo.html -type SamplerYcbcrConversionInfo 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 - Conversion SamplerYcbcrConversion - ref11ff5547 *C.VkSamplerYcbcrConversionInfo - allocs11ff5547 interface{} + LibraryCount uint32 + PLibraries []Pipeline + ref6bb7541b *C.VkPipelineLibraryCreateInfoKHR + allocs6bb7541b interface{} } -// BindImagePlaneMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImagePlaneMemoryInfo.html -type BindImagePlaneMemoryInfo 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 - PlaneAspect ImageAspectFlagBits - ref56b81476 *C.VkBindImagePlaneMemoryInfo - allocs56b81476 interface{} + SwapchainCount uint32 + PPresentIds []uint64 + ref70010623 *C.VkPresentIdKHR + allocs70010623 interface{} } -// ImagePlaneMemoryRequirementsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImagePlaneMemoryRequirementsInfo.html -type ImagePlaneMemoryRequirementsInfo struct { +// 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 - PlaneAspect ImageAspectFlagBits - refefec131f *C.VkImagePlaneMemoryRequirementsInfo - allocsefec131f interface{} + PresentId Bool32 + refba9945cd *C.VkPhysicalDevicePresentIdFeaturesKHR + allocsba9945cd 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} +} + +// 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:9587 +type DebugReportCallbackFunc func(flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint32, 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{} } -// 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{} +// 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{} } -// PhysicalDeviceExternalImageFormatInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalImageFormatInfo.html -type PhysicalDeviceExternalImageFormatInfo struct { +// 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 - HandleType ExternalMemoryHandleTypeFlagBits - refc839c724 *C.VkPhysicalDeviceExternalImageFormatInfo - allocsc839c724 interface{} + ObjectType DebugReportObjectType + Object uint64 + PObjectName string + refe4983fab *C.VkDebugMarkerObjectNameInfoEXT + allocse4983fab 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{} +// 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 uint32 + PTag unsafe.Pointer + refa41a5c3b *C.VkDebugMarkerObjectTagInfoEXT + allocsa41a5c3b interface{} } -// PhysicalDeviceExternalBufferInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalBufferInfo.html -type PhysicalDeviceExternalBufferInfo 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 - Flags BufferCreateFlags - Usage BufferUsageFlags - HandleType ExternalMemoryHandleTypeFlagBits - ref8d758947 *C.VkPhysicalDeviceExternalBufferInfo - allocs8d758947 interface{} + PMarkerName string + Color [4]float32 + ref234b91fd *C.VkDebugMarkerMarkerInfoEXT + allocs234b91fd 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{} +// 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{} } -// 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{} +// 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{} } -// ExternalMemoryImageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfo.html -type ExternalMemoryImageCreateInfo 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 - HandleTypes ExternalMemoryHandleTypeFlags - refdaf1185e *C.VkExternalMemoryImageCreateInfo - allocsdaf1185e interface{} + Image Image + Buffer Buffer + ref9a72b107 *C.VkDedicatedAllocationMemoryAllocateInfoNV + allocs9a72b107 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{} +// 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 { + SType StructureType + PNext unsafe.Pointer + TransformFeedback Bool32 + GeometryStreams Bool32 + ref64b2a913 *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT + allocs64b2a913 interface{} } -// ExportMemoryAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportMemoryAllocateInfo.html -type ExportMemoryAllocateInfo struct { +// 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{} +} + +// 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{} +} + +// 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 - HandleTypes ExternalMemoryHandleTypeFlags - refeb76ec64 *C.VkExportMemoryAllocateInfo - allocseb76ec64 interface{} + ImageView ImageView + DescriptorType DescriptorType + Sampler Sampler + refc283b384 *C.VkImageViewHandleInfoNVX + allocsc283b384 interface{} } -// PhysicalDeviceExternalFenceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalFenceInfo.html -type PhysicalDeviceExternalFenceInfo 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 ExternalFenceHandleTypeFlagBits - ref9bb660cc *C.VkPhysicalDeviceExternalFenceInfo - allocs9bb660cc interface{} + DeviceAddress DeviceAddress + Size DeviceSize + refe6dd1556 *C.VkImageViewAddressPropertiesNVX + allocse6dd1556 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{} +// 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{} } -// 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{} +// 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 uint32 + ScratchMemUsageInBytes uint32 + ref8a688131 *C.VkShaderResourceUsageAMD + allocs8a688131 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{} +// 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{} } -// PhysicalDeviceExternalSemaphoreInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html -type PhysicalDeviceExternalSemaphoreInfo struct { +// 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{} +} + +// 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{} +} + +// 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 - HandleType ExternalSemaphoreHandleTypeFlagBits - ref5981d29e *C.VkPhysicalDeviceExternalSemaphoreInfo - allocs5981d29e interface{} + HandleTypes ExternalMemoryHandleTypeFlagsNV + ref9a7fb6c8 *C.VkExternalMemoryImageCreateInfoNV + allocs9a7fb6c8 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{} +// 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{} } -// 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{} +// 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{} } -// DescriptorSetLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutSupport.html -type DescriptorSetLayoutSupport struct { +// 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 - Supported Bool32 - ref5802686c *C.VkDescriptorSetLayoutSupport - allocs5802686c interface{} + DecodeMode Format + ref3a973fc0 *C.VkImageViewASTCDecodeModeEXT + allocs3a973fc0 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{} +// 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{} } -// 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 +// ConditionalRenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagsEXT.html +type ConditionalRenderingFlags 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{} +// 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{} } -// 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{} +// 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{} } -// 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 +// 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{} +} -// 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{} +// 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{} } -// 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{} +// 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{} } -// ImageSwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImageSwapchainCreateInfoKHR -type ImageSwapchainCreateInfo struct { +// 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 { 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 { +// 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{} +} + +// 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 SwapchainCount uint32 - PDeviceMasks []uint32 - Mode DeviceGroupPresentModeFlagBits - reff6912d09 *C.VkDeviceGroupPresentInfoKHR - allocsf6912d09 interface{} + PTimes []PresentTimeGOOGLE + ref70eb8ab3 *C.VkPresentTimesInfoGOOGLE + allocs70eb8ab3 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{} +// 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{} } -// Display as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayKHR -type Display C.VkDisplayKHR - -// 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 uint32 + PTag unsafe.Pointer + ref9fd129cf *C.VkDebugUtilsObjectTagInfoEXT + allocs9fd129cf 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{} +// 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{} +} + +// 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 -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// DisplayProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayProperties2KHR -type DisplayProperties2 struct { +// 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{} +} + +// 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 uint32 + 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{} + ShadingRateImage Bool32 + ShadingRateCoarseSampleOrder Bool32 + ref199a921b *C.VkPhysicalDeviceShadingRateImageFeaturesNV + allocs199a921b interface{} } -// DebugReportCallback as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportCallbackEXT.html -type DebugReportCallback C.VkDebugReportCallbackEXT +// 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{} +} -// DebugReportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportFlagsEXT.html -type DebugReportFlags uint32 +// 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{} +} -// 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 +// 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{} +} -// 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{} +// 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{} } -// 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{} +// 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{} } -// DebugMarkerObjectNameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectNameInfoEXT.html -type DebugMarkerObjectNameInfo struct { +// 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{} +} + +// 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 - ObjectType DebugReportObjectType - Object uint64 - PObjectName string - refe4983fab *C.VkDebugMarkerObjectNameInfoEXT - allocse4983fab interface{} + ImageViewType ImageViewType + ref99e4ab46 *C.VkPhysicalDeviceImageViewImageFormatInfoEXT + allocs99e4ab46 interface{} } -// DebugMarkerObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectTagInfoEXT.html -type DebugMarkerObjectTagInfo 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 + FilterCubic Bool32 + FilterCubicMinmax Bool32 + refcf60927c *C.VkFilterCubicImageViewImageFormatPropertiesEXT + allocscf60927c 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 - ObjectType DebugReportObjectType - Object uint64 - TagName uint64 - TagSize uint - PTag unsafe.Pointer - refa41a5c3b *C.VkDebugMarkerObjectTagInfoEXT - allocsa41a5c3b interface{} + HandleType ExternalMemoryHandleTypeFlagBits + PHostPointer unsafe.Pointer + reffe09253e *C.VkImportMemoryHostPointerInfoEXT + allocsfe09253e interface{} } -// DebugMarkerMarkerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerMarkerInfoEXT.html -type DebugMarkerMarkerInfo struct { +// 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 - PMarkerName string - Color [4]float32 - ref234b91fd *C.VkDebugMarkerMarkerInfoEXT - allocs234b91fd interface{} + MemoryTypeBits uint32 + refebf46a84 *C.VkMemoryHostPointerPropertiesEXT + allocsebf46a84 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{} +// 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{} } -// 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{} +// PipelineCompilerControlFlagsAMD type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlFlagsAMD +type PipelineCompilerControlFlagsAMD uint32 + +// 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{} } -// DedicatedAllocationMemoryAllocateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html -type DedicatedAllocationMemoryAllocateInfoNV struct { +// 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 - Image Image - Buffer Buffer - ref9a72b107 *C.VkDedicatedAllocationMemoryAllocateInfoNV - allocs9a72b107 interface{} + TimeDomain TimeDomain + ref5f061d2a *C.VkCalibratedTimestampInfoEXT + allocs5f061d2a interface{} } -// PipelineRasterizationStateStreamCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateStreamCreateFlagsEXT.html -type PipelineRasterizationStateStreamCreateFlags uint32 +// 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{} +} -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// ExternalMemoryHandleTypeFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlagsNV.html -type ExternalMemoryHandleTypeFlagsNV uint32 +// 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{} +} -// ExternalMemoryFeatureFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlagsNV.html -type ExternalMemoryFeatureFlagsNV uint32 +// 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{} +} -// 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{} +// 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{} } -// ExternalMemoryImageCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfoNV.html -type ExternalMemoryImageCreateInfoNV struct { +// 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 - HandleTypes ExternalMemoryHandleTypeFlagsNV - ref9a7fb6c8 *C.VkExternalMemoryImageCreateInfoNV - allocs9a7fb6c8 interface{} + ImageFootprint Bool32 + ref9d61e1b2 *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV + allocs9d61e1b2 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{} +// 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{} } -// ValidationFlags as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFlagsEXT.html -type ValidationFlags struct { +// 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{} +} + +// 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 - DisabledValidationCheckCount uint32 - PDisabledValidationChecks []ValidationCheck - refffe080ad *C.VkValidationFlagsEXT - allocsffe080ad interface{} + CheckpointExecutionStageMask PipelineStageFlags + ref351f58c6 *C.VkQueueFamilyCheckpointPropertiesNV + allocs351f58c6 interface{} +} + +// 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 + Stage PipelineStageFlagBits + PCheckpointMarker unsafe.Pointer + refd1c9224b *C.VkCheckpointDataNV + allocsd1c9224b 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{} +// 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{} } -// 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{} -} +// PerformanceConfigurationINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationINTEL.html +type PerformanceConfigurationINTEL C.VkPerformanceConfigurationINTEL -// ConditionalRenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagsEXT.html -type ConditionalRenderingFlags uint32 +// PerformanceValueDataINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueDataINTEL.html +const sizeofPerformanceValueDataINTEL = unsafe.Sizeof(C.VkPerformanceValueDataINTEL{}) -// ConditionalRenderingBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingBeginInfoEXT.html -type ConditionalRenderingBeginInfo struct { +type PerformanceValueDataINTEL [sizeofPerformanceValueDataINTEL]byte + +// 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{} +} + +// 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 - Buffer Buffer - Offset DeviceSize - Flags ConditionalRenderingFlags - ref82da87c9 *C.VkConditionalRenderingBeginInfoEXT - allocs82da87c9 interface{} + PUserData unsafe.Pointer + refb72b1cf3 *C.VkInitializePerformanceApiInfoINTEL + allocsb72b1cf3 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{} +// 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{} } -// 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{} +// 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{} } -// 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 - -// ObjectEntryUsageFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagsNVX -type ObjectEntryUsageFlagsNVX uint32 - -// 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{} +// 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 + Marker uint64 + refbf575d93 *C.VkPerformanceMarkerInfoINTEL + allocsbf575d93 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{} +// 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 + Marker uint32 + refaaf8355c *C.VkPerformanceStreamMarkerInfoINTEL + allocsaaf8355c 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{} +// 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 + Type PerformanceOverrideTypeINTEL + Enable Bool32 + Parameter uint64 + ref1cdbce31 *C.VkPerformanceOverrideInfoINTEL + allocs1cdbce31 interface{} } -// IndirectCommandsLayoutCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutCreateInfoNVX -type IndirectCommandsLayoutCreateInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - PipelineBindPoint PipelineBindPoint - Flags IndirectCommandsLayoutUsageFlagsNVX - TokenCount uint32 - PTokens []IndirectCommandsLayoutTokenNVX - ref2a2866d5 *C.VkIndirectCommandsLayoutCreateInfoNVX - allocs2a2866d5 interface{} +// 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 + Type PerformanceConfigurationTypeINTEL + ref16c1d105 *C.VkPerformanceConfigurationAcquireInfoINTEL + allocs16c1d105 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} -} +// ShaderCorePropertiesFlagsAMD type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagsAMD +type ShaderCorePropertiesFlagsAMD uint32 -// PipelineViewportWScalingStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html -type PipelineViewportWScalingStateCreateInfoNV struct { +// 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 - ViewportWScalingEnable Bool32 - ViewportCount uint32 - PViewportWScalings []ViewportWScalingNV - ref3e532c0b *C.VkPipelineViewportWScalingStateCreateInfoNV - allocs3e532c0b interface{} + ShaderCoreFeatures ShaderCorePropertiesFlagsAMD + ActiveComputeUnitCount uint32 + ref7be3d4c4 *C.VkPhysicalDeviceShaderCoreProperties2AMD + allocs7be3d4c4 interface{} } -// SurfaceCounterFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagsEXT.html -type SurfaceCounterFlags 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{} +} -// 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 - PowerState DisplayPowerState - ref80fed52f *C.VkDisplayPowerInfoEXT - allocs80fed52f 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{} } -// DeviceEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceEventInfoEXT.html -type DeviceEventInfo 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 - DeviceEvent DeviceEventType - ref394b3fcb *C.VkDeviceEventInfoEXT - allocs394b3fcb interface{} + HeapBudget [16]DeviceSize + HeapUsage [16]DeviceSize + refa7406c48 *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT + allocsa7406c48 interface{} } -// DisplayEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayEventInfoEXT.html -type DisplayEventInfo 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 - 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{} + MemoryPriority Bool32 + ref24f8641c *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT + allocs24f8641c 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{} +// 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 + Priority float32 + refd3540846 *C.VkMemoryPriorityAllocateInfoEXT + allocsd3540846 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{} +// 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{} } -// 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{} +// 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{} } -// PresentTimesInfoGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentTimesInfoGOOGLE.html -type PresentTimesInfoGOOGLE 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 - SwapchainCount uint32 - PTimes []PresentTimeGOOGLE - ref70eb8ab3 *C.VkPresentTimesInfoGOOGLE - allocs70eb8ab3 interface{} + DeviceAddress DeviceAddress + ref4c6937a9 *C.VkBufferDeviceAddressCreateInfoEXT + allocs4c6937a9 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} -} +// PipelineCoverageReductionStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageReductionStateCreateFlagsNV.html +type PipelineCoverageReductionStateCreateFlagsNV uint32 -// PipelineDiscardRectangleStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html -type PipelineDiscardRectangleStateCreateInfo struct { +// 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 - Flags PipelineDiscardRectangleStateCreateFlags - DiscardRectangleMode DiscardRectangleMode - DiscardRectangleCount uint32 - PDiscardRectangles []Rect2D - refcdbb125e *C.VkPipelineDiscardRectangleStateCreateInfoEXT - allocscdbb125e interface{} + CoverageReductionMode Bool32 + ref1066c79 *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV + allocs1066c79 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{} + +// 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{} } -// 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{} +// 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 + CoverageReductionMode CoverageReductionModeNV + RasterizationSamples SampleCountFlagBits + DepthStencilSamples SampleCountFlags + ColorSamples SampleCountFlags + ref75affbab *C.VkFramebufferMixedSamplesCombinationNV + allocs75affbab 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{} +// 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{} } -// 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{} +// 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{} } -// DebugUtilsMessageSeverityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageSeverityFlagsEXT.html -type DebugUtilsMessageSeverityFlags uint32 +// 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{} +} -// DebugUtilsMessageTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageTypeFlagsEXT.html -type DebugUtilsMessageTypeFlags uint32 +// 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{} +} -// 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{} +// 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{} } -// DebugUtilsObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsObjectTagInfoEXT.html -type DebugUtilsObjectTagInfo struct { +// HeadlessSurfaceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkHeadlessSurfaceCreateFlagsEXT.html +type HeadlessSurfaceCreateFlags uint32 + +// 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 - ObjectType ObjectType - ObjectHandle uint64 - TagName uint64 - TagSize uint - PTag unsafe.Pointer - ref9fd129cf *C.VkDebugUtilsObjectTagInfoEXT - allocs9fd129cf interface{} + Flags HeadlessSurfaceCreateFlags + refed88b258 *C.VkHeadlessSurfaceCreateInfoEXT + allocsed88b258 interface{} } -// 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 - PLabelName string - Color [4]float32 - ref8faaf7b1 *C.VkDebugUtilsLabelEXT - allocs8faaf7b1 interface{} +// 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{} } -// SamplerReductionModeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionModeCreateInfoEXT.html -type SamplerReductionModeCreateInfo struct { +// 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{} +} + +// 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 - ReductionMode SamplerReductionMode - reff1cfd4e3 *C.VkSamplerReductionModeCreateInfoEXT - allocsf1cfd4e3 interface{} + IndexTypeUint8 Bool32 + refd29dc94 *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT + allocsd29dc94 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{} +// 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{} } -// 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{} +// 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{} +} + +// 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{} } -// 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{} +// 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{} } -// WriteDescriptorSetInlineUniformBlock as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkWriteDescriptorSetInlineUniformBlockEXT.html -type WriteDescriptorSetInlineUniformBlock struct { +// 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 - DataSize uint32 - PData unsafe.Pointer - ref18d00656 *C.VkWriteDescriptorSetInlineUniformBlockEXT - allocs18d00656 interface{} + GroupCount uint32 + PGroups []GraphicsShaderGroupCreateInfoNV + PipelineCount uint32 + PPipelines []Pipeline + refabf1b7d9 *C.VkGraphicsPipelineShaderGroupsCreateInfoNV + allocsabf1b7d9 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// PipelineCoverageToColorStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageToColorStateCreateFlagsNV.html -type PipelineCoverageToColorStateCreateFlagsNV uint32 +// DeviceMemoryReportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryReportFlagsEXT.html +type DeviceMemoryReportFlags 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{} +// 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 + 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{} } -// PipelineCoverageModulationStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageModulationStateCreateFlagsNV.html -type PipelineCoverageModulationStateCreateFlagsNV uint32 +// DeviceMemoryReportCallbackFunc type as declared in vulkan/vulkan_core.h:13063 +type DeviceMemoryReportCallbackFunc func(pCallbackData []DeviceMemoryReportCallbackData, pUserData unsafe.Pointer) -// 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{} +// 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 + Flags DeviceMemoryReportFlags + PfnUserCallback DeviceMemoryReportCallbackFunc + PUserData unsafe.Pointer + refe99f2c76 *C.VkDeviceDeviceMemoryReportCreateInfoEXT + allocse99f2c76 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// ImageDrmFormatModifierProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierPropertiesEXT.html -type ImageDrmFormatModifierProperties struct { +// DeviceDiagnosticsConfigFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigFlagsNV.html +type DeviceDiagnosticsConfigFlagsNV uint32 + +// 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 - DrmFormatModifier uint64 - ref86a0f149 *C.VkImageDrmFormatModifierPropertiesEXT - allocs86a0f149 interface{} + DiagnosticsConfig Bool32 + refd354d3ba *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV + allocsd354d3ba interface{} } -// ValidationCache as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheEXT.html -type ValidationCache C.VkValidationCacheEXT +// 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{} +} -// ValidationCacheCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheCreateFlagsEXT.html -type ValidationCacheCreateFlags uint32 +// GraphicsPipelineLibraryFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryFlagsEXT.html +type GraphicsPipelineLibraryFlags uint32 -// 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 - Flags ValidationCacheCreateFlags - InitialDataSize uint - PInitialData unsafe.Pointer - ref3d8ac8aa *C.VkValidationCacheCreateInfoEXT - allocs3d8ac8aa interface{} +// 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{} } -// 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{} +// 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{} } -// DescriptorBindingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagsEXT.html -type DescriptorBindingFlags uint32 +// 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{} +} -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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{} } -// 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{} +// 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 + Ycbcr2plane444Formats Bool32 + reff075d674 *C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + allocsf075d674 interface{} } -// DescriptorSetVariableDescriptorCountLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupportEXT.html -type DescriptorSetVariableDescriptorCountLayoutSupport struct { +// 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 - MaxVariableDescriptorCount uint32 - ref4684c56f *C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT - allocs4684c56f 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{} + FragmentDensityMapDeferred Bool32 + ref30a59f8 *C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT + allocs30a59f8 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{} +// 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{} } -// 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 - ShadingRateImage Bool32 - ShadingRateCoarseSampleOrder Bool32 - ref199a921b *C.VkPhysicalDeviceShadingRateImageFeaturesNV - allocs199a921b 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{} } -// 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{} +// 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 + FormatA4R4G4B4 Bool32 + FormatA4B4G4R4 Bool32 + ref51c957d0 *C.VkPhysicalDevice4444FormatsFeaturesEXT + allocs51c957d0 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{} +// PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.html +type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM struct { + SType StructureType + PNext unsafe.Pointer + RasterizationOrderColorAttachmentAccess Bool32 + RasterizationOrderDepthAttachmentAccess Bool32 + RasterizationOrderStencilAttachmentAccess Bool32 + ref139a6788 *C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM + allocs139a6788 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{} +// PhysicalDeviceRGBA10X6FormatsFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.html +type PhysicalDeviceRGBA10X6FormatsFeatures struct { + SType StructureType + PNext unsafe.Pointer + FormatRgba10x6WithoutYCbCrSampler Bool32 + refb685ff38 *C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT + allocsb685ff38 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{} +// PhysicalDeviceMutableDescriptorTypeFeaturesVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.html +type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE struct { + SType StructureType + PNext unsafe.Pointer + MutableDescriptorType Bool32 + ref2b2ab5ea *C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE + allocs2b2ab5ea 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 - -// GeometryInstanceFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagsNVX -type GeometryInstanceFlagsNVX uint32 - -// BuildAccelerationStructureFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagsNVX -type BuildAccelerationStructureFlagsNVX uint32 - -// RaytracingPipelineCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkRaytracingPipelineCreateInfoNVX -type RaytracingPipelineCreateInfoNVX 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{} +// MutableDescriptorTypeListVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMutableDescriptorTypeListVALVE.html +type MutableDescriptorTypeListVALVE struct { + DescriptorTypeCount uint32 + PDescriptorTypes []DescriptorType + ref957e9078 *C.VkMutableDescriptorTypeListVALVE + allocs957e9078 interface{} } -// GeometryTrianglesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryTrianglesNVX -type GeometryTrianglesNVX 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{} +// MutableDescriptorTypeCreateInfoVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMutableDescriptorTypeCreateInfoVALVE.html +type MutableDescriptorTypeCreateInfoVALVE struct { + SType StructureType + PNext unsafe.Pointer + MutableDescriptorTypeListCount uint32 + PMutableDescriptorTypeLists []MutableDescriptorTypeListVALVE + ref8ef4bbb3 *C.VkMutableDescriptorTypeCreateInfoVALVE + allocs8ef4bbb3 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{} +// PhysicalDeviceVertexInputDynamicStateFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.html +type PhysicalDeviceVertexInputDynamicStateFeatures struct { + SType StructureType + PNext unsafe.Pointer + VertexInputDynamicState Bool32 + ref69e7b956 *C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT + allocs69e7b956 interface{} } -// GeometryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryNVX -type GeometryNVX struct { +// VertexInputBindingDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDescription2EXT.html +type VertexInputBindingDescription2 struct { SType StructureType PNext unsafe.Pointer - GeometryType GeometryTypeNVX - Geometry GeometryDataNVX - Flags GeometryFlagsNVX - refd01fad9d *C.VkGeometryNVX - allocsd01fad9d interface{} + Binding uint32 + Stride uint32 + InputRate VertexInputRate + Divisor uint32 + refefc9e910 *C.VkVertexInputBindingDescription2EXT + allocsefc9e910 interface{} } -// AccelerationStructureCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureCreateInfoNVX -type AccelerationStructureCreateInfoNVX struct { +// VertexInputAttributeDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputAttributeDescription2EXT.html +type VertexInputAttributeDescription2 struct { SType StructureType PNext unsafe.Pointer - Type AccelerationStructureTypeNVX - Flags BuildAccelerationStructureFlagsNVX - CompactedSize DeviceSize - InstanceCount uint32 - GeometryCount uint32 - PGeometries []GeometryNVX - ref1289fd56 *C.VkAccelerationStructureCreateInfoNVX - allocs1289fd56 interface{} + Location uint32 + Binding uint32 + Format Format + Offset uint32 + refc6b0b55a *C.VkVertexInputAttributeDescription2EXT + allocsc6b0b55a 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{} +// PhysicalDeviceDrmProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDrmPropertiesEXT.html +type PhysicalDeviceDrmProperties struct { + SType StructureType + PNext unsafe.Pointer + HasPrimary Bool32 + HasRender Bool32 + PrimaryMajor int64 + PrimaryMinor int64 + RenderMajor int64 + RenderMinor int64 + refc94c064 *C.VkPhysicalDeviceDrmPropertiesEXT + allocsc94c064 interface{} +} + +// PhysicalDeviceDepthClipControlFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDepthClipControlFeaturesEXT.html +type PhysicalDeviceDepthClipControlFeatures struct { + SType StructureType + PNext unsafe.Pointer + DepthClipControl Bool32 + ref2632e03a *C.VkPhysicalDeviceDepthClipControlFeaturesEXT + allocs2632e03a 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{} +// PipelineViewportDepthClipControlCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportDepthClipControlCreateInfoEXT.html +type PipelineViewportDepthClipControlCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + NegativeOneToOne Bool32 + ref6e11056b *C.VkPipelineViewportDepthClipControlCreateInfoEXT + allocs6e11056b 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{} +// PhysicalDevicePrimitiveTopologyListRestartFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.html +type PhysicalDevicePrimitiveTopologyListRestartFeatures struct { + SType StructureType + PNext unsafe.Pointer + PrimitiveTopologyListRestart Bool32 + PrimitiveTopologyPatchListRestart Bool32 + ref620627bc *C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT + allocs620627bc interface{} } -// PhysicalDeviceRaytracingPropertiesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceRaytracingPropertiesNVX -type PhysicalDeviceRaytracingPropertiesNVX struct { - SType StructureType - PNext unsafe.Pointer - ShaderHeaderSize uint32 - MaxRecursionDepth uint32 - MaxGeometryCount uint32 - refd37a6b69 *C.VkPhysicalDeviceRaytracingPropertiesNVX - allocsd37a6b69 interface{} +// SubpassShadingPipelineCreateInfoHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassShadingPipelineCreateInfoHUAWEI.html +type SubpassShadingPipelineCreateInfoHUAWEI struct { + SType StructureType + PNext unsafe.Pointer + RenderPass RenderPass + Subpass uint32 + ref991efdae *C.VkSubpassShadingPipelineCreateInfoHUAWEI + allocs991efdae 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{} +// PhysicalDeviceSubpassShadingFeaturesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.html +type PhysicalDeviceSubpassShadingFeaturesHUAWEI struct { + SType StructureType + PNext unsafe.Pointer + SubpassShading Bool32 + reff3cfce3e *C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI + allocsf3cfce3e 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{} +// PhysicalDeviceSubpassShadingPropertiesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.html +type PhysicalDeviceSubpassShadingPropertiesHUAWEI struct { + SType StructureType + PNext unsafe.Pointer + MaxSubpassShadingWorkgroupSizeAspectRatio uint32 + ref68a800d6 *C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI + allocs68a800d6 interface{} } -// DeviceQueueGlobalPriorityCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueGlobalPriorityCreateInfoEXT.html -type DeviceQueueGlobalPriorityCreateInfo struct { +// PhysicalDeviceInvocationMaskFeaturesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.html +type PhysicalDeviceInvocationMaskFeaturesHUAWEI struct { SType StructureType PNext unsafe.Pointer - GlobalPriority QueueGlobalPriority - ref76356646 *C.VkDeviceQueueGlobalPriorityCreateInfoEXT - allocs76356646 interface{} + InvocationMask Bool32 + reff5b64a1f *C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI + allocsf5b64a1f interface{} } -// ImportMemoryHostPointerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImportMemoryHostPointerInfoEXT.html -type ImportMemoryHostPointerInfo struct { +// RemoteAddressNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRemoteAddressNV.html +type RemoteAddressNV unsafe.Pointer + +// MemoryGetRemoteAddressInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryGetRemoteAddressInfoNV.html +type MemoryGetRemoteAddressInfoNV struct { SType StructureType PNext unsafe.Pointer + Memory DeviceMemory HandleType ExternalMemoryHandleTypeFlagBits - PHostPointer unsafe.Pointer - reffe09253e *C.VkImportMemoryHostPointerInfoEXT - allocsfe09253e interface{} + ref5106899c *C.VkMemoryGetRemoteAddressInfoNV + allocs5106899c 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{} +// PhysicalDeviceExternalMemoryRDMAFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.html +type PhysicalDeviceExternalMemoryRDMAFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + ExternalMemoryRDMA Bool32 + ref9c69743b *C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV + allocs9c69743b 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{} +// PhysicalDeviceExtendedDynamicState2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html +type PhysicalDeviceExtendedDynamicState2Features struct { + SType StructureType + PNext unsafe.Pointer + ExtendedDynamicState2 Bool32 + ExtendedDynamicState2LogicOp Bool32 + ExtendedDynamicState2PatchControlPoints Bool32 + refbd0cffdd *C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT + allocsbd0cffdd 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{} +// PhysicalDeviceColorWriteEnableFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceColorWriteEnableFeaturesEXT.html +type PhysicalDeviceColorWriteEnableFeatures struct { + SType StructureType + PNext unsafe.Pointer + ColorWriteEnable Bool32 + refd894aa7b *C.VkPhysicalDeviceColorWriteEnableFeaturesEXT + allocsd894aa7b 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{} +// PipelineColorWriteCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorWriteCreateInfoEXT.html +type PipelineColorWriteCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + AttachmentCount uint32 + PColorWriteEnables []Bool32 + refa0609dbc *C.VkPipelineColorWriteCreateInfoEXT + allocsa0609dbc 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{} +// PhysicalDevicePrimitivesGeneratedQueryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.html +type PhysicalDevicePrimitivesGeneratedQueryFeatures struct { + SType StructureType + PNext unsafe.Pointer + PrimitivesGeneratedQuery Bool32 + PrimitivesGeneratedQueryWithRasterizerDiscard Bool32 + PrimitivesGeneratedQueryWithNonZeroStreams Bool32 + reff7d249a0 *C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT + allocsf7d249a0 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{} +// PhysicalDeviceImageViewMinLodFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageViewMinLodFeaturesEXT.html +type PhysicalDeviceImageViewMinLodFeatures struct { + SType StructureType + PNext unsafe.Pointer + MinLod Bool32 + refac392a2f *C.VkPhysicalDeviceImageViewMinLodFeaturesEXT + allocsac392a2f 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{} +// ImageViewMinLodCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewMinLodCreateInfoEXT.html +type ImageViewMinLodCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MinLod float32 + ref25a88d90 *C.VkImageViewMinLodCreateInfoEXT + allocs25a88d90 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{} +// PhysicalDeviceMultiDrawFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiDrawFeaturesEXT.html +type PhysicalDeviceMultiDrawFeatures struct { + SType StructureType + PNext unsafe.Pointer + MultiDraw Bool32 + reff54fe1a4 *C.VkPhysicalDeviceMultiDrawFeaturesEXT + allocsf54fe1a4 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{} +// PhysicalDeviceMultiDrawProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiDrawPropertiesEXT.html +type PhysicalDeviceMultiDrawProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxMultiDrawCount uint32 + ref1116c280 *C.VkPhysicalDeviceMultiDrawPropertiesEXT + allocs1116c280 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{} +// MultiDrawInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultiDrawInfoEXT.html +type MultiDrawInfo struct { + FirstVertex uint32 + VertexCount uint32 + refc79896ab *C.VkMultiDrawInfoEXT + allocsc79896ab 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{} +// MultiDrawIndexedInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultiDrawIndexedInfoEXT.html +type MultiDrawIndexedInfo struct { + FirstIndex uint32 + IndexCount uint32 + VertexOffset int32 + ref2e569a13 *C.VkMultiDrawIndexedInfoEXT + allocs2e569a13 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{} +// PhysicalDeviceImage2DViewOf3DFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.html +type PhysicalDeviceImage2DViewOf3DFeatures struct { + SType StructureType + PNext unsafe.Pointer + Image2DViewOf3D Bool32 + Sampler2DViewOf3D Bool32 + ref7b20322b *C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT + allocs7b20322b 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{} +// PhysicalDeviceBorderColorSwizzleFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.html +type PhysicalDeviceBorderColorSwizzleFeatures struct { + SType StructureType + PNext unsafe.Pointer + BorderColorSwizzle Bool32 + BorderColorSwizzleFromImage Bool32 + ref8f8ce94c *C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT + allocs8f8ce94c interface{} } -// PhysicalDeviceShaderImageFootprintFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html -type PhysicalDeviceShaderImageFootprintFeaturesNV struct { +// SamplerBorderColorComponentMappingCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerBorderColorComponentMappingCreateInfoEXT.html +type SamplerBorderColorComponentMappingCreateInfo struct { SType StructureType PNext unsafe.Pointer - ImageFootprint Bool32 - ref9d61e1b2 *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV - allocs9d61e1b2 interface{} + Components ComponentMapping + Srgb Bool32 + ref652e9666 *C.VkSamplerBorderColorComponentMappingCreateInfoEXT + allocs652e9666 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{} +// PhysicalDevicePageableDeviceLocalMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.html +type PhysicalDevicePageableDeviceLocalMemoryFeatures struct { + SType StructureType + PNext unsafe.Pointer + PageableDeviceLocalMemory Bool32 + ref837987f8 *C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT + allocs837987f8 interface{} } -// PhysicalDeviceExclusiveScissorFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html -type PhysicalDeviceExclusiveScissorFeaturesNV struct { +// PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE.html +type PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE struct { + SType StructureType + PNext unsafe.Pointer + DescriptorSetHostMapping Bool32 + refa6b51ca7 *C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + allocsa6b51ca7 interface{} +} + +// DescriptorSetBindingReferenceVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetBindingReferenceVALVE.html +type DescriptorSetBindingReferenceVALVE struct { + SType StructureType + PNext unsafe.Pointer + DescriptorSetLayout DescriptorSetLayout + Binding uint32 + refb8b72026 *C.VkDescriptorSetBindingReferenceVALVE + allocsb8b72026 interface{} +} + +// DescriptorSetLayoutHostMappingInfoVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutHostMappingInfoVALVE.html +type DescriptorSetLayoutHostMappingInfoVALVE struct { SType StructureType PNext unsafe.Pointer - ExclusiveScissor Bool32 - ref52c9fcfc *C.VkPhysicalDeviceExclusiveScissorFeaturesNV - allocs52c9fcfc interface{} + DescriptorOffset uint32 + DescriptorSize uint32 + ref21a3fbe4 *C.VkDescriptorSetLayoutHostMappingInfoVALVE + allocs21a3fbe4 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{} +// PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.html +type PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityMapOffset Bool32 + refbc16fceb *C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM + allocsbc16fceb interface{} } -// 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 - Stage PipelineStageFlagBits - PCheckpointMarker unsafe.Pointer - refd1c9224b *C.VkCheckpointDataNV - allocsd1c9224b interface{} +// PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM.html +type PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityOffsetGranularity Extent2D + refe9bba09c *C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM + allocse9bba09c 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 uint16 - PciBus byte - PciDevice byte - PciFunction byte - refdd9947ff *C.VkPhysicalDevicePCIBusInfoPropertiesEXT - allocsdd9947ff interface{} +// SubpassFragmentDensityMapOffsetEndInfoQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassFragmentDensityMapOffsetEndInfoQCOM.html +type SubpassFragmentDensityMapOffsetEndInfoQCOM struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityOffsetCount uint32 + PFragmentDensityOffsets []Offset2D + ref17e4eb04 *C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM + allocs17e4eb04 interface{} +} + +// PhysicalDeviceLinearColorAttachmentFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.html +type PhysicalDeviceLinearColorAttachmentFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + LinearColorAttachment Bool32 + ref32a130f5 *C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV + allocs32a130f5 interface{} } diff --git a/vulkan.go b/vulkan.go index a25c62f..20f70a0 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 Thu, 12 May 2022 01:22:31 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -14,1588 +14,2201 @@ package vulkan #include "cgo_helpers.h" */ import "C" -import "unsafe" +import ( + "runtime" + "unsafe" +) // CreateInstance function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateInstance.html func CreateInstance(pCreateInfo *InstanceCreateInfo, pAllocator *AllocationCallbacks, pInstance *Instance) Result { - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpInstance, _ := (*C.VkInstance)(unsafe.Pointer(pInstance)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpInstance, cpInstanceAllocMap := (*C.VkInstance)(unsafe.Pointer(pInstance)), cgoAllocsUnknown __ret := C.callVkCreateInstance(cpCreateInfo, cpAllocator, cpInstance) + runtime.KeepAlive(cpInstanceAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) __v := (Result)(__ret) return __v } // DestroyInstance function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyInstance.html func DestroyInstance(instance Instance, pAllocator *AllocationCallbacks) { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyInstance(cinstance, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cinstanceAllocMap) } // EnumeratePhysicalDevices function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumeratePhysicalDevices.html func EnumeratePhysicalDevices(instance Instance, pPhysicalDeviceCount *uint32, pPhysicalDevices []PhysicalDevice) Result { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpPhysicalDeviceCount, _ := (*C.uint32_t)(unsafe.Pointer(pPhysicalDeviceCount)), cgoAllocsUnknown - cpPhysicalDevices, _ := (*C.VkPhysicalDevice)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPhysicalDevices)).Data)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpPhysicalDeviceCount, cpPhysicalDeviceCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPhysicalDeviceCount)), cgoAllocsUnknown + cpPhysicalDevices, cpPhysicalDevicesAllocMap := copyPPhysicalDeviceBytes((*sliceHeader)(unsafe.Pointer(&pPhysicalDevices))) __ret := C.callVkEnumeratePhysicalDevices(cinstance, cpPhysicalDeviceCount, cpPhysicalDevices) + runtime.KeepAlive(cpPhysicalDevicesAllocMap) + runtime.KeepAlive(cpPhysicalDeviceCountAllocMap) + runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceFeatures function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceFeatures.html func GetPhysicalDeviceFeatures(physicalDevice PhysicalDevice, pFeatures *PhysicalDeviceFeatures) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpFeatures, _ := pFeatures.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpFeatures, cpFeaturesAllocMap := pFeatures.PassRef() C.callVkGetPhysicalDeviceFeatures(cphysicalDevice, cpFeatures) + runtime.KeepAlive(cpFeaturesAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceFormatProperties.html func GetPhysicalDeviceFormatProperties(physicalDevice PhysicalDevice, format Format, pFormatProperties *FormatProperties) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown - cpFormatProperties, _ := pFormatProperties.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown + cpFormatProperties, cpFormatPropertiesAllocMap := pFormatProperties.PassRef() C.callVkGetPhysicalDeviceFormatProperties(cphysicalDevice, cformat, cpFormatProperties) + runtime.KeepAlive(cpFormatPropertiesAllocMap) + runtime.KeepAlive(cformatAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceImageFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceImageFormatProperties.html func GetPhysicalDeviceImageFormatProperties(physicalDevice PhysicalDevice, format Format, kind ImageType, tiling ImageTiling, usage ImageUsageFlags, flags ImageCreateFlags, pImageFormatProperties *ImageFormatProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown - ckind, _ := (C.VkImageType)(kind), cgoAllocsUnknown - ctiling, _ := (C.VkImageTiling)(tiling), cgoAllocsUnknown - cusage, _ := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown - cflags, _ := (C.VkImageCreateFlags)(flags), cgoAllocsUnknown - cpImageFormatProperties, _ := pImageFormatProperties.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown + ckind, ckindAllocMap := (C.VkImageType)(kind), cgoAllocsUnknown + ctiling, ctilingAllocMap := (C.VkImageTiling)(tiling), cgoAllocsUnknown + cusage, cusageAllocMap := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkImageCreateFlags)(flags), cgoAllocsUnknown + cpImageFormatProperties, cpImageFormatPropertiesAllocMap := pImageFormatProperties.PassRef() __ret := C.callVkGetPhysicalDeviceImageFormatProperties(cphysicalDevice, cformat, ckind, ctiling, cusage, cflags, cpImageFormatProperties) + runtime.KeepAlive(cpImageFormatPropertiesAllocMap) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cusageAllocMap) + runtime.KeepAlive(ctilingAllocMap) + runtime.KeepAlive(ckindAllocMap) + runtime.KeepAlive(cformatAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceProperties.html func GetPhysicalDeviceProperties(physicalDevice PhysicalDevice, pProperties *PhysicalDeviceProperties) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpProperties, _ := pProperties.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := pProperties.PassRef() C.callVkGetPhysicalDeviceProperties(cphysicalDevice, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceQueueFamilyProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html func GetPhysicalDeviceQueueFamilyProperties(physicalDevice PhysicalDevice, pQueueFamilyPropertyCount *uint32, pQueueFamilyProperties []QueueFamilyProperties) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpQueueFamilyPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pQueueFamilyPropertyCount)), cgoAllocsUnknown - cpQueueFamilyProperties, _ := unpackArgSQueueFamilyProperties(pQueueFamilyProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpQueueFamilyPropertyCount, cpQueueFamilyPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pQueueFamilyPropertyCount)), cgoAllocsUnknown + cpQueueFamilyProperties, cpQueueFamilyPropertiesAllocMap := unpackArgSQueueFamilyProperties(pQueueFamilyProperties) C.callVkGetPhysicalDeviceQueueFamilyProperties(cphysicalDevice, cpQueueFamilyPropertyCount, cpQueueFamilyProperties) packSQueueFamilyProperties(pQueueFamilyProperties, cpQueueFamilyProperties) + runtime.KeepAlive(cpQueueFamilyPropertiesAllocMap) + runtime.KeepAlive(cpQueueFamilyPropertyCountAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceMemoryProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceMemoryProperties.html func GetPhysicalDeviceMemoryProperties(physicalDevice PhysicalDevice, pMemoryProperties *PhysicalDeviceMemoryProperties) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpMemoryProperties, _ := pMemoryProperties.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpMemoryProperties, cpMemoryPropertiesAllocMap := pMemoryProperties.PassRef() C.callVkGetPhysicalDeviceMemoryProperties(cphysicalDevice, cpMemoryProperties) + runtime.KeepAlive(cpMemoryPropertiesAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // CreateDevice function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDevice.html func CreateDevice(physicalDevice PhysicalDevice, pCreateInfo *DeviceCreateInfo, pAllocator *AllocationCallbacks, pDevice *Device) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpDevice, _ := (*C.VkDevice)(unsafe.Pointer(pDevice)), cgoAllocsUnknown + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpDevice, cpDeviceAllocMap := (*C.VkDevice)(unsafe.Pointer(pDevice)), cgoAllocsUnknown __ret := C.callVkCreateDevice(cphysicalDevice, cpCreateInfo, cpAllocator, cpDevice) + runtime.KeepAlive(cpDeviceAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDevice function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDevice.html func DestroyDevice(device Device, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDevice(cdevice, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // EnumerateInstanceExtensionProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateInstanceExtensionProperties.html func EnumerateInstanceExtensionProperties(pLayerName string, pPropertyCount *uint32, pProperties []ExtensionProperties) Result { - cpLayerName, _ := unpackPCharString(pLayerName) - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSExtensionProperties(pProperties) + cpLayerName, cpLayerNameAllocMap := unpackPCharString(pLayerName) + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSExtensionProperties(pProperties) __ret := C.callVkEnumerateInstanceExtensionProperties(cpLayerName, cpPropertyCount, cpProperties) packSExtensionProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cpLayerNameAllocMap) __v := (Result)(__ret) return __v } // EnumerateDeviceExtensionProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceExtensionProperties.html func EnumerateDeviceExtensionProperties(physicalDevice PhysicalDevice, pLayerName string, pPropertyCount *uint32, pProperties []ExtensionProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpLayerName, _ := unpackPCharString(pLayerName) - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSExtensionProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpLayerName, cpLayerNameAllocMap := unpackPCharString(pLayerName) + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSExtensionProperties(pProperties) __ret := C.callVkEnumerateDeviceExtensionProperties(cphysicalDevice, cpLayerName, cpPropertyCount, cpProperties) packSExtensionProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cpLayerNameAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // EnumerateInstanceLayerProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateInstanceLayerProperties.html func EnumerateInstanceLayerProperties(pPropertyCount *uint32, pProperties []LayerProperties) Result { - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSLayerProperties(pProperties) + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSLayerProperties(pProperties) __ret := C.callVkEnumerateInstanceLayerProperties(cpPropertyCount, cpProperties) packSLayerProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) __v := (Result)(__ret) return __v } // EnumerateDeviceLayerProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceLayerProperties.html func EnumerateDeviceLayerProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []LayerProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSLayerProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSLayerProperties(pProperties) __ret := C.callVkEnumerateDeviceLayerProperties(cphysicalDevice, cpPropertyCount, cpProperties) packSLayerProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDeviceQueue function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetDeviceQueue.html func GetDeviceQueue(device Device, queueFamilyIndex uint32, queueIndex uint32, pQueue *Queue) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueueFamilyIndex, _ := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown - cqueueIndex, _ := (C.uint32_t)(queueIndex), cgoAllocsUnknown - cpQueue, _ := (*C.VkQueue)(unsafe.Pointer(pQueue)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cqueueFamilyIndex, cqueueFamilyIndexAllocMap := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown + cqueueIndex, cqueueIndexAllocMap := (C.uint32_t)(queueIndex), cgoAllocsUnknown + cpQueue, cpQueueAllocMap := (*C.VkQueue)(unsafe.Pointer(pQueue)), cgoAllocsUnknown C.callVkGetDeviceQueue(cdevice, cqueueFamilyIndex, cqueueIndex, cpQueue) + runtime.KeepAlive(cpQueueAllocMap) + runtime.KeepAlive(cqueueIndexAllocMap) + runtime.KeepAlive(cqueueFamilyIndexAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // QueueSubmit function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueSubmit.html func QueueSubmit(queue Queue, submitCount uint32, pSubmits []SubmitInfo, fence Fence) Result { - cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - csubmitCount, _ := (C.uint32_t)(submitCount), cgoAllocsUnknown - cpSubmits, _ := unpackArgSSubmitInfo(pSubmits) - cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + csubmitCount, csubmitCountAllocMap := (C.uint32_t)(submitCount), cgoAllocsUnknown + cpSubmits, cpSubmitsAllocMap := unpackArgSSubmitInfo(pSubmits) + cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkQueueSubmit(cqueue, csubmitCount, cpSubmits, cfence) + runtime.KeepAlive(cfenceAllocMap) packSSubmitInfo(pSubmits, cpSubmits) + runtime.KeepAlive(cpSubmitsAllocMap) + runtime.KeepAlive(csubmitCountAllocMap) + runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // QueueWaitIdle function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueWaitIdle.html func QueueWaitIdle(queue Queue) Result { - cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown __ret := C.callVkQueueWaitIdle(cqueue) + runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // DeviceWaitIdle function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDeviceWaitIdle.html func DeviceWaitIdle(device Device) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown __ret := C.callVkDeviceWaitIdle(cdevice) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateMemory.html func AllocateMemory(device Device, pAllocateInfo *MemoryAllocateInfo, pAllocator *AllocationCallbacks, pMemory *DeviceMemory) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, _ := pAllocateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpMemory, _ := (*C.VkDeviceMemory)(unsafe.Pointer(pMemory)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpMemory, cpMemoryAllocMap := (*C.VkDeviceMemory)(unsafe.Pointer(pMemory)), cgoAllocsUnknown __ret := C.callVkAllocateMemory(cdevice, cpAllocateInfo, cpAllocator, cpMemory) + runtime.KeepAlive(cpMemoryAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpAllocateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeMemory.html func FreeMemory(device Device, memory DeviceMemory, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkFreeMemory(cdevice, cmemory, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // MapMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkMapMemory.html func MapMemory(device Device, memory DeviceMemory, offset DeviceSize, size DeviceSize, flags MemoryMapFlags, ppData *unsafe.Pointer) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown - csize, _ := (C.VkDeviceSize)(size), cgoAllocsUnknown - cflags, _ := (C.VkMemoryMapFlags)(flags), cgoAllocsUnknown - cppData, _ := ppData, cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown + csize, csizeAllocMap := (C.VkDeviceSize)(size), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkMemoryMapFlags)(flags), cgoAllocsUnknown + cppData, cppDataAllocMap := ppData, cgoAllocsUnknown __ret := C.callVkMapMemory(cdevice, cmemory, coffset, csize, cflags, cppData) + runtime.KeepAlive(cppDataAllocMap) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(csizeAllocMap) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // UnmapMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkUnmapMemory.html func UnmapMemory(device Device, memory DeviceMemory) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown C.callVkUnmapMemory(cdevice, cmemory) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // FlushMappedMemoryRanges function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFlushMappedMemoryRanges.html func FlushMappedMemoryRanges(device Device, memoryRangeCount uint32, pMemoryRanges []MappedMemoryRange) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemoryRangeCount, _ := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown - cpMemoryRanges, _ := unpackArgSMappedMemoryRange(pMemoryRanges) + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemoryRangeCount, cmemoryRangeCountAllocMap := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown + cpMemoryRanges, cpMemoryRangesAllocMap := unpackArgSMappedMemoryRange(pMemoryRanges) __ret := C.callVkFlushMappedMemoryRanges(cdevice, cmemoryRangeCount, cpMemoryRanges) packSMappedMemoryRange(pMemoryRanges, cpMemoryRanges) + runtime.KeepAlive(cpMemoryRangesAllocMap) + runtime.KeepAlive(cmemoryRangeCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // InvalidateMappedMemoryRanges function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkInvalidateMappedMemoryRanges.html func InvalidateMappedMemoryRanges(device Device, memoryRangeCount uint32, pMemoryRanges []MappedMemoryRange) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemoryRangeCount, _ := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown - cpMemoryRanges, _ := unpackArgSMappedMemoryRange(pMemoryRanges) + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemoryRangeCount, cmemoryRangeCountAllocMap := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown + cpMemoryRanges, cpMemoryRangesAllocMap := unpackArgSMappedMemoryRange(pMemoryRanges) __ret := C.callVkInvalidateMappedMemoryRanges(cdevice, cmemoryRangeCount, cpMemoryRanges) packSMappedMemoryRange(pMemoryRanges, cpMemoryRanges) + runtime.KeepAlive(cpMemoryRangesAllocMap) + runtime.KeepAlive(cmemoryRangeCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetDeviceMemoryCommitment function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetDeviceMemoryCommitment.html func GetDeviceMemoryCommitment(device Device, memory DeviceMemory, pCommittedMemoryInBytes *DeviceSize) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cpCommittedMemoryInBytes, _ := (*C.VkDeviceSize)(unsafe.Pointer(pCommittedMemoryInBytes)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cpCommittedMemoryInBytes, cpCommittedMemoryInBytesAllocMap := (*C.VkDeviceSize)(unsafe.Pointer(pCommittedMemoryInBytes)), cgoAllocsUnknown C.callVkGetDeviceMemoryCommitment(cdevice, cmemory, cpCommittedMemoryInBytes) + runtime.KeepAlive(cpCommittedMemoryInBytesAllocMap) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // BindBufferMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBindBufferMemory.html func BindBufferMemory(device Device, buffer Buffer, memory DeviceMemory, memoryOffset DeviceSize) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cmemoryOffset, _ := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cmemoryOffset, cmemoryOffsetAllocMap := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown __ret := C.callVkBindBufferMemory(cdevice, cbuffer, cmemory, cmemoryOffset) + runtime.KeepAlive(cmemoryOffsetAllocMap) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // BindImageMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBindImageMemory.html func BindImageMemory(device Device, image Image, memory DeviceMemory, memoryOffset DeviceSize) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cmemoryOffset, _ := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cmemoryOffset, cmemoryOffsetAllocMap := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown __ret := C.callVkBindImageMemory(cdevice, cimage, cmemory, cmemoryOffset) + runtime.KeepAlive(cmemoryOffsetAllocMap) + runtime.KeepAlive(cmemoryAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetBufferMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetBufferMemoryRequirements.html func GetBufferMemoryRequirements(device Device, buffer Buffer, pMemoryRequirements *MemoryRequirements) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cpMemoryRequirements, _ := pMemoryRequirements.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cpMemoryRequirements, cpMemoryRequirementsAllocMap := pMemoryRequirements.PassRef() C.callVkGetBufferMemoryRequirements(cdevice, cbuffer, cpMemoryRequirements) + runtime.KeepAlive(cpMemoryRequirementsAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetImageMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageMemoryRequirements.html func GetImageMemoryRequirements(device Device, image Image, pMemoryRequirements *MemoryRequirements) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpMemoryRequirements, _ := pMemoryRequirements.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpMemoryRequirements, cpMemoryRequirementsAllocMap := pMemoryRequirements.PassRef() C.callVkGetImageMemoryRequirements(cdevice, cimage, cpMemoryRequirements) + runtime.KeepAlive(cpMemoryRequirementsAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetImageSparseMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageSparseMemoryRequirements.html func GetImageSparseMemoryRequirements(device Device, image Image, pSparseMemoryRequirementCount []uint32, pSparseMemoryRequirements []SparseImageMemoryRequirements) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpSparseMemoryRequirementCount, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSparseMemoryRequirementCount)).Data)), cgoAllocsUnknown - cpSparseMemoryRequirements, _ := unpackArgSSparseImageMemoryRequirements(pSparseMemoryRequirements) + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpSparseMemoryRequirementCount, cpSparseMemoryRequirementCountAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pSparseMemoryRequirementCount))) + cpSparseMemoryRequirements, cpSparseMemoryRequirementsAllocMap := unpackArgSSparseImageMemoryRequirements(pSparseMemoryRequirements) C.callVkGetImageSparseMemoryRequirements(cdevice, cimage, cpSparseMemoryRequirementCount, cpSparseMemoryRequirements) packSSparseImageMemoryRequirements(pSparseMemoryRequirements, cpSparseMemoryRequirements) + runtime.KeepAlive(cpSparseMemoryRequirementsAllocMap) + runtime.KeepAlive(cpSparseMemoryRequirementCountAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetPhysicalDeviceSparseImageFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html func GetPhysicalDeviceSparseImageFormatProperties(physicalDevice PhysicalDevice, format Format, kind ImageType, samples SampleCountFlagBits, usage ImageUsageFlags, tiling ImageTiling, pPropertyCount []uint32, pProperties []SparseImageFormatProperties) { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown - ckind, _ := (C.VkImageType)(kind), cgoAllocsUnknown - csamples, _ := (C.VkSampleCountFlagBits)(samples), cgoAllocsUnknown - cusage, _ := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown - ctiling, _ := (C.VkImageTiling)(tiling), cgoAllocsUnknown - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPropertyCount)).Data)), cgoAllocsUnknown - cpProperties, _ := unpackArgSSparseImageFormatProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown + ckind, ckindAllocMap := (C.VkImageType)(kind), cgoAllocsUnknown + csamples, csamplesAllocMap := (C.VkSampleCountFlagBits)(samples), cgoAllocsUnknown + cusage, cusageAllocMap := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown + ctiling, ctilingAllocMap := (C.VkImageTiling)(tiling), cgoAllocsUnknown + cpPropertyCount, cpPropertyCountAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pPropertyCount))) + cpProperties, cpPropertiesAllocMap := unpackArgSSparseImageFormatProperties(pProperties) C.callVkGetPhysicalDeviceSparseImageFormatProperties(cphysicalDevice, cformat, ckind, csamples, cusage, ctiling, cpPropertyCount, cpProperties) packSSparseImageFormatProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(ctilingAllocMap) + runtime.KeepAlive(cusageAllocMap) + runtime.KeepAlive(csamplesAllocMap) + runtime.KeepAlive(ckindAllocMap) + runtime.KeepAlive(cformatAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) } // QueueBindSparse function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueBindSparse.html func QueueBindSparse(queue Queue, bindInfoCount uint32, pBindInfo []BindSparseInfo, fence Fence) Result { - cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - cbindInfoCount, _ := (C.uint32_t)(bindInfoCount), cgoAllocsUnknown - cpBindInfo, _ := unpackArgSBindSparseInfo(pBindInfo) - cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cbindInfoCount, cbindInfoCountAllocMap := (C.uint32_t)(bindInfoCount), cgoAllocsUnknown + cpBindInfo, cpBindInfoAllocMap := unpackArgSBindSparseInfo(pBindInfo) + cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkQueueBindSparse(cqueue, cbindInfoCount, cpBindInfo, cfence) + runtime.KeepAlive(cfenceAllocMap) packSBindSparseInfo(pBindInfo, cpBindInfo) + runtime.KeepAlive(cpBindInfoAllocMap) + runtime.KeepAlive(cbindInfoCountAllocMap) + runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // CreateFence function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateFence.html func CreateFence(device Device, pCreateInfo *FenceCreateInfo, pAllocator *AllocationCallbacks, pFence *Fence) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpFence, _ := (*C.VkFence)(unsafe.Pointer(pFence)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpFence, cpFenceAllocMap := (*C.VkFence)(unsafe.Pointer(pFence)), cgoAllocsUnknown __ret := C.callVkCreateFence(cdevice, cpCreateInfo, cpAllocator, cpFence) + runtime.KeepAlive(cpFenceAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyFence function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyFence.html func DestroyFence(device Device, fence Fence, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyFence(cdevice, cfence, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cfenceAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // ResetFences function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetFences.html func ResetFences(device Device, fenceCount uint32, pFences []Fence) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfenceCount, _ := (C.uint32_t)(fenceCount), cgoAllocsUnknown - cpFences, _ := (*C.VkFence)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pFences)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfenceCount, cfenceCountAllocMap := (C.uint32_t)(fenceCount), cgoAllocsUnknown + cpFences, cpFencesAllocMap := copyPFenceBytes((*sliceHeader)(unsafe.Pointer(&pFences))) __ret := C.callVkResetFences(cdevice, cfenceCount, cpFences) + runtime.KeepAlive(cpFencesAllocMap) + runtime.KeepAlive(cfenceCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetFenceStatus function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetFenceStatus.html func GetFenceStatus(device Device, fence Fence) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkGetFenceStatus(cdevice, cfence) + runtime.KeepAlive(cfenceAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // WaitForFences function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkWaitForFences.html func WaitForFences(device Device, fenceCount uint32, pFences []Fence, waitAll Bool32, timeout uint64) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfenceCount, _ := (C.uint32_t)(fenceCount), cgoAllocsUnknown - cpFences, _ := (*C.VkFence)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pFences)).Data)), cgoAllocsUnknown - cwaitAll, _ := (C.VkBool32)(waitAll), cgoAllocsUnknown - ctimeout, _ := (C.uint64_t)(timeout), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfenceCount, cfenceCountAllocMap := (C.uint32_t)(fenceCount), cgoAllocsUnknown + cpFences, cpFencesAllocMap := copyPFenceBytes((*sliceHeader)(unsafe.Pointer(&pFences))) + cwaitAll, cwaitAllAllocMap := (C.VkBool32)(waitAll), cgoAllocsUnknown + ctimeout, ctimeoutAllocMap := (C.uint64_t)(timeout), cgoAllocsUnknown __ret := C.callVkWaitForFences(cdevice, cfenceCount, cpFences, cwaitAll, ctimeout) + runtime.KeepAlive(ctimeoutAllocMap) + runtime.KeepAlive(cwaitAllAllocMap) + runtime.KeepAlive(cpFencesAllocMap) + runtime.KeepAlive(cfenceCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateSemaphore function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateSemaphore.html func CreateSemaphore(device Device, pCreateInfo *SemaphoreCreateInfo, pAllocator *AllocationCallbacks, pSemaphore *Semaphore) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSemaphore, _ := (*C.VkSemaphore)(unsafe.Pointer(pSemaphore)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSemaphore, cpSemaphoreAllocMap := (*C.VkSemaphore)(unsafe.Pointer(pSemaphore)), cgoAllocsUnknown __ret := C.callVkCreateSemaphore(cdevice, cpCreateInfo, cpAllocator, cpSemaphore) + runtime.KeepAlive(cpSemaphoreAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySemaphore function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroySemaphore.html func DestroySemaphore(device Device, semaphore Semaphore, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - csemaphore, _ := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + csemaphore, csemaphoreAllocMap := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySemaphore(cdevice, csemaphore, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(csemaphoreAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateEvent.html func CreateEvent(device Device, pCreateInfo *EventCreateInfo, pAllocator *AllocationCallbacks, pEvent *Event) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpEvent, _ := (*C.VkEvent)(unsafe.Pointer(pEvent)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpEvent, cpEventAllocMap := (*C.VkEvent)(unsafe.Pointer(pEvent)), cgoAllocsUnknown __ret := C.callVkCreateEvent(cdevice, cpCreateInfo, cpAllocator, cpEvent) + runtime.KeepAlive(cpEventAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyEvent.html func DestroyEvent(device Device, event Event, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyEvent(cdevice, cevent, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetEventStatus function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetEventStatus.html func GetEventStatus(device Device, event Event) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkGetEventStatus(cdevice, cevent) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // SetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkSetEvent.html func SetEvent(device Device, event Event) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkSetEvent(cdevice, cevent) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // ResetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetEvent.html func ResetEvent(device Device, event Event) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkResetEvent(cdevice, cevent) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateQueryPool.html func CreateQueryPool(device Device, pCreateInfo *QueryPoolCreateInfo, pAllocator *AllocationCallbacks, pQueryPool *QueryPool) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpQueryPool, _ := (*C.VkQueryPool)(unsafe.Pointer(pQueryPool)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpQueryPool, cpQueryPoolAllocMap := (*C.VkQueryPool)(unsafe.Pointer(pQueryPool)), cgoAllocsUnknown __ret := C.callVkCreateQueryPool(cdevice, cpCreateInfo, cpAllocator, cpQueryPool) + runtime.KeepAlive(cpQueryPoolAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyQueryPool.html func DestroyQueryPool(device Device, queryPool QueryPool, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyQueryPool(cdevice, cqueryPool, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // 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 { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown - cdataSize, _ := (C.size_t)(dataSize), cgoAllocsUnknown - cpData, _ := pData, cgoAllocsUnknown - cstride, _ := (C.VkDeviceSize)(stride), cgoAllocsUnknown - cflags, _ := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown +func GetQueryPoolResults(device Device, queryPool QueryPool, firstQuery uint32, queryCount uint32, dataSize uint32, pData unsafe.Pointer, stride DeviceSize, flags QueryResultFlags) Result { + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown + cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown + cdataSize, cdataSizeAllocMap := (C.size_t)(dataSize), cgoAllocsUnknown + cpData, cpDataAllocMap := pData, cgoAllocsUnknown + cstride, cstrideAllocMap := (C.VkDeviceSize)(stride), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown __ret := C.callVkGetQueryPoolResults(cdevice, cqueryPool, cfirstQuery, cqueryCount, cdataSize, cpData, cstride, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cstrideAllocMap) + runtime.KeepAlive(cpDataAllocMap) + runtime.KeepAlive(cdataSizeAllocMap) + runtime.KeepAlive(cqueryCountAllocMap) + runtime.KeepAlive(cfirstQueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateBuffer.html func CreateBuffer(device Device, pCreateInfo *BufferCreateInfo, pAllocator *AllocationCallbacks, pBuffer *Buffer) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpBuffer, _ := (*C.VkBuffer)(unsafe.Pointer(pBuffer)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpBuffer, cpBufferAllocMap := (*C.VkBuffer)(unsafe.Pointer(pBuffer)), cgoAllocsUnknown __ret := C.callVkCreateBuffer(cdevice, cpCreateInfo, cpAllocator, cpBuffer) + runtime.KeepAlive(cpBufferAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyBuffer.html func DestroyBuffer(device Device, buffer Buffer, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyBuffer(cdevice, cbuffer, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateBufferView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateBufferView.html func CreateBufferView(device Device, pCreateInfo *BufferViewCreateInfo, pAllocator *AllocationCallbacks, pView *BufferView) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpView, _ := (*C.VkBufferView)(unsafe.Pointer(pView)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpView, cpViewAllocMap := (*C.VkBufferView)(unsafe.Pointer(pView)), cgoAllocsUnknown __ret := C.callVkCreateBufferView(cdevice, cpCreateInfo, cpAllocator, cpView) + runtime.KeepAlive(cpViewAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyBufferView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyBufferView.html func DestroyBufferView(device Device, bufferView BufferView, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbufferView, _ := *(*C.VkBufferView)(unsafe.Pointer(&bufferView)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbufferView, cbufferViewAllocMap := *(*C.VkBufferView)(unsafe.Pointer(&bufferView)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyBufferView(cdevice, cbufferView, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cbufferViewAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateImage.html func CreateImage(device Device, pCreateInfo *ImageCreateInfo, pAllocator *AllocationCallbacks, pImage *Image) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpImage, _ := (*C.VkImage)(unsafe.Pointer(pImage)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpImage, cpImageAllocMap := (*C.VkImage)(unsafe.Pointer(pImage)), cgoAllocsUnknown __ret := C.callVkCreateImage(cdevice, cpCreateInfo, cpAllocator, cpImage) + runtime.KeepAlive(cpImageAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyImage.html func DestroyImage(device Device, image Image, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyImage(cdevice, cimage, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetImageSubresourceLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageSubresourceLayout.html func GetImageSubresourceLayout(device Device, image Image, pSubresource *ImageSubresource, pLayout *SubresourceLayout) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpSubresource, _ := pSubresource.PassRef() - cpLayout, _ := pLayout.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpSubresource, cpSubresourceAllocMap := pSubresource.PassRef() + cpLayout, cpLayoutAllocMap := pLayout.PassRef() C.callVkGetImageSubresourceLayout(cdevice, cimage, cpSubresource, cpLayout) + runtime.KeepAlive(cpLayoutAllocMap) + runtime.KeepAlive(cpSubresourceAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateImageView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateImageView.html func CreateImageView(device Device, pCreateInfo *ImageViewCreateInfo, pAllocator *AllocationCallbacks, pView *ImageView) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpView, _ := (*C.VkImageView)(unsafe.Pointer(pView)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpView, cpViewAllocMap := (*C.VkImageView)(unsafe.Pointer(pView)), cgoAllocsUnknown __ret := C.callVkCreateImageView(cdevice, cpCreateInfo, cpAllocator, cpView) + runtime.KeepAlive(cpViewAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyImageView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyImageView.html func DestroyImageView(device Device, imageView ImageView, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimageView, _ := *(*C.VkImageView)(unsafe.Pointer(&imageView)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimageView, cimageViewAllocMap := *(*C.VkImageView)(unsafe.Pointer(&imageView)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyImageView(cdevice, cimageView, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cimageViewAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateShaderModule function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateShaderModule.html func CreateShaderModule(device Device, pCreateInfo *ShaderModuleCreateInfo, pAllocator *AllocationCallbacks, pShaderModule *ShaderModule) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpShaderModule, _ := (*C.VkShaderModule)(unsafe.Pointer(pShaderModule)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpShaderModule, cpShaderModuleAllocMap := (*C.VkShaderModule)(unsafe.Pointer(pShaderModule)), cgoAllocsUnknown __ret := C.callVkCreateShaderModule(cdevice, cpCreateInfo, cpAllocator, cpShaderModule) + runtime.KeepAlive(cpShaderModuleAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyShaderModule function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyShaderModule.html func DestroyShaderModule(device Device, shaderModule ShaderModule, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cshaderModule, _ := *(*C.VkShaderModule)(unsafe.Pointer(&shaderModule)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cshaderModule, cshaderModuleAllocMap := *(*C.VkShaderModule)(unsafe.Pointer(&shaderModule)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyShaderModule(cdevice, cshaderModule, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cshaderModuleAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreatePipelineCache function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreatePipelineCache.html func CreatePipelineCache(device Device, pCreateInfo *PipelineCacheCreateInfo, pAllocator *AllocationCallbacks, pPipelineCache *PipelineCache) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelineCache, _ := (*C.VkPipelineCache)(unsafe.Pointer(pPipelineCache)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelineCache, cpPipelineCacheAllocMap := (*C.VkPipelineCache)(unsafe.Pointer(pPipelineCache)), cgoAllocsUnknown __ret := C.callVkCreatePipelineCache(cdevice, cpCreateInfo, cpAllocator, cpPipelineCache) + runtime.KeepAlive(cpPipelineCacheAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipelineCache function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipelineCache.html func DestroyPipelineCache(device Device, pipelineCache PipelineCache, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipelineCache(cdevice, cpipelineCache, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpipelineCacheAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // 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 { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - cpDataSize, _ := (*C.size_t)(unsafe.Pointer(pDataSize)), cgoAllocsUnknown - cpData, _ := pData, cgoAllocsUnknown +func GetPipelineCacheData(device Device, pipelineCache PipelineCache, pDataSize *uint32, pData unsafe.Pointer) Result { + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + cpDataSize, cpDataSizeAllocMap := (*C.size_t)(unsafe.Pointer(pDataSize)), cgoAllocsUnknown + cpData, cpDataAllocMap := pData, cgoAllocsUnknown __ret := C.callVkGetPipelineCacheData(cdevice, cpipelineCache, cpDataSize, cpData) + runtime.KeepAlive(cpDataAllocMap) + runtime.KeepAlive(cpDataSizeAllocMap) + runtime.KeepAlive(cpipelineCacheAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // MergePipelineCaches function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkMergePipelineCaches.html func MergePipelineCaches(device Device, dstCache PipelineCache, srcCacheCount uint32, pSrcCaches []PipelineCache) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdstCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&dstCache)), cgoAllocsUnknown - csrcCacheCount, _ := (C.uint32_t)(srcCacheCount), cgoAllocsUnknown - cpSrcCaches, _ := (*C.VkPipelineCache)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSrcCaches)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdstCache, cdstCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&dstCache)), cgoAllocsUnknown + csrcCacheCount, csrcCacheCountAllocMap := (C.uint32_t)(srcCacheCount), cgoAllocsUnknown + cpSrcCaches, cpSrcCachesAllocMap := copyPPipelineCacheBytes((*sliceHeader)(unsafe.Pointer(&pSrcCaches))) __ret := C.callVkMergePipelineCaches(cdevice, cdstCache, csrcCacheCount, cpSrcCaches) + runtime.KeepAlive(cpSrcCachesAllocMap) + runtime.KeepAlive(csrcCacheCountAllocMap) + runtime.KeepAlive(cdstCacheAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateGraphicsPipelines function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateGraphicsPipelines.html func CreateGraphicsPipelines(device Device, pipelineCache PipelineCache, createInfoCount uint32, pCreateInfos []GraphicsPipelineCreateInfo, pAllocator *AllocationCallbacks, pPipelines []Pipeline) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - ccreateInfoCount, _ := (C.uint32_t)(createInfoCount), cgoAllocsUnknown - cpCreateInfos, _ := unpackArgSGraphicsPipelineCreateInfo(pCreateInfos) - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelines, _ := (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPipelines)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + ccreateInfoCount, ccreateInfoCountAllocMap := (C.uint32_t)(createInfoCount), cgoAllocsUnknown + cpCreateInfos, cpCreateInfosAllocMap := unpackArgSGraphicsPipelineCreateInfo(pCreateInfos) + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelines, cpPipelinesAllocMap := copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&pPipelines))) __ret := C.callVkCreateGraphicsPipelines(cdevice, cpipelineCache, ccreateInfoCount, cpCreateInfos, cpAllocator, cpPipelines) + runtime.KeepAlive(cpPipelinesAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) packSGraphicsPipelineCreateInfo(pCreateInfos, cpCreateInfos) + runtime.KeepAlive(cpCreateInfosAllocMap) + runtime.KeepAlive(ccreateInfoCountAllocMap) + runtime.KeepAlive(cpipelineCacheAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateComputePipelines function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateComputePipelines.html func CreateComputePipelines(device Device, pipelineCache PipelineCache, createInfoCount uint32, pCreateInfos []ComputePipelineCreateInfo, pAllocator *AllocationCallbacks, pPipelines []Pipeline) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - ccreateInfoCount, _ := (C.uint32_t)(createInfoCount), cgoAllocsUnknown - cpCreateInfos, _ := unpackArgSComputePipelineCreateInfo(pCreateInfos) - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelines, _ := (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPipelines)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + ccreateInfoCount, ccreateInfoCountAllocMap := (C.uint32_t)(createInfoCount), cgoAllocsUnknown + cpCreateInfos, cpCreateInfosAllocMap := unpackArgSComputePipelineCreateInfo(pCreateInfos) + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelines, cpPipelinesAllocMap := copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&pPipelines))) __ret := C.callVkCreateComputePipelines(cdevice, cpipelineCache, ccreateInfoCount, cpCreateInfos, cpAllocator, cpPipelines) + runtime.KeepAlive(cpPipelinesAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) packSComputePipelineCreateInfo(pCreateInfos, cpCreateInfos) + runtime.KeepAlive(cpCreateInfosAllocMap) + runtime.KeepAlive(ccreateInfoCountAllocMap) + runtime.KeepAlive(cpipelineCacheAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipeline function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipeline.html func DestroyPipeline(device Device, pipeline Pipeline, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipeline, _ := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipeline, cpipelineAllocMap := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipeline(cdevice, cpipeline, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpipelineAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreatePipelineLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreatePipelineLayout.html func CreatePipelineLayout(device Device, pCreateInfo *PipelineLayoutCreateInfo, pAllocator *AllocationCallbacks, pPipelineLayout *PipelineLayout) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelineLayout, _ := (*C.VkPipelineLayout)(unsafe.Pointer(pPipelineLayout)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelineLayout, cpPipelineLayoutAllocMap := (*C.VkPipelineLayout)(unsafe.Pointer(pPipelineLayout)), cgoAllocsUnknown __ret := C.callVkCreatePipelineLayout(cdevice, cpCreateInfo, cpAllocator, cpPipelineLayout) + runtime.KeepAlive(cpPipelineLayoutAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipelineLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipelineLayout.html func DestroyPipelineLayout(device Device, pipelineLayout PipelineLayout, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineLayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&pipelineLayout)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineLayout, cpipelineLayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&pipelineLayout)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipelineLayout(cdevice, cpipelineLayout, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpipelineLayoutAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateSampler function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateSampler.html func CreateSampler(device Device, pCreateInfo *SamplerCreateInfo, pAllocator *AllocationCallbacks, pSampler *Sampler) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSampler, _ := (*C.VkSampler)(unsafe.Pointer(pSampler)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSampler, cpSamplerAllocMap := (*C.VkSampler)(unsafe.Pointer(pSampler)), cgoAllocsUnknown __ret := C.callVkCreateSampler(cdevice, cpCreateInfo, cpAllocator, cpSampler) + runtime.KeepAlive(cpSamplerAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySampler function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroySampler.html func DestroySampler(device Device, sampler Sampler, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - csampler, _ := *(*C.VkSampler)(unsafe.Pointer(&sampler)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + csampler, csamplerAllocMap := *(*C.VkSampler)(unsafe.Pointer(&sampler)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySampler(cdevice, csampler, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(csamplerAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateDescriptorSetLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDescriptorSetLayout.html func CreateDescriptorSetLayout(device Device, pCreateInfo *DescriptorSetLayoutCreateInfo, pAllocator *AllocationCallbacks, pSetLayout *DescriptorSetLayout) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSetLayout, _ := (*C.VkDescriptorSetLayout)(unsafe.Pointer(pSetLayout)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSetLayout, cpSetLayoutAllocMap := (*C.VkDescriptorSetLayout)(unsafe.Pointer(pSetLayout)), cgoAllocsUnknown __ret := C.callVkCreateDescriptorSetLayout(cdevice, cpCreateInfo, cpAllocator, cpSetLayout) + runtime.KeepAlive(cpSetLayoutAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDescriptorSetLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDescriptorSetLayout.html func DestroyDescriptorSetLayout(device Device, descriptorSetLayout DescriptorSetLayout, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorSetLayout, _ := *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&descriptorSetLayout)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorSetLayout, cdescriptorSetLayoutAllocMap := *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&descriptorSetLayout)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDescriptorSetLayout(cdevice, cdescriptorSetLayout, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cdescriptorSetLayoutAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDescriptorPool.html func CreateDescriptorPool(device Device, pCreateInfo *DescriptorPoolCreateInfo, pAllocator *AllocationCallbacks, pDescriptorPool *DescriptorPool) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpDescriptorPool, _ := (*C.VkDescriptorPool)(unsafe.Pointer(pDescriptorPool)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpDescriptorPool, cpDescriptorPoolAllocMap := (*C.VkDescriptorPool)(unsafe.Pointer(pDescriptorPool)), cgoAllocsUnknown __ret := C.callVkCreateDescriptorPool(cdevice, cpCreateInfo, cpAllocator, cpDescriptorPool) + runtime.KeepAlive(cpDescriptorPoolAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDescriptorPool.html func DestroyDescriptorPool(device Device, descriptorPool DescriptorPool, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDescriptorPool(cdevice, cdescriptorPool, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cdescriptorPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // ResetDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetDescriptorPool.html func ResetDescriptorPool(device Device, descriptorPool DescriptorPool, flags DescriptorPoolResetFlags) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cflags, _ := (C.VkDescriptorPoolResetFlags)(flags), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkDescriptorPoolResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetDescriptorPool(cdevice, cdescriptorPool, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cdescriptorPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateDescriptorSets.html func AllocateDescriptorSets(device Device, pAllocateInfo *DescriptorSetAllocateInfo, pDescriptorSets *DescriptorSet) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, _ := pAllocateInfo.PassRef() - cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() + cpDescriptorSets, cpDescriptorSetsAllocMap := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown __ret := C.callVkAllocateDescriptorSets(cdevice, cpAllocateInfo, cpDescriptorSets) + runtime.KeepAlive(cpDescriptorSetsAllocMap) + runtime.KeepAlive(cpAllocateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeDescriptorSets.html func FreeDescriptorSets(device Device, descriptorPool DescriptorPool, descriptorSetCount uint32, pDescriptorSets *DescriptorSet) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cdescriptorSetCount, _ := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown - cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cdescriptorSetCount, cdescriptorSetCountAllocMap := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown + cpDescriptorSets, cpDescriptorSetsAllocMap := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown __ret := C.callVkFreeDescriptorSets(cdevice, cdescriptorPool, cdescriptorSetCount, cpDescriptorSets) + runtime.KeepAlive(cpDescriptorSetsAllocMap) + runtime.KeepAlive(cdescriptorSetCountAllocMap) + runtime.KeepAlive(cdescriptorPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // UpdateDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkUpdateDescriptorSets.html func UpdateDescriptorSets(device Device, descriptorWriteCount uint32, pDescriptorWrites []WriteDescriptorSet, descriptorCopyCount uint32, pDescriptorCopies []CopyDescriptorSet) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorWriteCount, _ := (C.uint32_t)(descriptorWriteCount), cgoAllocsUnknown - cpDescriptorWrites, _ := unpackArgSWriteDescriptorSet(pDescriptorWrites) - cdescriptorCopyCount, _ := (C.uint32_t)(descriptorCopyCount), cgoAllocsUnknown - cpDescriptorCopies, _ := unpackArgSCopyDescriptorSet(pDescriptorCopies) + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorWriteCount, cdescriptorWriteCountAllocMap := (C.uint32_t)(descriptorWriteCount), cgoAllocsUnknown + cpDescriptorWrites, cpDescriptorWritesAllocMap := unpackArgSWriteDescriptorSet(pDescriptorWrites) + cdescriptorCopyCount, cdescriptorCopyCountAllocMap := (C.uint32_t)(descriptorCopyCount), cgoAllocsUnknown + cpDescriptorCopies, cpDescriptorCopiesAllocMap := unpackArgSCopyDescriptorSet(pDescriptorCopies) C.callVkUpdateDescriptorSets(cdevice, cdescriptorWriteCount, cpDescriptorWrites, cdescriptorCopyCount, cpDescriptorCopies) packSCopyDescriptorSet(pDescriptorCopies, cpDescriptorCopies) + runtime.KeepAlive(cpDescriptorCopiesAllocMap) + runtime.KeepAlive(cdescriptorCopyCountAllocMap) packSWriteDescriptorSet(pDescriptorWrites, cpDescriptorWrites) + runtime.KeepAlive(cpDescriptorWritesAllocMap) + runtime.KeepAlive(cdescriptorWriteCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateFramebuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateFramebuffer.html func CreateFramebuffer(device Device, pCreateInfo *FramebufferCreateInfo, pAllocator *AllocationCallbacks, pFramebuffer *Framebuffer) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpFramebuffer, _ := (*C.VkFramebuffer)(unsafe.Pointer(pFramebuffer)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpFramebuffer, cpFramebufferAllocMap := (*C.VkFramebuffer)(unsafe.Pointer(pFramebuffer)), cgoAllocsUnknown __ret := C.callVkCreateFramebuffer(cdevice, cpCreateInfo, cpAllocator, cpFramebuffer) + runtime.KeepAlive(cpFramebufferAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyFramebuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyFramebuffer.html func DestroyFramebuffer(device Device, framebuffer Framebuffer, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cframebuffer, _ := *(*C.VkFramebuffer)(unsafe.Pointer(&framebuffer)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cframebuffer, cframebufferAllocMap := *(*C.VkFramebuffer)(unsafe.Pointer(&framebuffer)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyFramebuffer(cdevice, cframebuffer, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cframebufferAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateRenderPass.html func CreateRenderPass(device Device, pCreateInfo *RenderPassCreateInfo, pAllocator *AllocationCallbacks, pRenderPass *RenderPass) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpRenderPass, _ := (*C.VkRenderPass)(unsafe.Pointer(pRenderPass)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpRenderPass, cpRenderPassAllocMap := (*C.VkRenderPass)(unsafe.Pointer(pRenderPass)), cgoAllocsUnknown __ret := C.callVkCreateRenderPass(cdevice, cpCreateInfo, cpAllocator, cpRenderPass) + runtime.KeepAlive(cpRenderPassAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyRenderPass.html func DestroyRenderPass(device Device, renderPass RenderPass, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - crenderPass, _ := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + crenderPass, crenderPassAllocMap := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyRenderPass(cdevice, crenderPass, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(crenderPassAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetRenderAreaGranularity function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetRenderAreaGranularity.html func GetRenderAreaGranularity(device Device, renderPass RenderPass, pGranularity *Extent2D) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - crenderPass, _ := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown - cpGranularity, _ := pGranularity.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + crenderPass, crenderPassAllocMap := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown + cpGranularity, cpGranularityAllocMap := pGranularity.PassRef() C.callVkGetRenderAreaGranularity(cdevice, crenderPass, cpGranularity) + runtime.KeepAlive(cpGranularityAllocMap) + runtime.KeepAlive(crenderPassAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // CreateCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateCommandPool.html func CreateCommandPool(device Device, pCreateInfo *CommandPoolCreateInfo, pAllocator *AllocationCallbacks, pCommandPool *CommandPool) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpCommandPool, _ := (*C.VkCommandPool)(unsafe.Pointer(pCommandPool)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpCommandPool, cpCommandPoolAllocMap := (*C.VkCommandPool)(unsafe.Pointer(pCommandPool)), cgoAllocsUnknown __ret := C.callVkCreateCommandPool(cdevice, cpCreateInfo, cpAllocator, cpCommandPool) + runtime.KeepAlive(cpCommandPoolAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyCommandPool.html func DestroyCommandPool(device Device, commandPool CommandPool, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyCommandPool(cdevice, ccommandPool, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(ccommandPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // ResetCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetCommandPool.html func ResetCommandPool(device Device, commandPool CommandPool, flags CommandPoolResetFlags) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - cflags, _ := (C.VkCommandPoolResetFlags)(flags), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkCommandPoolResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetCommandPool(cdevice, ccommandPool, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(ccommandPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateCommandBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateCommandBuffers.html func AllocateCommandBuffers(device Device, pAllocateInfo *CommandBufferAllocateInfo, pCommandBuffers []CommandBuffer) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, _ := pAllocateInfo.PassRef() - cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() + cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) __ret := C.callVkAllocateCommandBuffers(cdevice, cpAllocateInfo, cpCommandBuffers) + runtime.KeepAlive(cpCommandBuffersAllocMap) + runtime.KeepAlive(cpAllocateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeCommandBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeCommandBuffers.html func FreeCommandBuffers(device Device, commandPool CommandPool, commandBufferCount uint32, pCommandBuffers []CommandBuffer) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - ccommandBufferCount, _ := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown - cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + ccommandBufferCount, ccommandBufferCountAllocMap := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown + cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) C.callVkFreeCommandBuffers(cdevice, ccommandPool, ccommandBufferCount, cpCommandBuffers) + runtime.KeepAlive(cpCommandBuffersAllocMap) + runtime.KeepAlive(ccommandBufferCountAllocMap) + runtime.KeepAlive(ccommandPoolAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // BeginCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBeginCommandBuffer.html func BeginCommandBuffer(commandBuffer CommandBuffer, pBeginInfo *CommandBufferBeginInfo) Result { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpBeginInfo, _ := pBeginInfo.PassRef() + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpBeginInfo, cpBeginInfoAllocMap := pBeginInfo.PassRef() __ret := C.callVkBeginCommandBuffer(ccommandBuffer, cpBeginInfo) + runtime.KeepAlive(cpBeginInfoAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // EndCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEndCommandBuffer.html func EndCommandBuffer(commandBuffer CommandBuffer) Result { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown __ret := C.callVkEndCommandBuffer(ccommandBuffer) + runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // ResetCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetCommandBuffer.html func ResetCommandBuffer(commandBuffer CommandBuffer, flags CommandBufferResetFlags) Result { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cflags, _ := (C.VkCommandBufferResetFlags)(flags), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkCommandBufferResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetCommandBuffer(ccommandBuffer, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // CmdBindPipeline function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindPipeline.html func CmdBindPipeline(commandBuffer CommandBuffer, pipelineBindPoint PipelineBindPoint, pipeline Pipeline) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineBindPoint, _ := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown - cpipeline, _ := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineBindPoint, cpipelineBindPointAllocMap := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown + cpipeline, cpipelineAllocMap := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown C.callVkCmdBindPipeline(ccommandBuffer, cpipelineBindPoint, cpipeline) + runtime.KeepAlive(cpipelineAllocMap) + runtime.KeepAlive(cpipelineBindPointAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetViewport function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetViewport.html func CmdSetViewport(commandBuffer CommandBuffer, firstViewport uint32, viewportCount uint32, pViewports []Viewport) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstViewport, _ := (C.uint32_t)(firstViewport), cgoAllocsUnknown - cviewportCount, _ := (C.uint32_t)(viewportCount), cgoAllocsUnknown - cpViewports, _ := unpackArgSViewport(pViewports) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstViewport, cfirstViewportAllocMap := (C.uint32_t)(firstViewport), cgoAllocsUnknown + cviewportCount, cviewportCountAllocMap := (C.uint32_t)(viewportCount), cgoAllocsUnknown + cpViewports, cpViewportsAllocMap := unpackArgSViewport(pViewports) C.callVkCmdSetViewport(ccommandBuffer, cfirstViewport, cviewportCount, cpViewports) packSViewport(pViewports, cpViewports) + runtime.KeepAlive(cpViewportsAllocMap) + runtime.KeepAlive(cviewportCountAllocMap) + runtime.KeepAlive(cfirstViewportAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetScissor function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetScissor.html func CmdSetScissor(commandBuffer CommandBuffer, firstScissor uint32, scissorCount uint32, pScissors []Rect2D) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstScissor, _ := (C.uint32_t)(firstScissor), cgoAllocsUnknown - cscissorCount, _ := (C.uint32_t)(scissorCount), cgoAllocsUnknown - cpScissors, _ := unpackArgSRect2D(pScissors) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstScissor, cfirstScissorAllocMap := (C.uint32_t)(firstScissor), cgoAllocsUnknown + cscissorCount, cscissorCountAllocMap := (C.uint32_t)(scissorCount), cgoAllocsUnknown + cpScissors, cpScissorsAllocMap := unpackArgSRect2D(pScissors) C.callVkCmdSetScissor(ccommandBuffer, cfirstScissor, cscissorCount, cpScissors) packSRect2D(pScissors, cpScissors) + runtime.KeepAlive(cpScissorsAllocMap) + runtime.KeepAlive(cscissorCountAllocMap) + runtime.KeepAlive(cfirstScissorAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetLineWidth function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetLineWidth.html func CmdSetLineWidth(commandBuffer CommandBuffer, lineWidth float32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - clineWidth, _ := (C.float)(lineWidth), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + clineWidth, clineWidthAllocMap := (C.float)(lineWidth), cgoAllocsUnknown C.callVkCmdSetLineWidth(ccommandBuffer, clineWidth) + runtime.KeepAlive(clineWidthAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetDepthBias function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetDepthBias.html func CmdSetDepthBias(commandBuffer CommandBuffer, depthBiasConstantFactor float32, depthBiasClamp float32, depthBiasSlopeFactor float32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdepthBiasConstantFactor, _ := (C.float)(depthBiasConstantFactor), cgoAllocsUnknown - cdepthBiasClamp, _ := (C.float)(depthBiasClamp), cgoAllocsUnknown - cdepthBiasSlopeFactor, _ := (C.float)(depthBiasSlopeFactor), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdepthBiasConstantFactor, cdepthBiasConstantFactorAllocMap := (C.float)(depthBiasConstantFactor), cgoAllocsUnknown + cdepthBiasClamp, cdepthBiasClampAllocMap := (C.float)(depthBiasClamp), cgoAllocsUnknown + cdepthBiasSlopeFactor, cdepthBiasSlopeFactorAllocMap := (C.float)(depthBiasSlopeFactor), cgoAllocsUnknown C.callVkCmdSetDepthBias(ccommandBuffer, cdepthBiasConstantFactor, cdepthBiasClamp, cdepthBiasSlopeFactor) + runtime.KeepAlive(cdepthBiasSlopeFactorAllocMap) + runtime.KeepAlive(cdepthBiasClampAllocMap) + runtime.KeepAlive(cdepthBiasConstantFactorAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetBlendConstants function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetBlendConstants.html func CmdSetBlendConstants(commandBuffer CommandBuffer, blendConstants *[4]float32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cblendConstants, _ := *(**C.float)(unsafe.Pointer(&blendConstants)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cblendConstants, cblendConstantsAllocMap := *(**C.float)(unsafe.Pointer(&blendConstants)), cgoAllocsUnknown C.callVkCmdSetBlendConstants(ccommandBuffer, cblendConstants) + runtime.KeepAlive(cblendConstantsAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetDepthBounds function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetDepthBounds.html func CmdSetDepthBounds(commandBuffer CommandBuffer, minDepthBounds float32, maxDepthBounds float32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cminDepthBounds, _ := (C.float)(minDepthBounds), cgoAllocsUnknown - cmaxDepthBounds, _ := (C.float)(maxDepthBounds), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cminDepthBounds, cminDepthBoundsAllocMap := (C.float)(minDepthBounds), cgoAllocsUnknown + cmaxDepthBounds, cmaxDepthBoundsAllocMap := (C.float)(maxDepthBounds), cgoAllocsUnknown C.callVkCmdSetDepthBounds(ccommandBuffer, cminDepthBounds, cmaxDepthBounds) + runtime.KeepAlive(cmaxDepthBoundsAllocMap) + runtime.KeepAlive(cminDepthBoundsAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilCompareMask function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilCompareMask.html func CmdSetStencilCompareMask(commandBuffer CommandBuffer, faceMask StencilFaceFlags, compareMask uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - ccompareMask, _ := (C.uint32_t)(compareMask), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + ccompareMask, ccompareMaskAllocMap := (C.uint32_t)(compareMask), cgoAllocsUnknown C.callVkCmdSetStencilCompareMask(ccommandBuffer, cfaceMask, ccompareMask) + runtime.KeepAlive(ccompareMaskAllocMap) + runtime.KeepAlive(cfaceMaskAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilWriteMask function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilWriteMask.html func CmdSetStencilWriteMask(commandBuffer CommandBuffer, faceMask StencilFaceFlags, writeMask uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - cwriteMask, _ := (C.uint32_t)(writeMask), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + cwriteMask, cwriteMaskAllocMap := (C.uint32_t)(writeMask), cgoAllocsUnknown C.callVkCmdSetStencilWriteMask(ccommandBuffer, cfaceMask, cwriteMask) + runtime.KeepAlive(cwriteMaskAllocMap) + runtime.KeepAlive(cfaceMaskAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilReference function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilReference.html func CmdSetStencilReference(commandBuffer CommandBuffer, faceMask StencilFaceFlags, reference uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - creference, _ := (C.uint32_t)(reference), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + creference, creferenceAllocMap := (C.uint32_t)(reference), cgoAllocsUnknown C.callVkCmdSetStencilReference(ccommandBuffer, cfaceMask, creference) + runtime.KeepAlive(creferenceAllocMap) + runtime.KeepAlive(cfaceMaskAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindDescriptorSets.html func CmdBindDescriptorSets(commandBuffer CommandBuffer, pipelineBindPoint PipelineBindPoint, layout PipelineLayout, firstSet uint32, descriptorSetCount uint32, pDescriptorSets []DescriptorSet, dynamicOffsetCount uint32, pDynamicOffsets []uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineBindPoint, _ := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown - clayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown - cfirstSet, _ := (C.uint32_t)(firstSet), cgoAllocsUnknown - cdescriptorSetCount, _ := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown - cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDescriptorSets)).Data)), cgoAllocsUnknown - cdynamicOffsetCount, _ := (C.uint32_t)(dynamicOffsetCount), cgoAllocsUnknown - cpDynamicOffsets, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDynamicOffsets)).Data)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineBindPoint, cpipelineBindPointAllocMap := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown + clayout, clayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown + cfirstSet, cfirstSetAllocMap := (C.uint32_t)(firstSet), cgoAllocsUnknown + cdescriptorSetCount, cdescriptorSetCountAllocMap := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown + cpDescriptorSets, cpDescriptorSetsAllocMap := copyPDescriptorSetBytes((*sliceHeader)(unsafe.Pointer(&pDescriptorSets))) + cdynamicOffsetCount, cdynamicOffsetCountAllocMap := (C.uint32_t)(dynamicOffsetCount), cgoAllocsUnknown + cpDynamicOffsets, cpDynamicOffsetsAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pDynamicOffsets))) C.callVkCmdBindDescriptorSets(ccommandBuffer, cpipelineBindPoint, clayout, cfirstSet, cdescriptorSetCount, cpDescriptorSets, cdynamicOffsetCount, cpDynamicOffsets) + runtime.KeepAlive(cpDynamicOffsetsAllocMap) + runtime.KeepAlive(cdynamicOffsetCountAllocMap) + runtime.KeepAlive(cpDescriptorSetsAllocMap) + runtime.KeepAlive(cdescriptorSetCountAllocMap) + runtime.KeepAlive(cfirstSetAllocMap) + runtime.KeepAlive(clayoutAllocMap) + runtime.KeepAlive(cpipelineBindPointAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindIndexBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindIndexBuffer.html func CmdBindIndexBuffer(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, indexType IndexType) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cindexType, _ := (C.VkIndexType)(indexType), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cindexType, cindexTypeAllocMap := (C.VkIndexType)(indexType), cgoAllocsUnknown C.callVkCmdBindIndexBuffer(ccommandBuffer, cbuffer, coffset, cindexType) + runtime.KeepAlive(cindexTypeAllocMap) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindVertexBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindVertexBuffers.html func CmdBindVertexBuffers(commandBuffer CommandBuffer, firstBinding uint32, bindingCount uint32, pBuffers []Buffer, pOffsets []DeviceSize) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstBinding, _ := (C.uint32_t)(firstBinding), cgoAllocsUnknown - cbindingCount, _ := (C.uint32_t)(bindingCount), cgoAllocsUnknown - cpBuffers, _ := (*C.VkBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pBuffers)).Data)), cgoAllocsUnknown - cpOffsets, _ := (*C.VkDeviceSize)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pOffsets)).Data)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstBinding, cfirstBindingAllocMap := (C.uint32_t)(firstBinding), cgoAllocsUnknown + cbindingCount, cbindingCountAllocMap := (C.uint32_t)(bindingCount), cgoAllocsUnknown + cpBuffers, cpBuffersAllocMap := copyPBufferBytes((*sliceHeader)(unsafe.Pointer(&pBuffers))) + cpOffsets, cpOffsetsAllocMap := copyPDeviceSizeBytes((*sliceHeader)(unsafe.Pointer(&pOffsets))) C.callVkCmdBindVertexBuffers(ccommandBuffer, cfirstBinding, cbindingCount, cpBuffers, cpOffsets) + runtime.KeepAlive(cpOffsetsAllocMap) + runtime.KeepAlive(cpBuffersAllocMap) + runtime.KeepAlive(cbindingCountAllocMap) + runtime.KeepAlive(cfirstBindingAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDraw function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDraw.html func CmdDraw(commandBuffer CommandBuffer, vertexCount uint32, instanceCount uint32, firstVertex uint32, firstInstance uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cvertexCount, _ := (C.uint32_t)(vertexCount), cgoAllocsUnknown - cinstanceCount, _ := (C.uint32_t)(instanceCount), cgoAllocsUnknown - cfirstVertex, _ := (C.uint32_t)(firstVertex), cgoAllocsUnknown - cfirstInstance, _ := (C.uint32_t)(firstInstance), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cvertexCount, cvertexCountAllocMap := (C.uint32_t)(vertexCount), cgoAllocsUnknown + cinstanceCount, cinstanceCountAllocMap := (C.uint32_t)(instanceCount), cgoAllocsUnknown + cfirstVertex, cfirstVertexAllocMap := (C.uint32_t)(firstVertex), cgoAllocsUnknown + cfirstInstance, cfirstInstanceAllocMap := (C.uint32_t)(firstInstance), cgoAllocsUnknown C.callVkCmdDraw(ccommandBuffer, cvertexCount, cinstanceCount, cfirstVertex, cfirstInstance) + runtime.KeepAlive(cfirstInstanceAllocMap) + runtime.KeepAlive(cfirstVertexAllocMap) + runtime.KeepAlive(cinstanceCountAllocMap) + runtime.KeepAlive(cvertexCountAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndexed function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndexed.html func CmdDrawIndexed(commandBuffer CommandBuffer, indexCount uint32, instanceCount uint32, firstIndex uint32, vertexOffset int32, firstInstance uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cindexCount, _ := (C.uint32_t)(indexCount), cgoAllocsUnknown - cinstanceCount, _ := (C.uint32_t)(instanceCount), cgoAllocsUnknown - cfirstIndex, _ := (C.uint32_t)(firstIndex), cgoAllocsUnknown - cvertexOffset, _ := (C.int32_t)(vertexOffset), cgoAllocsUnknown - cfirstInstance, _ := (C.uint32_t)(firstInstance), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cindexCount, cindexCountAllocMap := (C.uint32_t)(indexCount), cgoAllocsUnknown + cinstanceCount, cinstanceCountAllocMap := (C.uint32_t)(instanceCount), cgoAllocsUnknown + cfirstIndex, cfirstIndexAllocMap := (C.uint32_t)(firstIndex), cgoAllocsUnknown + cvertexOffset, cvertexOffsetAllocMap := (C.int32_t)(vertexOffset), cgoAllocsUnknown + cfirstInstance, cfirstInstanceAllocMap := (C.uint32_t)(firstInstance), cgoAllocsUnknown C.callVkCmdDrawIndexed(ccommandBuffer, cindexCount, cinstanceCount, cfirstIndex, cvertexOffset, cfirstInstance) + runtime.KeepAlive(cfirstInstanceAllocMap) + runtime.KeepAlive(cvertexOffsetAllocMap) + runtime.KeepAlive(cfirstIndexAllocMap) + runtime.KeepAlive(cinstanceCountAllocMap) + runtime.KeepAlive(cindexCountAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndirect.html func CmdDrawIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, drawCount uint32, stride uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cdrawCount, _ := (C.uint32_t)(drawCount), cgoAllocsUnknown - cstride, _ := (C.uint32_t)(stride), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cdrawCount, cdrawCountAllocMap := (C.uint32_t)(drawCount), cgoAllocsUnknown + cstride, cstrideAllocMap := (C.uint32_t)(stride), cgoAllocsUnknown C.callVkCmdDrawIndirect(ccommandBuffer, cbuffer, coffset, cdrawCount, cstride) + runtime.KeepAlive(cstrideAllocMap) + runtime.KeepAlive(cdrawCountAllocMap) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndexedIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndexedIndirect.html func CmdDrawIndexedIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, drawCount uint32, stride uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cdrawCount, _ := (C.uint32_t)(drawCount), cgoAllocsUnknown - cstride, _ := (C.uint32_t)(stride), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cdrawCount, cdrawCountAllocMap := (C.uint32_t)(drawCount), cgoAllocsUnknown + cstride, cstrideAllocMap := (C.uint32_t)(stride), cgoAllocsUnknown C.callVkCmdDrawIndexedIndirect(ccommandBuffer, cbuffer, coffset, cdrawCount, cstride) + runtime.KeepAlive(cstrideAllocMap) + runtime.KeepAlive(cdrawCountAllocMap) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDispatch function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDispatch.html func CmdDispatch(commandBuffer CommandBuffer, x uint32, y uint32, z uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cx, _ := (C.uint32_t)(x), cgoAllocsUnknown - cy, _ := (C.uint32_t)(y), cgoAllocsUnknown - cz, _ := (C.uint32_t)(z), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cx, cxAllocMap := (C.uint32_t)(x), cgoAllocsUnknown + cy, cyAllocMap := (C.uint32_t)(y), cgoAllocsUnknown + cz, czAllocMap := (C.uint32_t)(z), cgoAllocsUnknown C.callVkCmdDispatch(ccommandBuffer, cx, cy, cz) + runtime.KeepAlive(czAllocMap) + runtime.KeepAlive(cyAllocMap) + runtime.KeepAlive(cxAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDispatchIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDispatchIndirect.html func CmdDispatchIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown C.callVkCmdDispatchIndirect(ccommandBuffer, cbuffer, coffset) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cbufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyBuffer.html func CmdCopyBuffer(commandBuffer CommandBuffer, srcBuffer Buffer, dstBuffer Buffer, regionCount uint32, pRegions []BufferCopy) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown - cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSBufferCopy(pRegions) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcBuffer, csrcBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown + cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSBufferCopy(pRegions) C.callVkCmdCopyBuffer(ccommandBuffer, csrcBuffer, cdstBuffer, cregionCount, cpRegions) packSBufferCopy(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstBufferAllocMap) + runtime.KeepAlive(csrcBufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyImage.html func CmdCopyImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageCopy) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSImageCopy(pRegions) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSImageCopy(pRegions) C.callVkCmdCopyImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSImageCopy(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstImageLayoutAllocMap) + runtime.KeepAlive(cdstImageAllocMap) + runtime.KeepAlive(csrcImageLayoutAllocMap) + runtime.KeepAlive(csrcImageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBlitImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBlitImage.html func CmdBlitImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageBlit, filter Filter) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSImageBlit(pRegions) - cfilter, _ := (C.VkFilter)(filter), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSImageBlit(pRegions) + cfilter, cfilterAllocMap := (C.VkFilter)(filter), cgoAllocsUnknown C.callVkCmdBlitImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions, cfilter) + runtime.KeepAlive(cfilterAllocMap) packSImageBlit(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstImageLayoutAllocMap) + runtime.KeepAlive(cdstImageAllocMap) + runtime.KeepAlive(csrcImageLayoutAllocMap) + runtime.KeepAlive(csrcImageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyBufferToImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyBufferToImage.html func CmdCopyBufferToImage(commandBuffer CommandBuffer, srcBuffer Buffer, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []BufferImageCopy) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown - cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSBufferImageCopy(pRegions) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcBuffer, csrcBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown + cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSBufferImageCopy(pRegions) C.callVkCmdCopyBufferToImage(ccommandBuffer, csrcBuffer, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSBufferImageCopy(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstImageLayoutAllocMap) + runtime.KeepAlive(cdstImageAllocMap) + runtime.KeepAlive(csrcBufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyImageToBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyImageToBuffer.html func CmdCopyImageToBuffer(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstBuffer Buffer, regionCount uint32, pRegions []BufferImageCopy) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSBufferImageCopy(pRegions) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSBufferImageCopy(pRegions) C.callVkCmdCopyImageToBuffer(ccommandBuffer, csrcImage, csrcImageLayout, cdstBuffer, cregionCount, cpRegions) packSBufferImageCopy(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstBufferAllocMap) + runtime.KeepAlive(csrcImageLayoutAllocMap) + runtime.KeepAlive(csrcImageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdUpdateBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdUpdateBuffer.html func CmdUpdateBuffer(commandBuffer CommandBuffer, dstBuffer Buffer, dstOffset DeviceSize, dataSize DeviceSize, pData *uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - cdataSize, _ := (C.VkDeviceSize)(dataSize), cgoAllocsUnknown - cpData, _ := (*C.uint32_t)(unsafe.Pointer(pData)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + cdataSize, cdataSizeAllocMap := (C.VkDeviceSize)(dataSize), cgoAllocsUnknown + cpData, cpDataAllocMap := (*C.uint32_t)(unsafe.Pointer(pData)), cgoAllocsUnknown C.callVkCmdUpdateBuffer(ccommandBuffer, cdstBuffer, cdstOffset, cdataSize, cpData) + runtime.KeepAlive(cpDataAllocMap) + runtime.KeepAlive(cdataSizeAllocMap) + runtime.KeepAlive(cdstOffsetAllocMap) + runtime.KeepAlive(cdstBufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdFillBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdFillBuffer.html func CmdFillBuffer(commandBuffer CommandBuffer, dstBuffer Buffer, dstOffset DeviceSize, size DeviceSize, data uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - csize, _ := (C.VkDeviceSize)(size), cgoAllocsUnknown - cdata, _ := (C.uint32_t)(data), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + csize, csizeAllocMap := (C.VkDeviceSize)(size), cgoAllocsUnknown + cdata, cdataAllocMap := (C.uint32_t)(data), cgoAllocsUnknown C.callVkCmdFillBuffer(ccommandBuffer, cdstBuffer, cdstOffset, csize, cdata) + runtime.KeepAlive(cdataAllocMap) + runtime.KeepAlive(csizeAllocMap) + runtime.KeepAlive(cdstOffsetAllocMap) + runtime.KeepAlive(cdstBufferAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearColorImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearColorImage.html func CmdClearColorImage(commandBuffer CommandBuffer, image Image, imageLayout ImageLayout, pColor *ClearColorValue, rangeCount uint32, pRanges []ImageSubresourceRange) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cimageLayout, _ := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown - cpColor, _ := (*C.VkClearColorValue)(unsafe.Pointer(pColor)), cgoAllocsUnknown - crangeCount, _ := (C.uint32_t)(rangeCount), cgoAllocsUnknown - cpRanges, _ := unpackArgSImageSubresourceRange(pRanges) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cimageLayout, cimageLayoutAllocMap := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown + cpColor, cpColorAllocMap := (*C.VkClearColorValue)(unsafe.Pointer(pColor)), cgoAllocsUnknown + crangeCount, crangeCountAllocMap := (C.uint32_t)(rangeCount), cgoAllocsUnknown + cpRanges, cpRangesAllocMap := unpackArgSImageSubresourceRange(pRanges) C.callVkCmdClearColorImage(ccommandBuffer, cimage, cimageLayout, cpColor, crangeCount, cpRanges) packSImageSubresourceRange(pRanges, cpRanges) + runtime.KeepAlive(cpRangesAllocMap) + runtime.KeepAlive(crangeCountAllocMap) + runtime.KeepAlive(cpColorAllocMap) + runtime.KeepAlive(cimageLayoutAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearDepthStencilImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearDepthStencilImage.html func CmdClearDepthStencilImage(commandBuffer CommandBuffer, image Image, imageLayout ImageLayout, pDepthStencil *ClearDepthStencilValue, rangeCount uint32, pRanges []ImageSubresourceRange) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cimageLayout, _ := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown - cpDepthStencil, _ := pDepthStencil.PassRef() - crangeCount, _ := (C.uint32_t)(rangeCount), cgoAllocsUnknown - cpRanges, _ := unpackArgSImageSubresourceRange(pRanges) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cimageLayout, cimageLayoutAllocMap := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown + cpDepthStencil, cpDepthStencilAllocMap := pDepthStencil.PassRef() + crangeCount, crangeCountAllocMap := (C.uint32_t)(rangeCount), cgoAllocsUnknown + cpRanges, cpRangesAllocMap := unpackArgSImageSubresourceRange(pRanges) C.callVkCmdClearDepthStencilImage(ccommandBuffer, cimage, cimageLayout, cpDepthStencil, crangeCount, cpRanges) packSImageSubresourceRange(pRanges, cpRanges) + runtime.KeepAlive(cpRangesAllocMap) + runtime.KeepAlive(crangeCountAllocMap) + runtime.KeepAlive(cpDepthStencilAllocMap) + runtime.KeepAlive(cimageLayoutAllocMap) + runtime.KeepAlive(cimageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearAttachments function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearAttachments.html func CmdClearAttachments(commandBuffer CommandBuffer, attachmentCount uint32, pAttachments []ClearAttachment, rectCount uint32, pRects []ClearRect) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cattachmentCount, _ := (C.uint32_t)(attachmentCount), cgoAllocsUnknown - cpAttachments, _ := unpackArgSClearAttachment(pAttachments) - crectCount, _ := (C.uint32_t)(rectCount), cgoAllocsUnknown - cpRects, _ := unpackArgSClearRect(pRects) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cattachmentCount, cattachmentCountAllocMap := (C.uint32_t)(attachmentCount), cgoAllocsUnknown + cpAttachments, cpAttachmentsAllocMap := unpackArgSClearAttachment(pAttachments) + crectCount, crectCountAllocMap := (C.uint32_t)(rectCount), cgoAllocsUnknown + cpRects, cpRectsAllocMap := unpackArgSClearRect(pRects) C.callVkCmdClearAttachments(ccommandBuffer, cattachmentCount, cpAttachments, crectCount, cpRects) packSClearRect(pRects, cpRects) + runtime.KeepAlive(cpRectsAllocMap) + runtime.KeepAlive(crectCountAllocMap) packSClearAttachment(pAttachments, cpAttachments) + runtime.KeepAlive(cpAttachmentsAllocMap) + runtime.KeepAlive(cattachmentCountAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResolveImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResolveImage.html func CmdResolveImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageResolve) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, _ := unpackArgSImageResolve(pRegions) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, cpRegionsAllocMap := unpackArgSImageResolve(pRegions) C.callVkCmdResolveImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSImageResolve(pRegions, cpRegions) + runtime.KeepAlive(cpRegionsAllocMap) + runtime.KeepAlive(cregionCountAllocMap) + runtime.KeepAlive(cdstImageLayoutAllocMap) + runtime.KeepAlive(cdstImageAllocMap) + runtime.KeepAlive(csrcImageLayoutAllocMap) + runtime.KeepAlive(csrcImageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetEvent.html func CmdSetEvent(commandBuffer CommandBuffer, event Event, stageMask PipelineStageFlags) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cstageMask, _ := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cstageMask, cstageMaskAllocMap := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown C.callVkCmdSetEvent(ccommandBuffer, cevent, cstageMask) + runtime.KeepAlive(cstageMaskAllocMap) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResetEvent.html func CmdResetEvent(commandBuffer CommandBuffer, event Event, stageMask PipelineStageFlags) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cstageMask, _ := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cstageMask, cstageMaskAllocMap := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown C.callVkCmdResetEvent(ccommandBuffer, cevent, cstageMask) + runtime.KeepAlive(cstageMaskAllocMap) + runtime.KeepAlive(ceventAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdWaitEvents function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdWaitEvents.html func CmdWaitEvents(commandBuffer CommandBuffer, eventCount uint32, pEvents []Event, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, memoryBarrierCount uint32, pMemoryBarriers []MemoryBarrier, bufferMemoryBarrierCount uint32, pBufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarrierCount uint32, pImageMemoryBarriers []ImageMemoryBarrier) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ceventCount, _ := (C.uint32_t)(eventCount), cgoAllocsUnknown - cpEvents, _ := (*C.VkEvent)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pEvents)).Data)), cgoAllocsUnknown - csrcStageMask, _ := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown - cdstStageMask, _ := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown - cmemoryBarrierCount, _ := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown - cpMemoryBarriers, _ := unpackArgSMemoryBarrier(pMemoryBarriers) - cbufferMemoryBarrierCount, _ := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown - cpBufferMemoryBarriers, _ := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) - cimageMemoryBarrierCount, _ := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown - cpImageMemoryBarriers, _ := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ceventCount, ceventCountAllocMap := (C.uint32_t)(eventCount), cgoAllocsUnknown + cpEvents, cpEventsAllocMap := copyPEventBytes((*sliceHeader)(unsafe.Pointer(&pEvents))) + csrcStageMask, csrcStageMaskAllocMap := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown + cdstStageMask, cdstStageMaskAllocMap := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown + cmemoryBarrierCount, cmemoryBarrierCountAllocMap := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown + cpMemoryBarriers, cpMemoryBarriersAllocMap := unpackArgSMemoryBarrier(pMemoryBarriers) + cbufferMemoryBarrierCount, cbufferMemoryBarrierCountAllocMap := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown + cpBufferMemoryBarriers, cpBufferMemoryBarriersAllocMap := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) + cimageMemoryBarrierCount, cimageMemoryBarrierCountAllocMap := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown + cpImageMemoryBarriers, cpImageMemoryBarriersAllocMap := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) C.callVkCmdWaitEvents(ccommandBuffer, ceventCount, cpEvents, csrcStageMask, cdstStageMask, cmemoryBarrierCount, cpMemoryBarriers, cbufferMemoryBarrierCount, cpBufferMemoryBarriers, cimageMemoryBarrierCount, cpImageMemoryBarriers) packSImageMemoryBarrier(pImageMemoryBarriers, cpImageMemoryBarriers) + runtime.KeepAlive(cpImageMemoryBarriersAllocMap) + runtime.KeepAlive(cimageMemoryBarrierCountAllocMap) packSBufferMemoryBarrier(pBufferMemoryBarriers, cpBufferMemoryBarriers) + runtime.KeepAlive(cpBufferMemoryBarriersAllocMap) + runtime.KeepAlive(cbufferMemoryBarrierCountAllocMap) packSMemoryBarrier(pMemoryBarriers, cpMemoryBarriers) + runtime.KeepAlive(cpMemoryBarriersAllocMap) + runtime.KeepAlive(cmemoryBarrierCountAllocMap) + runtime.KeepAlive(cdstStageMaskAllocMap) + runtime.KeepAlive(csrcStageMaskAllocMap) + runtime.KeepAlive(cpEventsAllocMap) + runtime.KeepAlive(ceventCountAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdPipelineBarrier function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdPipelineBarrier.html func CmdPipelineBarrier(commandBuffer CommandBuffer, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, dependencyFlags DependencyFlags, memoryBarrierCount uint32, pMemoryBarriers []MemoryBarrier, bufferMemoryBarrierCount uint32, pBufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarrierCount uint32, pImageMemoryBarriers []ImageMemoryBarrier) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcStageMask, _ := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown - cdstStageMask, _ := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown - cdependencyFlags, _ := (C.VkDependencyFlags)(dependencyFlags), cgoAllocsUnknown - cmemoryBarrierCount, _ := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown - cpMemoryBarriers, _ := unpackArgSMemoryBarrier(pMemoryBarriers) - cbufferMemoryBarrierCount, _ := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown - cpBufferMemoryBarriers, _ := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) - cimageMemoryBarrierCount, _ := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown - cpImageMemoryBarriers, _ := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcStageMask, csrcStageMaskAllocMap := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown + cdstStageMask, cdstStageMaskAllocMap := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown + cdependencyFlags, cdependencyFlagsAllocMap := (C.VkDependencyFlags)(dependencyFlags), cgoAllocsUnknown + cmemoryBarrierCount, cmemoryBarrierCountAllocMap := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown + cpMemoryBarriers, cpMemoryBarriersAllocMap := unpackArgSMemoryBarrier(pMemoryBarriers) + cbufferMemoryBarrierCount, cbufferMemoryBarrierCountAllocMap := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown + cpBufferMemoryBarriers, cpBufferMemoryBarriersAllocMap := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) + cimageMemoryBarrierCount, cimageMemoryBarrierCountAllocMap := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown + cpImageMemoryBarriers, cpImageMemoryBarriersAllocMap := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) C.callVkCmdPipelineBarrier(ccommandBuffer, csrcStageMask, cdstStageMask, cdependencyFlags, cmemoryBarrierCount, cpMemoryBarriers, cbufferMemoryBarrierCount, cpBufferMemoryBarriers, cimageMemoryBarrierCount, cpImageMemoryBarriers) packSImageMemoryBarrier(pImageMemoryBarriers, cpImageMemoryBarriers) + runtime.KeepAlive(cpImageMemoryBarriersAllocMap) + runtime.KeepAlive(cimageMemoryBarrierCountAllocMap) packSBufferMemoryBarrier(pBufferMemoryBarriers, cpBufferMemoryBarriers) + runtime.KeepAlive(cpBufferMemoryBarriersAllocMap) + runtime.KeepAlive(cbufferMemoryBarrierCountAllocMap) packSMemoryBarrier(pMemoryBarriers, cpMemoryBarriers) + runtime.KeepAlive(cpMemoryBarriersAllocMap) + runtime.KeepAlive(cmemoryBarrierCountAllocMap) + runtime.KeepAlive(cdependencyFlagsAllocMap) + runtime.KeepAlive(cdstStageMaskAllocMap) + runtime.KeepAlive(csrcStageMaskAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBeginQuery function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBeginQuery.html func CmdBeginQuery(commandBuffer CommandBuffer, queryPool QueryPool, query uint32, flags QueryControlFlags) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown - cflags, _ := (C.VkQueryControlFlags)(flags), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkQueryControlFlags)(flags), cgoAllocsUnknown C.callVkCmdBeginQuery(ccommandBuffer, cqueryPool, cquery, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cqueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdEndQuery function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdEndQuery.html func CmdEndQuery(commandBuffer CommandBuffer, queryPool QueryPool, query uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown C.callVkCmdEndQuery(ccommandBuffer, cqueryPool, cquery) + runtime.KeepAlive(cqueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResetQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResetQueryPool.html func CmdResetQueryPool(commandBuffer CommandBuffer, queryPool QueryPool, firstQuery uint32, queryCount uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown + cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown C.callVkCmdResetQueryPool(ccommandBuffer, cqueryPool, cfirstQuery, cqueryCount) + runtime.KeepAlive(cqueryCountAllocMap) + runtime.KeepAlive(cfirstQueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdWriteTimestamp function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdWriteTimestamp.html func CmdWriteTimestamp(commandBuffer CommandBuffer, pipelineStage PipelineStageFlagBits, queryPool QueryPool, query uint32) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineStage, _ := (C.VkPipelineStageFlagBits)(pipelineStage), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineStage, cpipelineStageAllocMap := (C.VkPipelineStageFlagBits)(pipelineStage), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown C.callVkCmdWriteTimestamp(ccommandBuffer, cpipelineStage, cqueryPool, cquery) + runtime.KeepAlive(cqueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(cpipelineStageAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyQueryPoolResults function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyQueryPoolResults.html func CmdCopyQueryPoolResults(commandBuffer CommandBuffer, queryPool QueryPool, firstQuery uint32, queryCount uint32, dstBuffer Buffer, dstOffset DeviceSize, stride DeviceSize, flags QueryResultFlags) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown - cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - cstride, _ := (C.VkDeviceSize)(stride), cgoAllocsUnknown - cflags, _ := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown + cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown + cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + cstride, cstrideAllocMap := (C.VkDeviceSize)(stride), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown C.callVkCmdCopyQueryPoolResults(ccommandBuffer, cqueryPool, cfirstQuery, cqueryCount, cdstBuffer, cdstOffset, cstride, cflags) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cstrideAllocMap) + runtime.KeepAlive(cdstOffsetAllocMap) + runtime.KeepAlive(cdstBufferAllocMap) + runtime.KeepAlive(cqueryCountAllocMap) + runtime.KeepAlive(cfirstQueryAllocMap) + runtime.KeepAlive(cqueryPoolAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdPushConstants function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdPushConstants.html func CmdPushConstants(commandBuffer CommandBuffer, layout PipelineLayout, stageFlags ShaderStageFlags, offset uint32, size uint32, pValues unsafe.Pointer) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - clayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown - cstageFlags, _ := (C.VkShaderStageFlags)(stageFlags), cgoAllocsUnknown - coffset, _ := (C.uint32_t)(offset), cgoAllocsUnknown - csize, _ := (C.uint32_t)(size), cgoAllocsUnknown - cpValues, _ := pValues, cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + clayout, clayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown + cstageFlags, cstageFlagsAllocMap := (C.VkShaderStageFlags)(stageFlags), cgoAllocsUnknown + coffset, coffsetAllocMap := (C.uint32_t)(offset), cgoAllocsUnknown + csize, csizeAllocMap := (C.uint32_t)(size), cgoAllocsUnknown + cpValues, cpValuesAllocMap := pValues, cgoAllocsUnknown C.callVkCmdPushConstants(ccommandBuffer, clayout, cstageFlags, coffset, csize, cpValues) + runtime.KeepAlive(cpValuesAllocMap) + runtime.KeepAlive(csizeAllocMap) + runtime.KeepAlive(coffsetAllocMap) + runtime.KeepAlive(cstageFlagsAllocMap) + runtime.KeepAlive(clayoutAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBeginRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBeginRenderPass.html func CmdBeginRenderPass(commandBuffer CommandBuffer, pRenderPassBegin *RenderPassBeginInfo, contents SubpassContents) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpRenderPassBegin, _ := pRenderPassBegin.PassRef() - ccontents, _ := (C.VkSubpassContents)(contents), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpRenderPassBegin, cpRenderPassBeginAllocMap := pRenderPassBegin.PassRef() + ccontents, ccontentsAllocMap := (C.VkSubpassContents)(contents), cgoAllocsUnknown C.callVkCmdBeginRenderPass(ccommandBuffer, cpRenderPassBegin, ccontents) + runtime.KeepAlive(ccontentsAllocMap) + runtime.KeepAlive(cpRenderPassBeginAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdNextSubpass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdNextSubpass.html func CmdNextSubpass(commandBuffer CommandBuffer, contents SubpassContents) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ccontents, _ := (C.VkSubpassContents)(contents), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccontents, ccontentsAllocMap := (C.VkSubpassContents)(contents), cgoAllocsUnknown C.callVkCmdNextSubpass(ccommandBuffer, ccontents) + runtime.KeepAlive(ccontentsAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdEndRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdEndRenderPass.html func CmdEndRenderPass(commandBuffer CommandBuffer) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown C.callVkCmdEndRenderPass(ccommandBuffer) + runtime.KeepAlive(ccommandBufferAllocMap) } // CmdExecuteCommands function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdExecuteCommands.html func CmdExecuteCommands(commandBuffer CommandBuffer, commandBufferCount uint32, pCommandBuffers []CommandBuffer) { - ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ccommandBufferCount, _ := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown - cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown + ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBufferCount, ccommandBufferCountAllocMap := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown + cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) C.callVkCmdExecuteCommands(ccommandBuffer, ccommandBufferCount, cpCommandBuffers) + runtime.KeepAlive(cpCommandBuffersAllocMap) + runtime.KeepAlive(ccommandBufferCountAllocMap) + runtime.KeepAlive(ccommandBufferAllocMap) } // DestroySurface function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDestroySurfaceKHR func DestroySurface(instance Instance, surface Surface, pAllocator *AllocationCallbacks) { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySurfaceKHR(cinstance, csurface, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(csurfaceAllocMap) + runtime.KeepAlive(cinstanceAllocMap) } // GetPhysicalDeviceSurfaceSupport function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceSupportKHR func GetPhysicalDeviceSurfaceSupport(physicalDevice PhysicalDevice, queueFamilyIndex uint32, surface Surface, pSupported *Bool32) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cqueueFamilyIndex, _ := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown - csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSupported, _ := (*C.VkBool32)(unsafe.Pointer(pSupported)), cgoAllocsUnknown + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cqueueFamilyIndex, cqueueFamilyIndexAllocMap := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown + csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSupported, cpSupportedAllocMap := (*C.VkBool32)(unsafe.Pointer(pSupported)), cgoAllocsUnknown __ret := C.callVkGetPhysicalDeviceSurfaceSupportKHR(cphysicalDevice, cqueueFamilyIndex, csurface, cpSupported) + runtime.KeepAlive(cpSupportedAllocMap) + runtime.KeepAlive(csurfaceAllocMap) + runtime.KeepAlive(cqueueFamilyIndexAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfaceCapabilities function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceCapabilitiesKHR func GetPhysicalDeviceSurfaceCapabilities(physicalDevice PhysicalDevice, surface Surface, pSurfaceCapabilities *SurfaceCapabilities) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSurfaceCapabilities, _ := pSurfaceCapabilities.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSurfaceCapabilities, cpSurfaceCapabilitiesAllocMap := pSurfaceCapabilities.PassRef() __ret := C.callVkGetPhysicalDeviceSurfaceCapabilitiesKHR(cphysicalDevice, csurface, cpSurfaceCapabilities) + runtime.KeepAlive(cpSurfaceCapabilitiesAllocMap) + runtime.KeepAlive(csurfaceAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfaceFormats function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceFormatsKHR func GetPhysicalDeviceSurfaceFormats(physicalDevice PhysicalDevice, surface Surface, pSurfaceFormatCount *uint32, pSurfaceFormats []SurfaceFormat) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSurfaceFormatCount, _ := (*C.uint32_t)(unsafe.Pointer(pSurfaceFormatCount)), cgoAllocsUnknown - cpSurfaceFormats, _ := unpackArgSSurfaceFormat(pSurfaceFormats) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSurfaceFormatCount, cpSurfaceFormatCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pSurfaceFormatCount)), cgoAllocsUnknown + cpSurfaceFormats, cpSurfaceFormatsAllocMap := unpackArgSSurfaceFormat(pSurfaceFormats) __ret := C.callVkGetPhysicalDeviceSurfaceFormatsKHR(cphysicalDevice, csurface, cpSurfaceFormatCount, cpSurfaceFormats) packSSurfaceFormat(pSurfaceFormats, cpSurfaceFormats) + runtime.KeepAlive(cpSurfaceFormatsAllocMap) + runtime.KeepAlive(cpSurfaceFormatCountAllocMap) + runtime.KeepAlive(csurfaceAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfacePresentModes function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfacePresentModesKHR func GetPhysicalDeviceSurfacePresentModes(physicalDevice PhysicalDevice, surface Surface, pPresentModeCount *uint32, pPresentModes []PresentMode) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpPresentModeCount, _ := (*C.uint32_t)(unsafe.Pointer(pPresentModeCount)), cgoAllocsUnknown - cpPresentModes, _ := (*C.VkPresentModeKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPresentModes)).Data)), cgoAllocsUnknown + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpPresentModeCount, cpPresentModeCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPresentModeCount)), cgoAllocsUnknown + cpPresentModes, cpPresentModesAllocMap := copyPPresentModeBytes((*sliceHeader)(unsafe.Pointer(&pPresentModes))) __ret := C.callVkGetPhysicalDeviceSurfacePresentModesKHR(cphysicalDevice, csurface, cpPresentModeCount, cpPresentModes) + runtime.KeepAlive(cpPresentModesAllocMap) + runtime.KeepAlive(cpPresentModeCountAllocMap) + runtime.KeepAlive(csurfaceAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateSwapchain function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateSwapchainKHR func CreateSwapchain(device Device, pCreateInfo *SwapchainCreateInfo, pAllocator *AllocationCallbacks, pSwapchain *Swapchain) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSwapchain, _ := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchain)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSwapchain, cpSwapchainAllocMap := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchain)), cgoAllocsUnknown __ret := C.callVkCreateSwapchainKHR(cdevice, cpCreateInfo, cpAllocator, cpSwapchain) + runtime.KeepAlive(cpSwapchainAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySwapchain function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDestroySwapchainKHR func DestroySwapchain(device Device, swapchain Swapchain, pAllocator *AllocationCallbacks) { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySwapchainKHR(cdevice, cswapchain, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cswapchainAllocMap) + runtime.KeepAlive(cdeviceAllocMap) } // GetSwapchainImages function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetSwapchainImagesKHR func GetSwapchainImages(device Device, swapchain Swapchain, pSwapchainImageCount *uint32, pSwapchainImages []Image) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpSwapchainImageCount, _ := (*C.uint32_t)(unsafe.Pointer(pSwapchainImageCount)), cgoAllocsUnknown - cpSwapchainImages, _ := (*C.VkImage)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSwapchainImages)).Data)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpSwapchainImageCount, cpSwapchainImageCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pSwapchainImageCount)), cgoAllocsUnknown + cpSwapchainImages, cpSwapchainImagesAllocMap := copyPImageBytes((*sliceHeader)(unsafe.Pointer(&pSwapchainImages))) __ret := C.callVkGetSwapchainImagesKHR(cdevice, cswapchain, cpSwapchainImageCount, cpSwapchainImages) + runtime.KeepAlive(cpSwapchainImagesAllocMap) + runtime.KeepAlive(cpSwapchainImageCountAllocMap) + runtime.KeepAlive(cswapchainAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AcquireNextImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireNextImageKHR func AcquireNextImage(device Device, swapchain Swapchain, timeout uint64, semaphore Semaphore, fence Fence, pImageIndex *uint32) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - ctimeout, _ := (C.uint64_t)(timeout), cgoAllocsUnknown - csemaphore, _ := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown - cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown - cpImageIndex, _ := (*C.uint32_t)(unsafe.Pointer(pImageIndex)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + ctimeout, ctimeoutAllocMap := (C.uint64_t)(timeout), cgoAllocsUnknown + csemaphore, csemaphoreAllocMap := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown + cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cpImageIndex, cpImageIndexAllocMap := (*C.uint32_t)(unsafe.Pointer(pImageIndex)), cgoAllocsUnknown __ret := C.callVkAcquireNextImageKHR(cdevice, cswapchain, ctimeout, csemaphore, cfence, cpImageIndex) + runtime.KeepAlive(cpImageIndexAllocMap) + runtime.KeepAlive(cfenceAllocMap) + runtime.KeepAlive(csemaphoreAllocMap) + runtime.KeepAlive(ctimeoutAllocMap) + runtime.KeepAlive(cswapchainAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // QueuePresent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueuePresentKHR func QueuePresent(queue Queue, pPresentInfo *PresentInfo) Result { - cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - cpPresentInfo, _ := pPresentInfo.PassRef() + cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cpPresentInfo, cpPresentInfoAllocMap := pPresentInfo.PassRef() __ret := C.callVkQueuePresentKHR(cqueue, cpPresentInfo) + runtime.KeepAlive(cpPresentInfoAllocMap) + runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceDisplayProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceDisplayPropertiesKHR func GetPhysicalDeviceDisplayProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []DisplayProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSDisplayProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSDisplayProperties(pProperties) __ret := C.callVkGetPhysicalDeviceDisplayPropertiesKHR(cphysicalDevice, cpPropertyCount, cpProperties) packSDisplayProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceDisplayPlaneProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceDisplayPlanePropertiesKHR func GetPhysicalDeviceDisplayPlaneProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []DisplayPlaneProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSDisplayPlaneProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSDisplayPlaneProperties(pProperties) __ret := C.callVkGetPhysicalDeviceDisplayPlanePropertiesKHR(cphysicalDevice, cpPropertyCount, cpProperties) packSDisplayPlaneProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayPlaneSupportedDisplays function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayPlaneSupportedDisplaysKHR func GetDisplayPlaneSupportedDisplays(physicalDevice PhysicalDevice, planeIndex uint32, pDisplayCount *uint32, pDisplays []Display) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cplaneIndex, _ := (C.uint32_t)(planeIndex), cgoAllocsUnknown - cpDisplayCount, _ := (*C.uint32_t)(unsafe.Pointer(pDisplayCount)), cgoAllocsUnknown - cpDisplays, _ := (*C.VkDisplayKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDisplays)).Data)), cgoAllocsUnknown + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cplaneIndex, cplaneIndexAllocMap := (C.uint32_t)(planeIndex), cgoAllocsUnknown + cpDisplayCount, cpDisplayCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pDisplayCount)), cgoAllocsUnknown + cpDisplays, cpDisplaysAllocMap := copyPDisplayBytes((*sliceHeader)(unsafe.Pointer(&pDisplays))) __ret := C.callVkGetDisplayPlaneSupportedDisplaysKHR(cphysicalDevice, cplaneIndex, cpDisplayCount, cpDisplays) + runtime.KeepAlive(cpDisplaysAllocMap) + runtime.KeepAlive(cpDisplayCountAllocMap) + runtime.KeepAlive(cplaneIndexAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayModeProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayModePropertiesKHR func GetDisplayModeProperties(physicalDevice PhysicalDevice, display Display, pPropertyCount *uint32, pProperties []DisplayModeProperties) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cdisplay, _ := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown - cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, _ := unpackArgSDisplayModeProperties(pProperties) + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cdisplay, cdisplayAllocMap := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown + cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, cpPropertiesAllocMap := unpackArgSDisplayModeProperties(pProperties) __ret := C.callVkGetDisplayModePropertiesKHR(cphysicalDevice, cdisplay, cpPropertyCount, cpProperties) packSDisplayModeProperties(pProperties, cpProperties) + runtime.KeepAlive(cpPropertiesAllocMap) + runtime.KeepAlive(cpPropertyCountAllocMap) + runtime.KeepAlive(cdisplayAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDisplayMode function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateDisplayModeKHR func CreateDisplayMode(physicalDevice PhysicalDevice, display Display, pCreateInfo *DisplayModeCreateInfo, pAllocator *AllocationCallbacks, pMode *DisplayMode) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cdisplay, _ := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpMode, _ := (*C.VkDisplayModeKHR)(unsafe.Pointer(pMode)), cgoAllocsUnknown + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cdisplay, cdisplayAllocMap := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpMode, cpModeAllocMap := (*C.VkDisplayModeKHR)(unsafe.Pointer(pMode)), cgoAllocsUnknown __ret := C.callVkCreateDisplayModeKHR(cphysicalDevice, cdisplay, cpCreateInfo, cpAllocator, cpMode) + runtime.KeepAlive(cpModeAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cdisplayAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayPlaneCapabilities function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayPlaneCapabilitiesKHR func GetDisplayPlaneCapabilities(physicalDevice PhysicalDevice, mode DisplayMode, planeIndex uint32, pCapabilities *DisplayPlaneCapabilities) Result { - cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cmode, _ := *(*C.VkDisplayModeKHR)(unsafe.Pointer(&mode)), cgoAllocsUnknown - cplaneIndex, _ := (C.uint32_t)(planeIndex), cgoAllocsUnknown - cpCapabilities, _ := pCapabilities.PassRef() + cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cmode, cmodeAllocMap := *(*C.VkDisplayModeKHR)(unsafe.Pointer(&mode)), cgoAllocsUnknown + cplaneIndex, cplaneIndexAllocMap := (C.uint32_t)(planeIndex), cgoAllocsUnknown + cpCapabilities, cpCapabilitiesAllocMap := pCapabilities.PassRef() __ret := C.callVkGetDisplayPlaneCapabilitiesKHR(cphysicalDevice, cmode, cplaneIndex, cpCapabilities) + runtime.KeepAlive(cpCapabilitiesAllocMap) + runtime.KeepAlive(cplaneIndexAllocMap) + runtime.KeepAlive(cmodeAllocMap) + runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDisplayPlaneSurface function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateDisplayPlaneSurfaceKHR func CreateDisplayPlaneSurface(instance Instance, pCreateInfo *DisplaySurfaceCreateInfo, pAllocator *AllocationCallbacks, pSurface *Surface) Result { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSurface, _ := (*C.VkSurfaceKHR)(unsafe.Pointer(pSurface)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSurface, cpSurfaceAllocMap := (*C.VkSurfaceKHR)(unsafe.Pointer(pSurface)), cgoAllocsUnknown __ret := C.callVkCreateDisplayPlaneSurfaceKHR(cinstance, cpCreateInfo, cpAllocator, cpSurface) + runtime.KeepAlive(cpSurfaceAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // CreateSharedSwapchains function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateSharedSwapchainsKHR func CreateSharedSwapchains(device Device, swapchainCount uint32, pCreateInfos []SwapchainCreateInfo, pAllocator *AllocationCallbacks, pSwapchains *Swapchain) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchainCount, _ := (C.uint32_t)(swapchainCount), cgoAllocsUnknown - cpCreateInfos, _ := unpackArgSSwapchainCreateInfo(pCreateInfos) - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSwapchains, _ := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchains)), cgoAllocsUnknown + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchainCount, cswapchainCountAllocMap := (C.uint32_t)(swapchainCount), cgoAllocsUnknown + cpCreateInfos, cpCreateInfosAllocMap := unpackArgSSwapchainCreateInfo(pCreateInfos) + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSwapchains, cpSwapchainsAllocMap := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchains)), cgoAllocsUnknown __ret := C.callVkCreateSharedSwapchainsKHR(cdevice, cswapchainCount, cpCreateInfos, cpAllocator, cpSwapchains) + runtime.KeepAlive(cpSwapchainsAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) packSSwapchainCreateInfo(pCreateInfos, cpCreateInfos) + runtime.KeepAlive(cpCreateInfosAllocMap) + runtime.KeepAlive(cswapchainCountAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDebugReportCallback function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDebugReportCallbackEXT.html func CreateDebugReportCallback(instance Instance, pCreateInfo *DebugReportCallbackCreateInfo, pAllocator *AllocationCallbacks, pCallback *DebugReportCallback) Result { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpCreateInfo, _ := pCreateInfo.PassRef() - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpCallback, _ := (*C.VkDebugReportCallbackEXT)(unsafe.Pointer(pCallback)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpCallback, cpCallbackAllocMap := (*C.VkDebugReportCallbackEXT)(unsafe.Pointer(pCallback)), cgoAllocsUnknown __ret := C.callVkCreateDebugReportCallbackEXT(cinstance, cpCreateInfo, cpAllocator, cpCallback) + runtime.KeepAlive(cpCallbackAllocMap) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(cpCreateInfoAllocMap) + runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // DestroyDebugReportCallback function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDebugReportCallbackEXT.html func DestroyDebugReportCallback(instance Instance, callback DebugReportCallback, pAllocator *AllocationCallbacks) { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - ccallback, _ := *(*C.VkDebugReportCallbackEXT)(unsafe.Pointer(&callback)), cgoAllocsUnknown - cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + ccallback, ccallbackAllocMap := *(*C.VkDebugReportCallbackEXT)(unsafe.Pointer(&callback)), cgoAllocsUnknown + cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDebugReportCallbackEXT(cinstance, ccallback, cpAllocator) + runtime.KeepAlive(cpAllocatorAllocMap) + runtime.KeepAlive(ccallbackAllocMap) + runtime.KeepAlive(cinstanceAllocMap) } // 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) { - cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cflags, _ := (C.VkDebugReportFlagsEXT)(flags), cgoAllocsUnknown - cobjectType, _ := (C.VkDebugReportObjectTypeEXT)(objectType), cgoAllocsUnknown - cobject, _ := (C.uint64_t)(object), cgoAllocsUnknown - clocation, _ := (C.size_t)(location), cgoAllocsUnknown - cmessageCode, _ := (C.int32_t)(messageCode), cgoAllocsUnknown - cpLayerPrefix, _ := unpackPCharString(pLayerPrefix) - cpMessage, _ := unpackPCharString(pMessage) +func DebugReportMessage(instance Instance, flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint32, messageCode int32, pLayerPrefix string, pMessage string) { + cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cflags, cflagsAllocMap := (C.VkDebugReportFlagsEXT)(flags), cgoAllocsUnknown + cobjectType, cobjectTypeAllocMap := (C.VkDebugReportObjectTypeEXT)(objectType), cgoAllocsUnknown + cobject, cobjectAllocMap := (C.uint64_t)(object), cgoAllocsUnknown + clocation, clocationAllocMap := (C.size_t)(location), cgoAllocsUnknown + cmessageCode, cmessageCodeAllocMap := (C.int32_t)(messageCode), cgoAllocsUnknown + cpLayerPrefix, cpLayerPrefixAllocMap := unpackPCharString(pLayerPrefix) + cpMessage, cpMessageAllocMap := unpackPCharString(pMessage) C.callVkDebugReportMessageEXT(cinstance, cflags, cobjectType, cobject, clocation, cmessageCode, cpLayerPrefix, cpMessage) + runtime.KeepAlive(cpMessageAllocMap) + runtime.KeepAlive(cpLayerPrefixAllocMap) + runtime.KeepAlive(cmessageCodeAllocMap) + runtime.KeepAlive(clocationAllocMap) + runtime.KeepAlive(cobjectAllocMap) + runtime.KeepAlive(cobjectTypeAllocMap) + runtime.KeepAlive(cflagsAllocMap) + runtime.KeepAlive(cinstanceAllocMap) } // GetRefreshCycleDurationGOOGLE function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetRefreshCycleDurationGOOGLE.html func GetRefreshCycleDurationGOOGLE(device Device, swapchain Swapchain, pDisplayTimingProperties *RefreshCycleDurationGOOGLE) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpDisplayTimingProperties, _ := pDisplayTimingProperties.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpDisplayTimingProperties, cpDisplayTimingPropertiesAllocMap := pDisplayTimingProperties.PassRef() __ret := C.callVkGetRefreshCycleDurationGOOGLE(cdevice, cswapchain, cpDisplayTimingProperties) + runtime.KeepAlive(cpDisplayTimingPropertiesAllocMap) + runtime.KeepAlive(cswapchainAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetPastPresentationTimingGOOGLE function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPastPresentationTimingGOOGLE.html func GetPastPresentationTimingGOOGLE(device Device, swapchain Swapchain, pPresentationTimingCount *uint32, pPresentationTimings *PastPresentationTimingGOOGLE) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpPresentationTimingCount, _ := (*C.uint32_t)(unsafe.Pointer(pPresentationTimingCount)), cgoAllocsUnknown - cpPresentationTimings, _ := pPresentationTimings.PassRef() + cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpPresentationTimingCount, cpPresentationTimingCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPresentationTimingCount)), cgoAllocsUnknown + cpPresentationTimings, cpPresentationTimingsAllocMap := pPresentationTimings.PassRef() __ret := C.callVkGetPastPresentationTimingGOOGLE(cdevice, cswapchain, cpPresentationTimingCount, cpPresentationTimings) + runtime.KeepAlive(cpPresentationTimingsAllocMap) + runtime.KeepAlive(cpPresentationTimingCountAllocMap) + runtime.KeepAlive(cswapchainAllocMap) + runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } diff --git a/vulkan.yml b/vulkan.yml index 927d964..4f16efe 100644 --- a/vulkan.yml +++ b/vulkan.yml @@ -12,9 +12,9 @@ GENERATOR: "-I.", "-DVK_NO_PROTOTYPES", ]} - + PARSER: - IncludePaths: [/usr/include] + IncludePaths: [/usr/local/include, /usr/local/stdinclude] # IncludePaths: [windows/, /usr/include] SourcesPaths: - vulkan/vulkan.h @@ -38,6 +38,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 +58,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..756fe28 --- /dev/null +++ b/vulkan/vk_enum_string_helper.h @@ -0,0 +1,9789 @@ +// *** THIS FILE IS GENERATED - DO NOT EDIT *** +// See helper_file_generator.py for modifications + + +/*************************************************************************** + * + * Copyright (c) 2015-2022 The Khronos Group Inc. + * Copyright (c) 2015-2022 Valve Corporation + * Copyright (c) 2015-2022 LunarG, Inc. + * Copyright (c) 2015-2022 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_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_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_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_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_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_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_BLIT_IMAGE_INFO_2: + return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"; + 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_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_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_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_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_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_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_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_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_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_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_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_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_VALVE: + return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE"; + 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_ASTC_DECODE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_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_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_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_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_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_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_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_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"; + 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_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_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_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_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_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"; + 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_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_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_VALVE: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"; + 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_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_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_ARM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"; + 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_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_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_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_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_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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + 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_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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + 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_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_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_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_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_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_SHADING_PIPELINE_CREATE_INFO_HUAWEI: + return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"; + 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_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_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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_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_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_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_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_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_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_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_END_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + 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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_OBJECT_TYPE_VIDEO_SESSION_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkObjectType"; + } +} + +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_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_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_IMG: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUEUE_VIDEO_DECODE_BIT_KHR: + return "VK_QUEUE_VIDEO_DECODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_NV: + return "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"; + 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_NV: + return "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"; + 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_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_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_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR: + return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_RESULT_WITH_STATUS_BIT_KHR: + return "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + 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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_DEFER_COMPILE_BIT_NV: + return "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"; + case VK_PIPELINE_CREATE_DERIVATIVE_BIT: + return "VK_PIPELINE_CREATE_DERIVATIVE_BIT"; + 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_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_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_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_NV: + return "VK_SHADER_STAGE_MESH_BIT_NV"; + 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_NV: + return "VK_SHADER_STAGE_TASK_BIT_NV"; + 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) +{ + 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_BLEND_CONSTANTS: + return "VK_DYNAMIC_STATE_BLEND_CONSTANTS"; + case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT"; + 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_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_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_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_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_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_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_SAMPLE_LOCATIONS_EXT: + return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_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_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_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_WITH_COUNT: + return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT"; + 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_ARM: + return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"; + case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: + return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"; + 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_ARM: + return "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"; + 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_IMG: + return "VK_FILTER_CUBIC_IMG"; + 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_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_VALVE: + return "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"; + 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_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_VALVE: + return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE"; + 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_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_HOST_ONLY_POOL_BIT_VALVE: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"; + 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_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_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_ARM: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"; + case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"; + case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"; + 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_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_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + 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_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_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_NV: + return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_2_NONE: + return "VK_PIPELINE_STAGE_2_NONE"; + 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_NV: + return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_NONE: + return "VK_ACCESS_2_NONE"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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 + 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_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; +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOperationFlagBitsKHR input_value) +{ + switch (input_value) + { +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_INVALID_BIT_KHR: + return "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +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_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoSessionCreateFlagBitsKHR(VkVideoSessionCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_SESSION_CREATE_DEFAULT_KHR: + return "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"; + 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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodingControlFlagBitsKHR(VkVideoCodingControlFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CODING_CONTROL_DEFAULT_KHR: + return "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"; + 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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodingQualityPresetFlagBitsKHR(VkVideoCodingQualityPresetFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"; + case VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"; + case VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"; + default: + return "Unhandled VkVideoCodingQualityPresetFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodingQualityPresetFlagsKHR(VkVideoCodingQualityPresetFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +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"; + } +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoDecodeCapabilityFlagBitsKHR(VkVideoDecodeCapabilityFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR: + return "VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR"; + 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; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoDecodeFlagBitsKHR(VkVideoDecodeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_DEFAULT_KHR: + return "VK_VIDEO_DECODE_DEFAULT_KHR"; + case VK_VIDEO_DECODE_RESERVED_0_BIT_KHR: + return "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"; + default: + return "Unhandled VkVideoDecodeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoDecodeFlagsKHR(VkVideoDecodeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +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_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_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_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + 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_VkVideoEncodeFlagBitsKHR(VkVideoEncodeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR: + return "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeFlagsKHR(VkVideoEncodeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeCapabilityFlagBitsKHR(VkVideoEncodeCapabilityFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"; + 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_VkVideoEncodeRateControlFlagBitsKHR(VkVideoEncodeRateControlFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeRateControlFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeRateControlFlagsKHR(VkVideoEncodeRateControlFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeRateControlFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeRateControlFlagBitsKHR(static_cast(0))); + return ret; +} +#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_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_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_NV: + return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_2_NONE: + return "VK_PIPELINE_STAGE_2_NONE"; + 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_NV: + return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_NONE: + return "VK_ACCESS_2_NONE"; + 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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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_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_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"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#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 + 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_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_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_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_VkVideoEncodeH264RateControlStructureFlagBitsEXT(VkVideoEncodeH264RateControlStructureFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"; + default: + return "Unhandled VkVideoEncodeH264RateControlStructureFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264RateControlStructureFlagsEXT(VkVideoEncodeH264RateControlStructureFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264RateControlStructureFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264RateControlStructureFlagBitsEXT(static_cast(0))); + return ret; +} +#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_VkVideoEncodeH265RateControlStructureFlagBitsEXT(VkVideoEncodeH265RateControlStructureFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"; + default: + return "Unhandled VkVideoEncodeH265RateControlStructureFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265RateControlStructureFlagsEXT(VkVideoEncodeH265RateControlStructureFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265RateControlStructureFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265RateControlStructureFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(VkVideoDecodeH264PictureLayoutFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"; + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"; + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"; + default: + return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoDecodeH264PictureLayoutFlagsEXT(VkVideoDecodeH264PictureLayoutFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast(0))); + return ret; +} +#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_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_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_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + 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_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + 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_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_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_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_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"; + 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; +} + +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"; + } +} + + +#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_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_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_VkAccelerationStructureCreateFlagBitsKHR(VkAccelerationStructureCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + 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_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_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: + return true; + default: + return false; + } +} diff --git a/vulkan/vk_icd.h b/vulkan/vk_icd.h new file mode 100644 index 0000000..41989ee --- /dev/null +++ b/vulkan/vk_icd.h @@ -0,0 +1,245 @@ +// +// File: vk_icd.h +// +/* + * Copyright (c) 2015-2016 The Khronos Group Inc. + * Copyright (c) 2015-2016 Valve Corporation + * Copyright (c) 2015-2016 LunarG, 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. + * + */ + +#ifndef VKICD_H +#define VKICD_H + +#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. +#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6 +#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, +} 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 + +#endif // VKICD_H diff --git a/vulkan/vk_layer.h b/vulkan/vk_layer.h new file mode 100644 index 0000000..0651870 --- /dev/null +++ b/vulkan/vk_layer.h @@ -0,0 +1,210 @@ +// +// File: vk_layer.h +// +/* + * Copyright (c) 2015-2017 The Khronos Group Inc. + * Copyright (c) 2015-2017 Valve Corporation + * Copyright (c) 2015-2017 LunarG, 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. + * + */ + +/* 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 + */ +#pragma once + +#include "vulkan.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..96d8676 --- /dev/null +++ b/vulkan/vk_sdk_platform.h @@ -0,0 +1,69 @@ +// +// File: vk_sdk_platform.h +// +/* + * Copyright (c) 2015-2016 The Khronos Group Inc. + * Copyright (c) 2015-2016 Valve Corporation + * Copyright (c) 2015-2016 LunarG, 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. + */ + +#ifndef VK_SDK_PLATFORM_H +#define VK_SDK_PLATFORM_H + +#if defined(_WIN32) +#define NOMINMAX +#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 + +#endif // VK_SDK_PLATFORM_H diff --git a/vulkan/vulkan.h b/vulkan/vulkan.h index cf9d85a..004fa70 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,13 +28,10 @@ #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 @@ -74,10 +61,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..3d25baa --- /dev/null +++ b/vulkan/vulkan_beta.h @@ -0,0 +1,988 @@ +#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_video_queue 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) +#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 3 +#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_INVALID_BIT_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 +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002, +#endif + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodecOperationFlagBitsKHR; +typedef VkFlags VkVideoCodecOperationFlagsKHR; + +typedef enum VkVideoChromaSubsamplingFlagBitsKHR { + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_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_DEFAULT_KHR = 0, + 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 VkVideoBeginCodingFlagsKHR; +typedef VkFlags VkVideoEndCodingFlagsKHR; + +typedef enum VkVideoCodingControlFlagBitsKHR { + VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0, + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingControlFlagBitsKHR; +typedef VkFlags VkVideoCodingControlFlagsKHR; + +typedef enum VkVideoCodingQualityPresetFlagBitsKHR { + VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001, + VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002, + VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004, + VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingQualityPresetFlagBitsKHR; +typedef VkFlags VkVideoCodingQualityPresetFlagsKHR; +typedef struct VkQueueFamilyQueryResultStatusProperties2KHR { + VkStructureType sType; + void* pNext; + VkBool32 supported; +} VkQueueFamilyQueryResultStatusProperties2KHR; + +typedef struct VkVideoQueueFamilyProperties2KHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagsKHR videoCodecOperations; +} VkVideoQueueFamilyProperties2KHR; + +typedef struct VkVideoProfileKHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagBitsKHR videoCodecOperation; + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; + VkVideoComponentBitDepthFlagsKHR lumaBitDepth; + VkVideoComponentBitDepthFlagsKHR chromaBitDepth; +} VkVideoProfileKHR; + +typedef struct VkVideoProfilesKHR { + VkStructureType sType; + void* pNext; + uint32_t profileCount; + const VkVideoProfileKHR* pProfiles; +} VkVideoProfilesKHR; + +typedef struct VkVideoCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCapabilityFlagsKHR capabilityFlags; + VkDeviceSize minBitstreamBufferOffsetAlignment; + VkDeviceSize minBitstreamBufferSizeAlignment; + VkExtent2D videoPictureExtentGranularity; + VkExtent2D minExtent; + VkExtent2D maxExtent; + uint32_t maxReferencePicturesSlotsCount; + uint32_t maxReferencePicturesActiveCount; + VkExtensionProperties stdHeaderVersion; +} VkVideoCapabilitiesKHR; + +typedef struct VkPhysicalDeviceVideoFormatInfoKHR { + VkStructureType sType; + void* pNext; + VkImageUsageFlags imageUsage; + const VkVideoProfilesKHR* pVideoProfiles; +} VkPhysicalDeviceVideoFormatInfoKHR; + +typedef struct VkVideoFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + VkFormat format; +} VkVideoFormatPropertiesKHR; + +typedef struct VkVideoPictureResourceKHR { + VkStructureType sType; + const void* pNext; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + uint32_t baseArrayLayer; + VkImageView imageViewBinding; +} VkVideoPictureResourceKHR; + +typedef struct VkVideoReferenceSlotKHR { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const VkVideoPictureResourceKHR* pPictureResource; +} VkVideoReferenceSlotKHR; + +typedef struct VkVideoGetMemoryPropertiesKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkMemoryRequirements2* pMemoryRequirements; +} VkVideoGetMemoryPropertiesKHR; + +typedef struct VkVideoBindMemoryKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkDeviceSize memorySize; +} VkVideoBindMemoryKHR; + +typedef struct VkVideoSessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + VkVideoSessionCreateFlagsKHR flags; + const VkVideoProfileKHR* pVideoProfile; + VkFormat pictureFormat; + VkExtent2D maxCodedExtent; + VkFormat referencePicturesFormat; + uint32_t maxReferencePicturesSlotsCount; + uint32_t maxReferencePicturesActiveCount; + const VkExtensionProperties* pStdHeaderVersion; +} VkVideoSessionCreateInfoKHR; + +typedef struct VkVideoSessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + 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; + VkVideoCodingQualityPresetFlagsKHR codecQualityPreset; + VkVideoSessionKHR videoSession; + VkVideoSessionParametersKHR videoSessionParameters; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* 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 VkVideoProfileKHR* 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* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories); +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 VkVideoProfileKHR* 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* pVideoSessionMemoryRequirementsCount, + VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VkVideoBindMemoryKHR* pVideoSessionBindMemories); + +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 4 +#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" + +typedef enum VkVideoDecodeCapabilityFlagBitsKHR { + VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR = 0, + 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 VkVideoDecodeFlagBitsKHR { + VK_VIDEO_DECODE_DEFAULT_KHR = 0, + VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeFlagBitsKHR; +typedef VkFlags VkVideoDecodeFlagsKHR; +typedef struct VkVideoDecodeCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoDecodeCapabilityFlagsKHR flags; +} VkVideoDecodeCapabilitiesKHR; + +typedef struct VkVideoDecodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeFlagsKHR flags; + VkBuffer srcBuffer; + VkDeviceSize srcBufferOffset; + VkDeviceSize srcBufferRange; + VkVideoPictureResourceKHR dstPictureResource; + const VkVideoReferenceSlotKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* pReferenceSlots; +} VkVideoDecodeInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR* pFrameInfo); +#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; + + + +#define VK_KHR_video_encode_queue 1 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 5 +#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" + +typedef enum VkVideoEncodeFlagBitsKHR { + VK_VIDEO_ENCODE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeFlagBitsKHR; +typedef VkFlags VkVideoEncodeFlagsKHR; + +typedef enum VkVideoEncodeCapabilityFlagBitsKHR { + VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR = 0, + 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 VkVideoEncodeRateControlFlagBitsKHR { + VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeRateControlFlagBitsKHR; +typedef VkFlags VkVideoEncodeRateControlFlagsKHR; +typedef struct VkVideoEncodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeFlagsKHR flags; + uint32_t qualityLevel; + VkBuffer dstBitstreamBuffer; + VkDeviceSize dstBitstreamBufferOffset; + VkDeviceSize dstBitstreamBufferMaxRange; + VkVideoPictureResourceKHR srcPictureResource; + const VkVideoReferenceSlotKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* 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 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 6 +#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" + +typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000008, + VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000010, + VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020, + VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040, + VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000080, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000100, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000200, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000400, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00000800, + VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00001000, + VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00002000, + VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00004000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00008000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00010000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00020000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00040000, + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00080000, + VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00100000, + VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00200000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00400000, + 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 enum VkVideoEncodeH264RateControlStructureFlagBitsEXT { + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264RateControlStructureFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT; +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 spsStdCount; + const StdVideoH264SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH264PictureParameterSet* pPpsStd; +} VkVideoEncodeH264SessionParametersAddInfoEXT; + +typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoEncodeH264SessionParametersCreateInfoEXT; + +typedef struct VkVideoEncodeH264DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH264DpbSlotInfoEXT; + +typedef struct VkVideoEncodeH264ReferenceListsEXT { + VkStructureType sType; + const void* pNext; + uint8_t referenceList0EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries; + uint8_t referenceList1EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries; + const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations; +} VkVideoEncodeH264ReferenceListsEXT; + +typedef struct VkVideoEncodeH264NaluSliceEXT { + VkStructureType sType; + const void* pNext; + uint32_t mbCount; + const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; + const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; +} VkVideoEncodeH264NaluSliceEXT; + +typedef struct VkVideoEncodeH264VclFrameInfoEXT { + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries; + const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; +} VkVideoEncodeH264VclFrameInfoEXT; + +typedef struct VkVideoEncodeH264EmitPictureParametersEXT { + VkStructureType sType; + const void* pNext; + uint8_t spsId; + VkBool32 emitSpsEnable; + uint32_t ppsIdEntryCount; + const uint8_t* ppsIdEntries; +} VkVideoEncodeH264EmitPictureParametersEXT; + +typedef struct VkVideoEncodeH264ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; +} VkVideoEncodeH264ProfileEXT; + +typedef struct VkVideoEncodeH264RateControlInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH264RateControlStructureFlagBitsEXT 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 7 +#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265" + +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 enum VkVideoEncodeH265RateControlStructureFlagBitsEXT { + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265RateControlStructureFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT; +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 vpsStdCount; + const StdVideoH265VideoParameterSet* pVpsStd; + uint32_t spsStdCount; + const StdVideoH265SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH265PictureParameterSet* pPpsStd; +} VkVideoEncodeH265SessionParametersAddInfoEXT; + +typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxVpsStdCount; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoEncodeH265SessionParametersCreateInfoEXT; + +typedef struct VkVideoEncodeH265DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH265DpbSlotInfoEXT; + +typedef struct VkVideoEncodeH265ReferenceListsEXT { + VkStructureType sType; + const void* pNext; + uint8_t referenceList0EntryCount; + const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries; + uint8_t referenceList1EntryCount; + const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries; + const StdVideoEncodeH265ReferenceModifications* pReferenceModifications; +} VkVideoEncodeH265ReferenceListsEXT; + +typedef struct VkVideoEncodeH265NaluSliceSegmentEXT { + VkStructureType sType; + const void* pNext; + uint32_t ctbCount; + const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; + const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd; +} VkVideoEncodeH265NaluSliceSegmentEXT; + +typedef struct VkVideoEncodeH265VclFrameInfoEXT { + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; + uint32_t naluSliceSegmentEntryCount; + const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries; + const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; +} VkVideoEncodeH265VclFrameInfoEXT; + +typedef struct VkVideoEncodeH265EmitPictureParametersEXT { + VkStructureType sType; + const void* pNext; + uint8_t vpsId; + uint8_t spsId; + VkBool32 emitVpsEnable; + VkBool32 emitSpsEnable; + uint32_t ppsIdEntryCount; + const uint8_t* ppsIdEntries; +} VkVideoEncodeH265EmitPictureParametersEXT; + +typedef struct VkVideoEncodeH265ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoEncodeH265ProfileEXT; + +typedef struct VkVideoEncodeH265RateControlInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH265RateControlStructureFlagBitsEXT 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; + + + +#define VK_EXT_video_decode_h264 1 +#include "vk_video/vulkan_video_codec_h264std_decode.h" +#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 5 +#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264" + +typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT { + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoDecodeH264PictureLayoutFlagBitsEXT; +typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; +typedef struct VkVideoDecodeH264ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; + VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout; +} VkVideoDecodeH264ProfileEXT; + +typedef struct VkVideoDecodeH264CapabilitiesEXT { + VkStructureType sType; + void* pNext; + StdVideoH264Level maxLevel; + VkOffset2D fieldOffsetGranularity; +} VkVideoDecodeH264CapabilitiesEXT; + +typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t spsStdCount; + const StdVideoH264SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH264PictureParameterSet* pPpsStd; +} VkVideoDecodeH264SessionParametersAddInfoEXT; + +typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoDecodeH264SessionParametersCreateInfoEXT; + +typedef struct VkVideoDecodeH264PictureInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264PictureInfo* pStdPictureInfo; + uint32_t slicesCount; + const uint32_t* pSlicesDataOffsets; +} VkVideoDecodeH264PictureInfoEXT; + +typedef struct VkVideoDecodeH264MvcEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264Mvc* pStdMvc; +} VkVideoDecodeH264MvcEXT; + +typedef struct VkVideoDecodeH264DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH264DpbSlotInfoEXT; + + + +#define VK_EXT_video_decode_h265 1 +#include "vk_video/vulkan_video_codec_h265std_decode.h" +#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 3 +#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265" +typedef struct VkVideoDecodeH265ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoDecodeH265ProfileEXT; + +typedef struct VkVideoDecodeH265CapabilitiesEXT { + VkStructureType sType; + void* pNext; + StdVideoH265Level maxLevel; +} VkVideoDecodeH265CapabilitiesEXT; + +typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t vpsStdCount; + const StdVideoH265VideoParameterSet* pVpsStd; + uint32_t spsStdCount; + const StdVideoH265SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH265PictureParameterSet* pPpsStd; +} VkVideoDecodeH265SessionParametersAddInfoEXT; + +typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxVpsStdCount; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoDecodeH265SessionParametersCreateInfoEXT; + +typedef struct VkVideoDecodeH265PictureInfoEXT { + VkStructureType sType; + const void* pNext; + StdVideoDecodeH265PictureInfo* pStdPictureInfo; + uint32_t slicesCount; + const uint32_t* pSlicesDataOffsets; +} VkVideoDecodeH265PictureInfoEXT; + +typedef struct VkVideoDecodeH265DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH265DpbSlotInfoEXT; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_core.h b/vulkan/vulkan_core.h index a7780a0..1de68f8 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 211 +// 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_UUID_SIZE 16U #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_MEMORY_HEAPS 16U +#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U +#define VK_MAX_EXTENSION_NAME_SIZE 256U +#define VK_MAX_DESCRIPTION_SIZE 256U 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, @@ -148,13 +169,20 @@ typedef enum VkResult { VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, VK_ERROR_INVALID_SHADER_NV = -1000012000, 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_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 +272,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 +300,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 +417,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 +424,167 @@ 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR = 1000023016, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001, +#endif 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_EXT = 1000038005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_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_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_EXT = 1000039005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_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 +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006, +#endif 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, @@ -331,12 +614,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 +627,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,65 +664,106 @@ 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005, +#endif + 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, @@ -453,10 +773,184 @@ typedef enum VkStructureType { 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_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_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 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, + VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + 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_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_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_4444_FORMATS_FEATURES_EXT = 1000340000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000, + VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, + VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, + VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_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_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_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_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_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_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000, + 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 +970,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 +984,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 +1007,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 +1031,223 @@ 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_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_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3, + 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 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, +#endif + 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_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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, +#endif + 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_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 VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + +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 +1471,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 +1499,20 @@ 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_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 +1547,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 +1583,38 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, +#endif 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_PRIMITIVES_GENERATED_EXT = 1000382000, 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,126 +1624,9 @@ 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, @@ -1035,9 +1647,6 @@ typedef enum VkBlendFactor { 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; @@ -1093,12 +1702,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 +1727,154 @@ 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_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 = VK_FILTER_CUBIC_IMG, 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 +1888,11 @@ 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_MUTABLE_VALVE = 1000351000, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; @@ -1189,116 +1900,108 @@ 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 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 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 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, @@ -1323,10 +2026,26 @@ 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_MINMAX_BIT = 0x00010000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, +#endif + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, + 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_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, @@ -1334,24 +2053,11 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } 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 +2073,9 @@ 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_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 +2098,54 @@ 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, +#endif + 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_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, + 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 +2154,28 @@ 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, +#endif + VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueueFlagBits; +typedef VkFlags VkQueueFlags; typedef VkFlags VkDeviceCreateFlags; typedef enum VkDeviceQueueCreateFlagBits { @@ -1443,36 +2202,30 @@ 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_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, + 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_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_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 +2235,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, @@ -1512,12 +2264,16 @@ typedef enum VkQueryPipelineStatisticFlagBits { 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, +#endif VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryResultFlagBits; typedef VkFlags VkQueryResultFlags; @@ -1527,6 +2283,9 @@ 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_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 +2300,100 @@ 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, +#endif 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_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_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_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_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 +2405,23 @@ 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_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_NV = 0x00000040, VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, + 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_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 +2431,59 @@ 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_ARM = 0x00000001, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000002, + 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_ARM = 0x00000001, + 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_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_VALVE = 0x00000004, + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, 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_HOST_ONLY_POOL_BIT_VALVE = 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_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorSetLayoutCreateFlagBits; +typedef VkFlags VkDescriptorSetLayoutCreateFlags; typedef enum VkAttachmentDescriptionFlagBits { VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, @@ -1640,45 +2491,6 @@ 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, @@ -1689,6 +2501,31 @@ typedef enum VkDependencyFlagBits { } 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_ARM = 0x00000010, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000020, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000040, + 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 +2563,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 { - VkStructureType sType; - const void* pNext; - const char* pApplicationName; - uint32_t applicationVersion; - const char* pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; - -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 VkExtent3D { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkExtent3D; -typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); +typedef struct VkOffset2D { + int32_t x; + int32_t y; +} VkOffset2D; -typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( +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; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier; + +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 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 +2696,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 +2713,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 +2816,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 +2925,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 +2959,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 +3005,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 +3013,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 +3052,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,6 +3082,20 @@ typedef struct VkBindSparseInfo { const VkSemaphore* pSignalSemaphores; } VkBindSparseInfo; +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 VkFenceCreateInfo { VkStructureType sType; const void* pNext; @@ -2246,14 +3177,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,13 +3227,23 @@ typedef struct VkPipelineShaderStageCreateInfo { const VkSpecializationInfo* pSpecializationInfo; } VkPipelineShaderStageCreateInfo; -typedef struct VkVertexInputBindingDescription { - uint32_t binding; - uint32_t stride; - VkVertexInputRate inputRate; -} VkVertexInputBindingDescription; - -typedef struct VkVertexInputAttributeDescription { +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; + VkVertexInputRate inputRate; +} VkVertexInputBindingDescription; + +typedef struct VkVertexInputAttributeDescription { uint32_t location; uint32_t binding; VkFormat format; @@ -2351,21 +3284,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 +3399,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 +3436,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 +3482,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 +3511,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 +3528,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 +3621,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 +3658,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 +3681,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 +3691,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 +4628,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 +4652,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 +4666,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 +4674,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 +4682,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 +4689,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 +4721,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 +4744,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 +4810,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 +4829,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 +4971,6 @@ typedef struct VkMemoryRequirements2 { VkMemoryRequirements memoryRequirements; } VkMemoryRequirements2; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - typedef struct VkSparseImageMemoryRequirements2 { VkStructureType sType; void* pNext; @@ -4268,12 +5096,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 +5185,7 @@ typedef struct VkDescriptorUpdateTemplateEntry { typedef struct VkDescriptorUpdateTemplateCreateInfo { VkStructureType sType; - void* pNext; + const void* pNext; VkDescriptorUpdateTemplateCreateFlags flags; uint32_t descriptorUpdateEntryCount; const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; @@ -4479,12 +5309,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,21 +5493,1812 @@ 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" - -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, +#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_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 struct VkConformanceVersion { + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersion; + +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 struct VkAttachmentReference2 { + VkStructureType sType; + const void* pNext; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2; + +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 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 VkSubpassEndInfo { + VkStructureType sType; + const void* pNext; +} VkSubpassEndInfo; + +typedef struct VkPhysicalDevice8BitStorageFeatures { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeatures; + +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; + +typedef struct VkPhysicalDeviceShaderAtomicInt64Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64Features; + +typedef struct VkPhysicalDeviceShaderFloat16Int8Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; +} VkPhysicalDeviceShaderFloat16Int8Features; + +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; + +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; + +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; + +typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { + VkStructureType sType; + const void* pNext; + uint32_t descriptorSetCount; + const uint32_t* pDescriptorCounts; +} VkDescriptorSetVariableDescriptorCountAllocateInfo; + +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 struct VkPhysicalDeviceDepthStencilResolveProperties { + VkStructureType sType; + void* pNext; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolveProperties; + +typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { + VkStructureType sType; + void* pNext; + VkBool32 scalarBlockLayout; +} VkPhysicalDeviceScalarBlockLayoutFeatures; + +typedef struct VkImageStencilUsageCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags stencilUsage; +} VkImageStencilUsageCreateInfo; + +typedef struct VkSamplerReductionModeCreateInfo { + VkStructureType sType; + const void* pNext; + VkSamplerReductionMode reductionMode; +} VkSamplerReductionModeCreateInfo; + +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; + VkSemaphoreType semaphoreType; + uint64_t initialValue; +} VkSemaphoreTypeCreateInfo; + +typedef struct VkTimelineSemaphoreSubmitInfo { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreValueCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValueCount; + const uint64_t* pSignalSemaphoreValues; +} VkTimelineSemaphoreSubmitInfo; + +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; + VkSemaphore semaphore; + uint64_t value; +} VkSemaphoreSignalInfo; + +typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeatures; + +typedef struct VkBufferDeviceAddressInfo { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferDeviceAddressInfo; + +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 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 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 VkRenderPassCreateInfo2* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfo* pSubpassBeginInfo); + +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, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue( + VkDevice device, + VkSemaphore semaphore, + uint64_t* pValue); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores( + VkDevice device, + const VkSemaphoreWaitInfo* pWaitInfo, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore( + VkDevice device, + const VkSemaphoreSignalInfo* pSignalInfo); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( + VkDevice device, + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); +#endif + + +#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; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +#endif +#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_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL; + +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; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +#endif +#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_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL; + + +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_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; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; +#endif +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; + +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 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 VkPhysicalDevicePrivateDataFeatures { + VkStructureType sType; + void* pNext; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeatures; + +typedef struct VkDevicePrivateDataCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfo; + +typedef struct VkPrivateDataSlotCreateInfo { + VkStructureType sType; + const void* pNext; + VkPrivateDataSlotCreateFlags flags; +} VkPrivateDataSlotCreateInfo; + +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeatures; + +typedef struct VkMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; +} VkMemoryBarrier2; + +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 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 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 vkGetPhysicalDeviceToolProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); + +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, @@ -4685,4073 +7307,7126 @@ typedef enum VkColorSpaceKHR { 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_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_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF } VkColorSpaceKHR; -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 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_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_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 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 VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; -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 VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; -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 VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; -typedef struct VkSurfaceFormatKHR { - VkFormat format; - VkColorSpaceKHR colorSpace; -} VkSurfaceFormatKHR; +typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; +typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; -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 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 void VKAPI_CALL vkDestroySurfaceKHR( - VkInstance instance, - VkSurfaceKHR surface, +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 -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); +#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; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormatKHR* pSurfaceFormats); +typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( +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; + + + +#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, - VkSurfaceKHR surface, - uint32_t* pPresentModeCount, - VkPresentModeKHR* pPresentModes); + uint32_t* pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( + VkCommandBuffer commandBuffer, + const VkExtent2D* pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); #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" +#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 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 VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout); -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; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout); +#endif -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; +#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; -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; +#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 struct VkDeviceGroupPresentCapabilitiesKHR { - VkStructureType sType; - const void* pNext; - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupPresentCapabilitiesKHR; +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; -typedef struct VkDeviceGroupPresentInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const uint32_t* pDeviceMasks; - VkDeviceGroupPresentModeFlagBitsKHR mode; -} VkDeviceGroupPresentInfoKHR; +typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; -typedef struct VkDeviceGroupSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupSwapchainCreateInfoKHR; +typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; +typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; -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 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 VkResult VKAPI_CALL vkCreateSwapchainKHR( +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR( VkDevice device, - const VkSwapchainCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSwapchainKHR* pSwapchain); + const VkBufferDeviceAddressInfo* pInfo); -VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, - VkSwapchainKHR swapchain, - const VkAllocationCallbacks* pAllocator); + const VkBufferDeviceAddressInfo* pInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, - VkSwapchainKHR swapchain, - uint32_t* pSwapchainImageCount, - VkImage* pSwapchainImages); + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); +#endif -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); +#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); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( VkDevice device, - VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); + const VkAllocationCallbacks* pAllocator, + VkDeferredOperationKHR* pDeferredOperation); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( +VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( VkDevice device, - VkSurfaceKHR surface, - VkDeviceGroupPresentModeFlagsKHR* pModes); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pRectCount, - VkRect2D* pRects); + VkDeferredOperationKHR operation, + const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( +VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, - const VkAcquireNextImageInfoKHR* pAcquireInfo, - uint32_t* pImageIndex); -#endif + VkDeferredOperationKHR operation); -#define VK_KHR_display 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( + VkDevice device, + VkDeferredOperationKHR operation); -#define VK_KHR_DISPLAY_SPEC_VERSION 21 -#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" +VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( + VkDevice device, + VkDeferredOperationKHR operation); +#endif -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; +#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 struct VkDisplayPropertiesKHR { - VkDisplayKHR display; - const char* displayName; - VkExtent2D physicalDimensions; - VkExtent2D physicalResolution; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkBool32 planeReorderPossible; - VkBool32 persistentContent; -} VkDisplayPropertiesKHR; +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 VkDisplayModeParametersKHR { - VkExtent2D visibleRegion; - uint32_t refreshRate; -} VkDisplayModeParametersKHR; +typedef struct VkPipelineInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; +} VkPipelineInfoKHR; -typedef struct VkDisplayModePropertiesKHR { - VkDisplayModeKHR displayMode; - VkDisplayModeParametersKHR parameters; -} VkDisplayModePropertiesKHR; +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 VkDisplayModeCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeCreateFlagsKHR flags; - VkDisplayModeParametersKHR parameters; -} VkDisplayModeCreateInfoKHR; +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 VkDisplayPlaneCapabilitiesKHR { - VkDisplayPlaneAlphaFlagsKHR supportedAlpha; - VkOffset2D minSrcPosition; - VkOffset2D maxSrcPosition; - VkExtent2D minSrcExtent; - VkExtent2D maxSrcExtent; - VkOffset2D minDstPosition; - VkOffset2D maxDstPosition; - VkExtent2D minDstExtent; - VkExtent2D maxDstExtent; -} VkDisplayPlaneCapabilitiesKHR; +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 struct VkDisplayPlanePropertiesKHR { - VkDisplayKHR currentDisplay; - uint32_t currentStackIndex; -} VkDisplayPlanePropertiesKHR; +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); -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; +#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); -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); +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); +#endif -#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); +#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; -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( - VkPhysicalDevice physicalDevice, - uint32_t planeIndex, - uint32_t* pDisplayCount, - VkDisplayKHR* pDisplays); +typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; -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_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; -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" -typedef struct VkDisplayPresentInfoKHR { +#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; - VkRect2D srcRect; - VkRect2D dstRect; - VkBool32 persistent; -} VkDisplayPresentInfoKHR; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentIdKHR; +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; -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 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" +#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; -#define VK_KHR_multiview 1 -#define VK_KHR_MULTIVIEW_SPEC_VERSION 1 -#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" +typedef VkAccessFlags2 VkAccessFlags2KHR; -typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; +typedef VkAccessFlagBits2 VkAccessFlagBits2KHR; -typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; +typedef VkSubmitFlagBits VkSubmitFlagBitsKHR; -typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; +typedef VkSubmitFlags VkSubmitFlagsKHR; +typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; +typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; -#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 VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; -typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; +typedef VkDependencyInfo VkDependencyInfoKHR; -typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; +typedef VkSubmitInfo2 VkSubmitInfo2KHR; -typedef VkFormatProperties2 VkFormatProperties2KHR; +typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; -typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; +typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; -typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; +typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; -typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; +typedef struct VkQueueFamilyCheckpointProperties2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; -typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; +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); -typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); -typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; +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); -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 vkCmdPipelineBarrier2KHR( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures2* pFeatures); +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties2* pProperties); +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkFormatProperties2* pFormatProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, - VkImageFormatProperties2* pImageFormatProperties); +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointData2NV* pCheckpointData); +#endif -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pQueueFamilyPropertyCount, - VkQueueFamilyProperties2* pQueueFamilyProperties); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceMemoryProperties2* pMemoryProperties); +#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; -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 3 -#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" -typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; +#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; -typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; -typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; -typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; +#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; -typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; -typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; +#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 VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; +typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; -typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; +typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; -typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; +typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; -typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; +typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; -typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; +typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; +typedef VkBufferCopy2 VkBufferCopy2KHR; -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); +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 vkGetDeviceGroupPeerMemoryFeaturesKHR( - VkDevice device, - uint32_t heapIndex, - uint32_t localDeviceIndex, - uint32_t remoteDeviceIndex, - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, - uint32_t deviceMask); + const VkCopyImageInfo2* pCopyImageInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, - uint32_t baseGroupX, - uint32_t baseGroupY, - uint32_t baseGroupZ, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ); + 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_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_format_feature_flags2 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2" +typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; -#define VK_KHR_maintenance1 1 -#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 -#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" +typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR; -typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; +typedef VkFormatProperties3 VkFormatProperties3KHR; -typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); + +#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 vkTrimCommandPoolKHR( +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR( VkDevice device, - VkCommandPool commandPool, - VkCommandPoolTrimFlags flags); + 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_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; +#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 VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; +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_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); +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 vkEnumeratePhysicalDeviceGroupsKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( 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; + const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDebugReportCallbackEXT* pCallback); -typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; +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 -typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; -typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; +#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 VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; -typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; +#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 VkExternalBufferProperties VkExternalBufferPropertiesKHR; -typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; +#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" -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); +#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" -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, - VkExternalBufferProperties* pExternalBufferProperties); -#endif +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_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; +#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" -typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; +#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_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" +#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 VkImportMemoryFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - int fd; -} VkImportMemoryFdInfoKHR; +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 VkMemoryFdPropertiesKHR { +typedef struct VkDebugMarkerMarkerInfoEXT { VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryFdPropertiesKHR; - -typedef struct VkMemoryGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetFdInfoKHR; - + const void* pNext; + const char* pMarkerName; + float color[4]; +} VkDebugMarkerMarkerInfoEXT; -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); +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 vkGetMemoryFdKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( VkDevice device, - const VkMemoryGetFdInfoKHR* pGetFdInfo, - int* pFd); + const VkDebugMarkerObjectTagInfoEXT* pTagInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( 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; + const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( + VkCommandBuffer commandBuffer); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, - VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #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" +#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" -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; +#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 VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { + VkStructureType sType; + const void* pNext; + VkImage image; + VkBuffer buffer; +} VkDedicatedAllocationMemoryAllocateInfoNV; -#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" +#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 VkPhysicalDevicePushDescriptorPropertiesKHR { +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { VkStructureType sType; void* pNext; - uint32_t maxPushDescriptors; -} VkPhysicalDevicePushDescriptorPropertiesKHR; + 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_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); +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 vkCmdPushDescriptorSetKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipelineLayout layout, - uint32_t set, - uint32_t descriptorWriteCount, - const VkWriteDescriptorSet* pDescriptorWrites); + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes); -VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( 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" - -typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; - - - -#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" - -typedef struct VkRectLayerKHR { - VkOffset2D offset; - VkExtent2D extent; - uint32_t layer; -} VkRectLayerKHR; + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); -typedef struct VkPresentRegionKHR { - uint32_t rectangleCount; - const VkRectLayerKHR* pRectangles; -} VkPresentRegionKHR; +VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); -typedef struct VkPresentRegionsKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const VkPresentRegionKHR* pRegions; -} VkPresentRegionsKHR; +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_KHR_descriptor_update_template 1 -typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; +/* +#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; -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" +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); -typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; +#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); -typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; +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); -typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; +VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX( + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); +#endif +*/ -typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; +#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 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); +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 VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( VkDevice device, - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( - VkDevice device, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const VkAllocationCallbacks* pAllocator); + const VkImageViewHandleInfoNVX* pInfo); -VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX( VkDevice device, - VkDescriptorSet descriptorSet, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void* pData); + VkImageView imageView, + VkImageViewAddressPropertiesNVX* pProperties); #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" -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; +#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); -typedef struct VkAttachmentReference2KHR { - VkStructureType sType; - const void* pNext; - uint32_t attachment; - VkImageLayout layout; - VkImageAspectFlags aspectMask; -} VkAttachmentReference2KHR; +#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); -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; +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif -typedef struct VkRenderPassCreateInfo2KHR { - 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; -typedef struct VkSubpassEndInfoKHR { - VkStructureType sType; - const void* pNext; -} VkSubpassEndInfoKHR; +#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" -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); +#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" -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( - VkDevice device, - const VkRenderPassCreateInfo2KHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkRenderPass* pRenderPass); -VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( - VkCommandBuffer commandBuffer, - const VkRenderPassBeginInfo* pRenderPassBegin, - const VkSubpassBeginInfoKHR* pSubpassBeginInfo); +#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; -VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( - VkCommandBuffer commandBuffer, - const VkSubpassBeginInfoKHR* pSubpassBeginInfo, - const VkSubpassEndInfoKHR* pSubpassEndInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( - VkCommandBuffer commandBuffer, - const VkSubpassEndInfoKHR* 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" +#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 struct VkSharedPresentSurfaceCapabilitiesKHR { - VkStructureType sType; - void* pNext; - VkImageUsageFlags sharedPresentSupportedUsageFlags; -} VkSharedPresentSurfaceCapabilitiesKHR; +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_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); +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 vkGetSwapchainStatusKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( VkDevice device, - VkSwapchainKHR swapchain); + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t* pInfoSize, + void* pInfo); #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; +#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" -typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; -typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; +#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; -typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; -typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; +#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" -typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; +#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 void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); +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 void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, - VkExternalFenceProperties* pExternalFenceProperties); + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkExternalMemoryHandleTypeFlagsNV externalHandleType, + VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); #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 { +#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; - VkFence fence; - VkFenceImportFlags flags; - VkExternalFenceHandleTypeFlagBits handleType; - int fd; -} VkImportFenceFdInfoKHR; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExternalMemoryImageCreateInfoNV; -typedef struct VkFenceGetFdInfoKHR { +typedef struct VkExportMemoryAllocateInfoNV { VkStructureType sType; const void* pNext; - VkFence fence; - VkExternalFenceHandleTypeFlagBits handleType; -} VkFenceGetFdInfoKHR; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExportMemoryAllocateInfoNV; -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_EXT_validation_flags 1 +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2 +#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" -VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( - VkDevice device, - const VkFenceGetFdInfoKHR* pGetFdInfo, - int* pFd); -#endif +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_KHR_maintenance2 1 -#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" -typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; -typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; +#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" -typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; +#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" -typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; -typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; +#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; -typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; -typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; +#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_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; +#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 struct VkSurfaceFormat2KHR { - VkStructureType sType; - void* pNext; - VkSurfaceFormatKHR surfaceFormat; -} VkSurfaceFormat2KHR; +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 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 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 VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - VkSurfaceCapabilities2KHR* pSurfaceCapabilities); +VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormat2KHR* pSurfaceFormats); +VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( + VkCommandBuffer commandBuffer); #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_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_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_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); -typedef struct VkDisplayPlaneProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPlanePropertiesKHR displayPlaneProperties; -} VkDisplayPlaneProperties2KHR; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); +#endif -typedef struct VkDisplayModeProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayModePropertiesKHR displayModeProperties; -} VkDisplayModeProperties2KHR; -typedef struct VkDisplayPlaneInfo2KHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeKHR mode; - uint32_t planeIndex; -} VkDisplayPlaneInfo2KHR; +#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 struct VkDisplayPlaneCapabilities2KHR { +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; - VkDisplayPlaneCapabilitiesKHR capabilities; -} VkDisplayPlaneCapabilities2KHR; - + 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_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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayProperties2KHR* pProperties); + VkSurfaceKHR surface, + VkSurfaceCapabilities2EXT* pSurfaceCapabilities); +#endif -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); +#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" -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, - VkDisplayPlaneCapabilities2KHR* pCapabilities); -#endif +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; -#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 enum VkDeviceEventTypeEXT { + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceEventTypeEXT; -typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; +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 VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; +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; -#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" +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); -#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" +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_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" +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSurfaceCounterFlagBitsEXT counter, + uint64_t* pCounterValue); +#endif -typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; -typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; +#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 VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; +typedef struct VkPastPresentationTimingGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; + uint64_t actualPresentTime; + uint64_t earliestPresentTime; + uint64_t presentMargin; +} VkPastPresentationTimingGOOGLE; -typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; +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 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 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 void VKAPI_CALL vkGetImageMemoryRequirements2KHR( - VkDevice device, - const VkImageMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( VkDevice device, - const VkBufferMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); -VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( VkDevice device, - const VkImageSparseMemoryRequirementsInfo2* pInfo, - uint32_t* pSparseMemoryRequirementCount, - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + VkSwapchainKHR swapchain, + uint32_t* pPresentationTimingCount, + VkPastPresentationTimingGOOGLE* pPresentationTimings); #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 struct VkImageFormatListCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t viewFormatCount; - const VkFormat* pViewFormats; -} VkImageFormatListCreateInfoKHR; +#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_KHR_sampler_ycbcr_conversion 1 -typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; +#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_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_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; -typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; -typedef VkChromaLocation VkChromaLocationKHR; +#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 VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; +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 VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; +typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineViewportSwizzleStateCreateFlagsNV flags; + uint32_t viewportCount; + const VkViewportSwizzleNV* pViewportSwizzles; +} VkPipelineViewportSwizzleStateCreateInfoNV; -typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; -typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; -typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; +#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 VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; +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 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); +typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); #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); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( + VkCommandBuffer commandBuffer, + uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VkRect2D* pDiscardRectangles); #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_conservative_rasterization 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" -typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; +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; -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_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; -#define VK_KHR_maintenance3 1 -#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" +typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; + VkBool32 depthClipEnable; +} VkPipelineRasterizationDepthClipStateCreateInfoEXT; -typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; -typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; +#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" -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_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; -#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 struct VkHdrMetadataEXT { + VkStructureType sType; + const void* pNext; + VkXYColorEXT displayPrimaryRed; + VkXYColorEXT displayPrimaryGreen; + VkXYColorEXT displayPrimaryBlue; + VkXYColorEXT whitePoint; + float maxLuminance; + float minLuminance; + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} VkHdrMetadataEXT; -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 void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); #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); +VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( + VkDevice device, + uint32_t swapchainCount, + const VkSwapchainKHR* pSwapchains, + const VkHdrMetadataEXT* pMetadata); #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_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" +#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" -typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; -} VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; +#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) -#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_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 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 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 VkFlags VkDebugUtilsMessageSeverityFlagsEXT; +typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef struct VkDebugUtilsLabelEXT { + VkStructureType sType; + const void* pNext; + const char* pLabelName; + float color[4]; +} VkDebugUtilsLabelEXT; -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 VkDebugUtilsObjectNameInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + const char* pObjectName; +} VkDebugUtilsObjectNameInfoEXT; +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 VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData); -#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" +typedef struct VkDebugUtilsMessengerCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugUtilsMessengerCreateFlagsEXT flags; + VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; + VkDebugUtilsMessageTypeFlagsEXT messageType; + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; + void* pUserData; +} VkDebugUtilsMessengerCreateInfoEXT; -typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { +typedef struct VkDebugUtilsObjectTagInfoEXT { VkStructureType sType; - void* pNext; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; -} VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; - - - -#define VK_EXT_debug_report 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugUtilsObjectTagInfoEXT; -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 -#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" +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); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( + VkDevice device, + const VkDebugUtilsObjectNameInfoEXT* pNameInfo); -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; +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( + VkDevice device, + const VkDebugUtilsObjectTagInfoEXT* pTagInfo); +VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); -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; +VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( + VkQueue queue); -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); +VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); -typedef struct VkDebugReportCallbackCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportFlagsEXT flags; - PFN_vkDebugReportCallbackEXT pfnCallback; - void* pUserData; -} VkDebugReportCallbackCreateInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer); -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); +VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( VkInstance instance, - const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, + const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, - VkDebugReportCallbackEXT* pCallback); + VkDebugUtilsMessengerEXT* pMessenger); -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( +VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( VkInstance instance, - VkDebugReportCallbackEXT callback, + VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( +VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( VkInstance instance, - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage); + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); #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_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_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 VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; +typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; -#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" +#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 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_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 VkPipelineRasterizationStateRasterizationOrderAMD { - VkStructureType sType; - const void* pNext; - VkRasterizationOrderAMD rasterizationOrder; -} VkPipelineRasterizationStateRasterizationOrderAMD; + +#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" +#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; -#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" +typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; +typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; -#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" +typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; -#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 { +#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" + + +#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; + +typedef struct VkSampleLocationsInfoEXT { VkStructureType sType; const void* pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t object; - const char* pObjectName; -} VkDebugMarkerObjectNameInfoEXT; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT* pSampleLocations; +} VkSampleLocationsInfoEXT; + +typedef struct VkAttachmentSampleLocationsEXT { + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; + +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; + +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; -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 VkPhysicalDeviceSampleLocationsPropertiesEXT { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; -typedef struct VkDebugMarkerMarkerInfoEXT { +typedef struct VkMultisamplePropertiesEXT { VkStructureType sType; - const void* pNext; - const char* pMarkerName; - float color[4]; -} VkDebugMarkerMarkerInfoEXT; - + void* pNext; + VkExtent2D maxSampleLocationGridSize; +} VkMultisamplePropertiesEXT; -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); +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 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( +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( - VkCommandBuffer commandBuffer); + const VkSampleLocationsInfoEXT* pSampleLocationsInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( - VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( + VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT* pMultisampleProperties); #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" +#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 struct VkDedicatedAllocationImageCreateInfoNV { +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; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationImageCreateInfoNV; + void* pNext; + VkBool32 advancedBlendCoherentOperations; +} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; -typedef struct VkDedicatedAllocationBufferCreateInfoNV { +typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { VkStructureType sType; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationBufferCreateInfoNV; + void* pNext; + uint32_t advancedBlendMaxColorAttachments; + VkBool32 advancedBlendIndependentBlend; + VkBool32 advancedBlendNonPremultipliedSrcColor; + VkBool32 advancedBlendNonPremultipliedDstColor; + VkBool32 advancedBlendCorrelatedOverlap; + VkBool32 advancedBlendAllOperations; +} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; -typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { - VkStructureType sType; - const void* pNext; - VkImage image; - VkBuffer buffer; -} VkDedicatedAllocationMemoryAllocateInfoNV; +typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; +} VkPipelineColorBlendAdvancedStateCreateInfoEXT; -#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" +#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 VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; -typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { + +#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_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; + + + +#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_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; - VkBool32 transformFeedback; - VkBool32 geometryStreams; -} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; -typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { 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 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; -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); +#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" -#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); +#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; -VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( - VkCommandBuffer commandBuffer, - uint32_t firstCounterBuffer, - uint32_t counterBufferCount, - const VkBuffer* pCounterBuffers, - const VkDeviceSize* pCounterBufferOffsets); +typedef struct VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesListEXT; -VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags, - uint32_t index); +typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; -VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - uint32_t index); +typedef struct VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t drmFormatModifierCount; + const uint64_t* pDrmFormatModifiers; +} VkImageDrmFormatModifierListCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + const VkSubresourceLayout* pPlaneLayouts; +} VkImageDrmFormatModifierExplicitCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint64_t drmFormatModifier; +} VkImageDrmFormatModifierPropertiesEXT; + +typedef struct VkDrmFormatModifierProperties2EXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures; +} VkDrmFormatModifierProperties2EXT; -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( - VkCommandBuffer commandBuffer, - uint32_t instanceCount, - uint32_t firstInstance, - VkBuffer counterBuffer, - VkDeviceSize counterBufferOffset, - uint32_t counterOffset, - uint32_t vertexStride); +typedef struct VkDrmFormatModifierPropertiesList2EXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesList2EXT; + +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_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" -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); +#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" -#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); +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; -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif +typedef struct VkShaderModuleValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheEXT validationCache; +} VkShaderModuleValidationCacheCreateInfoEXT; -#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" +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 vkCreateValidationCacheEXT( + VkDevice device, + const VkValidationCacheCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkValidationCacheEXT* pValidationCache); -#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" +VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( + VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT* pSrcCaches); -#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" +VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + size_t* pDataSize, + void* pData); +#endif -#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" +#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 struct VkTextureLODGatherFormatPropertiesAMD { - VkStructureType sType; - void* pNext; - VkBool32 supportsTextureGatherLODBiasAMD; -} VkTextureLODGatherFormatPropertiesAMD; +typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT; +typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; +typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; -#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 VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; +typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; -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 VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; -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; +#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 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_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_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" +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; -#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 VkPipelineViewportShadingRateImageStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV* pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; -typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { VkStructureType sType; void* pNext; - VkBool32 cornerSampledImage; -} VkPhysicalDeviceCornerSampledImageFeaturesNV; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + VkStructureType sType; + void* pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; +typedef struct VkCoarseSampleLocationNV { + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; -#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" +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; -#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 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 void VKAPI_CALL vkCmdBindShadingRateImageNV( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); + +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 +// 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_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_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 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 struct VkGeometryAABBNV { + VkStructureType sType; + const void* pNext; + VkBuffer aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize offset; +} VkGeometryAABBNV; -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 VkGeometryDataNV { + VkGeometryTrianglesNV triangles; + VkGeometryAABBNV aabbs; +} VkGeometryDataNV; -typedef struct VkExternalImageFormatPropertiesNV { - VkImageFormatProperties imageFormatProperties; - VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; - VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; -} VkExternalImageFormatPropertiesNV; +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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); +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 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 VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkImageType type, - VkImageTiling tiling, - VkImageUsageFlags usage, - VkImageCreateFlags flags, - VkExternalMemoryHandleTypeFlagsNV externalHandleType, - VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); -#endif +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( + VkDevice device, + const VkAccelerationStructureCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureNV* pAccelerationStructure); -#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" +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks* pAllocator); -typedef struct VkExternalMemoryImageCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExternalMemoryImageCreateInfoNV; +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); -typedef struct VkExportMemoryAllocateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExportMemoryAllocateInfoNV; +VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( + VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); +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); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeKHR mode); -#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" +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); +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); -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; +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); -typedef struct VkValidationFlagsEXT { - VkStructureType sType; - const void* pNext; - uint32_t disabledValidationCheckCount; - const VkValidationCheckEXT* pDisabledValidationChecks; -} VkValidationFlagsEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +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); +VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( + VkDevice device, + VkPipeline pipeline, + uint32_t shader); +#endif -#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" +#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; -#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" +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; -#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 { +#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; - const void* pNext; - VkFormat decodeMode; -} VkImageViewASTCDecodeModeEXT; + void* pNext; + VkImageViewType imageViewType; +} VkPhysicalDeviceImageViewImageFormatInfoEXT; -typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { +typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { VkStructureType sType; void* pNext; - VkBool32 decodeModeSharedExponent; -} VkPhysicalDeviceASTCDecodeFeaturesEXT; + VkBool32 filterCubic; + VkBool32 filterCubicMinmax; +} VkFilterCubicImageViewImageFormatPropertiesEXT; -#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_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" -typedef enum VkConditionalRenderingFlagBitsEXT { - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkConditionalRenderingFlagBitsEXT; -typedef VkFlags VkConditionalRenderingFlagsEXT; +#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 VkConditionalRenderingBeginInfoEXT { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; - VkDeviceSize offset; - VkConditionalRenderingFlagsEXT flags; -} VkConditionalRenderingBeginInfoEXT; +typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT; -typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { + + +#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; + VkExternalMemoryHandleTypeFlagBits handleType; + void* pHostPointer; +} VkImportMemoryHostPointerInfoEXT; + +typedef struct VkMemoryHostPointerPropertiesEXT { VkStructureType sType; void* pNext; - VkBool32 conditionalRendering; - VkBool32 inheritedConditionalRendering; -} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + uint32_t memoryTypeBits; +} VkMemoryHostPointerPropertiesEXT; -typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { +typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { VkStructureType sType; - const void* pNext; - VkBool32 conditionalRenderingEnable; -} VkCommandBufferInheritanceConditionalRenderingInfoEXT; - + void* pNext; + VkDeviceSize minImportedHostPointerAlignment; +} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; -typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); -typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( - VkCommandBuffer commandBuffer, - const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( - VkCommandBuffer commandBuffer); +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #endif -#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 { - VkStructureType sType; - const void* pNext; - VkBool32 computeBindingPointSupport; -} VkDeviceGeneratedCommandsFeaturesNVX; - -typedef struct VkDeviceGeneratedCommandsLimitsNVX { - 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; -typedef struct VkIndirectCommandsLayoutTokenNVX { - VkIndirectCommandsTokenTypeNVX tokenType; - uint32_t bindingUnit; - uint32_t dynamicCount; - uint32_t divisor; -} VkIndirectCommandsLayoutTokenNVX; +#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); -typedef struct VkIndirectCommandsLayoutCreateInfoNVX { - VkStructureType sType; - const void* pNext; - VkPipelineBindPoint pipelineBindPoint; - VkIndirectCommandsLayoutUsageFlagsNVX flags; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenNVX* pTokens; -} VkIndirectCommandsLayoutCreateInfoNVX; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); +#endif -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 VkCmdReserveSpaceForCommandsInfoNVX { - VkStructureType sType; - const void* pNext; - VkObjectTableNVX objectTable; - VkIndirectCommandsLayoutNVX indirectCommandsLayout; - uint32_t maxSequencesCount; -} VkCmdReserveSpaceForCommandsInfoNVX; +#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 struct VkObjectTableCreateInfoNVX { +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; - 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); + VkPipelineCompilerControlFlagsAMD compilerControlFlags; +} VkPipelineCompilerControlCreateInfoAMD; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( - VkCommandBuffer commandBuffer, - const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( - VkCommandBuffer commandBuffer, - const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( - VkDevice device, - const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); +#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" -VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( - VkDevice device, - VkIndirectCommandsLayoutNVX indirectCommandsLayout, - const VkAllocationCallbacks* pAllocator); +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; -VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( - VkDevice device, - const VkObjectTableCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkObjectTableNVX* pObjectTable); +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); -VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( - VkDevice device, - VkObjectTableNVX objectTable, - const VkAllocationCallbacks* pAllocator); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainEXT* pTimeDomains); -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( VkDevice device, - VkObjectTableNVX objectTable, - uint32_t objectCount, - const VkObjectTableEntryNVX* const* ppObjectTableEntries, - const uint32_t* pObjectIndices); + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); +#endif -VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( - 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_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; -#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; +#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 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 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" +#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; -typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); +typedef struct VkVertexInputBindingDivisorDescriptionEXT { + uint32_t binding; + uint32_t divisor; +} VkVertexInputBindingDivisorDescriptionEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display); -#endif +typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; +} VkPipelineVertexInputDivisorStateCreateInfoEXT; -#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 struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; -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_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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); +typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilities2EXT* pSurfaceCapabilities); -#endif +typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; -#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_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 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 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; +#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; -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; +#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 struct VkSwapchainCounterCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkSurfaceCounterFlagsEXT surfaceCounters; -} VkSwapchainCounterCreateInfoEXT; +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 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); +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); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( - VkDevice device, - VkDisplayKHR display, - const VkDisplayPowerInfoEXT* pDisplayPowerInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( + VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif -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_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 struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; -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; +#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; + void* pNext; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; -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; +#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 struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; -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 void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); #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); +VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D* pExclusiveScissors); #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_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; -#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" +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); -#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" +#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_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 { +#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 perViewPositionAllComponents; -} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + 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 VkQueryPoolPerformanceQueryCreateInfoINTEL { + VkStructureType sType; + const void* pNext; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolPerformanceQueryCreateInfoINTEL; +typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; +typedef struct VkPerformanceMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint64_t marker; +} VkPerformanceMarkerInfoINTEL; -#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 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 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 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); -typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( + VkDevice device, + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); -typedef struct VkViewportSwizzleNV { - VkViewportCoordinateSwizzleNV x; - VkViewportCoordinateSwizzleNV y; - VkViewportCoordinateSwizzleNV z; - VkViewportCoordinateSwizzleNV w; -} VkViewportSwizzleNV; +VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( + VkDevice device); -typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineViewportSwizzleStateCreateFlagsNV flags; - uint32_t viewportCount; - const VkViewportSwizzleNV* pViewportSwizzles; -} VkPipelineViewportSwizzleStateCreateInfoNV; +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL* pMarkerInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL* pOverrideInfo); -#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" +VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( + VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, + VkPerformanceConfigurationINTEL* pConfiguration); +VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( + VkDevice device, + VkPerformanceConfigurationINTEL configuration); -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; +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( + VkQueue queue, + VkPerformanceConfigurationINTEL configuration); -typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( + VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL* pValue); +#endif -typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { + +#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 maxDiscardRectangles; -} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + uint32_t pciDomain; + uint32_t pciBus; + uint32_t pciDevice; + uint32_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; -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); +#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; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( - VkCommandBuffer commandBuffer, - uint32_t firstDiscardRectangle, - uint32_t discardRectangleCount, - const VkRect2D* pDiscardRectangles); -#endif +typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkBool32 localDimmingEnable; +} VkSwapchainDisplayNativeHdrCreateInfoAMD; -#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 void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( + VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable); +#endif -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; +#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 struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { +typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { VkStructureType sType; void* pNext; - float primitiveOverestimationSize; - float maxExtraPrimitiveOverestimationSize; - float extraPrimitiveOverestimationSizeGranularity; - VkBool32 primitiveUnderestimation; - VkBool32 conservativePointAndLineRasterization; - VkBool32 degenerateTrianglesRasterized; - VkBool32 degenerateLinesRasterized; - VkBool32 fullyCoveredFragmentShaderInputVariable; - VkBool32 conservativeRasterizationPostDepthCoverage; -} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; + VkExtent2D minFragmentDensityTexelSize; + VkExtent2D maxFragmentDensityTexelSize; + VkBool32 fragmentDensityInvocations; +} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; + +typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkAttachmentReference fragmentDensityMapAttachment; +} VkRenderPassFragmentDensityMapCreateInfoEXT; + + + +#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; + + + +#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_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_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 struct VkPipelineRasterizationConservativeStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; - VkConservativeRasterizationModeEXT conservativeRasterizationMode; - float extraPrimitiveOverestimationSize; -} VkPipelineRasterizationConservativeStateCreateInfoEXT; +typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; -#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_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" -#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 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 struct VkXYColorEXT { - float x; - float y; -} VkXYColorEXT; -typedef struct VkHdrMetadataEXT { + +#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; - const void* pNext; - VkXYColorEXT displayPrimaryRed; - VkXYColorEXT displayPrimaryGreen; - VkXYColorEXT displayPrimaryBlue; - VkXYColorEXT whitePoint; - float maxLuminance; - float minLuminance; - float maxContentLightLevel; - float maxFrameAverageLightLevel; -} VkHdrMetadataEXT; + void* pNext; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; -typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( - VkDevice device, - uint32_t swapchainCount, - const VkSwapchainKHR* pSwapchains, - const VkHdrMetadataEXT* pMetadata); -#endif +#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; -#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_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) +#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; -#define VK_EXT_debug_utils 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) -#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 -#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" +#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; -typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; -typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef struct VkMemoryPriorityAllocateInfoEXT { + VkStructureType sType; + const void* pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; -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; -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 { +#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; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - const char* pObjectName; -} VkDebugUtilsObjectNameInfoEXT; + void* pNext; + VkBool32 dedicatedAllocationImageAliasing; +} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; -typedef struct VkDebugUtilsObjectTagInfoEXT { + + +#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; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugUtilsObjectTagInfoEXT; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; -typedef struct VkDebugUtilsLabelEXT { +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; + +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; + +typedef struct VkBufferDeviceAddressCreateInfoEXT { VkStructureType sType; const void* pNext; - const char* pLabelName; - float color[4]; -} VkDebugUtilsLabelEXT; + VkDeviceAddress deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; -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 VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, - void* pUserData); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); +#endif -typedef struct VkDebugUtilsMessengerCreateInfoEXT { + +#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_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; - VkDebugUtilsMessengerCreateFlagsEXT flags; - VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; - VkDebugUtilsMessageTypeFlagsEXT messageType; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; - void* pUserData; -} VkDebugUtilsMessengerCreateInfoEXT; + 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 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesNV; +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesNV; -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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( - VkDevice device, - const VkDebugUtilsObjectNameInfoEXT* pNameInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixPropertiesNV* pProperties); +#endif -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( - VkDevice device, - const VkDebugUtilsObjectTagInfoEXT* pTagInfo); -VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); +#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" -VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( - VkQueue queue); +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; -VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; -VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); +typedef struct VkFramebufferMixedSamplesCombinationNV { + VkStructureType sType; + void* pNext; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; -VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); -VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t* pCombinationCount, + VkFramebufferMixedSamplesCombinationNV* pCombinations); +#endif -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( - VkInstance instance, - const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDebugUtilsMessengerEXT* pMessenger); -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( - VkInstance instance, - VkDebugUtilsMessengerEXT messenger, - const VkAllocationCallbacks* pAllocator); +#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 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; -VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( - VkInstance instance, - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); -#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_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; -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; -typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { +#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 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; -} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; + VkBool32 provokingVertexLast; + VkBool32 transformFeedbackPreservesProvokingVertex; +} VkPhysicalDeviceProvokingVertexFeaturesEXT; +typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexModePerPipeline; + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; +} VkPhysicalDeviceProvokingVertexPropertiesEXT; +typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkProvokingVertexModeEXT provokingVertexMode; +} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; -#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_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" +#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); -#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" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( + VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#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" +#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" -typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { +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 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; -} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; - -typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; +} VkPhysicalDeviceLineRasterizationFeaturesEXT; + +typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT { VkStructureType sType; void* pNext; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; -} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + uint32_t lineSubPixelPrecisionBits; +} VkPhysicalDeviceLineRasterizationPropertiesEXT; + +typedef struct VkPipelineRasterizationLineStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkLineRasterizationModeEXT lineRasterizationMode; + VkBool32 stippledLineEnable; + uint32_t lineStippleFactor; + uint16_t lineStipplePattern; +} VkPipelineRasterizationLineStateCreateInfoEXT; + +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 -typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { - VkStructureType sType; - const void* pNext; - uint32_t dataSize; - const void* pData; -} VkWriteDescriptorSetInlineUniformBlockEXT; -typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { +#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; - const void* pNext; - uint32_t maxInlineUniformBlockBindings; -} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + 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_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 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_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" +#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_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; -typedef struct VkSampleLocationsInfoEXT { - VkStructureType sType; - const void* pNext; - VkSampleCountFlagBits sampleLocationsPerPixel; - VkExtent2D sampleLocationGridSize; - uint32_t sampleLocationsCount; - const VkSampleLocationEXT* pSampleLocations; -} VkSampleLocationsInfoEXT; +#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); -typedef struct VkAttachmentSampleLocationsEXT { - uint32_t attachmentIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkAttachmentSampleLocationsEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); -typedef struct VkSubpassSampleLocationsEXT { - uint32_t subpassIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkSubpassSampleLocationsEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); -typedef struct VkRenderPassSampleLocationsBeginInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t attachmentInitialSampleLocationsCount; - const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; - uint32_t postSubpassSampleLocationsCount; - const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; -} VkRenderPassSampleLocationsBeginInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); -typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 sampleLocationsEnable; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkPipelineSampleLocationsStateCreateInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); -typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { - VkStructureType sType; - void* pNext; - VkSampleCountFlags sampleLocationSampleCounts; - VkExtent2D maxSampleLocationGridSize; - float sampleLocationCoordinateRange[2]; - uint32_t sampleLocationSubPixelBits; - VkBool32 variableSampleLocations; -} VkPhysicalDeviceSampleLocationsPropertiesEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); -typedef struct VkMultisamplePropertiesEXT { - VkStructureType sType; - void* pNext; - VkExtent2D maxSampleLocationGridSize; -} VkMultisamplePropertiesEXT; +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); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); -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 vkCmdSetDepthWriteEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, - const VkSampleLocationsInfoEXT* pSampleLocationsInfo); + VkCompareOp depthCompareOp); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( - VkPhysicalDevice physicalDevice, - VkSampleCountFlagBits samples, - VkMultisamplePropertiesEXT* pMultisampleProperties); -#endif +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); -#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" +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); +#endif -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_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 advancedBlendCoherentOperations; -} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; - -typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { + 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_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_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; - uint32_t advancedBlendMaxColorAttachments; - VkBool32 advancedBlendIndependentBlend; - VkBool32 advancedBlendNonPremultipliedSrcColor; - VkBool32 advancedBlendNonPremultipliedDstColor; - VkBool32 advancedBlendCorrelatedOverlap; - VkBool32 advancedBlendAllOperations; -} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; + 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; + 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 VkPipelineColorBlendAdvancedStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 srcPremultiplied; - VkBool32 dstPremultiplied; - VkBlendOverlapEXT blendOverlap; -} VkPipelineColorBlendAdvancedStateCreateInfoEXT; +typedef struct VkBindVertexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandNV; +typedef struct VkSetStateFlagsIndirectCommandNV { + uint32_t data; +} VkSetStateFlagsIndirectCommandNV; +typedef struct VkIndirectCommandsStreamNV { + VkBuffer buffer; + VkDeviceSize offset; +} VkIndirectCommandsStreamNV; -#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 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; -typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; +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; -typedef struct VkPipelineCoverageToColorStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageToColorStateCreateFlagsNV flags; - VkBool32 coverageToColorEnable; - uint32_t coverageToColorLocation; -} VkPipelineCoverageToColorStateCreateInfoNV; +typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t maxSequencesCount; +} VkGeneratedCommandsMemoryRequirementsInfoNV; + +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); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV( + VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2* pMemoryRequirements); +VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); -#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" +VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex); -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 VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV( + VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); -typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; +VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV( + VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks* pAllocator); +#endif -typedef struct VkPipelineCoverageModulationStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageModulationStateCreateFlagsNV flags; - VkCoverageModulationModeNV coverageModulationMode; - VkBool32 coverageModulationTableEnable; - uint32_t coverageModulationTableCount; - const float* pCoverageModulationTable; -} VkPipelineCoverageModulationStateCreateInfoNV; +#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; +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport* pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; -#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_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" +#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 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; +typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; -#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; -typedef struct VkDrmFormatModifierPropertiesListEXT { - VkStructureType sType; - void* pNext; - uint32_t drmFormatModifierCount; - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; -} VkDrmFormatModifierPropertiesListEXT; +#define VK_QCOM_render_pass_transform 1 +#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2 +#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 VkPhysicalDeviceImageDrmFormatModifierInfoEXT { +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; - const void* pNext; - uint64_t drmFormatModifier; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; -} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; + void* pNext; + VkBool32 deviceMemoryReport; +} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; -typedef struct VkImageDrmFormatModifierListCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t drmFormatModifierCount; - const uint64_t* pDrmFormatModifiers; -} VkImageDrmFormatModifierListCreateInfoEXT; +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 VkImageDrmFormatModifierExplicitCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint64_t drmFormatModifier; - uint32_t drmFormatModifierPlaneCount; - const VkSubresourceLayout* pPlaneLayouts; -} VkImageDrmFormatModifierExplicitCreateInfoEXT; +typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback; + void* pUserData; +} VkDeviceDeviceMemoryReportCreateInfoEXT; + + + +#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 vkAcquireDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + uint32_t connectorId, + VkDisplayKHR* display); +#endif -typedef struct VkImageDrmFormatModifierPropertiesEXT { + +#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; - uint64_t drmFormatModifier; -} VkImageDrmFormatModifierPropertiesEXT; + VkBool32 robustBufferAccess2; + VkBool32 robustImageAccess2; + VkBool32 nullDescriptor; +} VkPhysicalDeviceRobustness2FeaturesEXT; +typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize robustStorageBufferAccessSizeAlignment; + VkDeviceSize robustUniformBufferAccessSizeAlignment; +} VkPhysicalDeviceRobustness2PropertiesEXT; -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_validation_cache 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) +#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; -#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 -#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" +typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCustomBorderColorSamplers; +} VkPhysicalDeviceCustomBorderColorPropertiesEXT; +typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 customBorderColors; + VkBool32 customBorderColorWithoutFormat; +} VkPhysicalDeviceCustomBorderColorFeaturesEXT; -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 VkFlags VkValidationCacheCreateFlagsEXT; -typedef struct VkValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheCreateFlagsEXT flags; - size_t initialDataSize; - const void* pInitialData; -} VkValidationCacheCreateInfoEXT; +#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 VkShaderModuleValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheEXT validationCache; -} VkShaderModuleValidationCacheCreateInfoEXT; +#define VK_EXT_private_data 1 +typedef VkPrivateDataSlot VkPrivateDataSlotEXT; -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); +#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; + +typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; + +typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; + +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); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( VkDevice device, - const VkValidationCacheCreateInfoEXT* pCreateInfo, + const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, - VkValidationCacheEXT* pValidationCache); + VkPrivateDataSlot* pPrivateDataSlot); -VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( VkDevice device, - VkValidationCacheEXT validationCache, + VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( VkDevice device, - VkValidationCacheEXT dstCache, - uint32_t srcCacheCount, - const VkValidationCacheEXT* pSrcCaches); + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); -VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( +VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( VkDevice device, - VkValidationCacheEXT validationCache, - size_t* pDataSize, - void* pData); + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); #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_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; -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; -typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t bindingCount; - const VkDescriptorBindingFlagsEXT* pBindingFlags; -} VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; -typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT { +#define VK_NV_device_diagnostics_config 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" + +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_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkDeviceDiagnosticsConfigFlagBitsNV; +typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; +typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV { 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 diagnosticsConfig; +} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; + +typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceDiagnosticsConfigFlagsNV flags; +} VkDeviceDiagnosticsConfigCreateInfoNV; + + -typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT { +#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" + + +#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; - 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; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; -typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { VkStructureType sType; - const void* pNext; - uint32_t descriptorSetCount; - const uint32_t* pDescriptorCounts; -} VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; + void* pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; -typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { + VkStructureType sType; + void* pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; + + + +#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; - uint32_t maxVariableDescriptorCount; -} VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; + VkBool32 fragmentShadingRateEnums; + VkBool32 supersampleFragmentShadingRates; + VkBool32 noInvocationFragmentShadingRates; +} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + VkStructureType sType; + void* pNext; + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; +} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; +typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkFragmentShadingRateTypeNV shadingRateType; + VkFragmentShadingRateNV shadingRate; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; -#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 void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV( + VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif -#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" +#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 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; -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; +#endif // GO_INCLUDE_NV_ray_tracing -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; +#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; -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 { +#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 shadingRateImage; - VkBool32 shadingRateCoarseSampleOrder; -} VkPhysicalDeviceShadingRateImageFeaturesNV; + VkBool32 fragmentDensityMapDeferred; +} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; -typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { +typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { VkStructureType sType; void* pNext; - VkExtent2D shadingRateTexelSize; - uint32_t shadingRatePaletteSize; - uint32_t shadingRateMaxCoarseSamples; -} VkPhysicalDeviceShadingRateImagePropertiesNV; + VkBool32 subsampledLoads; + VkBool32 subsampledCoarseReconstructionEarlyAccess; + uint32_t maxSubsampledArrayLayers; + uint32_t maxDescriptorSetSubsampledSamplers; +} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; -typedef struct VkCoarseSampleLocationNV { - uint32_t pixelX; - uint32_t pixelY; - uint32_t sample; -} VkCoarseSampleLocationNV; -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; +#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; -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 void VKAPI_CALL vkCmdBindShadingRateImageNV( - VkCommandBuffer commandBuffer, - VkImageView imageView, - VkImageLayout imageLayout); +#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; -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_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 { +#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; - 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; + void* pNext; + VkBool32 formatA4R4G4B4; + VkBool32 formatA4B4G4R4; +} VkPhysicalDevice4444FormatsFeaturesEXT; + + + +#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 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 rasterizationOrderColorAttachmentAccess; + VkBool32 rasterizationOrderDepthAttachmentAccess; + VkBool32 rasterizationOrderStencilAttachmentAccess; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; + + + +#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; + + + +#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 + -typedef struct VkGeometryAABBNVX { +#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 VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { VkStructureType sType; - const void* pNext; - VkBuffer aabbData; - uint32_t numAABBs; - uint32_t stride; - VkDeviceSize offset; -} VkGeometryAABBNVX; + void* pNext; + VkBool32 mutableDescriptorType; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; -typedef struct VkGeometryDataNVX { - VkGeometryTrianglesNVX triangles; - VkGeometryAABBNVX aabbs; -} VkGeometryDataNVX; +typedef struct VkMutableDescriptorTypeListVALVE { + uint32_t descriptorTypeCount; + const VkDescriptorType* pDescriptorTypes; +} VkMutableDescriptorTypeListVALVE; -typedef struct VkGeometryNVX { - VkStructureType sType; - const void* pNext; - VkGeometryTypeNVX geometryType; - VkGeometryDataNVX geometry; - VkGeometryFlagsNVX flags; -} VkGeometryNVX; +typedef struct VkMutableDescriptorTypeCreateInfoVALVE { + VkStructureType sType; + const void* pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoVALVE; -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; -typedef struct VkAccelerationStructureMemoryRequirementsInfoNVX { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureNVX accelerationStructure; -} VkAccelerationStructureMemoryRequirementsInfoNVX; -typedef struct VkPhysicalDeviceRaytracingPropertiesNVX { +#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 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); + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNVX( - VkDevice device, - const VkAccelerationStructureCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkAccelerationStructureNVX* pAccelerationStructure); +typedef struct VkVertexInputBindingDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; -VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNVX( - VkDevice device, - VkAccelerationStructureNVX accelerationStructure, - const VkAllocationCallbacks* pAllocator); +typedef struct VkVertexInputAttributeDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNVX( - VkDevice device, - const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, - VkMemoryRequirements2KHR* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureScratchMemoryRequirementsNVX( - VkDevice device, - const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, - VkMemoryRequirements2KHR* pMemoryRequirements); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( + VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); +#endif -VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNVX( - VkDevice device, - uint32_t bindInfoCount, - const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos); -VKAPI_ATTR void VKAPI_CALL 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); +#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; -VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNVX( - VkCommandBuffer commandBuffer, - VkAccelerationStructureNVX dst, - VkAccelerationStructureNVX src, - VkCopyAccelerationStructureModeNVX mode); -VKAPI_ATTR void VKAPI_CALL 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); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRaytracingPipelinesNVX( - VkDevice device, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); +#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; + VkBool32 depthClipControl; +} VkPhysicalDeviceDepthClipControlFeaturesEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkGetRaytracingShaderHandlesNVX( - VkDevice device, - VkPipeline pipeline, - uint32_t firstGroup, - uint32_t groupCount, - size_t dataSize, - void* pData); +typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 negativeOneToOne; +} VkPipelineViewportDepthClipControlCreateInfoEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNVX( - VkDevice device, - VkAccelerationStructureNVX accelerationStructure, - size_t dataSize, - void* pData); -VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructurePropertiesNVX( - VkCommandBuffer commandBuffer, - VkAccelerationStructureNVX accelerationStructure, - VkQueryType queryType, - VkQueryPool queryPool, - uint32_t query); -VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNVX( - VkDevice device, - VkPipeline pipeline, - uint32_t shader); -#endif +#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_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_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; - VkBool32 representativeFragmentTest; -} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + VkRenderPass renderPass; + uint32_t subpass; +} VkSubpassShadingPipelineCreateInfoHUAWEI; -typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { +typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { VkStructureType sType; - const void* pNext; - VkBool32 representativeFragmentTestEnable; -} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + void* pNext; + VkBool32 subpassShading; +} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; +typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; +} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); +typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer); -#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" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + VkDevice device, + VkRenderPass renderpass, + VkExtent2D* pMaxWorkgroupSize); +VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI( + VkCommandBuffer commandBuffer); +#endif -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_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; +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_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 { +#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; - void* pHostPointer; -} VkImportMemoryHostPointerInfoEXT; - -typedef struct VkMemoryHostPointerPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryHostPointerPropertiesEXT; +} VkMemoryGetRemoteAddressInfoNV; -typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { +typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { VkStructureType sType; void* pNext; - VkDeviceSize minImportedHostPointerAlignment; -} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; - + VkBool32 externalMemoryRDMA; +} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV; -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - const void* pHostPointer, - VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV* pAddress); #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_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; + +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); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( +VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, - VkPipelineStageFlagBits pipelineStage, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - uint32_t marker); -#endif + uint32_t patchControlPoints); -#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" +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); -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; +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( + VkCommandBuffer commandBuffer, + VkLogicOp logicOp); -typedef struct VkCalibratedTimestampInfoEXT { +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); +#endif + + +#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; - const void* pNext; - VkTimeDomainEXT timeDomain; -} VkCalibratedTimestampInfoEXT; + void* pNext; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; +typedef struct VkPipelineColorWriteCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkBool32* pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; -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); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); #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, - uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, - uint64_t* pTimestamps, - uint64_t* pMaxDeviation); +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32* pColorWriteEnables); #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_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; - 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 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; -#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" +#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 struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { +typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT; + + + +#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; - uint32_t maxVertexAttribDivisor; -} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; + VkBool32 minLod; +} VkPhysicalDeviceImageViewMinLodFeaturesEXT; -typedef struct VkVertexInputBindingDivisorDescriptionEXT { - uint32_t binding; - uint32_t divisor; -} VkVertexInputBindingDivisorDescriptionEXT; +typedef struct VkImageViewMinLodCreateInfoEXT { + VkStructureType sType; + const void* pNext; + float minLod; +} VkImageViewMinLodCreateInfoEXT; + + + +#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; + +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; + +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 -typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; -} VkPipelineVertexInputDivisorStateCreateInfoEXT; -typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +#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 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; -} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; -#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_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" -#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 { +#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 computeDerivativeGroupQuads; - VkBool32 computeDerivativeGroupLinear; -} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; -#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 { +#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 taskShader; - VkBool32 meshShader; -} VkPhysicalDeviceMeshShaderFeaturesNV; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; -typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { +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_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; - 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; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; -typedef struct VkDrawMeshTasksIndirectCommandNV { - uint32_t taskCount; - uint32_t firstTask; -} VkDrawMeshTasksIndirectCommandNV; +typedef struct VkDescriptorSetBindingReferenceVALVE { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayout descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { + VkStructureType sType; + void* pNext; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; -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 void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( - VkCommandBuffer commandBuffer, - uint32_t taskCount, - uint32_t firstTask); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - uint32_t drawCount, - uint32_t stride); +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE( + VkDevice device, + const VkDescriptorSetBindingReferenceVALVE* pBindingReference, + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( + VkDevice device, + VkDescriptorSet descriptorSet, + void** ppData); #endif -#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 struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { +#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 fragmentShaderBarycentric; -} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; + VkBool32 fragmentDensityMapOffset; +} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D fragmentDensityOffsetGranularity; +} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; + +typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM { + VkStructureType sType; + const void* pNext; + uint32_t fragmentDensityOffsetCount; + const VkOffset2D* pFragmentDensityOffsets; +} VkSubpassFragmentDensityMapOffsetEndInfoQCOM; -#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" -typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { +#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; - VkBool32 imageFootprint; -} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + VkBool32 linearColorAttachment; +} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; + + + +#define VK_GOOGLE_surfaceless_query 1 +#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) +#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 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 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 VkAccelerationStructureCreateFlagBitsKHR { + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004, + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCreateFlagBitsKHR; +typedef VkFlags VkAccelerationStructureCreateFlagsKHR; +typedef union VkDeviceOrHostAddressKHR { + VkDeviceAddress deviceAddress; + void* hostAddress; +} VkDeviceOrHostAddressKHR; + +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; -#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 union VkAccelerationStructureGeometryDataKHR { + VkAccelerationStructureGeometryTrianglesDataKHR triangles; + VkAccelerationStructureGeometryAabbsDataKHR aabbs; + VkAccelerationStructureGeometryInstancesDataKHR instances; +} VkAccelerationStructureGeometryDataKHR; -typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - uint32_t exclusiveScissorCount; - const VkRect2D* pExclusiveScissors; -} VkPipelineViewportExclusiveScissorStateCreateInfoNV; +typedef struct VkAccelerationStructureGeometryKHR { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkAccelerationStructureGeometryDataKHR geometry; + VkGeometryFlagsKHR flags; +} VkAccelerationStructureGeometryKHR; -typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { +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 exclusiveScissor; -} VkPhysicalDeviceExclusiveScissorFeaturesNV; + VkBool32 accelerationStructure; + VkBool32 accelerationStructureCaptureReplay; + VkBool32 accelerationStructureIndirectBuild; + VkBool32 accelerationStructureHostCommands; + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; +} VkPhysicalDeviceAccelerationStructureFeaturesKHR; + +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { + VkStructureType sType; + void* pNext; + 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 VkAccelerationStructureVersionInfoKHR { + VkStructureType sType; + const void* pNext; + const uint8_t* pVersionData; +} VkAccelerationStructureVersionInfoKHR; -typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkDeviceOrHostAddressKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureToMemoryInfoKHR; + +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 vkCmdSetExclusiveScissorNV( +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( + VkDevice device, + const VkAccelerationStructureCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureKHR* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR( + VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, - uint32_t firstExclusiveScissor, - uint32_t exclusiveScissorCount, - const VkRect2D* pExclusiveScissors); -#endif + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -#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" +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkDeviceAddress* pIndirectDeviceAddresses, + const uint32_t* pIndirectStrides, + const uint32_t* const* ppMaxPrimitiveCounts); -typedef struct VkQueueFamilyCheckpointPropertiesNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags checkpointExecutionStageMask; -} VkQueueFamilyCheckpointPropertiesNV; +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -typedef struct VkCheckpointDataNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlagBits stage; - void* pCheckpointMarker; -} VkCheckpointDataNV; +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); -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 VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( + VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, - const void* pCheckpointMarker); + const VkCopyAccelerationStructureInfoKHR* pInfo); -VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( - VkQueue queue, - uint32_t* pCheckpointDataCount, - VkCheckpointDataNV* pCheckpointData); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); + +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_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_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 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; - uint16_t pciDomain; - uint8_t pciBus; - uint8_t pciDevice; - uint8_t pciFunction; -} VkPhysicalDevicePCIBusInfoPropertiesEXT; + 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_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 vkCmdTraceRaysKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth); -#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" +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +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); -#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 VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR( + VkCommandBuffer commandBuffer, + uint32_t pipelineStackSize); +#endif + + +#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; + VkBool32 rayQuery; +} VkPhysicalDeviceRayQueryFeaturesKHR; #ifdef __cplusplus @@ -8759,3 +14434,6 @@ typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { #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..7277e9d --- /dev/null +++ b/vulkan/vulkan_core_h.patch @@ -0,0 +1,69 @@ +--- /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 ++ 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..3631f12 --- /dev/null +++ b/vulkan/vulkan_metal.h @@ -0,0 +1,54 @@ +#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 + +#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..affe0c0 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,61 @@ 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 + #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_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 From 6e89b8ce8542d4393374f3594689cc478150c83c Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Thu, 12 May 2022 03:25:41 -0700 Subject: [PATCH 02/25] now it works! had to revert to oct 14, 2018 version of c-for-go --- README.md | 8 +- UPDATING.md | 112 +- cgo_helpers.c | 4 +- cgo_helpers.go | 4008 ++++++++++++++++++------------------------------ cgo_helpers.h | 4 +- const.go | 2 +- const_go.patch | 8 - doc.go | 2 +- go.mod | 2 +- types.go | 32 +- vulkan.go | 1843 ++++++++-------------- 11 files changed, 2208 insertions(+), 3817 deletions(-) diff --git a/README.md b/README.md index cbc4452..21e53c4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# 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.1.88](https://img.shields.io/badge/version-1.1.88-lightgrey.svg) [![GoDoc](https://godoc.org/github.com/goki/vulkan?status.svg)](https://godoc.org/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 October 13, 2018 — Vulkan 1.1.88. ## Introduction @@ -53,7 +53,7 @@ taste, writing Go code is simply more pleasant experience. * **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. +* **2016-11-29** Generic Linux support added in using GLFW ([Issue #2](https://github.com/goki/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. @@ -71,7 +71,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: diff --git a/UPDATING.md b/UPDATING.md index 7c08147..880068f 100644 --- a/UPDATING.md +++ b/UPDATING.md @@ -1,6 +1,25 @@ 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) +* 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: @@ -14,7 +33,11 @@ $ cp /usr/local/include/vulkan/*.h vulkan/ * `make all` -- runs c-for-go -* Fix the generated `const.go` file per patch to fix a few things. +* 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: @@ -103,14 +126,6 @@ It is unclear if this is because moltenVK only supports version 1.1 of Vulkan? ``` --- const.go 2022-05-12 01:22:31.000000000 -0700 +++ const_fixed.go 2022-05-12 01:22:24.000000000 -0700 -@@ -1,6 +1,6 @@ - // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. - --// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. -+// WARNING: This file has automatically been generated on Thu, 12 May 2022 00:52:13 PDT. - // Code generated by https://git.io/c-for-go. DO NOT EDIT. - - package vulkan @@ -29,7 +29,7 @@ // AttachmentUnused as defined in vulkan/vulkan_core.h:124 AttachmentUnused = (^uint32(0)) @@ -140,3 +155,80 @@ It is unclear if this is because moltenVK only supports version 1.1 of Vulkan? ``` +# 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/cgo_helpers.c b/cgo_helpers.c index 38578df..8d891fb 100644 --- a/cgo_helpers.c +++ b/cgo_helpers.c @@ -1,12 +1,12 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // 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); } diff --git a/cgo_helpers.go b/cgo_helpers.go index c513bac..f86c11d 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 Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -15,7 +15,6 @@ package vulkan */ import "C" import ( - "fmt" "runtime" "sync" "unsafe" @@ -75,8 +74,8 @@ func (a *cgoAllocMap) Free() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -161,8 +160,8 @@ func (x *Extent2D) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -252,8 +251,8 @@ func (x *Extent3D) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -338,8 +337,8 @@ func (x *Offset2D) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -429,8 +428,8 @@ func (x *Offset3D) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -515,8 +514,8 @@ func (x *Rect2D) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -533,8 +532,8 @@ type sliceHeader struct { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -549,8 +548,8 @@ func unpackSBaseInStructure(x []BaseInStructure) (unpacked *C.struct_VkBaseInStr return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseInStructure) { + go allocs.Free() }) len0 := len(x) @@ -659,8 +658,8 @@ func (x *BaseInStructure) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -671,8 +670,8 @@ const sizeOfBaseOutStructureValue = unsafe.Sizeof([1]C.VkBaseOutStructure{}) // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -685,8 +684,8 @@ func unpackSBaseOutStructure(x []BaseOutStructure) (unpacked *C.struct_VkBaseOut return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseOutStructure) { + go allocs.Free() }) len0 := len(x) @@ -795,8 +794,8 @@ func (x *BaseOutStructure) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -916,8 +915,8 @@ func (x *BufferMemoryBarrier) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1007,8 +1006,8 @@ func (x *DispatchIndirectCommand) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1108,8 +1107,8 @@ func (x *DrawIndexedIndirectCommand) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1204,8 +1203,8 @@ func (x *DrawIndirectCommand) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1305,8 +1304,8 @@ func (x *ImageSubresourceRange) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1431,8 +1430,8 @@ func (x *ImageMemoryBarrier) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1527,8 +1526,8 @@ func (x *MemoryBarrier) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1654,8 +1653,8 @@ func NewAllocationCallbacks() *AllocationCallbacks { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1674,24 +1673,18 @@ func (x *AllocationCallbacks) PassRef() *C.VkAllocationCallbacks { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfApplicationInfoValue = unsafe.Sizeof([1]C.VkApplicationInfo{}) -// unpackPCharString copies the data from Go string as *C.char. +// unpackPCharString represents the data from Go string as *C.char and avoids copying. func unpackPCharString(str string) (*C.char, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CString(str)) - allocs.Add(mem0) - return (*C.char)(mem0), allocs + h := (*stringHeader)(unsafe.Pointer(&str)) + return (*C.char)(h.Data), cgoAllocsUnknown } type stringHeader struct { @@ -1827,8 +1820,8 @@ func (x *ApplicationInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -1918,8 +1911,8 @@ func (x *FormatProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2019,8 +2012,8 @@ func (x *ImageFormatProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2031,8 +2024,8 @@ const sizeOfInstanceCreateInfoValue = unsafe.Sizeof([1]C.VkInstanceCreateInfo{}) // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2045,8 +2038,8 @@ func unpackSString(x []string) (unpacked **C.char, allocs *cgoAllocMap) { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(***C.char) { + go allocs.Free() }) len0 := len(x) @@ -2183,8 +2176,8 @@ func (x *InstanceCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2269,8 +2262,8 @@ func (x *MemoryHeap) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2355,8 +2348,8 @@ func (x *MemoryType) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -2706,8 +2699,8 @@ func (x *PhysicalDeviceFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3266,7 +3259,7 @@ func (x *PhysicalDeviceLimits) Deref() { 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 = (uint32)(x.ref7926795a.minMemoryMapAlignment) + x.MinMemoryMapAlignment = (uint64)(x.ref7926795a.minMemoryMapAlignment) x.MinTexelBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minTexelBufferOffsetAlignment) x.MinUniformBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minUniformBufferOffsetAlignment) x.MinStorageBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minStorageBufferOffsetAlignment) @@ -3312,8 +3305,8 @@ func (x *PhysicalDeviceLimits) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3324,8 +3317,8 @@ const sizeOfPhysicalDeviceMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalD // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3335,8 +3328,8 @@ 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(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(*[32]C.VkMemoryType) { + go allocs.Free() }) mem0 := allocA32MemoryTypeMemory(1) @@ -3355,8 +3348,8 @@ func unpackA32MemoryType(x [32]MemoryType) (unpacked [32]C.VkMemoryType, allocs // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3366,8 +3359,8 @@ 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(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(*[16]C.VkMemoryHeap) { + go allocs.Free() }) mem0 := allocA16MemoryHeapMemory(1) @@ -3486,8 +3479,8 @@ func (x *PhysicalDeviceMemoryProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3587,8 +3580,8 @@ func (x *PhysicalDeviceSparseProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3708,8 +3701,8 @@ func (x *PhysicalDeviceProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3804,43 +3797,14 @@ func (x *QueueFamilyProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfDeviceQueueCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueCreateInfo{}) -// copyPFloatBytes copies the data from Go slice as *C.float. -func copyPFloatBytes(slice *sliceHeader) (*C.float, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfFloatValue) * slice.Len, - Cap: int(sizeOfFloatValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.float)(mem0), allocs -} - -// allocFloatMemory allocates memory for type C.float in C. -// The caller is responsible for freeing the this memory via C.free. -func allocFloatMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFloatValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfFloatValue = unsafe.Sizeof([1]C.float{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *DeviceQueueCreateInfo) Ref() *C.VkDeviceQueueCreateInfo { if x == nil { @@ -3903,7 +3867,7 @@ func (x *DeviceQueueCreateInfo) PassRef() (*C.VkDeviceQueueCreateInfo, *cgoAlloc allocs6087b30d.Borrow(cqueueCount_allocs) var cpQueuePriorities_allocs *cgoAllocMap - ref6087b30d.pQueuePriorities, cpQueuePriorities_allocs = copyPFloatBytes((*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities))) + ref6087b30d.pQueuePriorities, cpQueuePriorities_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities)).Data)), cgoAllocsUnknown allocs6087b30d.Borrow(cpQueuePriorities_allocs) x.ref6087b30d = ref6087b30d @@ -3943,8 +3907,8 @@ func (x *DeviceQueueCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -3957,8 +3921,8 @@ func unpackSDeviceQueueCreateInfo(x []DeviceQueueCreateInfo) (unpacked *C.VkDevi return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDeviceQueueCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -3986,8 +3950,8 @@ func unpackSPhysicalDeviceFeatures(x []PhysicalDeviceFeatures) (unpacked *C.VkPh return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPhysicalDeviceFeatures) { + go allocs.Free() }) len0 := len(x) @@ -4145,8 +4109,8 @@ func (x *DeviceCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4231,8 +4195,8 @@ func (x *ExtensionProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4327,101 +4291,14 @@ func (x *LayerProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfSubmitInfoValue = unsafe.Sizeof([1]C.VkSubmitInfo{}) -// copyPSemaphoreBytes copies the data from Go slice as *C.VkSemaphore. -func copyPSemaphoreBytes(slice *sliceHeader) (*C.VkSemaphore, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfSemaphoreValue) * slice.Len, - Cap: int(sizeOfSemaphoreValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkSemaphore)(mem0), allocs -} - -// allocSemaphoreMemory allocates memory for type C.VkSemaphore in C. -// The caller is responsible for freeing the this memory via C.free. -func allocSemaphoreMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfSemaphoreValue = unsafe.Sizeof([1]C.VkSemaphore{}) - -// copyPPipelineStageFlagsBytes copies the data from Go slice as *C.VkPipelineStageFlags. -func copyPPipelineStageFlagsBytes(slice *sliceHeader) (*C.VkPipelineStageFlags, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfPipelineStageFlagsValue) * slice.Len, - Cap: int(sizeOfPipelineStageFlagsValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkPipelineStageFlags)(mem0), allocs -} - -// allocPipelineStageFlagsMemory allocates memory for type C.VkPipelineStageFlags in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPipelineStageFlagsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineStageFlagsValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfPipelineStageFlagsValue = unsafe.Sizeof([1]C.VkPipelineStageFlags{}) - -// copyPCommandBufferBytes copies the data from Go slice as *C.VkCommandBuffer. -func copyPCommandBufferBytes(slice *sliceHeader) (*C.VkCommandBuffer, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfCommandBufferValue) * slice.Len, - Cap: int(sizeOfCommandBufferValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkCommandBuffer)(mem0), allocs -} - -// allocCommandBufferMemory allocates memory for type C.VkCommandBuffer in C. -// The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfCommandBufferValue = unsafe.Sizeof([1]C.VkCommandBuffer{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *SubmitInfo) Ref() *C.VkSubmitInfo { if x == nil { @@ -4476,11 +4353,11 @@ func (x *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { allocs22884025.Borrow(cwaitSemaphoreCount_allocs) var cpWaitSemaphores_allocs *cgoAllocMap - ref22884025.pWaitSemaphores, cpWaitSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + 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 = copyPPipelineStageFlagsBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask))) + ref22884025.pWaitDstStageMask, cpWaitDstStageMask_allocs = (*C.VkPipelineStageFlags)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask)).Data)), cgoAllocsUnknown allocs22884025.Borrow(cpWaitDstStageMask_allocs) var ccommandBufferCount_allocs *cgoAllocMap @@ -4488,7 +4365,7 @@ func (x *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { allocs22884025.Borrow(ccommandBufferCount_allocs) var cpCommandBuffers_allocs *cgoAllocMap - ref22884025.pCommandBuffers, cpCommandBuffers_allocs = copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers))) + ref22884025.pCommandBuffers, cpCommandBuffers_allocs = (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers)).Data)), cgoAllocsUnknown allocs22884025.Borrow(cpCommandBuffers_allocs) var csignalSemaphoreCount_allocs *cgoAllocMap @@ -4496,7 +4373,7 @@ func (x *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { allocs22884025.Borrow(csignalSemaphoreCount_allocs) var cpSignalSemaphores_allocs *cgoAllocMap - ref22884025.pSignalSemaphores, cpSignalSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores))) + ref22884025.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown allocs22884025.Borrow(cpSignalSemaphores_allocs) x.ref22884025 = ref22884025 @@ -4551,8 +4428,8 @@ func (x *SubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4652,8 +4529,8 @@ func (x *MappedMemoryRange) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4748,8 +4625,8 @@ func (x *MemoryAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4839,8 +4716,8 @@ func (x *MemoryRequirements) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4940,8 +4817,8 @@ func (x *SparseMemoryBind) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -4954,8 +4831,8 @@ func unpackSSparseMemoryBind(x []SparseMemoryBind) (unpacked *C.VkSparseMemoryBi return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseMemoryBind) { + go allocs.Free() }) len0 := len(x) @@ -5069,8 +4946,8 @@ func (x *SparseBufferMemoryBindInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5160,8 +5037,8 @@ func (x *SparseImageOpaqueMemoryBindInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5251,8 +5128,8 @@ func (x *ImageSubresource) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5357,8 +5234,8 @@ func (x *SparseImageMemoryBind) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5371,8 +5248,8 @@ func unpackSSparseImageMemoryBind(x []SparseImageMemoryBind) (unpacked *C.VkSpar return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBind) { + go allocs.Free() }) len0 := len(x) @@ -5486,8 +5363,8 @@ func (x *SparseImageMemoryBindInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5500,8 +5377,8 @@ func unpackSSparseBufferMemoryBindInfo(x []SparseBufferMemoryBindInfo) (unpacked return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseBufferMemoryBindInfo) { + go allocs.Free() }) len0 := len(x) @@ -5529,8 +5406,8 @@ func unpackSSparseImageOpaqueMemoryBindInfo(x []SparseImageOpaqueMemoryBindInfo) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageOpaqueMemoryBindInfo) { + go allocs.Free() }) len0 := len(x) @@ -5558,8 +5435,8 @@ func unpackSSparseImageMemoryBindInfo(x []SparseImageMemoryBindInfo) (unpacked * return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBindInfo) { + go allocs.Free() }) len0 := len(x) @@ -5662,7 +5539,7 @@ func (x *BindSparseInfo) PassRef() (*C.VkBindSparseInfo, *cgoAllocMap) { allocsb0cbe910.Borrow(cwaitSemaphoreCount_allocs) var cpWaitSemaphores_allocs *cgoAllocMap - refb0cbe910.pWaitSemaphores, cpWaitSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + refb0cbe910.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown allocsb0cbe910.Borrow(cpWaitSemaphores_allocs) var cbufferBindCount_allocs *cgoAllocMap @@ -5694,7 +5571,7 @@ func (x *BindSparseInfo) PassRef() (*C.VkBindSparseInfo, *cgoAllocMap) { allocsb0cbe910.Borrow(csignalSemaphoreCount_allocs) var cpSignalSemaphores_allocs *cgoAllocMap - refb0cbe910.pSignalSemaphores, cpSignalSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores))) + refb0cbe910.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown allocsb0cbe910.Borrow(cpSignalSemaphores_allocs) x.refb0cbe910 = refb0cbe910 @@ -5744,8 +5621,8 @@ func (x *BindSparseInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5835,8 +5712,8 @@ func (x *SparseImageFormatProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -5936,8 +5813,8 @@ func (x *SparseImageMemoryRequirements) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6027,8 +5904,8 @@ func (x *FenceCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6118,8 +5995,8 @@ func (x *SemaphoreCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6209,8 +6086,8 @@ func (x *EventCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6315,43 +6192,14 @@ func (x *QueryPoolCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfBufferCreateInfoValue = unsafe.Sizeof([1]C.VkBufferCreateInfo{}) -// copyPUint32_tBytes copies the data from Go slice as *C.uint32_t. -func copyPUint32_tBytes(slice *sliceHeader) (*C.uint32_t, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfUint32_tValue) * slice.Len, - Cap: int(sizeOfUint32_tValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.uint32_t)(mem0), allocs -} - -// allocUint32_tMemory allocates memory for type C.uint32_t in C. -// The caller is responsible for freeing the this memory via C.free. -func allocUint32_tMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfUint32_tValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfUint32_tValue = unsafe.Sizeof([1]C.uint32_t{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *BufferCreateInfo) Ref() *C.VkBufferCreateInfo { if x == nil { @@ -6422,7 +6270,7 @@ func (x *BufferCreateInfo) PassRef() (*C.VkBufferCreateInfo, *cgoAllocMap) { allocsfe19d2cd.Borrow(cqueueFamilyIndexCount_allocs) var cpQueueFamilyIndices_allocs *cgoAllocMap - reffe19d2cd.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + reffe19d2cd.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown allocsfe19d2cd.Borrow(cpQueueFamilyIndices_allocs) x.reffe19d2cd = reffe19d2cd @@ -6464,8 +6312,8 @@ func (x *BufferCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6575,8 +6423,8 @@ func (x *BufferViewCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6677,7 +6525,7 @@ func (x *ImageCreateInfo) PassRef() (*C.VkImageCreateInfo, *cgoAllocMap) { allocsfb587ba1.Borrow(cqueueFamilyIndexCount_allocs) var cpQueueFamilyIndices_allocs *cgoAllocMap - reffb587ba1.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + reffb587ba1.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown allocsfb587ba1.Borrow(cpQueueFamilyIndices_allocs) var cinitialLayout_allocs *cgoAllocMap @@ -6730,8 +6578,8 @@ func (x *ImageCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6831,8 +6679,8 @@ func (x *SubresourceLayout) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -6927,8 +6775,8 @@ func (x *ComponentMapping) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7043,8 +6891,8 @@ func (x *ImageViewCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7109,7 +6957,7 @@ func (x *ShaderModuleCreateInfo) PassRef() (*C.VkShaderModuleCreateInfo, *cgoAll allocsc663d23e.Borrow(ccodeSize_allocs) var cpCode_allocs *cgoAllocMap - refc663d23e.pCode, cpCode_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCode))) + refc663d23e.pCode, cpCode_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCode)).Data)), cgoAllocsUnknown allocsc663d23e.Borrow(cpCode_allocs) x.refc663d23e = refc663d23e @@ -7136,7 +6984,7 @@ func (x *ShaderModuleCreateInfo) Deref() { x.SType = (StructureType)(x.refc663d23e.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc663d23e.pNext)) x.Flags = (ShaderModuleCreateFlags)(x.refc663d23e.flags) - x.CodeSize = (uint32)(x.refc663d23e.codeSize) + x.CodeSize = (uint64)(x.refc663d23e.codeSize) hxf65bf54 := (*sliceHeader)(unsafe.Pointer(&x.PCode)) hxf65bf54.Data = unsafe.Pointer(x.refc663d23e.pCode) hxf65bf54.Cap = 0x7fffffff @@ -7148,8 +6996,8 @@ func (x *ShaderModuleCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7241,7 +7089,7 @@ func (x *PipelineCacheCreateInfo) Deref() { x.SType = (StructureType)(x.reff11e7dd1.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pNext)) x.Flags = (PipelineCacheCreateFlags)(x.reff11e7dd1.flags) - x.InitialDataSize = (uint32)(x.reff11e7dd1.initialDataSize) + x.InitialDataSize = (uint64)(x.reff11e7dd1.initialDataSize) x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pInitialData)) } @@ -7249,8 +7097,8 @@ func (x *PipelineCacheCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7333,15 +7181,15 @@ func (x *SpecializationMapEntry) Deref() { } x.ConstantID = (uint32)(x.ref2fd815d1.constantID) x.Offset = (uint32)(x.ref2fd815d1.offset) - x.Size = (uint32)(x.ref2fd815d1.size) + 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7354,8 +7202,8 @@ func unpackSSpecializationMapEntry(x []SpecializationMapEntry) (unpacked *C.VkSp return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationMapEntry) { + go allocs.Free() }) len0 := len(x) @@ -7466,7 +7314,7 @@ func (x *SpecializationInfo) Deref() { } x.MapEntryCount = (uint32)(x.ref6bc395a3.mapEntryCount) packSSpecializationMapEntry(x.PMapEntries, x.ref6bc395a3.pMapEntries) - x.DataSize = (uint32)(x.ref6bc395a3.dataSize) + x.DataSize = (uint64)(x.ref6bc395a3.dataSize) x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref6bc395a3.pData)) } @@ -7474,8 +7322,8 @@ func (x *SpecializationInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7488,8 +7336,8 @@ func unpackSSpecializationInfo(x []SpecializationInfo) (unpacked *C.VkSpecializa return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationInfo) { + go allocs.Free() }) len0 := len(x) @@ -7623,8 +7471,8 @@ func (x *PipelineShaderStageCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7734,8 +7582,8 @@ func (x *ComputePipelineCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7825,8 +7673,8 @@ func (x *VertexInputBindingDescription) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7921,8 +7769,8 @@ func (x *VertexInputAttributeDescription) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -7935,8 +7783,8 @@ func unpackSVertexInputBindingDescription(x []VertexInputBindingDescription) (un return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDescription) { + go allocs.Free() }) len0 := len(x) @@ -7964,8 +7812,8 @@ func unpackSVertexInputAttributeDescription(x []VertexInputAttributeDescription) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputAttributeDescription) { + go allocs.Free() }) len0 := len(x) @@ -8108,8 +7956,8 @@ func (x *PipelineVertexInputStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -8209,8 +8057,8 @@ func (x *PipelineInputAssemblyStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -8305,8 +8153,8 @@ func (x *PipelineTessellationStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -8411,8 +8259,8 @@ func (x *Viewport) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -8425,8 +8273,8 @@ func unpackSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocMap) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewport) { + go allocs.Free() }) len0 := len(x) @@ -8454,8 +8302,8 @@ func unpackSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkRect2D) { + go allocs.Free() }) len0 := len(x) @@ -8598,8 +8446,8 @@ func (x *PipelineViewportStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -8739,43 +8587,14 @@ func (x *PipelineRasterizationStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPipelineMultisampleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineMultisampleStateCreateInfo{}) -// copyPSampleMaskBytes copies the data from Go slice as *C.VkSampleMask. -func copyPSampleMaskBytes(slice *sliceHeader) (*C.VkSampleMask, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfSampleMaskValue) * slice.Len, - Cap: int(sizeOfSampleMaskValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkSampleMask)(mem0), allocs -} - -// allocSampleMaskMemory allocates memory for type C.VkSampleMask in C. -// The caller is responsible for freeing the this memory via C.free. -func allocSampleMaskMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleMaskValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfSampleMaskValue = unsafe.Sizeof([1]C.VkSampleMask{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *PipelineMultisampleStateCreateInfo) Ref() *C.VkPipelineMultisampleStateCreateInfo { if x == nil { @@ -8842,7 +8661,7 @@ func (x *PipelineMultisampleStateCreateInfo) PassRef() (*C.VkPipelineMultisample allocsb6538bfb.Borrow(cminSampleShading_allocs) var cpSampleMask_allocs *cgoAllocMap - refb6538bfb.pSampleMask, cpSampleMask_allocs = copyPSampleMaskBytes((*sliceHeader)(unsafe.Pointer(&x.PSampleMask))) + refb6538bfb.pSampleMask, cpSampleMask_allocs = (*C.VkSampleMask)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSampleMask)).Data)), cgoAllocsUnknown allocsb6538bfb.Borrow(cpSampleMask_allocs) var calphaToCoverageEnable_allocs *cgoAllocMap @@ -8893,8 +8712,8 @@ func (x *PipelineMultisampleStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9004,8 +8823,8 @@ func (x *StencilOpState) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9140,8 +8959,8 @@ func (x *PipelineDepthStencilStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9256,8 +9075,8 @@ func (x *PipelineColorBlendAttachmentState) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9270,8 +9089,8 @@ func unpackSPipelineColorBlendAttachmentState(x []PipelineColorBlendAttachmentSt return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineColorBlendAttachmentState) { + go allocs.Free() }) len0 := len(x) @@ -9410,43 +9229,14 @@ func (x *PipelineColorBlendStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPipelineDynamicStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDynamicStateCreateInfo{}) -// copyPDynamicStateBytes copies the data from Go slice as *C.VkDynamicState. -func copyPDynamicStateBytes(slice *sliceHeader) (*C.VkDynamicState, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDynamicStateValue) * slice.Len, - Cap: int(sizeOfDynamicStateValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDynamicState)(mem0), allocs -} - -// allocDynamicStateMemory allocates memory for type C.VkDynamicState in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDynamicStateMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDynamicStateValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDynamicStateValue = unsafe.Sizeof([1]C.VkDynamicState{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *PipelineDynamicStateCreateInfo) Ref() *C.VkPipelineDynamicStateCreateInfo { if x == nil { @@ -9505,7 +9295,7 @@ func (x *PipelineDynamicStateCreateInfo) PassRef() (*C.VkPipelineDynamicStateCre allocs246d7bc8.Borrow(cdynamicStateCount_allocs) var cpDynamicStates_allocs *cgoAllocMap - ref246d7bc8.pDynamicStates, cpDynamicStates_allocs = copyPDynamicStateBytes((*sliceHeader)(unsafe.Pointer(&x.PDynamicStates))) + ref246d7bc8.pDynamicStates, cpDynamicStates_allocs = (*C.VkDynamicState)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDynamicStates)).Data)), cgoAllocsUnknown allocs246d7bc8.Borrow(cpDynamicStates_allocs) x.ref246d7bc8 = ref246d7bc8 @@ -9544,8 +9334,8 @@ func (x *PipelineDynamicStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9558,8 +9348,8 @@ func unpackSPipelineShaderStageCreateInfo(x []PipelineShaderStageCreateInfo) (un return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineShaderStageCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -9753,8 +9543,8 @@ func (x *GraphicsPipelineCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -9844,51 +9634,22 @@ func (x *PushConstantRange) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPipelineLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLayoutCreateInfo{}) -// copyPDescriptorSetLayoutBytes copies the data from Go slice as *C.VkDescriptorSetLayout. -func copyPDescriptorSetLayoutBytes(slice *sliceHeader) (*C.VkDescriptorSetLayout, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDescriptorSetLayoutValue) * slice.Len, - Cap: int(sizeOfDescriptorSetLayoutValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDescriptorSetLayout)(mem0), allocs -} - -// allocDescriptorSetLayoutMemory allocates memory for type C.VkDescriptorSetLayout in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDescriptorSetLayoutValue = unsafe.Sizeof([1]C.VkDescriptorSetLayout{}) - // 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(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPushConstantRange) { + go allocs.Free() }) len0 := len(x) @@ -9977,7 +9738,7 @@ func (x *PipelineLayoutCreateInfo) PassRef() (*C.VkPipelineLayoutCreateInfo, *cg allocs64cc4eed.Borrow(csetLayoutCount_allocs) var cpSetLayouts_allocs *cgoAllocMap - ref64cc4eed.pSetLayouts, cpSetLayouts_allocs = copyPDescriptorSetLayoutBytes((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts))) + ref64cc4eed.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown allocs64cc4eed.Borrow(cpSetLayouts_allocs) var cpushConstantRangeCount_allocs *cgoAllocMap @@ -10026,8 +9787,8 @@ func (x *PipelineLayoutCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10192,8 +9953,8 @@ func (x *SamplerCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10313,8 +10074,8 @@ func (x *CopyDescriptorSet) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10404,8 +10165,8 @@ func (x *DescriptorBufferInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10495,8 +10256,8 @@ func (x *DescriptorImageInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10581,8 +10342,8 @@ func (x *DescriptorPoolSize) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10595,8 +10356,8 @@ func unpackSDescriptorPoolSize(x []DescriptorPoolSize) (unpacked *C.VkDescriptor return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorPoolSize) { + go allocs.Free() }) len0 := len(x) @@ -10725,8 +10486,8 @@ func (x *DescriptorPoolCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10791,7 +10552,7 @@ func (x *DescriptorSetAllocateInfo) PassRef() (*C.VkDescriptorSetAllocateInfo, * allocs2dd6cc22.Borrow(cdescriptorSetCount_allocs) var cpSetLayouts_allocs *cgoAllocMap - ref2dd6cc22.pSetLayouts, cpSetLayouts_allocs = copyPDescriptorSetLayoutBytes((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts))) + ref2dd6cc22.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown allocs2dd6cc22.Borrow(cpSetLayouts_allocs) x.ref2dd6cc22 = ref2dd6cc22 @@ -10830,43 +10591,14 @@ func (x *DescriptorSetAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfDescriptorSetLayoutBindingValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBinding{}) -// copyPSamplerBytes copies the data from Go slice as *C.VkSampler. -func copyPSamplerBytes(slice *sliceHeader) (*C.VkSampler, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfSamplerValue) * slice.Len, - Cap: int(sizeOfSamplerValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkSampler)(mem0), allocs -} - -// allocSamplerMemory allocates memory for type C.VkSampler in C. -// The caller is responsible for freeing the this memory via C.free. -func allocSamplerMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfSamplerValue = unsafe.Sizeof([1]C.VkSampler{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *DescriptorSetLayoutBinding) Ref() *C.VkDescriptorSetLayoutBinding { if x == nil { @@ -10925,7 +10657,7 @@ func (x *DescriptorSetLayoutBinding) PassRef() (*C.VkDescriptorSetLayoutBinding, allocs8b50b4ec.Borrow(cstageFlags_allocs) var cpImmutableSamplers_allocs *cgoAllocMap - ref8b50b4ec.pImmutableSamplers, cpImmutableSamplers_allocs = copyPSamplerBytes((*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers))) + ref8b50b4ec.pImmutableSamplers, cpImmutableSamplers_allocs = (*C.VkSampler)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers)).Data)), cgoAllocsUnknown allocs8b50b4ec.Borrow(cpImmutableSamplers_allocs) x.ref8b50b4ec = ref8b50b4ec @@ -10964,8 +10696,8 @@ func (x *DescriptorSetLayoutBinding) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -10978,8 +10710,8 @@ func unpackSDescriptorSetLayoutBinding(x []DescriptorSetLayoutBinding) (unpacked return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorSetLayoutBinding) { + go allocs.Free() }) len0 := len(x) @@ -11103,8 +10835,8 @@ func (x *DescriptorSetLayoutCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11117,8 +10849,8 @@ func unpackSDescriptorImageInfo(x []DescriptorImageInfo) (unpacked *C.VkDescript return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorImageInfo) { + go allocs.Free() }) len0 := len(x) @@ -11146,8 +10878,8 @@ func unpackSDescriptorBufferInfo(x []DescriptorBufferInfo) (unpacked *C.VkDescri return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorBufferInfo) { + go allocs.Free() }) len0 := len(x) @@ -11169,35 +10901,6 @@ func unpackSDescriptorBufferInfo(x []DescriptorBufferInfo) (unpacked *C.VkDescri return } -// copyPBufferViewBytes copies the data from Go slice as *C.VkBufferView. -func copyPBufferViewBytes(slice *sliceHeader) (*C.VkBufferView, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfBufferViewValue) * slice.Len, - Cap: int(sizeOfBufferViewValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkBufferView)(mem0), allocs -} - -// allocBufferViewMemory allocates memory for type C.VkBufferView in C. -// The caller is responsible for freeing the this memory via C.free. -func allocBufferViewMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferViewValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfBufferViewValue = unsafe.Sizeof([1]C.VkBufferView{}) - // packSDescriptorImageInfo reads sliced Go data structure out from plain C format. func packSDescriptorImageInfo(v []DescriptorImageInfo, ptr0 *C.VkDescriptorImageInfo) { const m = 0x7fffffff @@ -11294,7 +10997,7 @@ func (x *WriteDescriptorSet) PassRef() (*C.VkWriteDescriptorSet, *cgoAllocMap) { allocs3cec3f3f.Borrow(cpBufferInfo_allocs) var cpTexelBufferView_allocs *cgoAllocMap - ref3cec3f3f.pTexelBufferView, cpTexelBufferView_allocs = copyPBufferViewBytes((*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView))) + ref3cec3f3f.pTexelBufferView, cpTexelBufferView_allocs = (*C.VkBufferView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView)).Data)), cgoAllocsUnknown allocs3cec3f3f.Borrow(cpTexelBufferView_allocs) x.ref3cec3f3f = ref3cec3f3f @@ -11338,8 +11041,8 @@ func (x *WriteDescriptorSet) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11459,8 +11162,8 @@ func (x *AttachmentDescription) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11545,43 +11248,14 @@ func (x *AttachmentReference) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfFramebufferCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferCreateInfo{}) -// copyPImageViewBytes copies the data from Go slice as *C.VkImageView. -func copyPImageViewBytes(slice *sliceHeader) (*C.VkImageView, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfImageViewValue) * slice.Len, - Cap: int(sizeOfImageViewValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkImageView)(mem0), allocs -} - -// allocImageViewMemory allocates memory for type C.VkImageView in C. -// The caller is responsible for freeing the this memory via C.free. -func allocImageViewMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfImageViewValue = unsafe.Sizeof([1]C.VkImageView{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *FramebufferCreateInfo) Ref() *C.VkFramebufferCreateInfo { if x == nil { @@ -11644,7 +11318,7 @@ func (x *FramebufferCreateInfo) PassRef() (*C.VkFramebufferCreateInfo, *cgoAlloc allocsa3ad85cc.Borrow(cattachmentCount_allocs) var cpAttachments_allocs *cgoAllocMap - refa3ad85cc.pAttachments, cpAttachments_allocs = copyPImageViewBytes((*sliceHeader)(unsafe.Pointer(&x.PAttachments))) + refa3ad85cc.pAttachments, cpAttachments_allocs = (*C.VkImageView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAttachments)).Data)), cgoAllocsUnknown allocsa3ad85cc.Borrow(cpAttachments_allocs) var cwidth_allocs *cgoAllocMap @@ -11699,8 +11373,8 @@ func (x *FramebufferCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11713,8 +11387,8 @@ func unpackSAttachmentReference(x []AttachmentReference) (unpacked *C.VkAttachme return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference) { + go allocs.Free() }) len0 := len(x) @@ -11823,7 +11497,7 @@ func (x *SubpassDescription) PassRef() (*C.VkSubpassDescription, *cgoAllocMap) { allocsc7bfeda.Borrow(cpreserveAttachmentCount_allocs) var cpPreserveAttachments_allocs *cgoAllocMap - refc7bfeda.pPreserveAttachments, cpPreserveAttachments_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments))) + refc7bfeda.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown allocsc7bfeda.Borrow(cpPreserveAttachments_allocs) x.refc7bfeda = refc7bfeda @@ -11867,8 +11541,8 @@ func (x *SubpassDescription) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11978,8 +11652,8 @@ func (x *SubpassDependency) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -11992,8 +11666,8 @@ func unpackSAttachmentDescription(x []AttachmentDescription) (unpacked *C.VkAtta return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription) { + go allocs.Free() }) len0 := len(x) @@ -12021,8 +11695,8 @@ func unpackSSubpassDescription(x []SubpassDescription) (unpacked *C.VkSubpassDes return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription) { + go allocs.Free() }) len0 := len(x) @@ -12050,8 +11724,8 @@ func unpackSSubpassDependency(x []SubpassDependency) (unpacked *C.VkSubpassDepen return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency) { + go allocs.Free() }) len0 := len(x) @@ -12213,8 +11887,8 @@ func (x *RenderPassCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12309,8 +11983,8 @@ func (x *CommandPoolCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12410,8 +12084,8 @@ func (x *CommandBufferAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12526,8 +12200,8 @@ func (x *CommandBufferInheritanceInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12540,8 +12214,8 @@ func unpackSCommandBufferInheritanceInfo(x []CommandBufferInheritanceInfo) (unpa return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkCommandBufferInheritanceInfo) { + go allocs.Free() }) len0 := len(x) @@ -12660,8 +12334,8 @@ func (x *CommandBufferBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12751,8 +12425,8 @@ func (x *BufferCopy) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12847,8 +12521,8 @@ func (x *ImageSubresourceLayers) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -12953,8 +12627,8 @@ func (x *BufferImageCopy) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13039,8 +12713,8 @@ func (x *ClearDepthStencilValue) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13130,8 +12804,8 @@ func (x *ClearAttachment) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13221,8 +12895,8 @@ func (x *ClearRect) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13233,8 +12907,8 @@ const sizeOfImageBlitValue = unsafe.Sizeof([1]C.VkImageBlit{}) // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13244,8 +12918,8 @@ 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(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(*[2]C.VkOffset3D) { + go allocs.Free() }) mem0 := allocA2Offset3DMemory(1) @@ -13356,8 +13030,8 @@ func (x *ImageBlit) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13457,8 +13131,8 @@ func (x *ImageCopy) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13558,43 +13232,14 @@ func (x *ImageResolve) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassBeginInfo{}) -// copyPClearValueBytes copies the data from Go slice as *C.VkClearValue. -func copyPClearValueBytes(slice *sliceHeader) (*C.VkClearValue, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfClearValueValue) * slice.Len, - Cap: int(sizeOfClearValueValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkClearValue)(mem0), allocs -} - -// allocClearValueMemory allocates memory for type C.VkClearValue in C. -// The caller is responsible for freeing the this memory via C.free. -func allocClearValueMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearValueValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfClearValueValue = unsafe.Sizeof([1]C.VkClearValue{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *RenderPassBeginInfo) Ref() *C.VkRenderPassBeginInfo { if x == nil { @@ -13661,7 +13306,7 @@ func (x *RenderPassBeginInfo) PassRef() (*C.VkRenderPassBeginInfo, *cgoAllocMap) allocs3c3752c8.Borrow(cclearValueCount_allocs) var cpClearValues_allocs *cgoAllocMap - ref3c3752c8.pClearValues, cpClearValues_allocs = copyPClearValueBytes((*sliceHeader)(unsafe.Pointer(&x.PClearValues))) + ref3c3752c8.pClearValues, cpClearValues_allocs = (*C.VkClearValue)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PClearValues)).Data)), cgoAllocsUnknown allocs3c3752c8.Borrow(cpClearValues_allocs) x.ref3c3752c8 = ref3c3752c8 @@ -13702,8 +13347,8 @@ func (x *RenderPassBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13808,8 +13453,8 @@ func (x *PhysicalDeviceSubgroupProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -13909,8 +13554,8 @@ func (x *BindBufferMemoryInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14010,8 +13655,8 @@ func (x *BindImageMemoryInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14116,8 +13761,8 @@ func (x *PhysicalDevice16BitStorageFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14212,8 +13857,8 @@ func (x *MemoryDedicatedRequirements) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14308,8 +13953,8 @@ func (x *MemoryDedicatedAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14404,8 +14049,8 @@ func (x *MemoryAllocateFlagsInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14505,8 +14150,8 @@ func (x *DeviceGroupRenderPassBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14596,8 +14241,8 @@ func (x *DeviceGroupCommandBufferBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14658,7 +14303,7 @@ func (x *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAlloc allocsea4e7ce4.Borrow(cwaitSemaphoreCount_allocs) var cpWaitSemaphoreDeviceIndices_allocs *cgoAllocMap - refea4e7ce4.pWaitSemaphoreDeviceIndices, cpWaitSemaphoreDeviceIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices))) + refea4e7ce4.pWaitSemaphoreDeviceIndices, cpWaitSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown allocsea4e7ce4.Borrow(cpWaitSemaphoreDeviceIndices_allocs) var ccommandBufferCount_allocs *cgoAllocMap @@ -14666,7 +14311,7 @@ func (x *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAlloc allocsea4e7ce4.Borrow(ccommandBufferCount_allocs) var cpCommandBufferDeviceMasks_allocs *cgoAllocMap - refea4e7ce4.pCommandBufferDeviceMasks, cpCommandBufferDeviceMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks))) + refea4e7ce4.pCommandBufferDeviceMasks, cpCommandBufferDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks)).Data)), cgoAllocsUnknown allocsea4e7ce4.Borrow(cpCommandBufferDeviceMasks_allocs) var csignalSemaphoreCount_allocs *cgoAllocMap @@ -14674,7 +14319,7 @@ func (x *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAlloc allocsea4e7ce4.Borrow(csignalSemaphoreCount_allocs) var cpSignalSemaphoreDeviceIndices_allocs *cgoAllocMap - refea4e7ce4.pSignalSemaphoreDeviceIndices, cpSignalSemaphoreDeviceIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices))) + refea4e7ce4.pSignalSemaphoreDeviceIndices, cpSignalSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown allocsea4e7ce4.Borrow(cpSignalSemaphoreDeviceIndices_allocs) x.refea4e7ce4 = refea4e7ce4 @@ -14724,8 +14369,8 @@ func (x *DeviceGroupSubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14820,8 +14465,8 @@ func (x *DeviceGroupBindSparseInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14882,7 +14527,7 @@ func (x *BindBufferMemoryDeviceGroupInfo) PassRef() (*C.VkBindBufferMemoryDevice allocsf136b64f.Borrow(cdeviceIndexCount_allocs) var cpDeviceIndices_allocs *cgoAllocMap - reff136b64f.pDeviceIndices, cpDeviceIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices))) + reff136b64f.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown allocsf136b64f.Borrow(cpDeviceIndices_allocs) x.reff136b64f = reff136b64f @@ -14920,8 +14565,8 @@ func (x *BindBufferMemoryDeviceGroupInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -14982,7 +14627,7 @@ func (x *BindImageMemoryDeviceGroupInfo) PassRef() (*C.VkBindImageMemoryDeviceGr allocs24f026a5.Borrow(cdeviceIndexCount_allocs) var cpDeviceIndices_allocs *cgoAllocMap - ref24f026a5.pDeviceIndices, cpDeviceIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices))) + ref24f026a5.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown allocs24f026a5.Borrow(cpDeviceIndices_allocs) var csplitInstanceBindRegionCount_allocs *cgoAllocMap @@ -15030,8 +14675,8 @@ func (x *BindImageMemoryDeviceGroupInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15131,43 +14776,14 @@ func (x *PhysicalDeviceGroupProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfDeviceGroupDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupDeviceCreateInfo{}) -// copyPPhysicalDeviceBytes copies the data from Go slice as *C.VkPhysicalDevice. -func copyPPhysicalDeviceBytes(slice *sliceHeader) (*C.VkPhysicalDevice, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfPhysicalDeviceValue) * slice.Len, - Cap: int(sizeOfPhysicalDeviceValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkPhysicalDevice)(mem0), allocs -} - -// allocPhysicalDeviceMemory allocates memory for type C.VkPhysicalDevice in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfPhysicalDeviceValue = unsafe.Sizeof([1]C.VkPhysicalDevice{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *DeviceGroupDeviceCreateInfo) Ref() *C.VkDeviceGroupDeviceCreateInfo { if x == nil { @@ -15222,7 +14838,7 @@ func (x *DeviceGroupDeviceCreateInfo) PassRef() (*C.VkDeviceGroupDeviceCreateInf allocsb2275723.Borrow(cphysicalDeviceCount_allocs) var cpPhysicalDevices_allocs *cgoAllocMap - refb2275723.pPhysicalDevices, cpPhysicalDevices_allocs = copyPPhysicalDeviceBytes((*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices))) + refb2275723.pPhysicalDevices, cpPhysicalDevices_allocs = (*C.VkPhysicalDevice)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices)).Data)), cgoAllocsUnknown allocsb2275723.Borrow(cpPhysicalDevices_allocs) x.refb2275723 = refb2275723 @@ -15260,8 +14876,8 @@ func (x *DeviceGroupDeviceCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15351,8 +14967,8 @@ func (x *BufferMemoryRequirementsInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15442,8 +15058,8 @@ func (x *ImageMemoryRequirementsInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15533,8 +15149,8 @@ func (x *ImageSparseMemoryRequirementsInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15624,8 +15240,8 @@ func (x *MemoryRequirements2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15715,8 +15331,8 @@ func (x *SparseImageMemoryRequirements2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15806,8 +15422,8 @@ func (x *PhysicalDeviceFeatures2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15897,8 +15513,8 @@ func (x *PhysicalDeviceProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -15988,8 +15604,8 @@ func (x *FormatProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16079,8 +15695,8 @@ func (x *ImageFormatProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16190,8 +15806,8 @@ func (x *PhysicalDeviceImageFormatInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16281,8 +15897,8 @@ func (x *QueueFamilyProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16372,8 +15988,8 @@ func (x *PhysicalDeviceMemoryProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16463,8 +16079,8 @@ func (x *SparseImageFormatProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16574,8 +16190,8 @@ func (x *PhysicalDeviceSparseImageFormatInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16665,8 +16281,8 @@ func (x *PhysicalDevicePointClippingProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16756,8 +16372,8 @@ func (x *InputAttachmentAspectReference) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16770,8 +16386,8 @@ func unpackSInputAttachmentAspectReference(x []InputAttachmentAspectReference) ( return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkInputAttachmentAspectReference) { + go allocs.Free() }) len0 := len(x) @@ -16890,8 +16506,8 @@ func (x *RenderPassInputAttachmentAspectCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -16981,8 +16597,8 @@ func (x *ImageViewUsageCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17072,43 +16688,14 @@ func (x *PipelineTessellationDomainOriginStateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfRenderPassMultiviewCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassMultiviewCreateInfo{}) -// copyPInt32_tBytes copies the data from Go slice as *C.int32_t. -func copyPInt32_tBytes(slice *sliceHeader) (*C.int32_t, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfInt32_tValue) * slice.Len, - Cap: int(sizeOfInt32_tValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.int32_t)(mem0), allocs -} - -// allocInt32_tMemory allocates memory for type C.int32_t in C. -// The caller is responsible for freeing the this memory via C.free. -func allocInt32_tMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInt32_tValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfInt32_tValue = unsafe.Sizeof([1]C.int32_t{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *RenderPassMultiviewCreateInfo) Ref() *C.VkRenderPassMultiviewCreateInfo { if x == nil { @@ -17163,7 +16750,7 @@ func (x *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreat allocsee413e05.Borrow(csubpassCount_allocs) var cpViewMasks_allocs *cgoAllocMap - refee413e05.pViewMasks, cpViewMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PViewMasks))) + refee413e05.pViewMasks, cpViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewMasks)).Data)), cgoAllocsUnknown allocsee413e05.Borrow(cpViewMasks_allocs) var cdependencyCount_allocs *cgoAllocMap @@ -17171,7 +16758,7 @@ func (x *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreat allocsee413e05.Borrow(cdependencyCount_allocs) var cpViewOffsets_allocs *cgoAllocMap - refee413e05.pViewOffsets, cpViewOffsets_allocs = copyPInt32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PViewOffsets))) + refee413e05.pViewOffsets, cpViewOffsets_allocs = (*C.int32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewOffsets)).Data)), cgoAllocsUnknown allocsee413e05.Borrow(cpViewOffsets_allocs) var ccorrelationMaskCount_allocs *cgoAllocMap @@ -17179,7 +16766,7 @@ func (x *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreat allocsee413e05.Borrow(ccorrelationMaskCount_allocs) var cpCorrelationMasks_allocs *cgoAllocMap - refee413e05.pCorrelationMasks, cpCorrelationMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks))) + refee413e05.pCorrelationMasks, cpCorrelationMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks)).Data)), cgoAllocsUnknown allocsee413e05.Borrow(cpCorrelationMasks_allocs) x.refee413e05 = refee413e05 @@ -17229,8 +16816,8 @@ func (x *RenderPassMultiviewCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17330,8 +16917,8 @@ func (x *PhysicalDeviceMultiviewFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17426,8 +17013,8 @@ func (x *PhysicalDeviceMultiviewProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17606,8 +17193,8 @@ func (x *PhysicalDeviceVariablePointerFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17697,8 +17284,8 @@ func (x *PhysicalDeviceProtectedMemoryFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17788,8 +17375,8 @@ func (x *PhysicalDeviceProtectedMemoryProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17889,8 +17476,8 @@ func (x *DeviceQueueInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -17980,8 +17567,8 @@ func (x *ProtectedSubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18106,8 +17693,8 @@ func (x *SamplerYcbcrConversionCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18197,8 +17784,8 @@ func (x *SamplerYcbcrConversionInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18288,8 +17875,8 @@ func (x *BindImagePlaneMemoryInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18379,8 +17966,8 @@ func (x *ImagePlaneMemoryRequirementsInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18470,8 +18057,8 @@ func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18561,8 +18148,8 @@ func (x *SamplerYcbcrConversionImageFormatProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18659,16 +18246,16 @@ func (x *DescriptorUpdateTemplateEntry) Deref() { x.DstArrayElement = (uint32)(x.refabf78fb7.dstArrayElement) x.DescriptorCount = (uint32)(x.refabf78fb7.descriptorCount) x.DescriptorType = (DescriptorType)(x.refabf78fb7.descriptorType) - x.Offset = (uint32)(x.refabf78fb7.offset) - x.Stride = (uint32)(x.refabf78fb7.stride) + 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18681,8 +18268,8 @@ func unpackSDescriptorUpdateTemplateEntry(x []DescriptorUpdateTemplateEntry) (un return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorUpdateTemplateEntry) { + go allocs.Free() }) len0 := len(x) @@ -18831,8 +18418,8 @@ func (x *DescriptorUpdateTemplateCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -18922,8 +18509,8 @@ func (x *ExternalMemoryProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19013,8 +18600,8 @@ func (x *PhysicalDeviceExternalImageFormatInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19104,8 +18691,8 @@ func (x *ExternalImageFormatProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19205,8 +18792,8 @@ func (x *PhysicalDeviceExternalBufferInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19296,8 +18883,8 @@ func (x *ExternalBufferProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19407,8 +18994,8 @@ func (x *PhysicalDeviceIDProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19498,8 +19085,8 @@ func (x *ExternalMemoryImageCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19589,8 +19176,8 @@ func (x *ExternalMemoryBufferCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19680,8 +19267,8 @@ func (x *ExportMemoryAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19771,8 +19358,8 @@ func (x *PhysicalDeviceExternalFenceInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19872,8 +19459,8 @@ func (x *ExternalFenceProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -19963,8 +19550,8 @@ func (x *ExportFenceCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20054,8 +19641,8 @@ func (x *ExportSemaphoreCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20145,8 +19732,8 @@ func (x *PhysicalDeviceExternalSemaphoreInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20246,8 +19833,8 @@ func (x *ExternalSemaphoreProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20342,8 +19929,8 @@ func (x *PhysicalDeviceMaintenance3Properties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20433,8 +20020,8 @@ func (x *DescriptorSetLayoutSupport) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20603,8 +20190,8 @@ func (x *PhysicalDeviceShaderDrawParameterFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20749,8 +20336,8 @@ func (x *PhysicalDeviceVulkan11Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -20910,8 +20497,8 @@ func (x *PhysicalDeviceVulkan11Properties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -21231,8 +20818,8 @@ func (x *PhysicalDeviceVulkan12Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -21327,8 +20914,8 @@ func (x *ConformanceVersion) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -21673,43 +21260,14 @@ func (x *PhysicalDeviceVulkan12Properties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfImageFormatListCreateInfoValue = unsafe.Sizeof([1]C.VkImageFormatListCreateInfo{}) -// copyPFormatBytes copies the data from Go slice as *C.VkFormat. -func copyPFormatBytes(slice *sliceHeader) (*C.VkFormat, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfFormatValue) * slice.Len, - Cap: int(sizeOfFormatValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkFormat)(mem0), allocs -} - -// allocFormatMemory allocates memory for type C.VkFormat in C. -// The caller is responsible for freeing the this memory via C.free. -func allocFormatMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfFormatValue = unsafe.Sizeof([1]C.VkFormat{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *ImageFormatListCreateInfo) Ref() *C.VkImageFormatListCreateInfo { if x == nil { @@ -21764,7 +21322,7 @@ func (x *ImageFormatListCreateInfo) PassRef() (*C.VkImageFormatListCreateInfo, * allocs76fdc95e.Borrow(cviewFormatCount_allocs) var cpViewFormats_allocs *cgoAllocMap - ref76fdc95e.pViewFormats, cpViewFormats_allocs = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PViewFormats))) + ref76fdc95e.pViewFormats, cpViewFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewFormats)).Data)), cgoAllocsUnknown allocs76fdc95e.Borrow(cpViewFormats_allocs) x.ref76fdc95e = ref76fdc95e @@ -21802,8 +21360,8 @@ func (x *ImageFormatListCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -21933,8 +21491,8 @@ func (x *AttachmentDescription2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22034,8 +21592,8 @@ func (x *AttachmentReference2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22048,8 +21606,8 @@ func unpackSAttachmentReference2(x []AttachmentReference2) (unpacked *C.VkAttach return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference2) { + go allocs.Free() }) len0 := len(x) @@ -22170,7 +21728,7 @@ func (x *SubpassDescription2) PassRef() (*C.VkSubpassDescription2, *cgoAllocMap) allocs7cdffe39.Borrow(cpreserveAttachmentCount_allocs) var cpPreserveAttachments_allocs *cgoAllocMap - ref7cdffe39.pPreserveAttachments, cpPreserveAttachments_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments))) + ref7cdffe39.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown allocs7cdffe39.Borrow(cpPreserveAttachments_allocs) x.ref7cdffe39 = ref7cdffe39 @@ -22217,8 +21775,8 @@ func (x *SubpassDescription2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22343,8 +21901,8 @@ func (x *SubpassDependency2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22357,8 +21915,8 @@ func unpackSAttachmentDescription2(x []AttachmentDescription2) (unpacked *C.VkAt return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription2) { + go allocs.Free() }) len0 := len(x) @@ -22386,8 +21944,8 @@ func unpackSSubpassDescription2(x []SubpassDescription2) (unpacked *C.VkSubpassD return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription2) { + go allocs.Free() }) len0 := len(x) @@ -22415,8 +21973,8 @@ func unpackSSubpassDependency2(x []SubpassDependency2) (unpacked *C.VkSubpassDep return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency2) { + go allocs.Free() }) len0 := len(x) @@ -22547,7 +22105,7 @@ func (x *RenderPassCreateInfo2) PassRef() (*C.VkRenderPassCreateInfo2, *cgoAlloc allocs1e86f565.Borrow(ccorrelatedViewMaskCount_allocs) var cpCorrelatedViewMasks_allocs *cgoAllocMap - ref1e86f565.pCorrelatedViewMasks, cpCorrelatedViewMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks))) + ref1e86f565.pCorrelatedViewMasks, cpCorrelatedViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks)).Data)), cgoAllocsUnknown allocs1e86f565.Borrow(cpCorrelatedViewMasks_allocs) x.ref1e86f565 = ref1e86f565 @@ -22592,8 +22150,8 @@ func (x *RenderPassCreateInfo2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22683,8 +22241,8 @@ func (x *SubpassBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22769,8 +22327,8 @@ func (x *SubpassEndInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22870,8 +22428,8 @@ func (x *PhysicalDevice8BitStorageFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -22976,8 +22534,8 @@ func (x *PhysicalDeviceDriverProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23072,8 +22630,8 @@ func (x *PhysicalDeviceShaderAtomicInt64Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23168,8 +22726,8 @@ func (x *PhysicalDeviceShaderFloat16Int8Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23339,43 +22897,14 @@ func (x *PhysicalDeviceFloatControlsProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBindingFlagsCreateInfo{}) -// copyPDescriptorBindingFlagsBytes copies the data from Go slice as *C.VkDescriptorBindingFlags. -func copyPDescriptorBindingFlagsBytes(slice *sliceHeader) (*C.VkDescriptorBindingFlags, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDescriptorBindingFlagsValue) * slice.Len, - Cap: int(sizeOfDescriptorBindingFlagsValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDescriptorBindingFlags)(mem0), allocs -} - -// allocDescriptorBindingFlagsMemory allocates memory for type C.VkDescriptorBindingFlags in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDescriptorBindingFlagsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBindingFlagsValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDescriptorBindingFlagsValue = unsafe.Sizeof([1]C.VkDescriptorBindingFlags{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Ref() *C.VkDescriptorSetLayoutBindingFlagsCreateInfo { if x == nil { @@ -23430,7 +22959,7 @@ func (x *DescriptorSetLayoutBindingFlagsCreateInfo) PassRef() (*C.VkDescriptorSe allocs84838c4d.Borrow(cbindingCount_allocs) var cpBindingFlags_allocs *cgoAllocMap - ref84838c4d.pBindingFlags, cpBindingFlags_allocs = copyPDescriptorBindingFlagsBytes((*sliceHeader)(unsafe.Pointer(&x.PBindingFlags))) + ref84838c4d.pBindingFlags, cpBindingFlags_allocs = (*C.VkDescriptorBindingFlags)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PBindingFlags)).Data)), cgoAllocsUnknown allocs84838c4d.Borrow(cpBindingFlags_allocs) x.ref84838c4d = ref84838c4d @@ -23468,8 +22997,8 @@ func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23654,8 +23183,8 @@ func (x *PhysicalDeviceDescriptorIndexingFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23855,8 +23384,8 @@ func (x *PhysicalDeviceDescriptorIndexingProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -23917,7 +23446,7 @@ func (x *DescriptorSetVariableDescriptorCountAllocateInfo) PassRef() (*C.VkDescr allocs7969c9a7.Borrow(cdescriptorSetCount_allocs) var cpDescriptorCounts_allocs *cgoAllocMap - ref7969c9a7.pDescriptorCounts, cpDescriptorCounts_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts))) + ref7969c9a7.pDescriptorCounts, cpDescriptorCounts_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts)).Data)), cgoAllocsUnknown allocs7969c9a7.Borrow(cpDescriptorCounts_allocs) x.ref7969c9a7 = ref7969c9a7 @@ -23955,8 +23484,8 @@ func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24046,8 +23575,8 @@ func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24147,8 +23676,8 @@ func (x *SubpassDescriptionDepthStencilResolve) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24253,8 +23782,8 @@ func (x *PhysicalDeviceDepthStencilResolveProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24344,8 +23873,8 @@ func (x *PhysicalDeviceScalarBlockLayoutFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24435,8 +23964,8 @@ func (x *ImageStencilUsageCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24526,8 +24055,8 @@ func (x *SamplerReductionModeCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24622,8 +24151,8 @@ func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24723,8 +24252,8 @@ func (x *PhysicalDeviceVulkanMemoryModelFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24814,8 +24343,8 @@ func (x *PhysicalDeviceImagelessFramebufferFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24896,7 +24425,7 @@ func (x *FramebufferAttachmentImageInfo) PassRef() (*C.VkFramebufferAttachmentIm allocse569691c.Borrow(cviewFormatCount_allocs) var cpViewFormats_allocs *cgoAllocMap - refe569691c.pViewFormats, cpViewFormats_allocs = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PViewFormats))) + refe569691c.pViewFormats, cpViewFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewFormats)).Data)), cgoAllocsUnknown allocse569691c.Borrow(cpViewFormats_allocs) x.refe569691c = refe569691c @@ -24939,8 +24468,8 @@ func (x *FramebufferAttachmentImageInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -24953,8 +24482,8 @@ func unpackSFramebufferAttachmentImageInfo(x []FramebufferAttachmentImageInfo) ( return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkFramebufferAttachmentImageInfo) { + go allocs.Free() }) len0 := len(x) @@ -25073,8 +24602,8 @@ func (x *FramebufferAttachmentsCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25135,7 +24664,7 @@ func (x *RenderPassAttachmentBeginInfo) PassRef() (*C.VkRenderPassAttachmentBegi allocs5c976537.Borrow(cattachmentCount_allocs) var cpAttachments_allocs *cgoAllocMap - ref5c976537.pAttachments, cpAttachments_allocs = copyPImageViewBytes((*sliceHeader)(unsafe.Pointer(&x.PAttachments))) + ref5c976537.pAttachments, cpAttachments_allocs = (*C.VkImageView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAttachments)).Data)), cgoAllocsUnknown allocs5c976537.Borrow(cpAttachments_allocs) x.ref5c976537 = ref5c976537 @@ -25173,8 +24702,8 @@ func (x *RenderPassAttachmentBeginInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25264,8 +24793,8 @@ func (x *PhysicalDeviceUniformBufferStandardLayoutFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25355,8 +24884,8 @@ func (x *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25446,8 +24975,8 @@ func (x *PhysicalDeviceSeparateDepthStencilLayoutsFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25537,8 +25066,8 @@ func (x *AttachmentReferenceStencilLayout) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25633,8 +25162,8 @@ func (x *AttachmentDescriptionStencilLayout) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25724,8 +25253,8 @@ func (x *PhysicalDeviceHostQueryResetFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25815,8 +25344,8 @@ func (x *PhysicalDeviceTimelineSemaphoreFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -25906,8 +25435,8 @@ func (x *PhysicalDeviceTimelineSemaphoreProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26002,43 +25531,14 @@ func (x *SemaphoreTypeCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfTimelineSemaphoreSubmitInfoValue = unsafe.Sizeof([1]C.VkTimelineSemaphoreSubmitInfo{}) -// copyPUint64_tBytes copies the data from Go slice as *C.uint64_t. -func copyPUint64_tBytes(slice *sliceHeader) (*C.uint64_t, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfUint64_tValue) * slice.Len, - Cap: int(sizeOfUint64_tValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.uint64_t)(mem0), allocs -} - -// allocUint64_tMemory allocates memory for type C.uint64_t in C. -// The caller is responsible for freeing the this memory via C.free. -func allocUint64_tMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfUint64_tValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfUint64_tValue = unsafe.Sizeof([1]C.uint64_t{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *TimelineSemaphoreSubmitInfo) Ref() *C.VkTimelineSemaphoreSubmitInfo { if x == nil { @@ -26093,7 +25593,7 @@ func (x *TimelineSemaphoreSubmitInfo) PassRef() (*C.VkTimelineSemaphoreSubmitInf allocsc447a049.Borrow(cwaitSemaphoreValueCount_allocs) var cpWaitSemaphoreValues_allocs *cgoAllocMap - refc447a049.pWaitSemaphoreValues, cpWaitSemaphoreValues_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreValues))) + refc447a049.pWaitSemaphoreValues, cpWaitSemaphoreValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreValues)).Data)), cgoAllocsUnknown allocsc447a049.Borrow(cpWaitSemaphoreValues_allocs) var csignalSemaphoreValueCount_allocs *cgoAllocMap @@ -26101,7 +25601,7 @@ func (x *TimelineSemaphoreSubmitInfo) PassRef() (*C.VkTimelineSemaphoreSubmitInf allocsc447a049.Borrow(csignalSemaphoreValueCount_allocs) var cpSignalSemaphoreValues_allocs *cgoAllocMap - refc447a049.pSignalSemaphoreValues, cpSignalSemaphoreValues_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreValues))) + refc447a049.pSignalSemaphoreValues, cpSignalSemaphoreValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreValues)).Data)), cgoAllocsUnknown allocsc447a049.Borrow(cpSignalSemaphoreValues_allocs) x.refc447a049 = refc447a049 @@ -26145,8 +25645,8 @@ func (x *TimelineSemaphoreSubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26211,11 +25711,11 @@ func (x *SemaphoreWaitInfo) PassRef() (*C.VkSemaphoreWaitInfo, *cgoAllocMap) { allocs5e4f71e8.Borrow(csemaphoreCount_allocs) var cpSemaphores_allocs *cgoAllocMap - ref5e4f71e8.pSemaphores, cpSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PSemaphores))) + 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 = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PValues))) + ref5e4f71e8.pValues, cpValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PValues)).Data)), cgoAllocsUnknown allocs5e4f71e8.Borrow(cpValues_allocs) x.ref5e4f71e8 = ref5e4f71e8 @@ -26259,8 +25759,8 @@ func (x *SemaphoreWaitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26355,8 +25855,8 @@ func (x *SemaphoreSignalInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26456,8 +25956,8 @@ func (x *PhysicalDeviceBufferDeviceAddressFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26547,8 +26047,8 @@ func (x *BufferDeviceAddressInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26638,8 +26138,8 @@ func (x *BufferOpaqueCaptureAddressCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26729,8 +26229,8 @@ func (x *MemoryOpaqueCaptureAddressAllocateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26820,8 +26320,8 @@ func (x *DeviceMemoryOpaqueCaptureAddressInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -26981,8 +26481,8 @@ func (x *PhysicalDeviceVulkan13Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27292,8 +26792,8 @@ func (x *PhysicalDeviceVulkan13Properties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27378,8 +26878,8 @@ func (x *PipelineCreationFeedback) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27392,8 +26892,8 @@ func unpackSPipelineCreationFeedback(x []PipelineCreationFeedback) (unpacked *C. return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineCreationFeedback) { + go allocs.Free() }) len0 := len(x) @@ -27517,8 +27017,8 @@ func (x *PipelineCreationFeedbackCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27608,8 +27108,8 @@ func (x *PhysicalDeviceShaderTerminateInvocationFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27719,8 +27219,8 @@ func (x *PhysicalDeviceToolProperties) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27810,8 +27310,8 @@ func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27901,8 +27401,8 @@ func (x *PhysicalDevicePrivateDataFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -27992,8 +27492,8 @@ func (x *DevicePrivateDataCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28083,8 +27583,8 @@ func (x *PrivateDataSlotCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28174,8 +27674,8 @@ func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28280,8 +27780,8 @@ func (x *MemoryBarrier2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28411,8 +27911,8 @@ func (x *BufferMemoryBarrier2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28547,8 +28047,8 @@ func (x *ImageMemoryBarrier2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28561,8 +28061,8 @@ func unpackSMemoryBarrier2(x []MemoryBarrier2) (unpacked *C.VkMemoryBarrier2, al return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkMemoryBarrier2) { + go allocs.Free() }) len0 := len(x) @@ -28590,8 +28090,8 @@ func unpackSBufferMemoryBarrier2(x []BufferMemoryBarrier2) (unpacked *C.VkBuffer return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferMemoryBarrier2) { + go allocs.Free() }) len0 := len(x) @@ -28619,8 +28119,8 @@ func unpackSImageMemoryBarrier2(x []ImageMemoryBarrier2) (unpacked *C.VkImageMem return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageMemoryBarrier2) { + go allocs.Free() }) len0 := len(x) @@ -28782,8 +28282,8 @@ func (x *DependencyInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28888,8 +28388,8 @@ func (x *SemaphoreSubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28984,8 +28484,8 @@ func (x *CommandBufferSubmitInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -28998,8 +28498,8 @@ func unpackSSemaphoreSubmitInfo(x []SemaphoreSubmitInfo) (unpacked *C.VkSemaphor return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSemaphoreSubmitInfo) { + go allocs.Free() }) len0 := len(x) @@ -29027,8 +28527,8 @@ func unpackSCommandBufferSubmitInfo(x []CommandBufferSubmitInfo) (unpacked *C.Vk return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkCommandBufferSubmitInfo) { + go allocs.Free() }) len0 := len(x) @@ -29181,8 +28681,8 @@ func (x *SubmitInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceSynchronization2FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSynchronization2FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29272,8 +28772,8 @@ func (x *PhysicalDeviceSynchronization2Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29363,8 +28863,8 @@ func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceImageRobustnessFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageRobustnessFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29454,8 +28954,8 @@ func (x *PhysicalDeviceImageRobustnessFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBufferCopy2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCopy2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29555,8 +29055,8 @@ func (x *BufferCopy2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCopyBufferInfo2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferInfo2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29569,8 +29069,8 @@ func unpackSBufferCopy2(x []BufferCopy2) (unpacked *C.VkBufferCopy2, allocs *cgo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCopy2) { + go allocs.Free() }) len0 := len(x) @@ -29699,8 +29199,8 @@ func (x *CopyBufferInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageCopy2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCopy2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29810,8 +29310,8 @@ func (x *ImageCopy2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCopyImageInfo2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageInfo2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -29824,8 +29324,8 @@ func unpackSImageCopy2(x []ImageCopy2) (unpacked *C.VkImageCopy2, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCopy2) { + go allocs.Free() }) len0 := len(x) @@ -29964,8 +29464,8 @@ func (x *CopyImageInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBufferImageCopy2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferImageCopy2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30080,8 +29580,8 @@ func (x *BufferImageCopy2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCopyBufferToImageInfo2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferToImageInfo2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30094,8 +29594,8 @@ func unpackSBufferImageCopy2(x []BufferImageCopy2) (unpacked *C.VkBufferImageCop return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferImageCopy2) { + go allocs.Free() }) len0 := len(x) @@ -30229,8 +29729,8 @@ func (x *CopyBufferToImageInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCopyImageToBufferInfo2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageToBufferInfo2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30340,8 +29840,8 @@ func (x *CopyImageToBufferInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageBlit2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageBlit2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30446,8 +29946,8 @@ func (x *ImageBlit2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBlitImageInfo2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBlitImageInfo2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30460,8 +29960,8 @@ func unpackSImageBlit2(x []ImageBlit2) (unpacked *C.VkImageBlit2, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageBlit2) { + go allocs.Free() }) len0 := len(x) @@ -30605,8 +30105,8 @@ func (x *BlitImageInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageResolve2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageResolve2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30716,8 +30216,8 @@ func (x *ImageResolve2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30730,8 +30230,8 @@ func unpackSImageResolve2(x []ImageResolve2) (unpacked *C.VkImageResolve2, alloc return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageResolve2) { + go allocs.Free() }) len0 := len(x) @@ -30870,8 +30370,8 @@ func (x *ResolveImageInfo2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceSubgroupSizeControlFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -30966,8 +30466,8 @@ func (x *PhysicalDeviceSubgroupSizeControlFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceSubgroupSizeControlPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31072,8 +30572,8 @@ func (x *PhysicalDeviceSubgroupSizeControlProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineShaderStageRequiredSubgroupSizeCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31163,8 +30663,8 @@ func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31259,8 +30759,8 @@ func (x *PhysicalDeviceInlineUniformBlockFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31370,8 +30870,8 @@ func (x *PhysicalDeviceInlineUniformBlockProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31466,8 +30966,8 @@ func (x *WriteDescriptorSetInlineUniformBlock) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31557,8 +31057,8 @@ func (x *DescriptorPoolInlineUniformBlockCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTextureCompressionASTCHDRFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31648,8 +31148,8 @@ func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocRenderingAttachmentInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingAttachmentInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31774,8 +31274,8 @@ func (x *RenderingAttachmentInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocRenderingInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -31788,8 +31288,8 @@ func unpackSRenderingAttachmentInfo(x []RenderingAttachmentInfo) (unpacked *C.Vk return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkRenderingAttachmentInfo) { + go allocs.Free() }) len0 := len(x) @@ -31938,8 +31438,8 @@ func (x *RenderingInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineRenderingCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRenderingCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32004,7 +31504,7 @@ func (x *PipelineRenderingCreateInfo) PassRef() (*C.VkPipelineRenderingCreateInf allocs2f948283.Borrow(ccolorAttachmentCount_allocs) var cpColorAttachmentFormats_allocs *cgoAllocMap - ref2f948283.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats))) + ref2f948283.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)).Data)), cgoAllocsUnknown allocs2f948283.Borrow(cpColorAttachmentFormats_allocs) var cdepthAttachmentFormat_allocs *cgoAllocMap @@ -32053,8 +31553,8 @@ func (x *PipelineRenderingCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32144,8 +31644,8 @@ func (x *PhysicalDeviceDynamicRenderingFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32214,7 +31714,7 @@ func (x *CommandBufferInheritanceRenderingInfo) PassRef() (*C.VkCommandBufferInh allocsf704c204.Borrow(ccolorAttachmentCount_allocs) var cpColorAttachmentFormats_allocs *cgoAllocMap - reff704c204.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = copyPFormatBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats))) + reff704c204.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)).Data)), cgoAllocsUnknown allocsf704c204.Borrow(cpColorAttachmentFormats_allocs) var cdepthAttachmentFormat_allocs *cgoAllocMap @@ -32269,8 +31769,8 @@ func (x *CommandBufferInheritanceRenderingInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32360,8 +31860,8 @@ func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32596,8 +32096,8 @@ func (x *PhysicalDeviceShaderIntegerDotProductProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32702,8 +32202,8 @@ func (x *PhysicalDeviceTexelBufferAlignmentProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocFormatProperties3Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatProperties3Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32803,8 +32303,8 @@ func (x *FormatProperties3) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMaintenance4FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32894,8 +32394,8 @@ func (x *PhysicalDeviceMaintenance4Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMaintenance4PropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4PropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32985,8 +32485,8 @@ func (x *PhysicalDeviceMaintenance4Properties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDeviceBufferMemoryRequirementsMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceBufferMemoryRequirementsValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -32999,8 +32499,8 @@ func unpackSBufferCreateInfo(x []BufferCreateInfo) (unpacked *C.VkBufferCreateIn return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -33114,8 +32614,8 @@ func (x *DeviceBufferMemoryRequirements) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDeviceImageMemoryRequirementsMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceImageMemoryRequirementsValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -33128,8 +32628,8 @@ func unpackSImageCreateInfo(x []ImageCreateInfo) (unpacked *C.VkImageCreateInfo, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -33248,8 +32748,8 @@ func (x *DeviceImageMemoryRequirements) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -33374,8 +32874,8 @@ func (x *SurfaceCapabilities) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -33460,8 +32960,8 @@ func (x *SurfaceFormat) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -33558,7 +33058,7 @@ func (x *SwapchainCreateInfo) PassRef() (*C.VkSwapchainCreateInfoKHR, *cgoAllocM allocsdb619e1c.Borrow(cqueueFamilyIndexCount_allocs) var cpQueueFamilyIndices_allocs *cgoAllocMap - refdb619e1c.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + refdb619e1c.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown allocsdb619e1c.Borrow(cpQueueFamilyIndices_allocs) var cpreTransform_allocs *cgoAllocMap @@ -33630,72 +33130,14 @@ func (x *SwapchainCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPresentInfoValue = unsafe.Sizeof([1]C.VkPresentInfoKHR{}) -// copyPSwapchainBytes copies the data from Go slice as *C.VkSwapchainKHR. -func copyPSwapchainBytes(slice *sliceHeader) (*C.VkSwapchainKHR, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfSwapchainValue) * slice.Len, - Cap: int(sizeOfSwapchainValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkSwapchainKHR)(mem0), allocs -} - -// allocSwapchainMemory allocates memory for type C.VkSwapchainKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocSwapchainMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfSwapchainValue = unsafe.Sizeof([1]C.VkSwapchainKHR{}) - -// copyPResultBytes copies the data from Go slice as *C.VkResult. -func copyPResultBytes(slice *sliceHeader) (*C.VkResult, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfResultValue) * slice.Len, - Cap: int(sizeOfResultValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkResult)(mem0), allocs -} - -// allocResultMemory allocates memory for type C.VkResult in C. -// The caller is responsible for freeing the this memory via C.free. -func allocResultMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfResultValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfResultValue = unsafe.Sizeof([1]C.VkResult{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *PresentInfo) Ref() *C.VkPresentInfoKHR { if x == nil { @@ -33750,7 +33192,7 @@ func (x *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *cgoAllocMap) { allocs1d0e82d4.Borrow(cwaitSemaphoreCount_allocs) var cpWaitSemaphores_allocs *cgoAllocMap - ref1d0e82d4.pWaitSemaphores, cpWaitSemaphores_allocs = copyPSemaphoreBytes((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores))) + ref1d0e82d4.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown allocs1d0e82d4.Borrow(cpWaitSemaphores_allocs) var cswapchainCount_allocs *cgoAllocMap @@ -33758,15 +33200,15 @@ func (x *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *cgoAllocMap) { allocs1d0e82d4.Borrow(cswapchainCount_allocs) var cpSwapchains_allocs *cgoAllocMap - ref1d0e82d4.pSwapchains, cpSwapchains_allocs = copyPSwapchainBytes((*sliceHeader)(unsafe.Pointer(&x.PSwapchains))) + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PImageIndices))) + 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 = copyPResultBytes((*sliceHeader)(unsafe.Pointer(&x.PResults))) + ref1d0e82d4.pResults, cpResults_allocs = (*C.VkResult)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PResults)).Data)), cgoAllocsUnknown allocs1d0e82d4.Borrow(cpResults_allocs) x.ref1d0e82d4 = ref1d0e82d4 @@ -33820,8 +33262,8 @@ func (x *PresentInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -33911,8 +33353,8 @@ func (x *ImageSwapchainCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34007,8 +33449,8 @@ func (x *BindImageMemorySwapchainInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34118,8 +33560,8 @@ func (x *AcquireNextImageInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34214,8 +33656,8 @@ func (x *DeviceGroupPresentCapabilities) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34276,7 +33718,7 @@ func (x *DeviceGroupPresentInfo) PassRef() (*C.VkDeviceGroupPresentInfoKHR, *cgo allocsf6912d09.Borrow(cswapchainCount_allocs) var cpDeviceMasks_allocs *cgoAllocMap - reff6912d09.pDeviceMasks, cpDeviceMasks_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks))) + reff6912d09.pDeviceMasks, cpDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks)).Data)), cgoAllocsUnknown allocsf6912d09.Borrow(cpDeviceMasks_allocs) var cmode_allocs *cgoAllocMap @@ -34319,8 +33761,8 @@ func (x *DeviceGroupPresentInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34410,8 +33852,8 @@ func (x *DeviceGroupSwapchainCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34496,8 +33938,8 @@ func (x *DisplayModeParameters) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34592,8 +34034,8 @@ func (x *DisplayModeCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34678,8 +34120,8 @@ func (x *DisplayModeProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34799,8 +34241,8 @@ func (x *DisplayPlaneCapabilities) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34885,8 +34327,8 @@ func (x *DisplayPlaneProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -34996,8 +34438,8 @@ func (x *DisplayProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35122,8 +34564,8 @@ func (x *DisplaySurfaceCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35223,8 +34665,8 @@ func (x *DisplayPresentInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocRenderingFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentShadingRateAttachmentInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35324,8 +34766,8 @@ func (x *RenderingFragmentShadingRateAttachmentInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35420,43 +34862,14 @@ func (x *RenderingFragmentDensityMapAttachmentInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocAttachmentSampleCountInfoAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleCountInfoAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfAttachmentSampleCountInfoAMDValue = unsafe.Sizeof([1]C.VkAttachmentSampleCountInfoAMD{}) -// copyPSampleCountFlagBitsBytes copies the data from Go slice as *C.VkSampleCountFlagBits. -func copyPSampleCountFlagBitsBytes(slice *sliceHeader) (*C.VkSampleCountFlagBits, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfSampleCountFlagBitsValue) * slice.Len, - Cap: int(sizeOfSampleCountFlagBitsValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkSampleCountFlagBits)(mem0), allocs -} - -// allocSampleCountFlagBitsMemory allocates memory for type C.VkSampleCountFlagBits in C. -// The caller is responsible for freeing the this memory via C.free. -func allocSampleCountFlagBitsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleCountFlagBitsValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfSampleCountFlagBitsValue = unsafe.Sizeof([1]C.VkSampleCountFlagBits{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *AttachmentSampleCountInfoAMD) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { @@ -35511,7 +34924,7 @@ func (x *AttachmentSampleCountInfoAMD) PassRef() (*C.VkAttachmentSampleCountInfo allocseef56262.Borrow(ccolorAttachmentCount_allocs) var cpColorAttachmentSamples_allocs *cgoAllocMap - refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = copyPSampleCountFlagBitsBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples))) + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown allocseef56262.Borrow(cpColorAttachmentSamples_allocs) var cdepthStencilAttachmentSamples_allocs *cgoAllocMap @@ -35604,7 +35017,7 @@ func (x *AttachmentSampleCountInfoNV) PassRef() (*C.VkAttachmentSampleCountInfoA allocseef56262.Borrow(ccolorAttachmentCount_allocs) var cpColorAttachmentSamples_allocs *cgoAllocMap - refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = copyPSampleCountFlagBitsBytes((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples))) + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown allocseef56262.Borrow(cpColorAttachmentSamples_allocs) var cdepthStencilAttachmentSamples_allocs *cgoAllocMap @@ -35647,8 +35060,8 @@ func (x *AttachmentSampleCountInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMultiviewPerViewAttributesInfoNVXMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiviewPerViewAttributesInfoNVXValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35743,8 +35156,8 @@ func (x *MultiviewPerViewAttributesInfoNVX) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35839,8 +35252,8 @@ func (x *ImportMemoryFdInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -35930,8 +35343,8 @@ func (x *MemoryFdProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36026,8 +35439,8 @@ func (x *MemoryGetFdInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36132,8 +35545,8 @@ func (x *ImportSemaphoreFdInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36228,8 +35641,8 @@ func (x *SemaphoreGetFdInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36403,8 +35816,8 @@ func (x *PhysicalDeviceFloat16Int8Features) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36494,8 +35907,8 @@ func (x *RectLayer) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36508,8 +35921,8 @@ func unpackSRectLayer(x []RectLayer) (unpacked *C.VkRectLayerKHR, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkRectLayerKHR) { + go allocs.Free() }) len0 := len(x) @@ -36618,8 +36031,8 @@ func (x *PresentRegion) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36632,8 +36045,8 @@ func unpackSPresentRegion(x []PresentRegion) (unpacked *C.VkPresentRegionKHR, al return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentRegionKHR) { + go allocs.Free() }) len0 := len(x) @@ -36752,8 +36165,8 @@ func (x *PresentRegions) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36843,8 +36256,8 @@ func (x *SharedPresentSurfaceCapabilities) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -36949,8 +36362,8 @@ func (x *ImportFenceFdInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37045,8 +36458,8 @@ func (x *FenceGetFdInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePerformanceQueryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37141,8 +36554,8 @@ func (x *PhysicalDevicePerformanceQueryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePerformanceQueryPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37232,8 +36645,8 @@ func (x *PhysicalDevicePerformanceQueryProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceCounterMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37338,8 +36751,8 @@ func (x *PerformanceCounter) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceCounterDescriptionMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterDescriptionValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37444,8 +36857,8 @@ func (x *PerformanceCounterDescription) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocQueryPoolPerformanceCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37510,7 +36923,7 @@ func (x *QueryPoolPerformanceCreateInfo) PassRef() (*C.VkQueryPoolPerformanceCre allocs55afa561.Borrow(ccounterIndexCount_allocs) var cpCounterIndices_allocs *cgoAllocMap - ref55afa561.pCounterIndices, cpCounterIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PCounterIndices))) + ref55afa561.pCounterIndices, cpCounterIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)).Data)), cgoAllocsUnknown allocs55afa561.Borrow(cpCounterIndices_allocs) x.ref55afa561 = ref55afa561 @@ -37549,8 +36962,8 @@ func (x *QueryPoolPerformanceCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocAcquireProfilingLockInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireProfilingLockInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37645,8 +37058,8 @@ func (x *AcquireProfilingLockInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceQuerySubmitInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceQuerySubmitInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37736,8 +37149,8 @@ func (x *PerformanceQuerySubmitInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37827,8 +37240,8 @@ func (x *PhysicalDeviceSurfaceInfo2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -37918,8 +37331,8 @@ func (x *SurfaceCapabilities2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38009,8 +37422,8 @@ func (x *SurfaceFormat2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38100,8 +37513,8 @@ func (x *DisplayProperties2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38191,8 +37604,8 @@ func (x *DisplayPlaneProperties2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38282,8 +37695,8 @@ func (x *DisplayModeProperties2) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38378,8 +37791,8 @@ func (x *DisplayPlaneInfo2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38469,8 +37882,8 @@ func (x *DisplayPlaneCapabilities2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderClockFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderClockFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38565,8 +37978,8 @@ func (x *PhysicalDeviceShaderClockFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38656,8 +38069,8 @@ func (x *DeviceQueueGlobalPriorityCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38747,8 +38160,8 @@ func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocQueueFamilyGlobalPriorityPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyGlobalPriorityPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38843,8 +38256,8 @@ func (x *QueueFamilyGlobalPriorityProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFragmentShadingRateAttachmentInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -38939,8 +38352,8 @@ func (x *FragmentShadingRateAttachmentInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineFragmentShadingRateStateCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateStateCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39035,8 +38448,8 @@ func (x *PipelineFragmentShadingRateStateCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRateFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39136,8 +38549,8 @@ func (x *PhysicalDeviceFragmentShadingRateFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRatePropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39307,8 +38720,8 @@ func (x *PhysicalDeviceFragmentShadingRateProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRateMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39403,8 +38816,8 @@ func (x *PhysicalDeviceFragmentShadingRate) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSurfaceProtectedCapabilitiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceProtectedCapabilitiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39494,8 +38907,8 @@ func (x *SurfaceProtectedCapabilities) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePresentWaitFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentWaitFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39585,8 +38998,8 @@ func (x *PhysicalDevicePresentWaitFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39676,8 +39089,8 @@ func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39767,8 +39180,8 @@ func (x *PipelineInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineExecutablePropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutablePropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39873,8 +39286,8 @@ func (x *PipelineExecutableProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineExecutableInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -39969,8 +39382,8 @@ func (x *PipelineExecutableInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineExecutableStatisticMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableStatisticValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40075,8 +39488,8 @@ func (x *PipelineExecutableStatistic) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineExecutableInternalRepresentationMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInternalRepresentationValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40178,7 +39591,7 @@ func (x *PipelineExecutableInternalRepresentation) Deref() { 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 = (uint32)(x.ref20e334f7.dataSize) + x.DataSize = (uint64)(x.ref20e334f7.dataSize) x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref20e334f7.pData)) } @@ -40186,43 +39599,14 @@ func (x *PipelineExecutableInternalRepresentation) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLibraryCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLibraryCreateInfoKHR{}) -// copyPPipelineBytes copies the data from Go slice as *C.VkPipeline. -func copyPPipelineBytes(slice *sliceHeader) (*C.VkPipeline, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfPipelineValue) * slice.Len, - Cap: int(sizeOfPipelineValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkPipeline)(mem0), allocs -} - -// allocPipelineMemory allocates memory for type C.VkPipeline in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPipelineMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfPipelineValue = unsafe.Sizeof([1]C.VkPipeline{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *PipelineLibraryCreateInfo) Ref() *C.VkPipelineLibraryCreateInfoKHR { if x == nil { @@ -40277,7 +39661,7 @@ func (x *PipelineLibraryCreateInfo) PassRef() (*C.VkPipelineLibraryCreateInfoKHR allocs6bb7541b.Borrow(clibraryCount_allocs) var cpLibraries_allocs *cgoAllocMap - ref6bb7541b.pLibraries, cpLibraries_allocs = copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&x.PLibraries))) + ref6bb7541b.pLibraries, cpLibraries_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PLibraries)).Data)), cgoAllocsUnknown allocs6bb7541b.Borrow(cpLibraries_allocs) x.ref6bb7541b = ref6bb7541b @@ -40315,8 +39699,8 @@ func (x *PipelineLibraryCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPresentIdMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentIdValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40377,7 +39761,7 @@ func (x *PresentId) PassRef() (*C.VkPresentIdKHR, *cgoAllocMap) { allocs70010623.Borrow(cswapchainCount_allocs) var cpPresentIds_allocs *cgoAllocMap - ref70010623.pPresentIds, cpPresentIds_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PPresentIds))) + ref70010623.pPresentIds, cpPresentIds_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentIds)).Data)), cgoAllocsUnknown allocs70010623.Borrow(cpPresentIds_allocs) x.ref70010623 = ref70010623 @@ -40415,8 +39799,8 @@ func (x *PresentId) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePresentIdFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentIdFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40506,8 +39890,8 @@ func (x *PhysicalDevicePresentIdFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocQueueFamilyCheckpointProperties2NVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointProperties2NVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40597,8 +39981,8 @@ func (x *QueueFamilyCheckpointProperties2NV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCheckpointData2NVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointData2NVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40693,8 +40077,8 @@ func (x *CheckpointData2NV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40784,8 +40168,8 @@ func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -40916,7 +40300,7 @@ func debugReportCallbackFuncC918AAC4(cflags C.VkDebugReportFlagsEXT, cobjectType flagsc918aac4 := (DebugReportFlags)(cflags) objectTypec918aac4 := (DebugReportObjectType)(cobjectType) objectc918aac4 := (uint64)(cobject) - locationc918aac4 := (uint32)(clocation) + locationc918aac4 := (uint64)(clocation) messageCodec918aac4 := (int32)(cmessageCode) pLayerPrefixc918aac4 := packPCharString(cpLayerPrefix) pMessagec918aac4 := packPCharString(cpMessage) @@ -40934,8 +40318,8 @@ var debugReportCallbackFuncC918AAC4Func DebugReportCallbackFunc // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41035,8 +40419,8 @@ func (x *DebugReportCallbackCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41126,8 +40510,8 @@ func (x *PipelineRasterizationStateRasterizationOrderAMD) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41227,8 +40611,8 @@ func (x *DebugMarkerObjectNameInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41330,7 +40714,7 @@ func (x *DebugMarkerObjectTagInfo) Deref() { x.ObjectType = (DebugReportObjectType)(x.refa41a5c3b.objectType) x.Object = (uint64)(x.refa41a5c3b.object) x.TagName = (uint64)(x.refa41a5c3b.tagName) - x.TagSize = (uint32)(x.refa41a5c3b.tagSize) + x.TagSize = (uint64)(x.refa41a5c3b.tagSize) x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pTag)) } @@ -41338,8 +40722,8 @@ func (x *DebugMarkerObjectTagInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41434,8 +40818,8 @@ func (x *DebugMarkerMarkerInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41525,8 +40909,8 @@ func (x *DedicatedAllocationImageCreateInfoNV) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41616,8 +41000,8 @@ func (x *DedicatedAllocationBufferCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41712,8 +41096,8 @@ func (x *DedicatedAllocationMemoryAllocateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41808,8 +41192,8 @@ func (x *PhysicalDeviceTransformFeedbackFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -41944,8 +41328,8 @@ func (x *PhysicalDeviceTransformFeedbackProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42040,8 +41424,8 @@ func (x *PipelineRasterizationStateStreamCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageViewHandleInfoNVXMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewHandleInfoNVXValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42141,8 +41525,8 @@ func (x *ImageViewHandleInfoNVX) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageViewAddressPropertiesNVXMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewAddressPropertiesNVXValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42237,8 +41621,8 @@ func (x *ImageViewAddressPropertiesNVX) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42328,8 +41712,8 @@ func (x *TextureLODGatherFormatPropertiesAMD) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42421,16 +41805,16 @@ func (x *ShaderResourceUsageAMD) Deref() { x.NumUsedVgprs = (uint32)(x.ref8a688131.numUsedVgprs) x.NumUsedSgprs = (uint32)(x.ref8a688131.numUsedSgprs) x.LdsSizePerLocalWorkGroup = (uint32)(x.ref8a688131.ldsSizePerLocalWorkGroup) - x.LdsUsageSizeInBytes = (uint32)(x.ref8a688131.ldsUsageSizeInBytes) - x.ScratchMemUsageInBytes = (uint32)(x.ref8a688131.scratchMemUsageInBytes) + x.LdsUsageSizeInBytes = (uint64)(x.ref8a688131.ldsUsageSizeInBytes) + x.ScratchMemUsageInBytes = (uint64)(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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42540,8 +41924,8 @@ func (x *ShaderStatisticsInfoAMD) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42631,8 +42015,8 @@ func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42727,8 +42111,8 @@ func (x *ExternalImageFormatPropertiesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42818,8 +42202,8 @@ func (x *ExternalMemoryImageCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -42909,43 +42293,14 @@ func (x *ExportMemoryAllocateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) -// copyPValidationCheckBytes copies the data from Go slice as *C.VkValidationCheckEXT. -func copyPValidationCheckBytes(slice *sliceHeader) (*C.VkValidationCheckEXT, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfValidationCheckValue) * slice.Len, - Cap: int(sizeOfValidationCheckValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkValidationCheckEXT)(mem0), allocs -} - -// allocValidationCheckMemory allocates memory for type C.VkValidationCheckEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocValidationCheckMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationCheckValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfValidationCheckValue = unsafe.Sizeof([1]C.VkValidationCheckEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { if x == nil { @@ -43000,7 +42355,7 @@ func (x *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) var cpDisabledValidationChecks_allocs *cgoAllocMap - refffe080ad.pDisabledValidationChecks, cpDisabledValidationChecks_allocs = copyPValidationCheckBytes((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks))) + refffe080ad.pDisabledValidationChecks, cpDisabledValidationChecks_allocs = (*C.VkValidationCheckEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)).Data)), cgoAllocsUnknown allocsffe080ad.Borrow(cpDisabledValidationChecks_allocs) x.refffe080ad = refffe080ad @@ -43038,8 +42393,8 @@ func (x *ValidationFlags) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43129,8 +42484,8 @@ func (x *ImageViewASTCDecodeMode) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43220,8 +42575,8 @@ func (x *PhysicalDeviceASTCDecodeFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43321,8 +42676,8 @@ func (x *ConditionalRenderingBeginInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43417,8 +42772,8 @@ func (x *PhysicalDeviceConditionalRenderingFeatures) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43508,8 +42863,8 @@ func (x *CommandBufferInheritanceConditionalRenderingInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43594,8 +42949,8 @@ func (x *ViewportWScalingNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43608,8 +42963,8 @@ func unpackSViewportWScalingNV(x []ViewportWScalingNV) (unpacked *C.VkViewportWS return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportWScalingNV) { + go allocs.Free() }) len0 := len(x) @@ -43733,8 +43088,8 @@ func (x *PipelineViewportWScalingStateCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43824,8 +43179,8 @@ func (x *DisplayPowerInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -43915,8 +43270,8 @@ func (x *DeviceEventInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44006,8 +43361,8 @@ func (x *DisplayEventInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44097,8 +43452,8 @@ func (x *SwapchainCounterCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44178,8 +43533,8 @@ func (x *RefreshCycleDurationGOOGLE) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44279,8 +43634,8 @@ func (x *PastPresentationTimingGOOGLE) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44365,8 +43720,8 @@ func (x *PresentTimeGOOGLE) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44379,8 +43734,8 @@ func unpackSPresentTimeGOOGLE(x []PresentTimeGOOGLE) (unpacked *C.VkPresentTimeG return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentTimeGOOGLE) { + go allocs.Free() }) len0 := len(x) @@ -44499,8 +43854,8 @@ func (x *PresentTimesInfoGOOGLE) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44590,8 +43945,8 @@ func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44686,8 +44041,8 @@ func (x *ViewportSwizzleNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44700,8 +44055,8 @@ func unpackSViewportSwizzleNV(x []ViewportSwizzleNV) (unpacked *C.VkViewportSwiz return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportSwizzleNV) { + go allocs.Free() }) len0 := len(x) @@ -44825,8 +44180,8 @@ func (x *PipelineViewportSwizzleStateCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -44916,8 +44271,8 @@ func (x *PhysicalDeviceDiscardRectangleProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45022,8 +44377,8 @@ func (x *PipelineDiscardRectangleStateCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45153,8 +44508,8 @@ func (x *PhysicalDeviceConservativeRasterizationProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45254,8 +44609,8 @@ func (x *PipelineRasterizationConservativeStateCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDepthClipEnableFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipEnableFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45345,8 +44700,8 @@ func (x *PhysicalDeviceDepthClipEnableFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineRasterizationDepthClipStateCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationDepthClipStateCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45441,8 +44796,8 @@ func (x *PipelineRasterizationDepthClipStateCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45527,8 +44882,8 @@ func (x *XYColor) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45653,8 +45008,8 @@ func (x *HdrMetadata) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45749,8 +45104,8 @@ func (x *DebugUtilsLabel) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45850,8 +45205,8 @@ func (x *DebugUtilsObjectNameInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -45953,7 +45308,7 @@ func (x *DebugUtilsObjectTagInfo) Deref() { x.ObjectType = (ObjectType)(x.ref9fd129cf.objectType) x.ObjectHandle = (uint64)(x.ref9fd129cf.objectHandle) x.TagName = (uint64)(x.ref9fd129cf.tagName) - x.TagSize = (uint32)(x.ref9fd129cf.tagSize) + x.TagSize = (uint64)(x.ref9fd129cf.tagSize) x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pTag)) } @@ -45961,8 +45316,8 @@ func (x *DebugUtilsObjectTagInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46047,8 +45402,8 @@ func (x *SampleLocation) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46061,8 +45416,8 @@ func unpackSSampleLocation(x []SampleLocation) (unpacked *C.VkSampleLocationEXT, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSampleLocationEXT) { + go allocs.Free() }) len0 := len(x) @@ -46191,8 +45546,8 @@ func (x *SampleLocationsInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46277,8 +45632,8 @@ func (x *AttachmentSampleLocations) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46363,8 +45718,8 @@ func (x *SubpassSampleLocations) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46377,8 +45732,8 @@ func unpackSAttachmentSampleLocations(x []AttachmentSampleLocations) (unpacked * return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentSampleLocationsEXT) { + go allocs.Free() }) len0 := len(x) @@ -46406,8 +45761,8 @@ func unpackSSubpassSampleLocations(x []SubpassSampleLocations) (unpacked *C.VkSu return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassSampleLocationsEXT) { + go allocs.Free() }) len0 := len(x) @@ -46545,8 +45900,8 @@ func (x *RenderPassSampleLocationsBeginInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46641,8 +45996,8 @@ func (x *PipelineSampleLocationsStateCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46752,8 +46107,8 @@ func (x *PhysicalDeviceSampleLocationsProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46843,8 +46198,8 @@ func (x *MultisampleProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -46934,8 +46289,8 @@ func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47050,8 +46405,8 @@ func (x *PhysicalDeviceBlendOperationAdvancedProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47151,8 +46506,8 @@ func (x *PipelineColorBlendAdvancedStateCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47252,8 +46607,8 @@ func (x *PipelineCoverageToColorStateCreateInfoNV) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47326,7 +46681,7 @@ func (x *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCo allocsa081b0ea.Borrow(ccoverageModulationTableCount_allocs) var cpCoverageModulationTable_allocs *cgoAllocMap - refa081b0ea.pCoverageModulationTable, cpCoverageModulationTable_allocs = copyPFloatBytes((*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable))) + refa081b0ea.pCoverageModulationTable, cpCoverageModulationTable_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)).Data)), cgoAllocsUnknown allocsa081b0ea.Borrow(cpCoverageModulationTable_allocs) x.refa081b0ea = refa081b0ea @@ -47367,8 +46722,8 @@ func (x *PipelineCoverageModulationStateCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47463,8 +46818,8 @@ func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47554,8 +46909,8 @@ func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47645,8 +47000,8 @@ func (x *DrmFormatModifierProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47659,8 +47014,8 @@ func unpackSDrmFormatModifierProperties(x []DrmFormatModifierProperties) (unpack return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierPropertiesEXT) { + go allocs.Free() }) len0 := len(x) @@ -47779,8 +47134,8 @@ func (x *DrmFormatModifierPropertiesList) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47849,7 +47204,7 @@ func (x *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDevic allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) var cpQueueFamilyIndices_allocs *cgoAllocMap - refd7abef44.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices))) + refd7abef44.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown allocsd7abef44.Borrow(cpQueueFamilyIndices_allocs) x.refd7abef44 = refd7abef44 @@ -47889,8 +47244,8 @@ func (x *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -47951,7 +47306,7 @@ func (x *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatMod allocs544538ab.Borrow(cdrmFormatModifierCount_allocs) var cpDrmFormatModifiers_allocs *cgoAllocMap - ref544538ab.pDrmFormatModifiers, cpDrmFormatModifiers_allocs = copyPUint64_tBytes((*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers))) + ref544538ab.pDrmFormatModifiers, cpDrmFormatModifiers_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)).Data)), cgoAllocsUnknown allocs544538ab.Borrow(cpDrmFormatModifiers_allocs) x.ref544538ab = ref544538ab @@ -47989,8 +47344,8 @@ func (x *ImageDrmFormatModifierListCreateInfo) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48003,8 +47358,8 @@ func unpackSSubresourceLayout(x []SubresourceLayout) (unpacked *C.VkSubresourceL return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubresourceLayout) { + go allocs.Free() }) len0 := len(x) @@ -48128,8 +47483,8 @@ func (x *ImageDrmFormatModifierExplicitCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48219,8 +47574,8 @@ func (x *ImageDrmFormatModifierProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDrmFormatModifierProperties2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierProperties2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48310,8 +47665,8 @@ func (x *DrmFormatModifierProperties2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDrmFormatModifierPropertiesList2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesList2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48324,8 +47679,8 @@ func unpackSDrmFormatModifierProperties2(x []DrmFormatModifierProperties2) (unpa return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierProperties2EXT) { + go allocs.Free() }) len0 := len(x) @@ -48444,8 +47799,8 @@ func (x *DrmFormatModifierPropertiesList2) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48537,7 +47892,7 @@ func (x *ValidationCacheCreateInfo) Deref() { x.SType = (StructureType)(x.ref3d8ac8aa.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pNext)) x.Flags = (ValidationCacheCreateFlags)(x.ref3d8ac8aa.flags) - x.InitialDataSize = (uint32)(x.ref3d8ac8aa.initialDataSize) + x.InitialDataSize = (uint64)(x.ref3d8ac8aa.initialDataSize) x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pInitialData)) } @@ -48545,8 +47900,8 @@ func (x *ValidationCacheCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48636,43 +47991,14 @@ func (x *ShaderModuleValidationCacheCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) -// copyPShadingRatePaletteEntryNVBytes copies the data from Go slice as *C.VkShadingRatePaletteEntryNV. -func copyPShadingRatePaletteEntryNVBytes(slice *sliceHeader) (*C.VkShadingRatePaletteEntryNV, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfShadingRatePaletteEntryNVValue) * slice.Len, - Cap: int(sizeOfShadingRatePaletteEntryNVValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkShadingRatePaletteEntryNV)(mem0), allocs -} - -// allocShadingRatePaletteEntryNVMemory allocates memory for type C.VkShadingRatePaletteEntryNV in C. -// The caller is responsible for freeing the this memory via C.free. -func allocShadingRatePaletteEntryNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShadingRatePaletteEntryNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfShadingRatePaletteEntryNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteEntryNV{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { if x == nil { @@ -48719,7 +48045,7 @@ func (x *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMa allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) var cpShadingRatePaletteEntries_allocs *cgoAllocMap - refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = copyPShadingRatePaletteEntryNVBytes((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries))) + refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = (*C.VkShadingRatePaletteEntryNV)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)).Data)), cgoAllocsUnknown allocsa5c4ae3a.Borrow(cpShadingRatePaletteEntries_allocs) x.refa5c4ae3a = refa5c4ae3a @@ -48755,8 +48081,8 @@ func (x *ShadingRatePaletteNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48769,8 +48095,8 @@ func unpackSShadingRatePaletteNV(x []ShadingRatePaletteNV) (unpacked *C.VkShadin return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkShadingRatePaletteNV) { + go allocs.Free() }) len0 := len(x) @@ -48894,8 +48220,8 @@ func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -48990,8 +48316,8 @@ func (x *PhysicalDeviceShadingRateImageFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49091,8 +48417,8 @@ func (x *PhysicalDeviceShadingRateImagePropertiesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49182,8 +48508,8 @@ func (x *CoarseSampleLocationNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49196,8 +48522,8 @@ func unpackSCoarseSampleLocationNV(x []CoarseSampleLocationNV) (unpacked *C.VkCo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleLocationNV) { + go allocs.Free() }) len0 := len(x) @@ -49316,8 +48642,8 @@ func (x *CoarseSampleOrderCustomNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49330,8 +48656,8 @@ func unpackSCoarseSampleOrderCustomNV(x []CoarseSampleOrderCustomNV) (unpacked * return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleOrderCustomNV) { + go allocs.Free() }) len0 := len(x) @@ -49455,8 +48781,8 @@ func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49546,8 +48872,8 @@ func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49637,8 +48963,8 @@ func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceImageViewImageFormatInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewImageFormatInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49728,8 +49054,8 @@ func (x *PhysicalDeviceImageViewImageFormatInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocFilterCubicImageViewImageFormatPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFilterCubicImageViewImageFormatPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49824,8 +49150,8 @@ func (x *FilterCubicImageViewImageFormatProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -49920,8 +49246,8 @@ func (x *ImportMemoryHostPointerInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50011,8 +49337,8 @@ func (x *MemoryHostPointerProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50102,8 +49428,8 @@ func (x *PhysicalDeviceExternalMemoryHostProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineCompilerControlCreateInfoAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCompilerControlCreateInfoAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50193,8 +49519,8 @@ func (x *PipelineCompilerControlCreateInfoAMD) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50284,8 +49610,8 @@ func (x *CalibratedTimestampInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50440,8 +49766,8 @@ func (x *PhysicalDeviceShaderCorePropertiesAMD) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDeviceMemoryOverallocationCreateInfoAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOverallocationCreateInfoAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50531,8 +49857,8 @@ func (x *DeviceMemoryOverallocationCreateInfoAMD) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50622,8 +49948,8 @@ func (x *PhysicalDeviceVertexAttributeDivisorProperties) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50708,8 +50034,8 @@ func (x *VertexInputBindingDivisorDescription) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50722,8 +50048,8 @@ func unpackSVertexInputBindingDivisorDescription(x []VertexInputBindingDivisorDe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDivisorDescriptionEXT) { + go allocs.Free() }) len0 := len(x) @@ -50842,8 +50168,8 @@ func (x *PipelineVertexInputDivisorStateCreateInfo) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -50938,8 +50264,8 @@ func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51034,8 +50360,8 @@ func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51130,8 +50456,8 @@ func (x *PhysicalDeviceMeshShaderFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51281,8 +50607,8 @@ func (x *PhysicalDeviceMeshShaderPropertiesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51367,8 +50693,8 @@ func (x *DrawMeshTasksIndirectCommandNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51458,8 +50784,8 @@ func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51549,8 +50875,8 @@ func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51645,8 +50971,8 @@ func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51736,8 +51062,8 @@ func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51827,8 +51153,8 @@ func (x *QueueFamilyCheckpointPropertiesNV) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -51923,8 +51249,8 @@ func (x *CheckpointDataNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52014,8 +51340,8 @@ func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceValueINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceValueINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52100,8 +51426,8 @@ func (x *PerformanceValueINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocInitializePerformanceApiInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInitializePerformanceApiInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52191,8 +51517,8 @@ func (x *InitializePerformanceApiInfoINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocQueryPoolPerformanceQueryCreateInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52361,8 +51687,8 @@ func (x *QueryPoolCreateInfoINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceMarkerInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceMarkerInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52452,8 +51778,8 @@ func (x *PerformanceMarkerInfoINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceStreamMarkerInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceStreamMarkerInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52543,8 +51869,8 @@ func (x *PerformanceStreamMarkerInfoINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceOverrideInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceOverrideInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52644,8 +51970,8 @@ func (x *PerformanceOverrideInfoINTEL) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPerformanceConfigurationAcquireInfoINTELMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceConfigurationAcquireInfoINTELValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52735,8 +52061,8 @@ func (x *PerformanceConfigurationAcquireInfoINTEL) Deref() { // 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)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52841,8 +52167,8 @@ func (x *PhysicalDevicePCIBusInfoProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -52932,8 +52258,8 @@ func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53023,8 +52349,8 @@ func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentDensityMapFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53124,8 +52450,8 @@ func (x *PhysicalDeviceFragmentDensityMapFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentDensityMapPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53225,8 +52551,8 @@ func (x *PhysicalDeviceFragmentDensityMapProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocRenderPassFragmentDensityMapCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassFragmentDensityMapCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53316,8 +52642,8 @@ func (x *RenderPassFragmentDensityMapCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderCoreProperties2AMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCoreProperties2AMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53412,8 +52738,8 @@ func (x *PhysicalDeviceShaderCoreProperties2AMD) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53503,8 +52829,8 @@ func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53599,8 +52925,8 @@ func (x *PhysicalDeviceShaderImageAtomicInt64Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMemoryBudgetPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryBudgetPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53695,8 +53021,8 @@ func (x *PhysicalDeviceMemoryBudgetProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMemoryPriorityFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPriorityFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53786,8 +53112,8 @@ func (x *PhysicalDeviceMemoryPriorityFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMemoryPriorityAllocateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryPriorityAllocateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -53877,8 +53203,8 @@ func (x *MemoryPriorityAllocateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54057,8 +53383,8 @@ func (x *PhysicalDeviceBufferAddressFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBufferDeviceAddressCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferDeviceAddressCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54148,72 +53474,14 @@ func (x *BufferDeviceAddressCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocValidationFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfValidationFeaturesValue = unsafe.Sizeof([1]C.VkValidationFeaturesEXT{}) -// copyPValidationFeatureEnableBytes copies the data from Go slice as *C.VkValidationFeatureEnableEXT. -func copyPValidationFeatureEnableBytes(slice *sliceHeader) (*C.VkValidationFeatureEnableEXT, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfValidationFeatureEnableValue) * slice.Len, - Cap: int(sizeOfValidationFeatureEnableValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkValidationFeatureEnableEXT)(mem0), allocs -} - -// allocValidationFeatureEnableMemory allocates memory for type C.VkValidationFeatureEnableEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocValidationFeatureEnableMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeatureEnableValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfValidationFeatureEnableValue = unsafe.Sizeof([1]C.VkValidationFeatureEnableEXT{}) - -// copyPValidationFeatureDisableBytes copies the data from Go slice as *C.VkValidationFeatureDisableEXT. -func copyPValidationFeatureDisableBytes(slice *sliceHeader) (*C.VkValidationFeatureDisableEXT, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfValidationFeatureDisableValue) * slice.Len, - Cap: int(sizeOfValidationFeatureDisableValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkValidationFeatureDisableEXT)(mem0), allocs -} - -// allocValidationFeatureDisableMemory allocates memory for type C.VkValidationFeatureDisableEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocValidationFeatureDisableMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeatureDisableValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfValidationFeatureDisableValue = unsafe.Sizeof([1]C.VkValidationFeatureDisableEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *ValidationFeatures) Ref() *C.VkValidationFeaturesEXT { if x == nil { @@ -54268,7 +53536,7 @@ func (x *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap allocscd8794ea.Borrow(cenabledValidationFeatureCount_allocs) var cpEnabledValidationFeatures_allocs *cgoAllocMap - refcd8794ea.pEnabledValidationFeatures, cpEnabledValidationFeatures_allocs = copyPValidationFeatureEnableBytes((*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures))) + refcd8794ea.pEnabledValidationFeatures, cpEnabledValidationFeatures_allocs = (*C.VkValidationFeatureEnableEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)).Data)), cgoAllocsUnknown allocscd8794ea.Borrow(cpEnabledValidationFeatures_allocs) var cdisabledValidationFeatureCount_allocs *cgoAllocMap @@ -54276,7 +53544,7 @@ func (x *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap allocscd8794ea.Borrow(cdisabledValidationFeatureCount_allocs) var cpDisabledValidationFeatures_allocs *cgoAllocMap - refcd8794ea.pDisabledValidationFeatures, cpDisabledValidationFeatures_allocs = copyPValidationFeatureDisableBytes((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures))) + refcd8794ea.pDisabledValidationFeatures, cpDisabledValidationFeatures_allocs = (*C.VkValidationFeatureDisableEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)).Data)), cgoAllocsUnknown allocscd8794ea.Borrow(cpDisabledValidationFeatures_allocs) x.refcd8794ea = refcd8794ea @@ -54320,8 +53588,8 @@ func (x *ValidationFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCooperativeMatrixPropertiesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54446,8 +53714,8 @@ func (x *CooperativeMatrixPropertiesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54542,8 +53810,8 @@ func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54633,8 +53901,8 @@ func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54724,8 +53992,8 @@ func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineCoverageReductionStateCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageReductionStateCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54820,8 +54088,8 @@ func (x *PipelineCoverageReductionStateCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocFramebufferMixedSamplesCombinationNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferMixedSamplesCombinationNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -54926,8 +54194,8 @@ func (x *FramebufferMixedSamplesCombinationNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55027,8 +54295,8 @@ func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55118,8 +54386,8 @@ func (x *PhysicalDeviceYcbcrImageArraysFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceProvokingVertexFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55214,8 +54482,8 @@ func (x *PhysicalDeviceProvokingVertexFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceProvokingVertexPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55310,8 +54578,8 @@ func (x *PhysicalDeviceProvokingVertexProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55401,8 +54669,8 @@ func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocHeadlessSurfaceCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHeadlessSurfaceCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55492,8 +54760,8 @@ func (x *HeadlessSurfaceCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceLineRasterizationFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55608,8 +54876,8 @@ func (x *PhysicalDeviceLineRasterizationFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceLineRasterizationPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55699,8 +54967,8 @@ func (x *PhysicalDeviceLineRasterizationProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineRasterizationLineStateCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationLineStateCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55805,8 +55073,8 @@ func (x *PipelineRasterizationLineStateCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -55951,8 +55219,8 @@ func (x *PhysicalDeviceShaderAtomicFloatFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceIndexTypeUint8FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56042,8 +55310,8 @@ func (x *PhysicalDeviceIndexTypeUint8Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56133,8 +55401,8 @@ func (x *PhysicalDeviceExtendedDynamicStateFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56279,8 +55547,8 @@ func (x *PhysicalDeviceShaderAtomicFloat2Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56410,8 +55678,8 @@ func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56501,8 +55769,8 @@ func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocGraphicsShaderGroupCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsShaderGroupCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56515,8 +55783,8 @@ func unpackSPipelineVertexInputStateCreateInfo(x []PipelineVertexInputStateCreat return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineVertexInputStateCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -56544,8 +55812,8 @@ func unpackSPipelineTessellationStateCreateInfo(x []PipelineTessellationStateCre return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineTessellationStateCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -56683,8 +55951,8 @@ func (x *GraphicsShaderGroupCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56697,8 +55965,8 @@ func unpackSGraphicsShaderGroupCreateInfoNV(x []GraphicsShaderGroupCreateInfoNV) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkGraphicsShaderGroupCreateInfoNV) { + go allocs.Free() }) len0 := len(x) @@ -56791,7 +56059,7 @@ func (x *GraphicsPipelineShaderGroupsCreateInfoNV) PassRef() (*C.VkGraphicsPipel allocsabf1b7d9.Borrow(cpipelineCount_allocs) var cpPipelines_allocs *cgoAllocMap - refabf1b7d9.pPipelines, cpPipelines_allocs = copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&x.PPipelines))) + refabf1b7d9.pPipelines, cpPipelines_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPipelines)).Data)), cgoAllocsUnknown allocsabf1b7d9.Borrow(cpPipelines_allocs) x.refabf1b7d9 = refabf1b7d9 @@ -56831,8 +56099,8 @@ func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBindShaderGroupIndirectCommandNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindShaderGroupIndirectCommandNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -56912,8 +56180,8 @@ func (x *BindShaderGroupIndirectCommandNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBindIndexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindIndexBufferIndirectCommandNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57003,8 +56271,8 @@ func (x *BindIndexBufferIndirectCommandNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocBindVertexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindVertexBufferIndirectCommandNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57094,8 +56362,8 @@ func (x *BindVertexBufferIndirectCommandNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSetStateFlagsIndirectCommandNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSetStateFlagsIndirectCommandNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57175,8 +56443,8 @@ func (x *SetStateFlagsIndirectCommandNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocIndirectCommandsStreamNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsStreamNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57261,43 +56529,14 @@ func (x *IndirectCommandsStreamNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocIndirectCommandsLayoutTokenNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutTokenNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfIndirectCommandsLayoutTokenNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNV{}) -// copyPIndexTypeBytes copies the data from Go slice as *C.VkIndexType. -func copyPIndexTypeBytes(slice *sliceHeader) (*C.VkIndexType, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfIndexTypeValue) * slice.Len, - Cap: int(sizeOfIndexTypeValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkIndexType)(mem0), allocs -} - -// allocIndexTypeMemory allocates memory for type C.VkIndexType in C. -// The caller is responsible for freeing the this memory via C.free. -func allocIndexTypeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndexTypeValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfIndexTypeValue = unsafe.Sizeof([1]C.VkIndexType{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *IndirectCommandsLayoutTokenNV) Ref() *C.VkIndirectCommandsLayoutTokenNV { if x == nil { @@ -57392,11 +56631,11 @@ func (x *IndirectCommandsLayoutTokenNV) PassRef() (*C.VkIndirectCommandsLayoutTo allocs96f52b76.Borrow(cindexTypeCount_allocs) var cpIndexTypes_allocs *cgoAllocMap - ref96f52b76.pIndexTypes, cpIndexTypes_allocs = copyPIndexTypeBytes((*sliceHeader)(unsafe.Pointer(&x.PIndexTypes))) + 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 = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues))) + ref96f52b76.pIndexTypeValues, cpIndexTypeValues_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)).Data)), cgoAllocsUnknown allocs96f52b76.Borrow(cpIndexTypeValues_allocs) x.ref96f52b76 = ref96f52b76 @@ -57449,8 +56688,8 @@ func (x *IndirectCommandsLayoutTokenNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocIndirectCommandsLayoutCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57463,8 +56702,8 @@ func unpackSIndirectCommandsLayoutTokenNV(x []IndirectCommandsLayoutTokenNV) (un return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsLayoutTokenNV) { + go allocs.Free() }) len0 := len(x) @@ -57565,7 +56804,7 @@ func (x *IndirectCommandsLayoutCreateInfoNV) PassRef() (*C.VkIndirectCommandsLay allocs48273185.Borrow(cstreamCount_allocs) var cpStreamStrides_allocs *cgoAllocMap - ref48273185.pStreamStrides, cpStreamStrides_allocs = copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&x.PStreamStrides))) + ref48273185.pStreamStrides, cpStreamStrides_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)).Data)), cgoAllocsUnknown allocs48273185.Borrow(cpStreamStrides_allocs) x.ref48273185 = ref48273185 @@ -57607,8 +56846,8 @@ func (x *IndirectCommandsLayoutCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocGeneratedCommandsInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57621,8 +56860,8 @@ func unpackSIndirectCommandsStreamNV(x []IndirectCommandsStreamNV) (unpacked *C. return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsStreamNV) { + go allocs.Free() }) len0 := len(x) @@ -57796,8 +57035,8 @@ func (x *GeneratedCommandsInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocGeneratedCommandsMemoryRequirementsInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57902,8 +57141,8 @@ func (x *GeneratedCommandsMemoryRequirementsInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -57993,8 +57232,8 @@ func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCommandBufferInheritanceViewportScissorInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceViewportScissorInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58094,8 +57333,8 @@ func (x *CommandBufferInheritanceViewportScissorInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58185,8 +57424,8 @@ func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocRenderPassTransformBeginInfoQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassTransformBeginInfoQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58276,8 +57515,8 @@ func (x *RenderPassTransformBeginInfoQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58372,8 +57611,8 @@ func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58463,8 +57702,8 @@ func (x *PhysicalDeviceDeviceMemoryReportFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDeviceMemoryReportCallbackDataMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryReportCallbackDataValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58631,8 +57870,8 @@ var deviceMemoryReportCallbackFuncE34D104CFunc DeviceMemoryReportCallbackFunc // The caller is responsible for freeing the this memory via C.free. func allocDeviceDeviceMemoryReportCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDeviceMemoryReportCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58732,8 +57971,8 @@ func (x *DeviceDeviceMemoryReportCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceRobustness2FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58833,8 +58072,8 @@ func (x *PhysicalDeviceRobustness2Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceRobustness2PropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2PropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -58929,8 +58168,8 @@ func (x *PhysicalDeviceRobustness2Properties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSamplerCustomBorderColorCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCustomBorderColorCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59025,8 +58264,8 @@ func (x *SamplerCustomBorderColorCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCustomBorderColorPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59116,8 +58355,8 @@ func (x *PhysicalDeviceCustomBorderColorProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceCustomBorderColorFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59212,8 +58451,8 @@ func (x *PhysicalDeviceCustomBorderColorFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59303,8 +58542,8 @@ func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDeviceDiagnosticsConfigCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDiagnosticsConfigCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59394,8 +58633,8 @@ func (x *DeviceDiagnosticsConfigCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59485,8 +58724,8 @@ func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59581,8 +58820,8 @@ func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocGraphicsPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineLibraryCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59672,8 +58911,8 @@ func (x *GraphicsPipelineLibraryCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59773,8 +59012,8 @@ func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsPropertiesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59864,8 +59103,8 @@ func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateEnumStateCreateInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -59965,8 +59204,8 @@ func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcr2Plane444FormatsFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60056,8 +59295,8 @@ func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentDensityMap2FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMap2FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60147,8 +59386,8 @@ func (x *PhysicalDeviceFragmentDensityMap2Features) Deref() { // 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 mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60253,8 +59492,8 @@ func (x *PhysicalDeviceFragmentDensityMap2Properties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocCopyCommandTransformInfoQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyCommandTransformInfoQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60344,8 +59583,8 @@ func (x *CopyCommandTransformInfoQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevice4444FormatsFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice4444FormatsFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60440,8 +59679,8 @@ func (x *PhysicalDevice4444FormatsFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60541,8 +59780,8 @@ func (x *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRGBA10X6FormatsFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60632,8 +59871,8 @@ func (x *PhysicalDeviceRGBA10X6FormatsFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMutableDescriptorTypeFeaturesVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60723,43 +59962,14 @@ func (x *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMutableDescriptorTypeListVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeListVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfMutableDescriptorTypeListVALVEValue = unsafe.Sizeof([1]C.VkMutableDescriptorTypeListVALVE{}) -// copyPDescriptorTypeBytes copies the data from Go slice as *C.VkDescriptorType. -func copyPDescriptorTypeBytes(slice *sliceHeader) (*C.VkDescriptorType, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDescriptorTypeValue) * slice.Len, - Cap: int(sizeOfDescriptorTypeValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDescriptorType)(mem0), allocs -} - -// allocDescriptorTypeMemory allocates memory for type C.VkDescriptorType in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDescriptorTypeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorTypeValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDescriptorTypeValue = unsafe.Sizeof([1]C.VkDescriptorType{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *MutableDescriptorTypeListVALVE) Ref() *C.VkMutableDescriptorTypeListVALVE { if x == nil { @@ -60806,7 +60016,7 @@ func (x *MutableDescriptorTypeListVALVE) PassRef() (*C.VkMutableDescriptorTypeLi allocs957e9078.Borrow(cdescriptorTypeCount_allocs) var cpDescriptorTypes_allocs *cgoAllocMap - ref957e9078.pDescriptorTypes, cpDescriptorTypes_allocs = copyPDescriptorTypeBytes((*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes))) + ref957e9078.pDescriptorTypes, cpDescriptorTypes_allocs = (*C.VkDescriptorType)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes)).Data)), cgoAllocsUnknown allocs957e9078.Borrow(cpDescriptorTypes_allocs) x.ref957e9078 = ref957e9078 @@ -60842,8 +60052,8 @@ func (x *MutableDescriptorTypeListVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMutableDescriptorTypeCreateInfoVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeCreateInfoVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -60856,8 +60066,8 @@ func unpackSMutableDescriptorTypeListVALVE(x []MutableDescriptorTypeListVALVE) ( return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkMutableDescriptorTypeListVALVE) { + go allocs.Free() }) len0 := len(x) @@ -60976,8 +60186,8 @@ func (x *MutableDescriptorTypeCreateInfoVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexInputDynamicStateFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61067,8 +60277,8 @@ func (x *PhysicalDeviceVertexInputDynamicStateFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocVertexInputBindingDescription2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDescription2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61173,8 +60383,8 @@ func (x *VertexInputBindingDescription2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocVertexInputAttributeDescription2Memory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputAttributeDescription2Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61279,8 +60489,8 @@ func (x *VertexInputAttributeDescription2) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDrmPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDrmPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61395,8 +60605,8 @@ func (x *PhysicalDeviceDrmProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDepthClipControlFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipControlFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61486,8 +60696,8 @@ func (x *PhysicalDeviceDepthClipControlFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineViewportDepthClipControlCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportDepthClipControlCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61577,8 +60787,8 @@ func (x *PipelineViewportDepthClipControlCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitiveTopologyListRestartFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61673,8 +60883,8 @@ func (x *PhysicalDevicePrimitiveTopologyListRestartFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSubpassShadingPipelineCreateInfoHUAWEIMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassShadingPipelineCreateInfoHUAWEIValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61769,8 +60979,8 @@ func (x *SubpassShadingPipelineCreateInfoHUAWEI) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingFeaturesHUAWEIValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61860,8 +61070,8 @@ func (x *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingPropertiesHUAWEIValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -61951,8 +61161,8 @@ func (x *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInvocationMaskFeaturesHUAWEIValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62042,8 +61252,8 @@ func (x *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMemoryGetRemoteAddressInfoNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetRemoteAddressInfoNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62138,8 +61348,8 @@ func (x *MemoryGetRemoteAddressInfoNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryRDMAFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62229,8 +61439,8 @@ func (x *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceExtendedDynamicState2FeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicState2FeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62330,8 +61540,8 @@ func (x *PhysicalDeviceExtendedDynamicState2Features) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceColorWriteEnableFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceColorWriteEnableFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62421,43 +61631,14 @@ func (x *PhysicalDeviceColorWriteEnableFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPipelineColorWriteCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorWriteCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } const sizeOfPipelineColorWriteCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorWriteCreateInfoEXT{}) -// copyPBool32Bytes copies the data from Go slice as *C.VkBool32. -func copyPBool32Bytes(slice *sliceHeader) (*C.VkBool32, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfBool32Value) * slice.Len, - Cap: int(sizeOfBool32Value) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkBool32)(mem0), allocs -} - -// allocBool32Memory allocates memory for type C.VkBool32 in C. -// The caller is responsible for freeing the this memory via C.free. -func allocBool32Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBool32Value)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfBool32Value = unsafe.Sizeof([1]C.VkBool32{}) - // Ref returns the underlying reference to C object or nil if struct is nil. func (x *PipelineColorWriteCreateInfo) Ref() *C.VkPipelineColorWriteCreateInfoEXT { if x == nil { @@ -62512,7 +61693,7 @@ func (x *PipelineColorWriteCreateInfo) PassRef() (*C.VkPipelineColorWriteCreateI allocsa0609dbc.Borrow(cattachmentCount_allocs) var cpColorWriteEnables_allocs *cgoAllocMap - refa0609dbc.pColorWriteEnables, cpColorWriteEnables_allocs = copyPBool32Bytes((*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables))) + refa0609dbc.pColorWriteEnables, cpColorWriteEnables_allocs = (*C.VkBool32)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables)).Data)), cgoAllocsUnknown allocsa0609dbc.Borrow(cpColorWriteEnables_allocs) x.refa0609dbc = refa0609dbc @@ -62550,8 +61731,8 @@ func (x *PipelineColorWriteCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitivesGeneratedQueryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62651,8 +61832,8 @@ func (x *PhysicalDevicePrimitivesGeneratedQueryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceImageViewMinLodFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewMinLodFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62742,8 +61923,8 @@ func (x *PhysicalDeviceImageViewMinLodFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocImageViewMinLodCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewMinLodCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62833,8 +62014,8 @@ func (x *ImageViewMinLodCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMultiDrawFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -62924,8 +62105,8 @@ func (x *PhysicalDeviceMultiDrawFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceMultiDrawPropertiesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawPropertiesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63015,8 +62196,8 @@ func (x *PhysicalDeviceMultiDrawProperties) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMultiDrawInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63101,8 +62282,8 @@ func (x *MultiDrawInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocMultiDrawIndexedInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawIndexedInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63192,8 +62373,8 @@ func (x *MultiDrawIndexedInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceImage2DViewOf3DFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImage2DViewOf3DFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63288,8 +62469,8 @@ func (x *PhysicalDeviceImage2DViewOf3DFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceBorderColorSwizzleFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBorderColorSwizzleFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63384,8 +62565,8 @@ func (x *PhysicalDeviceBorderColorSwizzleFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSamplerBorderColorComponentMappingCreateInfoMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerBorderColorComponentMappingCreateInfoValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63480,8 +62661,8 @@ func (x *SamplerBorderColorComponentMappingCreateInfo) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePageableDeviceLocalMemoryFeaturesValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63571,8 +62752,8 @@ func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63662,8 +62843,8 @@ func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDescriptorSetBindingReferenceVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetBindingReferenceVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63758,8 +62939,8 @@ func (x *DescriptorSetBindingReferenceVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocDescriptorSetLayoutHostMappingInfoVALVEMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutHostMappingInfoVALVEValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63846,7 +63027,7 @@ func (x *DescriptorSetLayoutHostMappingInfoVALVE) Deref() { } x.SType = (StructureType)(x.ref21a3fbe4.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref21a3fbe4.pNext)) - x.DescriptorOffset = (uint32)(x.ref21a3fbe4.descriptorOffset) + x.DescriptorOffset = (uint64)(x.ref21a3fbe4.descriptorOffset) x.DescriptorSize = (uint32)(x.ref21a3fbe4.descriptorSize) } @@ -63854,8 +63035,8 @@ func (x *DescriptorSetLayoutHostMappingInfoVALVE) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -63945,8 +63126,8 @@ func (x *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -64036,8 +63217,8 @@ func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassFragmentDensityMapOffsetEndInfoQCOMValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -64050,8 +63231,8 @@ func unpackSOffset2D(x []Offset2D) (unpacked *C.VkOffset2D, allocs *cgoAllocMap) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkOffset2D) { + go allocs.Free() }) len0 := len(x) @@ -64170,8 +63351,8 @@ func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) Deref() { // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLinearColorAttachmentFeaturesNVValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) + if err != nil { + panic("memory alloc error: " + err.Error()) } return mem } @@ -64263,8 +63444,8 @@ func unpackArgSQueueFamilyProperties(x []QueueFamilyProperties) (unpacked *C.VkQ return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkQueueFamilyProperties) { + go allocs.Free() }) len0 := len(x) @@ -64301,8 +63482,8 @@ func unpackArgSExtensionProperties(x []ExtensionProperties) (unpacked *C.VkExten return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkExtensionProperties) { + go allocs.Free() }) len0 := len(x) @@ -64339,8 +63520,8 @@ func unpackArgSLayerProperties(x []LayerProperties) (unpacked *C.VkLayerProperti return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkLayerProperties) { + go allocs.Free() }) len0 := len(x) @@ -64377,8 +63558,8 @@ func unpackArgSSubmitInfo(x []SubmitInfo) (unpacked *C.VkSubmitInfo, allocs *cgo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubmitInfo) { + go allocs.Free() }) len0 := len(x) @@ -64415,8 +63596,8 @@ func unpackArgSMappedMemoryRange(x []MappedMemoryRange) (unpacked *C.VkMappedMem return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkMappedMemoryRange) { + go allocs.Free() }) len0 := len(x) @@ -64453,8 +63634,8 @@ func unpackArgSSparseImageMemoryRequirements(x []SparseImageMemoryRequirements) return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryRequirements) { + go allocs.Free() }) len0 := len(x) @@ -64491,8 +63672,8 @@ func unpackArgSSparseImageFormatProperties(x []SparseImageFormatProperties) (unp return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageFormatProperties) { + go allocs.Free() }) len0 := len(x) @@ -64529,8 +63710,8 @@ func unpackArgSBindSparseInfo(x []BindSparseInfo) (unpacked *C.VkBindSparseInfo, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBindSparseInfo) { + go allocs.Free() }) len0 := len(x) @@ -64561,72 +63742,14 @@ func packSBindSparseInfo(v []BindSparseInfo, ptr0 *C.VkBindSparseInfo) { } } -// copyPFenceBytes copies the data from Go slice as *C.VkFence. -func copyPFenceBytes(slice *sliceHeader) (*C.VkFence, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfFenceValue) * slice.Len, - Cap: int(sizeOfFenceValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkFence)(mem0), allocs -} - -// allocFenceMemory allocates memory for type C.VkFence in C. -// The caller is responsible for freeing the this memory via C.free. -func allocFenceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfFenceValue = unsafe.Sizeof([1]C.VkFence{}) - -// copyPPipelineCacheBytes copies the data from Go slice as *C.VkPipelineCache. -func copyPPipelineCacheBytes(slice *sliceHeader) (*C.VkPipelineCache, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfPipelineCacheValue) * slice.Len, - Cap: int(sizeOfPipelineCacheValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkPipelineCache)(mem0), allocs -} - -// allocPipelineCacheMemory allocates memory for type C.VkPipelineCache in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPipelineCacheMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCacheValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfPipelineCacheValue = unsafe.Sizeof([1]C.VkPipelineCache{}) - // unpackArgSGraphicsPipelineCreateInfo transforms a sliced Go data structure into plain C format. func unpackArgSGraphicsPipelineCreateInfo(x []GraphicsPipelineCreateInfo) (unpacked *C.VkGraphicsPipelineCreateInfo, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkGraphicsPipelineCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -64663,8 +63786,8 @@ func unpackArgSComputePipelineCreateInfo(x []ComputePipelineCreateInfo) (unpacke return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkComputePipelineCreateInfo) { + go allocs.Free() }) len0 := len(x) @@ -64701,8 +63824,8 @@ func unpackArgSWriteDescriptorSet(x []WriteDescriptorSet) (unpacked *C.VkWriteDe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkWriteDescriptorSet) { + go allocs.Free() }) len0 := len(x) @@ -64739,8 +63862,8 @@ func unpackArgSCopyDescriptorSet(x []CopyDescriptorSet) (unpacked *C.VkCopyDescr return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkCopyDescriptorSet) { + go allocs.Free() }) len0 := len(x) @@ -64777,8 +63900,8 @@ func unpackArgSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocM return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewport) { + go allocs.Free() }) len0 := len(x) @@ -64806,8 +63929,8 @@ func unpackArgSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkRect2D) { + go allocs.Free() }) len0 := len(x) @@ -64829,101 +63952,14 @@ func unpackArgSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { return } -// copyPDescriptorSetBytes copies the data from Go slice as *C.VkDescriptorSet. -func copyPDescriptorSetBytes(slice *sliceHeader) (*C.VkDescriptorSet, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDescriptorSetValue) * slice.Len, - Cap: int(sizeOfDescriptorSetValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDescriptorSet)(mem0), allocs -} - -// allocDescriptorSetMemory allocates memory for type C.VkDescriptorSet in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDescriptorSetValue = unsafe.Sizeof([1]C.VkDescriptorSet{}) - -// copyPBufferBytes copies the data from Go slice as *C.VkBuffer. -func copyPBufferBytes(slice *sliceHeader) (*C.VkBuffer, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfBufferValue) * slice.Len, - Cap: int(sizeOfBufferValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkBuffer)(mem0), allocs -} - -// allocBufferMemory allocates memory for type C.VkBuffer in C. -// The caller is responsible for freeing the this memory via C.free. -func allocBufferMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfBufferValue = unsafe.Sizeof([1]C.VkBuffer{}) - -// copyPDeviceSizeBytes copies the data from Go slice as *C.VkDeviceSize. -func copyPDeviceSizeBytes(slice *sliceHeader) (*C.VkDeviceSize, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDeviceSizeValue) * slice.Len, - Cap: int(sizeOfDeviceSizeValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDeviceSize)(mem0), allocs -} - -// allocDeviceSizeMemory allocates memory for type C.VkDeviceSize in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDeviceSizeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceSizeValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDeviceSizeValue = unsafe.Sizeof([1]C.VkDeviceSize{}) - // unpackArgSBufferCopy transforms a sliced Go data structure into plain C format. func unpackArgSBufferCopy(x []BufferCopy) (unpacked *C.VkBufferCopy, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCopy) { + go allocs.Free() }) len0 := len(x) @@ -64960,8 +63996,8 @@ func unpackArgSImageCopy(x []ImageCopy) (unpacked *C.VkImageCopy, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCopy) { + go allocs.Free() }) len0 := len(x) @@ -64998,8 +64034,8 @@ func unpackArgSImageBlit(x []ImageBlit) (unpacked *C.VkImageBlit, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageBlit) { + go allocs.Free() }) len0 := len(x) @@ -65036,8 +64072,8 @@ func unpackArgSBufferImageCopy(x []BufferImageCopy) (unpacked *C.VkBufferImageCo return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferImageCopy) { + go allocs.Free() }) len0 := len(x) @@ -65074,8 +64110,8 @@ func unpackArgSImageSubresourceRange(x []ImageSubresourceRange) (unpacked *C.VkI return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageSubresourceRange) { + go allocs.Free() }) len0 := len(x) @@ -65112,8 +64148,8 @@ func unpackArgSClearAttachment(x []ClearAttachment) (unpacked *C.VkClearAttachme return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkClearAttachment) { + go allocs.Free() }) len0 := len(x) @@ -65150,8 +64186,8 @@ func unpackArgSClearRect(x []ClearRect) (unpacked *C.VkClearRect, allocs *cgoAll return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkClearRect) { + go allocs.Free() }) len0 := len(x) @@ -65188,8 +64224,8 @@ func unpackArgSImageResolve(x []ImageResolve) (unpacked *C.VkImageResolve, alloc return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageResolve) { + go allocs.Free() }) len0 := len(x) @@ -65220,43 +64256,14 @@ func packSImageResolve(v []ImageResolve, ptr0 *C.VkImageResolve) { } } -// copyPEventBytes copies the data from Go slice as *C.VkEvent. -func copyPEventBytes(slice *sliceHeader) (*C.VkEvent, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfEventValue) * slice.Len, - Cap: int(sizeOfEventValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkEvent)(mem0), allocs -} - -// allocEventMemory allocates memory for type C.VkEvent in C. -// The caller is responsible for freeing the this memory via C.free. -func allocEventMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfEventValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfEventValue = unsafe.Sizeof([1]C.VkEvent{}) - // unpackArgSMemoryBarrier transforms a sliced Go data structure into plain C format. func unpackArgSMemoryBarrier(x []MemoryBarrier) (unpacked *C.VkMemoryBarrier, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkMemoryBarrier) { + go allocs.Free() }) len0 := len(x) @@ -65293,8 +64300,8 @@ func unpackArgSBufferMemoryBarrier(x []BufferMemoryBarrier) (unpacked *C.VkBuffe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferMemoryBarrier) { + go allocs.Free() }) len0 := len(x) @@ -65331,8 +64338,8 @@ func unpackArgSImageMemoryBarrier(x []ImageMemoryBarrier) (unpacked *C.VkImageMe return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageMemoryBarrier) { + go allocs.Free() }) len0 := len(x) @@ -65369,8 +64376,8 @@ func unpackArgSSurfaceFormat(x []SurfaceFormat) (unpacked *C.VkSurfaceFormatKHR, return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSurfaceFormatKHR) { + go allocs.Free() }) len0 := len(x) @@ -65401,72 +64408,14 @@ func packSSurfaceFormat(v []SurfaceFormat, ptr0 *C.VkSurfaceFormatKHR) { } } -// copyPPresentModeBytes copies the data from Go slice as *C.VkPresentModeKHR. -func copyPPresentModeBytes(slice *sliceHeader) (*C.VkPresentModeKHR, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfPresentModeValue) * slice.Len, - Cap: int(sizeOfPresentModeValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkPresentModeKHR)(mem0), allocs -} - -// allocPresentModeMemory allocates memory for type C.VkPresentModeKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPresentModeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentModeValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfPresentModeValue = unsafe.Sizeof([1]C.VkPresentModeKHR{}) - -// copyPImageBytes copies the data from Go slice as *C.VkImage. -func copyPImageBytes(slice *sliceHeader) (*C.VkImage, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfImageValue) * slice.Len, - Cap: int(sizeOfImageValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkImage)(mem0), allocs -} - -// allocImageMemory allocates memory for type C.VkImage in C. -// The caller is responsible for freeing the this memory via C.free. -func allocImageMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfImageValue = unsafe.Sizeof([1]C.VkImage{}) - // unpackArgSDisplayProperties transforms a sliced Go data structure into plain C format. func unpackArgSDisplayProperties(x []DisplayProperties) (unpacked *C.VkDisplayPropertiesKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayPropertiesKHR) { + go allocs.Free() }) len0 := len(x) @@ -65503,8 +64452,8 @@ func unpackArgSDisplayPlaneProperties(x []DisplayPlaneProperties) (unpacked *C.V return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayPlanePropertiesKHR) { + go allocs.Free() }) len0 := len(x) @@ -65535,43 +64484,14 @@ func packSDisplayPlaneProperties(v []DisplayPlaneProperties, ptr0 *C.VkDisplayPl } } -// copyPDisplayBytes copies the data from Go slice as *C.VkDisplayKHR. -func copyPDisplayBytes(slice *sliceHeader) (*C.VkDisplayKHR, *cgoAllocMap) { - allocs := new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() - }) - - mem0 := unsafe.Pointer(C.CBytes(*(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: slice.Data, - Len: int(sizeOfDisplayValue) * slice.Len, - Cap: int(sizeOfDisplayValue) * slice.Len, - })))) - allocs.Add(mem0) - - return (*C.VkDisplayKHR)(mem0), allocs -} - -// allocDisplayMemory allocates memory for type C.VkDisplayKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDisplayMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayValue)) - if mem == nil { - panic(fmt.Sprintln("memory alloc error: ", err)) - } - return mem -} - -const sizeOfDisplayValue = unsafe.Sizeof([1]C.VkDisplayKHR{}) - // unpackArgSDisplayModeProperties transforms a sliced Go data structure into plain C format. func unpackArgSDisplayModeProperties(x []DisplayModeProperties) (unpacked *C.VkDisplayModePropertiesKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkDisplayModePropertiesKHR) { + go allocs.Free() }) len0 := len(x) @@ -65608,8 +64528,8 @@ func unpackArgSSwapchainCreateInfo(x []SwapchainCreateInfo) (unpacked *C.VkSwapc return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(allocs, func(a *cgoAllocMap) { - go a.Free() + defer runtime.SetFinalizer(&unpacked, func(**C.VkSwapchainCreateInfoKHR) { + go allocs.Free() }) len0 := len(x) diff --git a/cgo_helpers.h b/cgo_helpers.h index 2ecf3e0..d04e524 100644 --- a/cgo_helpers.h +++ b/cgo_helpers.h @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "vulkan/vulkan.h" @@ -12,7 +12,7 @@ #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 01cca7a..3c3a562 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 Thu, 12 May 2022 00:52:13 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan diff --git a/const_go.patch b/const_go.patch index e159ccd..91bfce7 100644 --- a/const_go.patch +++ b/const_go.patch @@ -1,13 +1,5 @@ --- const.go 2022-05-12 01:22:31.000000000 -0700 +++ const_fixed.go 2022-05-12 01:22:24.000000000 -0700 -@@ -1,6 +1,6 @@ - // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. - --// WARNING: This file has automatically been generated on Thu, 12 May 2022 01:22:31 PDT. -+// WARNING: This file has automatically been generated on Thu, 12 May 2022 00:52:13 PDT. - // Code generated by https://git.io/c-for-go. DO NOT EDIT. - - package vulkan @@ -29,7 +29,7 @@ // AttachmentUnused as defined in vulkan/vulkan_core.h:124 AttachmentUnused = (^uint32(0)) diff --git a/doc.go b/doc.go index 40ba4b4..5ea3044 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 Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. /* diff --git a/go.mod b/go.mod index f16e06e..a015aea 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 diff --git a/types.go b/types.go index c38ce19..2be6913 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 Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -626,7 +626,7 @@ type PhysicalDeviceLimits struct { MaxViewportDimensions [2]uint32 ViewportBoundsRange [2]float32 ViewportSubPixelBits uint32 - MinMemoryMapAlignment uint32 + MinMemoryMapAlignment uint64 MinTexelBufferOffsetAlignment DeviceSize MinUniformBufferOffsetAlignment DeviceSize MinStorageBufferOffsetAlignment DeviceSize @@ -1031,7 +1031,7 @@ type ShaderModuleCreateInfo struct { SType StructureType PNext unsafe.Pointer Flags ShaderModuleCreateFlags - CodeSize uint32 + CodeSize uint64 PCode []uint32 refc663d23e *C.VkShaderModuleCreateInfo allocsc663d23e interface{} @@ -1042,7 +1042,7 @@ type PipelineCacheCreateInfo struct { SType StructureType PNext unsafe.Pointer Flags PipelineCacheCreateFlags - InitialDataSize uint32 + InitialDataSize uint64 PInitialData unsafe.Pointer reff11e7dd1 *C.VkPipelineCacheCreateInfo allocsf11e7dd1 interface{} @@ -1052,7 +1052,7 @@ type PipelineCacheCreateInfo struct { type SpecializationMapEntry struct { ConstantID uint32 Offset uint32 - Size uint32 + Size uint64 ref2fd815d1 *C.VkSpecializationMapEntry allocs2fd815d1 interface{} } @@ -1061,7 +1061,7 @@ type SpecializationMapEntry struct { type SpecializationInfo struct { MapEntryCount uint32 PMapEntries []SpecializationMapEntry - DataSize uint32 + DataSize uint64 PData unsafe.Pointer ref6bc395a3 *C.VkSpecializationInfo allocs6bc395a3 interface{} @@ -2235,8 +2235,8 @@ type DescriptorUpdateTemplateEntry struct { DstArrayElement uint32 DescriptorCount uint32 DescriptorType DescriptorType - Offset uint32 - Stride uint32 + Offset uint64 + Stride uint64 refabf78fb7 *C.VkDescriptorUpdateTemplateEntry allocsabf78fb7 interface{} } @@ -4660,7 +4660,7 @@ type PipelineExecutableInternalRepresentation struct { Name [256]byte Description [256]byte IsText Bool32 - DataSize uint32 + DataSize uint64 PData unsafe.Pointer ref20e334f7 *C.VkPipelineExecutableInternalRepresentationKHR allocs20e334f7 interface{} @@ -4742,7 +4742,7 @@ type DebugReportCallback C.VkDebugReportCallbackEXT type DebugReportFlags uint32 // DebugReportCallbackFunc type as declared in vulkan/vulkan_core.h:9587 -type DebugReportCallbackFunc func(flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint32, messageCode int32, pLayerPrefix string, pMessage string, pUserData unsafe.Pointer) Bool32 +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 { @@ -4782,7 +4782,7 @@ type DebugMarkerObjectTagInfo struct { ObjectType DebugReportObjectType Object uint64 TagName uint64 - TagSize uint32 + TagSize uint64 PTag unsafe.Pointer refa41a5c3b *C.VkDebugMarkerObjectTagInfoEXT allocsa41a5c3b interface{} @@ -4902,8 +4902,8 @@ type ShaderResourceUsageAMD struct { NumUsedVgprs uint32 NumUsedSgprs uint32 LdsSizePerLocalWorkGroup uint32 - LdsUsageSizeInBytes uint32 - ScratchMemUsageInBytes uint32 + LdsUsageSizeInBytes uint64 + ScratchMemUsageInBytes uint64 ref8a688131 *C.VkShaderResourceUsageAMD allocs8a688131 interface{} } @@ -5287,7 +5287,7 @@ type DebugUtilsObjectTagInfo struct { ObjectType ObjectType ObjectHandle uint64 TagName uint64 - TagSize uint32 + TagSize uint64 PTag unsafe.Pointer ref9fd129cf *C.VkDebugUtilsObjectTagInfoEXT allocs9fd129cf interface{} @@ -5547,7 +5547,7 @@ type ValidationCacheCreateInfo struct { SType StructureType PNext unsafe.Pointer Flags ValidationCacheCreateFlags - InitialDataSize uint32 + InitialDataSize uint64 PInitialData unsafe.Pointer ref3d8ac8aa *C.VkValidationCacheCreateInfoEXT allocs3d8ac8aa interface{} @@ -7141,7 +7141,7 @@ type DescriptorSetBindingReferenceVALVE struct { type DescriptorSetLayoutHostMappingInfoVALVE struct { SType StructureType PNext unsafe.Pointer - DescriptorOffset uint32 + DescriptorOffset uint64 DescriptorSize uint32 ref21a3fbe4 *C.VkDescriptorSetLayoutHostMappingInfoVALVE allocs21a3fbe4 interface{} diff --git a/vulkan.go b/vulkan.go index 20f70a0..56203b8 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 Thu, 12 May 2022 01:22:31 PDT. +// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -14,2201 +14,1588 @@ package vulkan #include "cgo_helpers.h" */ import "C" -import ( - "runtime" - "unsafe" -) +import "unsafe" // CreateInstance function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateInstance.html func CreateInstance(pCreateInfo *InstanceCreateInfo, pAllocator *AllocationCallbacks, pInstance *Instance) Result { - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpInstance, cpInstanceAllocMap := (*C.VkInstance)(unsafe.Pointer(pInstance)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpInstance, _ := (*C.VkInstance)(unsafe.Pointer(pInstance)), cgoAllocsUnknown __ret := C.callVkCreateInstance(cpCreateInfo, cpAllocator, cpInstance) - runtime.KeepAlive(cpInstanceAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) __v := (Result)(__ret) return __v } // DestroyInstance function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyInstance.html func DestroyInstance(instance Instance, pAllocator *AllocationCallbacks) { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyInstance(cinstance, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cinstanceAllocMap) } // EnumeratePhysicalDevices function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumeratePhysicalDevices.html func EnumeratePhysicalDevices(instance Instance, pPhysicalDeviceCount *uint32, pPhysicalDevices []PhysicalDevice) Result { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpPhysicalDeviceCount, cpPhysicalDeviceCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPhysicalDeviceCount)), cgoAllocsUnknown - cpPhysicalDevices, cpPhysicalDevicesAllocMap := copyPPhysicalDeviceBytes((*sliceHeader)(unsafe.Pointer(&pPhysicalDevices))) + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpPhysicalDeviceCount, _ := (*C.uint32_t)(unsafe.Pointer(pPhysicalDeviceCount)), cgoAllocsUnknown + cpPhysicalDevices, _ := (*C.VkPhysicalDevice)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPhysicalDevices)).Data)), cgoAllocsUnknown __ret := C.callVkEnumeratePhysicalDevices(cinstance, cpPhysicalDeviceCount, cpPhysicalDevices) - runtime.KeepAlive(cpPhysicalDevicesAllocMap) - runtime.KeepAlive(cpPhysicalDeviceCountAllocMap) - runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceFeatures function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceFeatures.html func GetPhysicalDeviceFeatures(physicalDevice PhysicalDevice, pFeatures *PhysicalDeviceFeatures) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpFeatures, cpFeaturesAllocMap := pFeatures.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpFeatures, _ := pFeatures.PassRef() C.callVkGetPhysicalDeviceFeatures(cphysicalDevice, cpFeatures) - runtime.KeepAlive(cpFeaturesAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceFormatProperties.html func GetPhysicalDeviceFormatProperties(physicalDevice PhysicalDevice, format Format, pFormatProperties *FormatProperties) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown - cpFormatProperties, cpFormatPropertiesAllocMap := pFormatProperties.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown + cpFormatProperties, _ := pFormatProperties.PassRef() C.callVkGetPhysicalDeviceFormatProperties(cphysicalDevice, cformat, cpFormatProperties) - runtime.KeepAlive(cpFormatPropertiesAllocMap) - runtime.KeepAlive(cformatAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceImageFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceImageFormatProperties.html func GetPhysicalDeviceImageFormatProperties(physicalDevice PhysicalDevice, format Format, kind ImageType, tiling ImageTiling, usage ImageUsageFlags, flags ImageCreateFlags, pImageFormatProperties *ImageFormatProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown - ckind, ckindAllocMap := (C.VkImageType)(kind), cgoAllocsUnknown - ctiling, ctilingAllocMap := (C.VkImageTiling)(tiling), cgoAllocsUnknown - cusage, cusageAllocMap := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkImageCreateFlags)(flags), cgoAllocsUnknown - cpImageFormatProperties, cpImageFormatPropertiesAllocMap := pImageFormatProperties.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown + ckind, _ := (C.VkImageType)(kind), cgoAllocsUnknown + ctiling, _ := (C.VkImageTiling)(tiling), cgoAllocsUnknown + cusage, _ := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown + cflags, _ := (C.VkImageCreateFlags)(flags), cgoAllocsUnknown + cpImageFormatProperties, _ := pImageFormatProperties.PassRef() __ret := C.callVkGetPhysicalDeviceImageFormatProperties(cphysicalDevice, cformat, ckind, ctiling, cusage, cflags, cpImageFormatProperties) - runtime.KeepAlive(cpImageFormatPropertiesAllocMap) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cusageAllocMap) - runtime.KeepAlive(ctilingAllocMap) - runtime.KeepAlive(ckindAllocMap) - runtime.KeepAlive(cformatAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceProperties.html func GetPhysicalDeviceProperties(physicalDevice PhysicalDevice, pProperties *PhysicalDeviceProperties) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := pProperties.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpProperties, _ := pProperties.PassRef() C.callVkGetPhysicalDeviceProperties(cphysicalDevice, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceQueueFamilyProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html func GetPhysicalDeviceQueueFamilyProperties(physicalDevice PhysicalDevice, pQueueFamilyPropertyCount *uint32, pQueueFamilyProperties []QueueFamilyProperties) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpQueueFamilyPropertyCount, cpQueueFamilyPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pQueueFamilyPropertyCount)), cgoAllocsUnknown - cpQueueFamilyProperties, cpQueueFamilyPropertiesAllocMap := unpackArgSQueueFamilyProperties(pQueueFamilyProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpQueueFamilyPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pQueueFamilyPropertyCount)), cgoAllocsUnknown + cpQueueFamilyProperties, _ := unpackArgSQueueFamilyProperties(pQueueFamilyProperties) C.callVkGetPhysicalDeviceQueueFamilyProperties(cphysicalDevice, cpQueueFamilyPropertyCount, cpQueueFamilyProperties) packSQueueFamilyProperties(pQueueFamilyProperties, cpQueueFamilyProperties) - runtime.KeepAlive(cpQueueFamilyPropertiesAllocMap) - runtime.KeepAlive(cpQueueFamilyPropertyCountAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // GetPhysicalDeviceMemoryProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceMemoryProperties.html func GetPhysicalDeviceMemoryProperties(physicalDevice PhysicalDevice, pMemoryProperties *PhysicalDeviceMemoryProperties) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpMemoryProperties, cpMemoryPropertiesAllocMap := pMemoryProperties.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpMemoryProperties, _ := pMemoryProperties.PassRef() C.callVkGetPhysicalDeviceMemoryProperties(cphysicalDevice, cpMemoryProperties) - runtime.KeepAlive(cpMemoryPropertiesAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // CreateDevice function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDevice.html func CreateDevice(physicalDevice PhysicalDevice, pCreateInfo *DeviceCreateInfo, pAllocator *AllocationCallbacks, pDevice *Device) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpDevice, cpDeviceAllocMap := (*C.VkDevice)(unsafe.Pointer(pDevice)), cgoAllocsUnknown + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpDevice, _ := (*C.VkDevice)(unsafe.Pointer(pDevice)), cgoAllocsUnknown __ret := C.callVkCreateDevice(cphysicalDevice, cpCreateInfo, cpAllocator, cpDevice) - runtime.KeepAlive(cpDeviceAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDevice function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDevice.html func DestroyDevice(device Device, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDevice(cdevice, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // EnumerateInstanceExtensionProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateInstanceExtensionProperties.html func EnumerateInstanceExtensionProperties(pLayerName string, pPropertyCount *uint32, pProperties []ExtensionProperties) Result { - cpLayerName, cpLayerNameAllocMap := unpackPCharString(pLayerName) - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSExtensionProperties(pProperties) + cpLayerName, _ := unpackPCharString(pLayerName) + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSExtensionProperties(pProperties) __ret := C.callVkEnumerateInstanceExtensionProperties(cpLayerName, cpPropertyCount, cpProperties) packSExtensionProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cpLayerNameAllocMap) __v := (Result)(__ret) return __v } // EnumerateDeviceExtensionProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceExtensionProperties.html func EnumerateDeviceExtensionProperties(physicalDevice PhysicalDevice, pLayerName string, pPropertyCount *uint32, pProperties []ExtensionProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpLayerName, cpLayerNameAllocMap := unpackPCharString(pLayerName) - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSExtensionProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpLayerName, _ := unpackPCharString(pLayerName) + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSExtensionProperties(pProperties) __ret := C.callVkEnumerateDeviceExtensionProperties(cphysicalDevice, cpLayerName, cpPropertyCount, cpProperties) packSExtensionProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cpLayerNameAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // EnumerateInstanceLayerProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateInstanceLayerProperties.html func EnumerateInstanceLayerProperties(pPropertyCount *uint32, pProperties []LayerProperties) Result { - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSLayerProperties(pProperties) + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSLayerProperties(pProperties) __ret := C.callVkEnumerateInstanceLayerProperties(cpPropertyCount, cpProperties) packSLayerProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) __v := (Result)(__ret) return __v } // EnumerateDeviceLayerProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceLayerProperties.html func EnumerateDeviceLayerProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []LayerProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSLayerProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSLayerProperties(pProperties) __ret := C.callVkEnumerateDeviceLayerProperties(cphysicalDevice, cpPropertyCount, cpProperties) packSLayerProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDeviceQueue function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetDeviceQueue.html func GetDeviceQueue(device Device, queueFamilyIndex uint32, queueIndex uint32, pQueue *Queue) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueueFamilyIndex, cqueueFamilyIndexAllocMap := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown - cqueueIndex, cqueueIndexAllocMap := (C.uint32_t)(queueIndex), cgoAllocsUnknown - cpQueue, cpQueueAllocMap := (*C.VkQueue)(unsafe.Pointer(pQueue)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cqueueFamilyIndex, _ := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown + cqueueIndex, _ := (C.uint32_t)(queueIndex), cgoAllocsUnknown + cpQueue, _ := (*C.VkQueue)(unsafe.Pointer(pQueue)), cgoAllocsUnknown C.callVkGetDeviceQueue(cdevice, cqueueFamilyIndex, cqueueIndex, cpQueue) - runtime.KeepAlive(cpQueueAllocMap) - runtime.KeepAlive(cqueueIndexAllocMap) - runtime.KeepAlive(cqueueFamilyIndexAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // QueueSubmit function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueSubmit.html func QueueSubmit(queue Queue, submitCount uint32, pSubmits []SubmitInfo, fence Fence) Result { - cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - csubmitCount, csubmitCountAllocMap := (C.uint32_t)(submitCount), cgoAllocsUnknown - cpSubmits, cpSubmitsAllocMap := unpackArgSSubmitInfo(pSubmits) - cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + csubmitCount, _ := (C.uint32_t)(submitCount), cgoAllocsUnknown + cpSubmits, _ := unpackArgSSubmitInfo(pSubmits) + cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkQueueSubmit(cqueue, csubmitCount, cpSubmits, cfence) - runtime.KeepAlive(cfenceAllocMap) packSSubmitInfo(pSubmits, cpSubmits) - runtime.KeepAlive(cpSubmitsAllocMap) - runtime.KeepAlive(csubmitCountAllocMap) - runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // QueueWaitIdle function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueWaitIdle.html func QueueWaitIdle(queue Queue) Result { - cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown __ret := C.callVkQueueWaitIdle(cqueue) - runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // DeviceWaitIdle function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDeviceWaitIdle.html func DeviceWaitIdle(device Device) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown __ret := C.callVkDeviceWaitIdle(cdevice) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateMemory.html func AllocateMemory(device Device, pAllocateInfo *MemoryAllocateInfo, pAllocator *AllocationCallbacks, pMemory *DeviceMemory) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpMemory, cpMemoryAllocMap := (*C.VkDeviceMemory)(unsafe.Pointer(pMemory)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, _ := pAllocateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpMemory, _ := (*C.VkDeviceMemory)(unsafe.Pointer(pMemory)), cgoAllocsUnknown __ret := C.callVkAllocateMemory(cdevice, cpAllocateInfo, cpAllocator, cpMemory) - runtime.KeepAlive(cpMemoryAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpAllocateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeMemory.html func FreeMemory(device Device, memory DeviceMemory, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkFreeMemory(cdevice, cmemory, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // MapMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkMapMemory.html func MapMemory(device Device, memory DeviceMemory, offset DeviceSize, size DeviceSize, flags MemoryMapFlags, ppData *unsafe.Pointer) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown - csize, csizeAllocMap := (C.VkDeviceSize)(size), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkMemoryMapFlags)(flags), cgoAllocsUnknown - cppData, cppDataAllocMap := ppData, cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown + csize, _ := (C.VkDeviceSize)(size), cgoAllocsUnknown + cflags, _ := (C.VkMemoryMapFlags)(flags), cgoAllocsUnknown + cppData, _ := ppData, cgoAllocsUnknown __ret := C.callVkMapMemory(cdevice, cmemory, coffset, csize, cflags, cppData) - runtime.KeepAlive(cppDataAllocMap) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(csizeAllocMap) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // UnmapMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkUnmapMemory.html func UnmapMemory(device Device, memory DeviceMemory) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown C.callVkUnmapMemory(cdevice, cmemory) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // FlushMappedMemoryRanges function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFlushMappedMemoryRanges.html func FlushMappedMemoryRanges(device Device, memoryRangeCount uint32, pMemoryRanges []MappedMemoryRange) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemoryRangeCount, cmemoryRangeCountAllocMap := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown - cpMemoryRanges, cpMemoryRangesAllocMap := unpackArgSMappedMemoryRange(pMemoryRanges) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemoryRangeCount, _ := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown + cpMemoryRanges, _ := unpackArgSMappedMemoryRange(pMemoryRanges) __ret := C.callVkFlushMappedMemoryRanges(cdevice, cmemoryRangeCount, cpMemoryRanges) packSMappedMemoryRange(pMemoryRanges, cpMemoryRanges) - runtime.KeepAlive(cpMemoryRangesAllocMap) - runtime.KeepAlive(cmemoryRangeCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // InvalidateMappedMemoryRanges function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkInvalidateMappedMemoryRanges.html func InvalidateMappedMemoryRanges(device Device, memoryRangeCount uint32, pMemoryRanges []MappedMemoryRange) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemoryRangeCount, cmemoryRangeCountAllocMap := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown - cpMemoryRanges, cpMemoryRangesAllocMap := unpackArgSMappedMemoryRange(pMemoryRanges) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemoryRangeCount, _ := (C.uint32_t)(memoryRangeCount), cgoAllocsUnknown + cpMemoryRanges, _ := unpackArgSMappedMemoryRange(pMemoryRanges) __ret := C.callVkInvalidateMappedMemoryRanges(cdevice, cmemoryRangeCount, cpMemoryRanges) packSMappedMemoryRange(pMemoryRanges, cpMemoryRanges) - runtime.KeepAlive(cpMemoryRangesAllocMap) - runtime.KeepAlive(cmemoryRangeCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetDeviceMemoryCommitment function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetDeviceMemoryCommitment.html func GetDeviceMemoryCommitment(device Device, memory DeviceMemory, pCommittedMemoryInBytes *DeviceSize) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cpCommittedMemoryInBytes, cpCommittedMemoryInBytesAllocMap := (*C.VkDeviceSize)(unsafe.Pointer(pCommittedMemoryInBytes)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cpCommittedMemoryInBytes, _ := (*C.VkDeviceSize)(unsafe.Pointer(pCommittedMemoryInBytes)), cgoAllocsUnknown C.callVkGetDeviceMemoryCommitment(cdevice, cmemory, cpCommittedMemoryInBytes) - runtime.KeepAlive(cpCommittedMemoryInBytesAllocMap) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // BindBufferMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBindBufferMemory.html func BindBufferMemory(device Device, buffer Buffer, memory DeviceMemory, memoryOffset DeviceSize) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cmemoryOffset, cmemoryOffsetAllocMap := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cmemoryOffset, _ := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown __ret := C.callVkBindBufferMemory(cdevice, cbuffer, cmemory, cmemoryOffset) - runtime.KeepAlive(cmemoryOffsetAllocMap) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // BindImageMemory function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBindImageMemory.html func BindImageMemory(device Device, image Image, memory DeviceMemory, memoryOffset DeviceSize) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cmemory, cmemoryAllocMap := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown - cmemoryOffset, cmemoryOffsetAllocMap := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cmemory, _ := *(*C.VkDeviceMemory)(unsafe.Pointer(&memory)), cgoAllocsUnknown + cmemoryOffset, _ := (C.VkDeviceSize)(memoryOffset), cgoAllocsUnknown __ret := C.callVkBindImageMemory(cdevice, cimage, cmemory, cmemoryOffset) - runtime.KeepAlive(cmemoryOffsetAllocMap) - runtime.KeepAlive(cmemoryAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetBufferMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetBufferMemoryRequirements.html func GetBufferMemoryRequirements(device Device, buffer Buffer, pMemoryRequirements *MemoryRequirements) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cpMemoryRequirements, cpMemoryRequirementsAllocMap := pMemoryRequirements.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cpMemoryRequirements, _ := pMemoryRequirements.PassRef() C.callVkGetBufferMemoryRequirements(cdevice, cbuffer, cpMemoryRequirements) - runtime.KeepAlive(cpMemoryRequirementsAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetImageMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageMemoryRequirements.html func GetImageMemoryRequirements(device Device, image Image, pMemoryRequirements *MemoryRequirements) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpMemoryRequirements, cpMemoryRequirementsAllocMap := pMemoryRequirements.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpMemoryRequirements, _ := pMemoryRequirements.PassRef() C.callVkGetImageMemoryRequirements(cdevice, cimage, cpMemoryRequirements) - runtime.KeepAlive(cpMemoryRequirementsAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetImageSparseMemoryRequirements function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageSparseMemoryRequirements.html func GetImageSparseMemoryRequirements(device Device, image Image, pSparseMemoryRequirementCount []uint32, pSparseMemoryRequirements []SparseImageMemoryRequirements) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpSparseMemoryRequirementCount, cpSparseMemoryRequirementCountAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pSparseMemoryRequirementCount))) - cpSparseMemoryRequirements, cpSparseMemoryRequirementsAllocMap := unpackArgSSparseImageMemoryRequirements(pSparseMemoryRequirements) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpSparseMemoryRequirementCount, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSparseMemoryRequirementCount)).Data)), cgoAllocsUnknown + cpSparseMemoryRequirements, _ := unpackArgSSparseImageMemoryRequirements(pSparseMemoryRequirements) C.callVkGetImageSparseMemoryRequirements(cdevice, cimage, cpSparseMemoryRequirementCount, cpSparseMemoryRequirements) packSSparseImageMemoryRequirements(pSparseMemoryRequirements, cpSparseMemoryRequirements) - runtime.KeepAlive(cpSparseMemoryRequirementsAllocMap) - runtime.KeepAlive(cpSparseMemoryRequirementCountAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetPhysicalDeviceSparseImageFormatProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html func GetPhysicalDeviceSparseImageFormatProperties(physicalDevice PhysicalDevice, format Format, kind ImageType, samples SampleCountFlagBits, usage ImageUsageFlags, tiling ImageTiling, pPropertyCount []uint32, pProperties []SparseImageFormatProperties) { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cformat, cformatAllocMap := (C.VkFormat)(format), cgoAllocsUnknown - ckind, ckindAllocMap := (C.VkImageType)(kind), cgoAllocsUnknown - csamples, csamplesAllocMap := (C.VkSampleCountFlagBits)(samples), cgoAllocsUnknown - cusage, cusageAllocMap := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown - ctiling, ctilingAllocMap := (C.VkImageTiling)(tiling), cgoAllocsUnknown - cpPropertyCount, cpPropertyCountAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pPropertyCount))) - cpProperties, cpPropertiesAllocMap := unpackArgSSparseImageFormatProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cformat, _ := (C.VkFormat)(format), cgoAllocsUnknown + ckind, _ := (C.VkImageType)(kind), cgoAllocsUnknown + csamples, _ := (C.VkSampleCountFlagBits)(samples), cgoAllocsUnknown + cusage, _ := (C.VkImageUsageFlags)(usage), cgoAllocsUnknown + ctiling, _ := (C.VkImageTiling)(tiling), cgoAllocsUnknown + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPropertyCount)).Data)), cgoAllocsUnknown + cpProperties, _ := unpackArgSSparseImageFormatProperties(pProperties) C.callVkGetPhysicalDeviceSparseImageFormatProperties(cphysicalDevice, cformat, ckind, csamples, cusage, ctiling, cpPropertyCount, cpProperties) packSSparseImageFormatProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(ctilingAllocMap) - runtime.KeepAlive(cusageAllocMap) - runtime.KeepAlive(csamplesAllocMap) - runtime.KeepAlive(ckindAllocMap) - runtime.KeepAlive(cformatAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) } // QueueBindSparse function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkQueueBindSparse.html func QueueBindSparse(queue Queue, bindInfoCount uint32, pBindInfo []BindSparseInfo, fence Fence) Result { - cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - cbindInfoCount, cbindInfoCountAllocMap := (C.uint32_t)(bindInfoCount), cgoAllocsUnknown - cpBindInfo, cpBindInfoAllocMap := unpackArgSBindSparseInfo(pBindInfo) - cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cbindInfoCount, _ := (C.uint32_t)(bindInfoCount), cgoAllocsUnknown + cpBindInfo, _ := unpackArgSBindSparseInfo(pBindInfo) + cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkQueueBindSparse(cqueue, cbindInfoCount, cpBindInfo, cfence) - runtime.KeepAlive(cfenceAllocMap) packSBindSparseInfo(pBindInfo, cpBindInfo) - runtime.KeepAlive(cpBindInfoAllocMap) - runtime.KeepAlive(cbindInfoCountAllocMap) - runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // CreateFence function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateFence.html func CreateFence(device Device, pCreateInfo *FenceCreateInfo, pAllocator *AllocationCallbacks, pFence *Fence) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpFence, cpFenceAllocMap := (*C.VkFence)(unsafe.Pointer(pFence)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpFence, _ := (*C.VkFence)(unsafe.Pointer(pFence)), cgoAllocsUnknown __ret := C.callVkCreateFence(cdevice, cpCreateInfo, cpAllocator, cpFence) - runtime.KeepAlive(cpFenceAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyFence function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyFence.html func DestroyFence(device Device, fence Fence, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyFence(cdevice, cfence, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cfenceAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // ResetFences function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetFences.html func ResetFences(device Device, fenceCount uint32, pFences []Fence) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfenceCount, cfenceCountAllocMap := (C.uint32_t)(fenceCount), cgoAllocsUnknown - cpFences, cpFencesAllocMap := copyPFenceBytes((*sliceHeader)(unsafe.Pointer(&pFences))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfenceCount, _ := (C.uint32_t)(fenceCount), cgoAllocsUnknown + cpFences, _ := (*C.VkFence)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pFences)).Data)), cgoAllocsUnknown __ret := C.callVkResetFences(cdevice, cfenceCount, cpFences) - runtime.KeepAlive(cpFencesAllocMap) - runtime.KeepAlive(cfenceCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetFenceStatus function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetFenceStatus.html func GetFenceStatus(device Device, fence Fence) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown __ret := C.callVkGetFenceStatus(cdevice, cfence) - runtime.KeepAlive(cfenceAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // WaitForFences function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkWaitForFences.html func WaitForFences(device Device, fenceCount uint32, pFences []Fence, waitAll Bool32, timeout uint64) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cfenceCount, cfenceCountAllocMap := (C.uint32_t)(fenceCount), cgoAllocsUnknown - cpFences, cpFencesAllocMap := copyPFenceBytes((*sliceHeader)(unsafe.Pointer(&pFences))) - cwaitAll, cwaitAllAllocMap := (C.VkBool32)(waitAll), cgoAllocsUnknown - ctimeout, ctimeoutAllocMap := (C.uint64_t)(timeout), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cfenceCount, _ := (C.uint32_t)(fenceCount), cgoAllocsUnknown + cpFences, _ := (*C.VkFence)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pFences)).Data)), cgoAllocsUnknown + cwaitAll, _ := (C.VkBool32)(waitAll), cgoAllocsUnknown + ctimeout, _ := (C.uint64_t)(timeout), cgoAllocsUnknown __ret := C.callVkWaitForFences(cdevice, cfenceCount, cpFences, cwaitAll, ctimeout) - runtime.KeepAlive(ctimeoutAllocMap) - runtime.KeepAlive(cwaitAllAllocMap) - runtime.KeepAlive(cpFencesAllocMap) - runtime.KeepAlive(cfenceCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateSemaphore function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateSemaphore.html func CreateSemaphore(device Device, pCreateInfo *SemaphoreCreateInfo, pAllocator *AllocationCallbacks, pSemaphore *Semaphore) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSemaphore, cpSemaphoreAllocMap := (*C.VkSemaphore)(unsafe.Pointer(pSemaphore)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSemaphore, _ := (*C.VkSemaphore)(unsafe.Pointer(pSemaphore)), cgoAllocsUnknown __ret := C.callVkCreateSemaphore(cdevice, cpCreateInfo, cpAllocator, cpSemaphore) - runtime.KeepAlive(cpSemaphoreAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySemaphore function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroySemaphore.html func DestroySemaphore(device Device, semaphore Semaphore, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - csemaphore, csemaphoreAllocMap := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + csemaphore, _ := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySemaphore(cdevice, csemaphore, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(csemaphoreAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateEvent.html func CreateEvent(device Device, pCreateInfo *EventCreateInfo, pAllocator *AllocationCallbacks, pEvent *Event) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpEvent, cpEventAllocMap := (*C.VkEvent)(unsafe.Pointer(pEvent)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpEvent, _ := (*C.VkEvent)(unsafe.Pointer(pEvent)), cgoAllocsUnknown __ret := C.callVkCreateEvent(cdevice, cpCreateInfo, cpAllocator, cpEvent) - runtime.KeepAlive(cpEventAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyEvent.html func DestroyEvent(device Device, event Event, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyEvent(cdevice, cevent, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetEventStatus function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetEventStatus.html func GetEventStatus(device Device, event Event) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkGetEventStatus(cdevice, cevent) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // SetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkSetEvent.html func SetEvent(device Device, event Event) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkSetEvent(cdevice, cevent) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // ResetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetEvent.html func ResetEvent(device Device, event Event) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown __ret := C.callVkResetEvent(cdevice, cevent) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateQueryPool.html func CreateQueryPool(device Device, pCreateInfo *QueryPoolCreateInfo, pAllocator *AllocationCallbacks, pQueryPool *QueryPool) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpQueryPool, cpQueryPoolAllocMap := (*C.VkQueryPool)(unsafe.Pointer(pQueryPool)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpQueryPool, _ := (*C.VkQueryPool)(unsafe.Pointer(pQueryPool)), cgoAllocsUnknown __ret := C.callVkCreateQueryPool(cdevice, cpCreateInfo, cpAllocator, cpQueryPool) - runtime.KeepAlive(cpQueryPoolAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyQueryPool.html func DestroyQueryPool(device Device, queryPool QueryPool, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyQueryPool(cdevice, cqueryPool, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // 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 uint32, pData unsafe.Pointer, stride DeviceSize, flags QueryResultFlags) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown - cdataSize, cdataSizeAllocMap := (C.size_t)(dataSize), cgoAllocsUnknown - cpData, cpDataAllocMap := pData, cgoAllocsUnknown - cstride, cstrideAllocMap := (C.VkDeviceSize)(stride), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown +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 + cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown + cdataSize, _ := (C.size_t)(dataSize), cgoAllocsUnknown + cpData, _ := pData, cgoAllocsUnknown + cstride, _ := (C.VkDeviceSize)(stride), cgoAllocsUnknown + cflags, _ := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown __ret := C.callVkGetQueryPoolResults(cdevice, cqueryPool, cfirstQuery, cqueryCount, cdataSize, cpData, cstride, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cstrideAllocMap) - runtime.KeepAlive(cpDataAllocMap) - runtime.KeepAlive(cdataSizeAllocMap) - runtime.KeepAlive(cqueryCountAllocMap) - runtime.KeepAlive(cfirstQueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateBuffer.html func CreateBuffer(device Device, pCreateInfo *BufferCreateInfo, pAllocator *AllocationCallbacks, pBuffer *Buffer) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpBuffer, cpBufferAllocMap := (*C.VkBuffer)(unsafe.Pointer(pBuffer)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpBuffer, _ := (*C.VkBuffer)(unsafe.Pointer(pBuffer)), cgoAllocsUnknown __ret := C.callVkCreateBuffer(cdevice, cpCreateInfo, cpAllocator, cpBuffer) - runtime.KeepAlive(cpBufferAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyBuffer.html func DestroyBuffer(device Device, buffer Buffer, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyBuffer(cdevice, cbuffer, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateBufferView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateBufferView.html func CreateBufferView(device Device, pCreateInfo *BufferViewCreateInfo, pAllocator *AllocationCallbacks, pView *BufferView) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpView, cpViewAllocMap := (*C.VkBufferView)(unsafe.Pointer(pView)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpView, _ := (*C.VkBufferView)(unsafe.Pointer(pView)), cgoAllocsUnknown __ret := C.callVkCreateBufferView(cdevice, cpCreateInfo, cpAllocator, cpView) - runtime.KeepAlive(cpViewAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyBufferView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyBufferView.html func DestroyBufferView(device Device, bufferView BufferView, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cbufferView, cbufferViewAllocMap := *(*C.VkBufferView)(unsafe.Pointer(&bufferView)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cbufferView, _ := *(*C.VkBufferView)(unsafe.Pointer(&bufferView)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyBufferView(cdevice, cbufferView, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cbufferViewAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateImage.html func CreateImage(device Device, pCreateInfo *ImageCreateInfo, pAllocator *AllocationCallbacks, pImage *Image) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpImage, cpImageAllocMap := (*C.VkImage)(unsafe.Pointer(pImage)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpImage, _ := (*C.VkImage)(unsafe.Pointer(pImage)), cgoAllocsUnknown __ret := C.callVkCreateImage(cdevice, cpCreateInfo, cpAllocator, cpImage) - runtime.KeepAlive(cpImageAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyImage.html func DestroyImage(device Device, image Image, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyImage(cdevice, cimage, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetImageSubresourceLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetImageSubresourceLayout.html func GetImageSubresourceLayout(device Device, image Image, pSubresource *ImageSubresource, pLayout *SubresourceLayout) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cpSubresource, cpSubresourceAllocMap := pSubresource.PassRef() - cpLayout, cpLayoutAllocMap := pLayout.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cpSubresource, _ := pSubresource.PassRef() + cpLayout, _ := pLayout.PassRef() C.callVkGetImageSubresourceLayout(cdevice, cimage, cpSubresource, cpLayout) - runtime.KeepAlive(cpLayoutAllocMap) - runtime.KeepAlive(cpSubresourceAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateImageView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateImageView.html func CreateImageView(device Device, pCreateInfo *ImageViewCreateInfo, pAllocator *AllocationCallbacks, pView *ImageView) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpView, cpViewAllocMap := (*C.VkImageView)(unsafe.Pointer(pView)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpView, _ := (*C.VkImageView)(unsafe.Pointer(pView)), cgoAllocsUnknown __ret := C.callVkCreateImageView(cdevice, cpCreateInfo, cpAllocator, cpView) - runtime.KeepAlive(cpViewAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyImageView function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyImageView.html func DestroyImageView(device Device, imageView ImageView, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cimageView, cimageViewAllocMap := *(*C.VkImageView)(unsafe.Pointer(&imageView)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cimageView, _ := *(*C.VkImageView)(unsafe.Pointer(&imageView)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyImageView(cdevice, cimageView, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cimageViewAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateShaderModule function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateShaderModule.html func CreateShaderModule(device Device, pCreateInfo *ShaderModuleCreateInfo, pAllocator *AllocationCallbacks, pShaderModule *ShaderModule) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpShaderModule, cpShaderModuleAllocMap := (*C.VkShaderModule)(unsafe.Pointer(pShaderModule)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpShaderModule, _ := (*C.VkShaderModule)(unsafe.Pointer(pShaderModule)), cgoAllocsUnknown __ret := C.callVkCreateShaderModule(cdevice, cpCreateInfo, cpAllocator, cpShaderModule) - runtime.KeepAlive(cpShaderModuleAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyShaderModule function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyShaderModule.html func DestroyShaderModule(device Device, shaderModule ShaderModule, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cshaderModule, cshaderModuleAllocMap := *(*C.VkShaderModule)(unsafe.Pointer(&shaderModule)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cshaderModule, _ := *(*C.VkShaderModule)(unsafe.Pointer(&shaderModule)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyShaderModule(cdevice, cshaderModule, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cshaderModuleAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreatePipelineCache function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreatePipelineCache.html func CreatePipelineCache(device Device, pCreateInfo *PipelineCacheCreateInfo, pAllocator *AllocationCallbacks, pPipelineCache *PipelineCache) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelineCache, cpPipelineCacheAllocMap := (*C.VkPipelineCache)(unsafe.Pointer(pPipelineCache)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelineCache, _ := (*C.VkPipelineCache)(unsafe.Pointer(pPipelineCache)), cgoAllocsUnknown __ret := C.callVkCreatePipelineCache(cdevice, cpCreateInfo, cpAllocator, cpPipelineCache) - runtime.KeepAlive(cpPipelineCacheAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipelineCache function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipelineCache.html func DestroyPipelineCache(device Device, pipelineCache PipelineCache, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipelineCache(cdevice, cpipelineCache, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpipelineCacheAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // 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 *uint32, pData unsafe.Pointer) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - cpDataSize, cpDataSizeAllocMap := (*C.size_t)(unsafe.Pointer(pDataSize)), cgoAllocsUnknown - cpData, cpDataAllocMap := pData, cgoAllocsUnknown +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 + cpData, _ := pData, cgoAllocsUnknown __ret := C.callVkGetPipelineCacheData(cdevice, cpipelineCache, cpDataSize, cpData) - runtime.KeepAlive(cpDataAllocMap) - runtime.KeepAlive(cpDataSizeAllocMap) - runtime.KeepAlive(cpipelineCacheAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // MergePipelineCaches function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkMergePipelineCaches.html func MergePipelineCaches(device Device, dstCache PipelineCache, srcCacheCount uint32, pSrcCaches []PipelineCache) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdstCache, cdstCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&dstCache)), cgoAllocsUnknown - csrcCacheCount, csrcCacheCountAllocMap := (C.uint32_t)(srcCacheCount), cgoAllocsUnknown - cpSrcCaches, cpSrcCachesAllocMap := copyPPipelineCacheBytes((*sliceHeader)(unsafe.Pointer(&pSrcCaches))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdstCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&dstCache)), cgoAllocsUnknown + csrcCacheCount, _ := (C.uint32_t)(srcCacheCount), cgoAllocsUnknown + cpSrcCaches, _ := (*C.VkPipelineCache)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSrcCaches)).Data)), cgoAllocsUnknown __ret := C.callVkMergePipelineCaches(cdevice, cdstCache, csrcCacheCount, cpSrcCaches) - runtime.KeepAlive(cpSrcCachesAllocMap) - runtime.KeepAlive(csrcCacheCountAllocMap) - runtime.KeepAlive(cdstCacheAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateGraphicsPipelines function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateGraphicsPipelines.html func CreateGraphicsPipelines(device Device, pipelineCache PipelineCache, createInfoCount uint32, pCreateInfos []GraphicsPipelineCreateInfo, pAllocator *AllocationCallbacks, pPipelines []Pipeline) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - ccreateInfoCount, ccreateInfoCountAllocMap := (C.uint32_t)(createInfoCount), cgoAllocsUnknown - cpCreateInfos, cpCreateInfosAllocMap := unpackArgSGraphicsPipelineCreateInfo(pCreateInfos) - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelines, cpPipelinesAllocMap := copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&pPipelines))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + ccreateInfoCount, _ := (C.uint32_t)(createInfoCount), cgoAllocsUnknown + cpCreateInfos, _ := unpackArgSGraphicsPipelineCreateInfo(pCreateInfos) + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelines, _ := (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPipelines)).Data)), cgoAllocsUnknown __ret := C.callVkCreateGraphicsPipelines(cdevice, cpipelineCache, ccreateInfoCount, cpCreateInfos, cpAllocator, cpPipelines) - runtime.KeepAlive(cpPipelinesAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) packSGraphicsPipelineCreateInfo(pCreateInfos, cpCreateInfos) - runtime.KeepAlive(cpCreateInfosAllocMap) - runtime.KeepAlive(ccreateInfoCountAllocMap) - runtime.KeepAlive(cpipelineCacheAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateComputePipelines function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateComputePipelines.html func CreateComputePipelines(device Device, pipelineCache PipelineCache, createInfoCount uint32, pCreateInfos []ComputePipelineCreateInfo, pAllocator *AllocationCallbacks, pPipelines []Pipeline) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineCache, cpipelineCacheAllocMap := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown - ccreateInfoCount, ccreateInfoCountAllocMap := (C.uint32_t)(createInfoCount), cgoAllocsUnknown - cpCreateInfos, cpCreateInfosAllocMap := unpackArgSComputePipelineCreateInfo(pCreateInfos) - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelines, cpPipelinesAllocMap := copyPPipelineBytes((*sliceHeader)(unsafe.Pointer(&pPipelines))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown + ccreateInfoCount, _ := (C.uint32_t)(createInfoCount), cgoAllocsUnknown + cpCreateInfos, _ := unpackArgSComputePipelineCreateInfo(pCreateInfos) + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelines, _ := (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPipelines)).Data)), cgoAllocsUnknown __ret := C.callVkCreateComputePipelines(cdevice, cpipelineCache, ccreateInfoCount, cpCreateInfos, cpAllocator, cpPipelines) - runtime.KeepAlive(cpPipelinesAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) packSComputePipelineCreateInfo(pCreateInfos, cpCreateInfos) - runtime.KeepAlive(cpCreateInfosAllocMap) - runtime.KeepAlive(ccreateInfoCountAllocMap) - runtime.KeepAlive(cpipelineCacheAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipeline function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipeline.html func DestroyPipeline(device Device, pipeline Pipeline, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipeline, cpipelineAllocMap := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipeline, _ := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipeline(cdevice, cpipeline, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpipelineAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreatePipelineLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreatePipelineLayout.html func CreatePipelineLayout(device Device, pCreateInfo *PipelineLayoutCreateInfo, pAllocator *AllocationCallbacks, pPipelineLayout *PipelineLayout) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpPipelineLayout, cpPipelineLayoutAllocMap := (*C.VkPipelineLayout)(unsafe.Pointer(pPipelineLayout)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpPipelineLayout, _ := (*C.VkPipelineLayout)(unsafe.Pointer(pPipelineLayout)), cgoAllocsUnknown __ret := C.callVkCreatePipelineLayout(cdevice, cpCreateInfo, cpAllocator, cpPipelineLayout) - runtime.KeepAlive(cpPipelineLayoutAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyPipelineLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyPipelineLayout.html func DestroyPipelineLayout(device Device, pipelineLayout PipelineLayout, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpipelineLayout, cpipelineLayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&pipelineLayout)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpipelineLayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&pipelineLayout)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyPipelineLayout(cdevice, cpipelineLayout, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpipelineLayoutAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateSampler function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateSampler.html func CreateSampler(device Device, pCreateInfo *SamplerCreateInfo, pAllocator *AllocationCallbacks, pSampler *Sampler) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSampler, cpSamplerAllocMap := (*C.VkSampler)(unsafe.Pointer(pSampler)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSampler, _ := (*C.VkSampler)(unsafe.Pointer(pSampler)), cgoAllocsUnknown __ret := C.callVkCreateSampler(cdevice, cpCreateInfo, cpAllocator, cpSampler) - runtime.KeepAlive(cpSamplerAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySampler function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroySampler.html func DestroySampler(device Device, sampler Sampler, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - csampler, csamplerAllocMap := *(*C.VkSampler)(unsafe.Pointer(&sampler)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + csampler, _ := *(*C.VkSampler)(unsafe.Pointer(&sampler)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySampler(cdevice, csampler, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(csamplerAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateDescriptorSetLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDescriptorSetLayout.html func CreateDescriptorSetLayout(device Device, pCreateInfo *DescriptorSetLayoutCreateInfo, pAllocator *AllocationCallbacks, pSetLayout *DescriptorSetLayout) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSetLayout, cpSetLayoutAllocMap := (*C.VkDescriptorSetLayout)(unsafe.Pointer(pSetLayout)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSetLayout, _ := (*C.VkDescriptorSetLayout)(unsafe.Pointer(pSetLayout)), cgoAllocsUnknown __ret := C.callVkCreateDescriptorSetLayout(cdevice, cpCreateInfo, cpAllocator, cpSetLayout) - runtime.KeepAlive(cpSetLayoutAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDescriptorSetLayout function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDescriptorSetLayout.html func DestroyDescriptorSetLayout(device Device, descriptorSetLayout DescriptorSetLayout, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorSetLayout, cdescriptorSetLayoutAllocMap := *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&descriptorSetLayout)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorSetLayout, _ := *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&descriptorSetLayout)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDescriptorSetLayout(cdevice, cdescriptorSetLayout, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cdescriptorSetLayoutAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDescriptorPool.html func CreateDescriptorPool(device Device, pCreateInfo *DescriptorPoolCreateInfo, pAllocator *AllocationCallbacks, pDescriptorPool *DescriptorPool) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpDescriptorPool, cpDescriptorPoolAllocMap := (*C.VkDescriptorPool)(unsafe.Pointer(pDescriptorPool)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpDescriptorPool, _ := (*C.VkDescriptorPool)(unsafe.Pointer(pDescriptorPool)), cgoAllocsUnknown __ret := C.callVkCreateDescriptorPool(cdevice, cpCreateInfo, cpAllocator, cpDescriptorPool) - runtime.KeepAlive(cpDescriptorPoolAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDescriptorPool.html func DestroyDescriptorPool(device Device, descriptorPool DescriptorPool, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDescriptorPool(cdevice, cdescriptorPool, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cdescriptorPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // ResetDescriptorPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetDescriptorPool.html func ResetDescriptorPool(device Device, descriptorPool DescriptorPool, flags DescriptorPoolResetFlags) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkDescriptorPoolResetFlags)(flags), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cflags, _ := (C.VkDescriptorPoolResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetDescriptorPool(cdevice, cdescriptorPool, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cdescriptorPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateDescriptorSets.html func AllocateDescriptorSets(device Device, pAllocateInfo *DescriptorSetAllocateInfo, pDescriptorSets *DescriptorSet) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() - cpDescriptorSets, cpDescriptorSetsAllocMap := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, _ := pAllocateInfo.PassRef() + cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown __ret := C.callVkAllocateDescriptorSets(cdevice, cpAllocateInfo, cpDescriptorSets) - runtime.KeepAlive(cpDescriptorSetsAllocMap) - runtime.KeepAlive(cpAllocateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeDescriptorSets.html func FreeDescriptorSets(device Device, descriptorPool DescriptorPool, descriptorSetCount uint32, pDescriptorSets *DescriptorSet) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorPool, cdescriptorPoolAllocMap := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown - cdescriptorSetCount, cdescriptorSetCountAllocMap := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown - cpDescriptorSets, cpDescriptorSetsAllocMap := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorPool, _ := *(*C.VkDescriptorPool)(unsafe.Pointer(&descriptorPool)), cgoAllocsUnknown + cdescriptorSetCount, _ := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown + cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer(pDescriptorSets)), cgoAllocsUnknown __ret := C.callVkFreeDescriptorSets(cdevice, cdescriptorPool, cdescriptorSetCount, cpDescriptorSets) - runtime.KeepAlive(cpDescriptorSetsAllocMap) - runtime.KeepAlive(cdescriptorSetCountAllocMap) - runtime.KeepAlive(cdescriptorPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // UpdateDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkUpdateDescriptorSets.html func UpdateDescriptorSets(device Device, descriptorWriteCount uint32, pDescriptorWrites []WriteDescriptorSet, descriptorCopyCount uint32, pDescriptorCopies []CopyDescriptorSet) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cdescriptorWriteCount, cdescriptorWriteCountAllocMap := (C.uint32_t)(descriptorWriteCount), cgoAllocsUnknown - cpDescriptorWrites, cpDescriptorWritesAllocMap := unpackArgSWriteDescriptorSet(pDescriptorWrites) - cdescriptorCopyCount, cdescriptorCopyCountAllocMap := (C.uint32_t)(descriptorCopyCount), cgoAllocsUnknown - cpDescriptorCopies, cpDescriptorCopiesAllocMap := unpackArgSCopyDescriptorSet(pDescriptorCopies) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cdescriptorWriteCount, _ := (C.uint32_t)(descriptorWriteCount), cgoAllocsUnknown + cpDescriptorWrites, _ := unpackArgSWriteDescriptorSet(pDescriptorWrites) + cdescriptorCopyCount, _ := (C.uint32_t)(descriptorCopyCount), cgoAllocsUnknown + cpDescriptorCopies, _ := unpackArgSCopyDescriptorSet(pDescriptorCopies) C.callVkUpdateDescriptorSets(cdevice, cdescriptorWriteCount, cpDescriptorWrites, cdescriptorCopyCount, cpDescriptorCopies) packSCopyDescriptorSet(pDescriptorCopies, cpDescriptorCopies) - runtime.KeepAlive(cpDescriptorCopiesAllocMap) - runtime.KeepAlive(cdescriptorCopyCountAllocMap) packSWriteDescriptorSet(pDescriptorWrites, cpDescriptorWrites) - runtime.KeepAlive(cpDescriptorWritesAllocMap) - runtime.KeepAlive(cdescriptorWriteCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateFramebuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateFramebuffer.html func CreateFramebuffer(device Device, pCreateInfo *FramebufferCreateInfo, pAllocator *AllocationCallbacks, pFramebuffer *Framebuffer) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpFramebuffer, cpFramebufferAllocMap := (*C.VkFramebuffer)(unsafe.Pointer(pFramebuffer)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpFramebuffer, _ := (*C.VkFramebuffer)(unsafe.Pointer(pFramebuffer)), cgoAllocsUnknown __ret := C.callVkCreateFramebuffer(cdevice, cpCreateInfo, cpAllocator, cpFramebuffer) - runtime.KeepAlive(cpFramebufferAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyFramebuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyFramebuffer.html func DestroyFramebuffer(device Device, framebuffer Framebuffer, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cframebuffer, cframebufferAllocMap := *(*C.VkFramebuffer)(unsafe.Pointer(&framebuffer)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cframebuffer, _ := *(*C.VkFramebuffer)(unsafe.Pointer(&framebuffer)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyFramebuffer(cdevice, cframebuffer, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cframebufferAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateRenderPass.html func CreateRenderPass(device Device, pCreateInfo *RenderPassCreateInfo, pAllocator *AllocationCallbacks, pRenderPass *RenderPass) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpRenderPass, cpRenderPassAllocMap := (*C.VkRenderPass)(unsafe.Pointer(pRenderPass)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpRenderPass, _ := (*C.VkRenderPass)(unsafe.Pointer(pRenderPass)), cgoAllocsUnknown __ret := C.callVkCreateRenderPass(cdevice, cpCreateInfo, cpAllocator, cpRenderPass) - runtime.KeepAlive(cpRenderPassAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyRenderPass.html func DestroyRenderPass(device Device, renderPass RenderPass, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - crenderPass, crenderPassAllocMap := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + crenderPass, _ := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyRenderPass(cdevice, crenderPass, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(crenderPassAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetRenderAreaGranularity function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetRenderAreaGranularity.html func GetRenderAreaGranularity(device Device, renderPass RenderPass, pGranularity *Extent2D) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - crenderPass, crenderPassAllocMap := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown - cpGranularity, cpGranularityAllocMap := pGranularity.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + crenderPass, _ := *(*C.VkRenderPass)(unsafe.Pointer(&renderPass)), cgoAllocsUnknown + cpGranularity, _ := pGranularity.PassRef() C.callVkGetRenderAreaGranularity(cdevice, crenderPass, cpGranularity) - runtime.KeepAlive(cpGranularityAllocMap) - runtime.KeepAlive(crenderPassAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // CreateCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateCommandPool.html func CreateCommandPool(device Device, pCreateInfo *CommandPoolCreateInfo, pAllocator *AllocationCallbacks, pCommandPool *CommandPool) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpCommandPool, cpCommandPoolAllocMap := (*C.VkCommandPool)(unsafe.Pointer(pCommandPool)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpCommandPool, _ := (*C.VkCommandPool)(unsafe.Pointer(pCommandPool)), cgoAllocsUnknown __ret := C.callVkCreateCommandPool(cdevice, cpCreateInfo, cpAllocator, cpCommandPool) - runtime.KeepAlive(cpCommandPoolAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroyCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyCommandPool.html func DestroyCommandPool(device Device, commandPool CommandPool, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyCommandPool(cdevice, ccommandPool, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(ccommandPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // ResetCommandPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetCommandPool.html func ResetCommandPool(device Device, commandPool CommandPool, flags CommandPoolResetFlags) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkCommandPoolResetFlags)(flags), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + cflags, _ := (C.VkCommandPoolResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetCommandPool(cdevice, ccommandPool, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(ccommandPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AllocateCommandBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkAllocateCommandBuffers.html func AllocateCommandBuffers(device Device, pAllocateInfo *CommandBufferAllocateInfo, pCommandBuffers []CommandBuffer) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpAllocateInfo, cpAllocateInfoAllocMap := pAllocateInfo.PassRef() - cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpAllocateInfo, _ := pAllocateInfo.PassRef() + cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown __ret := C.callVkAllocateCommandBuffers(cdevice, cpAllocateInfo, cpCommandBuffers) - runtime.KeepAlive(cpCommandBuffersAllocMap) - runtime.KeepAlive(cpAllocateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // FreeCommandBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkFreeCommandBuffers.html func FreeCommandBuffers(device Device, commandPool CommandPool, commandBufferCount uint32, pCommandBuffers []CommandBuffer) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - ccommandPool, ccommandPoolAllocMap := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown - ccommandBufferCount, ccommandBufferCountAllocMap := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown - cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + ccommandPool, _ := *(*C.VkCommandPool)(unsafe.Pointer(&commandPool)), cgoAllocsUnknown + ccommandBufferCount, _ := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown + cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown C.callVkFreeCommandBuffers(cdevice, ccommandPool, ccommandBufferCount, cpCommandBuffers) - runtime.KeepAlive(cpCommandBuffersAllocMap) - runtime.KeepAlive(ccommandBufferCountAllocMap) - runtime.KeepAlive(ccommandPoolAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // BeginCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkBeginCommandBuffer.html func BeginCommandBuffer(commandBuffer CommandBuffer, pBeginInfo *CommandBufferBeginInfo) Result { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpBeginInfo, cpBeginInfoAllocMap := pBeginInfo.PassRef() + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpBeginInfo, _ := pBeginInfo.PassRef() __ret := C.callVkBeginCommandBuffer(ccommandBuffer, cpBeginInfo) - runtime.KeepAlive(cpBeginInfoAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // EndCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEndCommandBuffer.html func EndCommandBuffer(commandBuffer CommandBuffer) Result { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown __ret := C.callVkEndCommandBuffer(ccommandBuffer) - runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // ResetCommandBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkResetCommandBuffer.html func ResetCommandBuffer(commandBuffer CommandBuffer, flags CommandBufferResetFlags) Result { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkCommandBufferResetFlags)(flags), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cflags, _ := (C.VkCommandBufferResetFlags)(flags), cgoAllocsUnknown __ret := C.callVkResetCommandBuffer(ccommandBuffer, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) __v := (Result)(__ret) return __v } // CmdBindPipeline function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindPipeline.html func CmdBindPipeline(commandBuffer CommandBuffer, pipelineBindPoint PipelineBindPoint, pipeline Pipeline) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineBindPoint, cpipelineBindPointAllocMap := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown - cpipeline, cpipelineAllocMap := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineBindPoint, _ := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown + cpipeline, _ := *(*C.VkPipeline)(unsafe.Pointer(&pipeline)), cgoAllocsUnknown C.callVkCmdBindPipeline(ccommandBuffer, cpipelineBindPoint, cpipeline) - runtime.KeepAlive(cpipelineAllocMap) - runtime.KeepAlive(cpipelineBindPointAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetViewport function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetViewport.html func CmdSetViewport(commandBuffer CommandBuffer, firstViewport uint32, viewportCount uint32, pViewports []Viewport) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstViewport, cfirstViewportAllocMap := (C.uint32_t)(firstViewport), cgoAllocsUnknown - cviewportCount, cviewportCountAllocMap := (C.uint32_t)(viewportCount), cgoAllocsUnknown - cpViewports, cpViewportsAllocMap := unpackArgSViewport(pViewports) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstViewport, _ := (C.uint32_t)(firstViewport), cgoAllocsUnknown + cviewportCount, _ := (C.uint32_t)(viewportCount), cgoAllocsUnknown + cpViewports, _ := unpackArgSViewport(pViewports) C.callVkCmdSetViewport(ccommandBuffer, cfirstViewport, cviewportCount, cpViewports) packSViewport(pViewports, cpViewports) - runtime.KeepAlive(cpViewportsAllocMap) - runtime.KeepAlive(cviewportCountAllocMap) - runtime.KeepAlive(cfirstViewportAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetScissor function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetScissor.html func CmdSetScissor(commandBuffer CommandBuffer, firstScissor uint32, scissorCount uint32, pScissors []Rect2D) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstScissor, cfirstScissorAllocMap := (C.uint32_t)(firstScissor), cgoAllocsUnknown - cscissorCount, cscissorCountAllocMap := (C.uint32_t)(scissorCount), cgoAllocsUnknown - cpScissors, cpScissorsAllocMap := unpackArgSRect2D(pScissors) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstScissor, _ := (C.uint32_t)(firstScissor), cgoAllocsUnknown + cscissorCount, _ := (C.uint32_t)(scissorCount), cgoAllocsUnknown + cpScissors, _ := unpackArgSRect2D(pScissors) C.callVkCmdSetScissor(ccommandBuffer, cfirstScissor, cscissorCount, cpScissors) packSRect2D(pScissors, cpScissors) - runtime.KeepAlive(cpScissorsAllocMap) - runtime.KeepAlive(cscissorCountAllocMap) - runtime.KeepAlive(cfirstScissorAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetLineWidth function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetLineWidth.html func CmdSetLineWidth(commandBuffer CommandBuffer, lineWidth float32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - clineWidth, clineWidthAllocMap := (C.float)(lineWidth), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + clineWidth, _ := (C.float)(lineWidth), cgoAllocsUnknown C.callVkCmdSetLineWidth(ccommandBuffer, clineWidth) - runtime.KeepAlive(clineWidthAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetDepthBias function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetDepthBias.html func CmdSetDepthBias(commandBuffer CommandBuffer, depthBiasConstantFactor float32, depthBiasClamp float32, depthBiasSlopeFactor float32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdepthBiasConstantFactor, cdepthBiasConstantFactorAllocMap := (C.float)(depthBiasConstantFactor), cgoAllocsUnknown - cdepthBiasClamp, cdepthBiasClampAllocMap := (C.float)(depthBiasClamp), cgoAllocsUnknown - cdepthBiasSlopeFactor, cdepthBiasSlopeFactorAllocMap := (C.float)(depthBiasSlopeFactor), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdepthBiasConstantFactor, _ := (C.float)(depthBiasConstantFactor), cgoAllocsUnknown + cdepthBiasClamp, _ := (C.float)(depthBiasClamp), cgoAllocsUnknown + cdepthBiasSlopeFactor, _ := (C.float)(depthBiasSlopeFactor), cgoAllocsUnknown C.callVkCmdSetDepthBias(ccommandBuffer, cdepthBiasConstantFactor, cdepthBiasClamp, cdepthBiasSlopeFactor) - runtime.KeepAlive(cdepthBiasSlopeFactorAllocMap) - runtime.KeepAlive(cdepthBiasClampAllocMap) - runtime.KeepAlive(cdepthBiasConstantFactorAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetBlendConstants function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetBlendConstants.html func CmdSetBlendConstants(commandBuffer CommandBuffer, blendConstants *[4]float32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cblendConstants, cblendConstantsAllocMap := *(**C.float)(unsafe.Pointer(&blendConstants)), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cblendConstants, _ := *(**C.float)(unsafe.Pointer(&blendConstants)), cgoAllocsUnknown C.callVkCmdSetBlendConstants(ccommandBuffer, cblendConstants) - runtime.KeepAlive(cblendConstantsAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetDepthBounds function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetDepthBounds.html func CmdSetDepthBounds(commandBuffer CommandBuffer, minDepthBounds float32, maxDepthBounds float32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cminDepthBounds, cminDepthBoundsAllocMap := (C.float)(minDepthBounds), cgoAllocsUnknown - cmaxDepthBounds, cmaxDepthBoundsAllocMap := (C.float)(maxDepthBounds), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cminDepthBounds, _ := (C.float)(minDepthBounds), cgoAllocsUnknown + cmaxDepthBounds, _ := (C.float)(maxDepthBounds), cgoAllocsUnknown C.callVkCmdSetDepthBounds(ccommandBuffer, cminDepthBounds, cmaxDepthBounds) - runtime.KeepAlive(cmaxDepthBoundsAllocMap) - runtime.KeepAlive(cminDepthBoundsAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilCompareMask function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilCompareMask.html func CmdSetStencilCompareMask(commandBuffer CommandBuffer, faceMask StencilFaceFlags, compareMask uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - ccompareMask, ccompareMaskAllocMap := (C.uint32_t)(compareMask), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + ccompareMask, _ := (C.uint32_t)(compareMask), cgoAllocsUnknown C.callVkCmdSetStencilCompareMask(ccommandBuffer, cfaceMask, ccompareMask) - runtime.KeepAlive(ccompareMaskAllocMap) - runtime.KeepAlive(cfaceMaskAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilWriteMask function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilWriteMask.html func CmdSetStencilWriteMask(commandBuffer CommandBuffer, faceMask StencilFaceFlags, writeMask uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - cwriteMask, cwriteMaskAllocMap := (C.uint32_t)(writeMask), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + cwriteMask, _ := (C.uint32_t)(writeMask), cgoAllocsUnknown C.callVkCmdSetStencilWriteMask(ccommandBuffer, cfaceMask, cwriteMask) - runtime.KeepAlive(cwriteMaskAllocMap) - runtime.KeepAlive(cfaceMaskAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetStencilReference function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetStencilReference.html func CmdSetStencilReference(commandBuffer CommandBuffer, faceMask StencilFaceFlags, reference uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfaceMask, cfaceMaskAllocMap := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown - creference, creferenceAllocMap := (C.uint32_t)(reference), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfaceMask, _ := (C.VkStencilFaceFlags)(faceMask), cgoAllocsUnknown + creference, _ := (C.uint32_t)(reference), cgoAllocsUnknown C.callVkCmdSetStencilReference(ccommandBuffer, cfaceMask, creference) - runtime.KeepAlive(creferenceAllocMap) - runtime.KeepAlive(cfaceMaskAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindDescriptorSets function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindDescriptorSets.html func CmdBindDescriptorSets(commandBuffer CommandBuffer, pipelineBindPoint PipelineBindPoint, layout PipelineLayout, firstSet uint32, descriptorSetCount uint32, pDescriptorSets []DescriptorSet, dynamicOffsetCount uint32, pDynamicOffsets []uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineBindPoint, cpipelineBindPointAllocMap := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown - clayout, clayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown - cfirstSet, cfirstSetAllocMap := (C.uint32_t)(firstSet), cgoAllocsUnknown - cdescriptorSetCount, cdescriptorSetCountAllocMap := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown - cpDescriptorSets, cpDescriptorSetsAllocMap := copyPDescriptorSetBytes((*sliceHeader)(unsafe.Pointer(&pDescriptorSets))) - cdynamicOffsetCount, cdynamicOffsetCountAllocMap := (C.uint32_t)(dynamicOffsetCount), cgoAllocsUnknown - cpDynamicOffsets, cpDynamicOffsetsAllocMap := copyPUint32_tBytes((*sliceHeader)(unsafe.Pointer(&pDynamicOffsets))) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineBindPoint, _ := (C.VkPipelineBindPoint)(pipelineBindPoint), cgoAllocsUnknown + clayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown + cfirstSet, _ := (C.uint32_t)(firstSet), cgoAllocsUnknown + cdescriptorSetCount, _ := (C.uint32_t)(descriptorSetCount), cgoAllocsUnknown + cpDescriptorSets, _ := (*C.VkDescriptorSet)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDescriptorSets)).Data)), cgoAllocsUnknown + cdynamicOffsetCount, _ := (C.uint32_t)(dynamicOffsetCount), cgoAllocsUnknown + cpDynamicOffsets, _ := (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDynamicOffsets)).Data)), cgoAllocsUnknown C.callVkCmdBindDescriptorSets(ccommandBuffer, cpipelineBindPoint, clayout, cfirstSet, cdescriptorSetCount, cpDescriptorSets, cdynamicOffsetCount, cpDynamicOffsets) - runtime.KeepAlive(cpDynamicOffsetsAllocMap) - runtime.KeepAlive(cdynamicOffsetCountAllocMap) - runtime.KeepAlive(cpDescriptorSetsAllocMap) - runtime.KeepAlive(cdescriptorSetCountAllocMap) - runtime.KeepAlive(cfirstSetAllocMap) - runtime.KeepAlive(clayoutAllocMap) - runtime.KeepAlive(cpipelineBindPointAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindIndexBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindIndexBuffer.html func CmdBindIndexBuffer(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, indexType IndexType) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cindexType, cindexTypeAllocMap := (C.VkIndexType)(indexType), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cindexType, _ := (C.VkIndexType)(indexType), cgoAllocsUnknown C.callVkCmdBindIndexBuffer(ccommandBuffer, cbuffer, coffset, cindexType) - runtime.KeepAlive(cindexTypeAllocMap) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBindVertexBuffers function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBindVertexBuffers.html func CmdBindVertexBuffers(commandBuffer CommandBuffer, firstBinding uint32, bindingCount uint32, pBuffers []Buffer, pOffsets []DeviceSize) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cfirstBinding, cfirstBindingAllocMap := (C.uint32_t)(firstBinding), cgoAllocsUnknown - cbindingCount, cbindingCountAllocMap := (C.uint32_t)(bindingCount), cgoAllocsUnknown - cpBuffers, cpBuffersAllocMap := copyPBufferBytes((*sliceHeader)(unsafe.Pointer(&pBuffers))) - cpOffsets, cpOffsetsAllocMap := copyPDeviceSizeBytes((*sliceHeader)(unsafe.Pointer(&pOffsets))) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cfirstBinding, _ := (C.uint32_t)(firstBinding), cgoAllocsUnknown + cbindingCount, _ := (C.uint32_t)(bindingCount), cgoAllocsUnknown + cpBuffers, _ := (*C.VkBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pBuffers)).Data)), cgoAllocsUnknown + cpOffsets, _ := (*C.VkDeviceSize)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pOffsets)).Data)), cgoAllocsUnknown C.callVkCmdBindVertexBuffers(ccommandBuffer, cfirstBinding, cbindingCount, cpBuffers, cpOffsets) - runtime.KeepAlive(cpOffsetsAllocMap) - runtime.KeepAlive(cpBuffersAllocMap) - runtime.KeepAlive(cbindingCountAllocMap) - runtime.KeepAlive(cfirstBindingAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDraw function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDraw.html func CmdDraw(commandBuffer CommandBuffer, vertexCount uint32, instanceCount uint32, firstVertex uint32, firstInstance uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cvertexCount, cvertexCountAllocMap := (C.uint32_t)(vertexCount), cgoAllocsUnknown - cinstanceCount, cinstanceCountAllocMap := (C.uint32_t)(instanceCount), cgoAllocsUnknown - cfirstVertex, cfirstVertexAllocMap := (C.uint32_t)(firstVertex), cgoAllocsUnknown - cfirstInstance, cfirstInstanceAllocMap := (C.uint32_t)(firstInstance), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cvertexCount, _ := (C.uint32_t)(vertexCount), cgoAllocsUnknown + cinstanceCount, _ := (C.uint32_t)(instanceCount), cgoAllocsUnknown + cfirstVertex, _ := (C.uint32_t)(firstVertex), cgoAllocsUnknown + cfirstInstance, _ := (C.uint32_t)(firstInstance), cgoAllocsUnknown C.callVkCmdDraw(ccommandBuffer, cvertexCount, cinstanceCount, cfirstVertex, cfirstInstance) - runtime.KeepAlive(cfirstInstanceAllocMap) - runtime.KeepAlive(cfirstVertexAllocMap) - runtime.KeepAlive(cinstanceCountAllocMap) - runtime.KeepAlive(cvertexCountAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndexed function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndexed.html func CmdDrawIndexed(commandBuffer CommandBuffer, indexCount uint32, instanceCount uint32, firstIndex uint32, vertexOffset int32, firstInstance uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cindexCount, cindexCountAllocMap := (C.uint32_t)(indexCount), cgoAllocsUnknown - cinstanceCount, cinstanceCountAllocMap := (C.uint32_t)(instanceCount), cgoAllocsUnknown - cfirstIndex, cfirstIndexAllocMap := (C.uint32_t)(firstIndex), cgoAllocsUnknown - cvertexOffset, cvertexOffsetAllocMap := (C.int32_t)(vertexOffset), cgoAllocsUnknown - cfirstInstance, cfirstInstanceAllocMap := (C.uint32_t)(firstInstance), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cindexCount, _ := (C.uint32_t)(indexCount), cgoAllocsUnknown + cinstanceCount, _ := (C.uint32_t)(instanceCount), cgoAllocsUnknown + cfirstIndex, _ := (C.uint32_t)(firstIndex), cgoAllocsUnknown + cvertexOffset, _ := (C.int32_t)(vertexOffset), cgoAllocsUnknown + cfirstInstance, _ := (C.uint32_t)(firstInstance), cgoAllocsUnknown C.callVkCmdDrawIndexed(ccommandBuffer, cindexCount, cinstanceCount, cfirstIndex, cvertexOffset, cfirstInstance) - runtime.KeepAlive(cfirstInstanceAllocMap) - runtime.KeepAlive(cvertexOffsetAllocMap) - runtime.KeepAlive(cfirstIndexAllocMap) - runtime.KeepAlive(cinstanceCountAllocMap) - runtime.KeepAlive(cindexCountAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndirect.html func CmdDrawIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, drawCount uint32, stride uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cdrawCount, cdrawCountAllocMap := (C.uint32_t)(drawCount), cgoAllocsUnknown - cstride, cstrideAllocMap := (C.uint32_t)(stride), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cdrawCount, _ := (C.uint32_t)(drawCount), cgoAllocsUnknown + cstride, _ := (C.uint32_t)(stride), cgoAllocsUnknown C.callVkCmdDrawIndirect(ccommandBuffer, cbuffer, coffset, cdrawCount, cstride) - runtime.KeepAlive(cstrideAllocMap) - runtime.KeepAlive(cdrawCountAllocMap) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDrawIndexedIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDrawIndexedIndirect.html func CmdDrawIndexedIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize, drawCount uint32, stride uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown - cdrawCount, cdrawCountAllocMap := (C.uint32_t)(drawCount), cgoAllocsUnknown - cstride, cstrideAllocMap := (C.uint32_t)(stride), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown + cdrawCount, _ := (C.uint32_t)(drawCount), cgoAllocsUnknown + cstride, _ := (C.uint32_t)(stride), cgoAllocsUnknown C.callVkCmdDrawIndexedIndirect(ccommandBuffer, cbuffer, coffset, cdrawCount, cstride) - runtime.KeepAlive(cstrideAllocMap) - runtime.KeepAlive(cdrawCountAllocMap) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDispatch function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDispatch.html func CmdDispatch(commandBuffer CommandBuffer, x uint32, y uint32, z uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cx, cxAllocMap := (C.uint32_t)(x), cgoAllocsUnknown - cy, cyAllocMap := (C.uint32_t)(y), cgoAllocsUnknown - cz, czAllocMap := (C.uint32_t)(z), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cx, _ := (C.uint32_t)(x), cgoAllocsUnknown + cy, _ := (C.uint32_t)(y), cgoAllocsUnknown + cz, _ := (C.uint32_t)(z), cgoAllocsUnknown C.callVkCmdDispatch(ccommandBuffer, cx, cy, cz) - runtime.KeepAlive(czAllocMap) - runtime.KeepAlive(cyAllocMap) - runtime.KeepAlive(cxAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdDispatchIndirect function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdDispatchIndirect.html func CmdDispatchIndirect(commandBuffer CommandBuffer, buffer Buffer, offset DeviceSize) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cbuffer, cbufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.VkDeviceSize)(offset), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cbuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&buffer)), cgoAllocsUnknown + coffset, _ := (C.VkDeviceSize)(offset), cgoAllocsUnknown C.callVkCmdDispatchIndirect(ccommandBuffer, cbuffer, coffset) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cbufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyBuffer.html func CmdCopyBuffer(commandBuffer CommandBuffer, srcBuffer Buffer, dstBuffer Buffer, regionCount uint32, pRegions []BufferCopy) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcBuffer, csrcBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown - cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSBufferCopy(pRegions) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown + cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSBufferCopy(pRegions) C.callVkCmdCopyBuffer(ccommandBuffer, csrcBuffer, cdstBuffer, cregionCount, cpRegions) packSBufferCopy(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstBufferAllocMap) - runtime.KeepAlive(csrcBufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyImage.html func CmdCopyImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageCopy) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSImageCopy(pRegions) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSImageCopy(pRegions) C.callVkCmdCopyImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSImageCopy(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstImageLayoutAllocMap) - runtime.KeepAlive(cdstImageAllocMap) - runtime.KeepAlive(csrcImageLayoutAllocMap) - runtime.KeepAlive(csrcImageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBlitImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBlitImage.html func CmdBlitImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageBlit, filter Filter) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSImageBlit(pRegions) - cfilter, cfilterAllocMap := (C.VkFilter)(filter), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSImageBlit(pRegions) + cfilter, _ := (C.VkFilter)(filter), cgoAllocsUnknown C.callVkCmdBlitImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions, cfilter) - runtime.KeepAlive(cfilterAllocMap) packSImageBlit(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstImageLayoutAllocMap) - runtime.KeepAlive(cdstImageAllocMap) - runtime.KeepAlive(csrcImageLayoutAllocMap) - runtime.KeepAlive(csrcImageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyBufferToImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyBufferToImage.html func CmdCopyBufferToImage(commandBuffer CommandBuffer, srcBuffer Buffer, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []BufferImageCopy) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcBuffer, csrcBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown - cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSBufferImageCopy(pRegions) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&srcBuffer)), cgoAllocsUnknown + cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSBufferImageCopy(pRegions) C.callVkCmdCopyBufferToImage(ccommandBuffer, csrcBuffer, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSBufferImageCopy(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstImageLayoutAllocMap) - runtime.KeepAlive(cdstImageAllocMap) - runtime.KeepAlive(csrcBufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyImageToBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyImageToBuffer.html func CmdCopyImageToBuffer(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstBuffer Buffer, regionCount uint32, pRegions []BufferImageCopy) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSBufferImageCopy(pRegions) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSBufferImageCopy(pRegions) C.callVkCmdCopyImageToBuffer(ccommandBuffer, csrcImage, csrcImageLayout, cdstBuffer, cregionCount, cpRegions) packSBufferImageCopy(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstBufferAllocMap) - runtime.KeepAlive(csrcImageLayoutAllocMap) - runtime.KeepAlive(csrcImageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdUpdateBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdUpdateBuffer.html func CmdUpdateBuffer(commandBuffer CommandBuffer, dstBuffer Buffer, dstOffset DeviceSize, dataSize DeviceSize, pData *uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - cdataSize, cdataSizeAllocMap := (C.VkDeviceSize)(dataSize), cgoAllocsUnknown - cpData, cpDataAllocMap := (*C.uint32_t)(unsafe.Pointer(pData)), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + cdataSize, _ := (C.VkDeviceSize)(dataSize), cgoAllocsUnknown + cpData, _ := (*C.uint32_t)(unsafe.Pointer(pData)), cgoAllocsUnknown C.callVkCmdUpdateBuffer(ccommandBuffer, cdstBuffer, cdstOffset, cdataSize, cpData) - runtime.KeepAlive(cpDataAllocMap) - runtime.KeepAlive(cdataSizeAllocMap) - runtime.KeepAlive(cdstOffsetAllocMap) - runtime.KeepAlive(cdstBufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdFillBuffer function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdFillBuffer.html func CmdFillBuffer(commandBuffer CommandBuffer, dstBuffer Buffer, dstOffset DeviceSize, size DeviceSize, data uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - csize, csizeAllocMap := (C.VkDeviceSize)(size), cgoAllocsUnknown - cdata, cdataAllocMap := (C.uint32_t)(data), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + csize, _ := (C.VkDeviceSize)(size), cgoAllocsUnknown + cdata, _ := (C.uint32_t)(data), cgoAllocsUnknown C.callVkCmdFillBuffer(ccommandBuffer, cdstBuffer, cdstOffset, csize, cdata) - runtime.KeepAlive(cdataAllocMap) - runtime.KeepAlive(csizeAllocMap) - runtime.KeepAlive(cdstOffsetAllocMap) - runtime.KeepAlive(cdstBufferAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearColorImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearColorImage.html func CmdClearColorImage(commandBuffer CommandBuffer, image Image, imageLayout ImageLayout, pColor *ClearColorValue, rangeCount uint32, pRanges []ImageSubresourceRange) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cimageLayout, cimageLayoutAllocMap := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown - cpColor, cpColorAllocMap := (*C.VkClearColorValue)(unsafe.Pointer(pColor)), cgoAllocsUnknown - crangeCount, crangeCountAllocMap := (C.uint32_t)(rangeCount), cgoAllocsUnknown - cpRanges, cpRangesAllocMap := unpackArgSImageSubresourceRange(pRanges) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cimageLayout, _ := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown + cpColor, _ := (*C.VkClearColorValue)(unsafe.Pointer(pColor)), cgoAllocsUnknown + crangeCount, _ := (C.uint32_t)(rangeCount), cgoAllocsUnknown + cpRanges, _ := unpackArgSImageSubresourceRange(pRanges) C.callVkCmdClearColorImage(ccommandBuffer, cimage, cimageLayout, cpColor, crangeCount, cpRanges) packSImageSubresourceRange(pRanges, cpRanges) - runtime.KeepAlive(cpRangesAllocMap) - runtime.KeepAlive(crangeCountAllocMap) - runtime.KeepAlive(cpColorAllocMap) - runtime.KeepAlive(cimageLayoutAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearDepthStencilImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearDepthStencilImage.html func CmdClearDepthStencilImage(commandBuffer CommandBuffer, image Image, imageLayout ImageLayout, pDepthStencil *ClearDepthStencilValue, rangeCount uint32, pRanges []ImageSubresourceRange) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cimage, cimageAllocMap := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown - cimageLayout, cimageLayoutAllocMap := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown - cpDepthStencil, cpDepthStencilAllocMap := pDepthStencil.PassRef() - crangeCount, crangeCountAllocMap := (C.uint32_t)(rangeCount), cgoAllocsUnknown - cpRanges, cpRangesAllocMap := unpackArgSImageSubresourceRange(pRanges) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cimage, _ := *(*C.VkImage)(unsafe.Pointer(&image)), cgoAllocsUnknown + cimageLayout, _ := (C.VkImageLayout)(imageLayout), cgoAllocsUnknown + cpDepthStencil, _ := pDepthStencil.PassRef() + crangeCount, _ := (C.uint32_t)(rangeCount), cgoAllocsUnknown + cpRanges, _ := unpackArgSImageSubresourceRange(pRanges) C.callVkCmdClearDepthStencilImage(ccommandBuffer, cimage, cimageLayout, cpDepthStencil, crangeCount, cpRanges) packSImageSubresourceRange(pRanges, cpRanges) - runtime.KeepAlive(cpRangesAllocMap) - runtime.KeepAlive(crangeCountAllocMap) - runtime.KeepAlive(cpDepthStencilAllocMap) - runtime.KeepAlive(cimageLayoutAllocMap) - runtime.KeepAlive(cimageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdClearAttachments function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdClearAttachments.html func CmdClearAttachments(commandBuffer CommandBuffer, attachmentCount uint32, pAttachments []ClearAttachment, rectCount uint32, pRects []ClearRect) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cattachmentCount, cattachmentCountAllocMap := (C.uint32_t)(attachmentCount), cgoAllocsUnknown - cpAttachments, cpAttachmentsAllocMap := unpackArgSClearAttachment(pAttachments) - crectCount, crectCountAllocMap := (C.uint32_t)(rectCount), cgoAllocsUnknown - cpRects, cpRectsAllocMap := unpackArgSClearRect(pRects) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cattachmentCount, _ := (C.uint32_t)(attachmentCount), cgoAllocsUnknown + cpAttachments, _ := unpackArgSClearAttachment(pAttachments) + crectCount, _ := (C.uint32_t)(rectCount), cgoAllocsUnknown + cpRects, _ := unpackArgSClearRect(pRects) C.callVkCmdClearAttachments(ccommandBuffer, cattachmentCount, cpAttachments, crectCount, cpRects) packSClearRect(pRects, cpRects) - runtime.KeepAlive(cpRectsAllocMap) - runtime.KeepAlive(crectCountAllocMap) packSClearAttachment(pAttachments, cpAttachments) - runtime.KeepAlive(cpAttachmentsAllocMap) - runtime.KeepAlive(cattachmentCountAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResolveImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResolveImage.html func CmdResolveImage(commandBuffer CommandBuffer, srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regionCount uint32, pRegions []ImageResolve) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcImage, csrcImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown - csrcImageLayout, csrcImageLayoutAllocMap := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown - cdstImage, cdstImageAllocMap := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown - cdstImageLayout, cdstImageLayoutAllocMap := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown - cregionCount, cregionCountAllocMap := (C.uint32_t)(regionCount), cgoAllocsUnknown - cpRegions, cpRegionsAllocMap := unpackArgSImageResolve(pRegions) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcImage, _ := *(*C.VkImage)(unsafe.Pointer(&srcImage)), cgoAllocsUnknown + csrcImageLayout, _ := (C.VkImageLayout)(srcImageLayout), cgoAllocsUnknown + cdstImage, _ := *(*C.VkImage)(unsafe.Pointer(&dstImage)), cgoAllocsUnknown + cdstImageLayout, _ := (C.VkImageLayout)(dstImageLayout), cgoAllocsUnknown + cregionCount, _ := (C.uint32_t)(regionCount), cgoAllocsUnknown + cpRegions, _ := unpackArgSImageResolve(pRegions) C.callVkCmdResolveImage(ccommandBuffer, csrcImage, csrcImageLayout, cdstImage, cdstImageLayout, cregionCount, cpRegions) packSImageResolve(pRegions, cpRegions) - runtime.KeepAlive(cpRegionsAllocMap) - runtime.KeepAlive(cregionCountAllocMap) - runtime.KeepAlive(cdstImageLayoutAllocMap) - runtime.KeepAlive(cdstImageAllocMap) - runtime.KeepAlive(csrcImageLayoutAllocMap) - runtime.KeepAlive(csrcImageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdSetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdSetEvent.html func CmdSetEvent(commandBuffer CommandBuffer, event Event, stageMask PipelineStageFlags) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cstageMask, cstageMaskAllocMap := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cstageMask, _ := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown C.callVkCmdSetEvent(ccommandBuffer, cevent, cstageMask) - runtime.KeepAlive(cstageMaskAllocMap) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResetEvent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResetEvent.html func CmdResetEvent(commandBuffer CommandBuffer, event Event, stageMask PipelineStageFlags) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cevent, ceventAllocMap := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown - cstageMask, cstageMaskAllocMap := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cevent, _ := *(*C.VkEvent)(unsafe.Pointer(&event)), cgoAllocsUnknown + cstageMask, _ := (C.VkPipelineStageFlags)(stageMask), cgoAllocsUnknown C.callVkCmdResetEvent(ccommandBuffer, cevent, cstageMask) - runtime.KeepAlive(cstageMaskAllocMap) - runtime.KeepAlive(ceventAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdWaitEvents function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdWaitEvents.html func CmdWaitEvents(commandBuffer CommandBuffer, eventCount uint32, pEvents []Event, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, memoryBarrierCount uint32, pMemoryBarriers []MemoryBarrier, bufferMemoryBarrierCount uint32, pBufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarrierCount uint32, pImageMemoryBarriers []ImageMemoryBarrier) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ceventCount, ceventCountAllocMap := (C.uint32_t)(eventCount), cgoAllocsUnknown - cpEvents, cpEventsAllocMap := copyPEventBytes((*sliceHeader)(unsafe.Pointer(&pEvents))) - csrcStageMask, csrcStageMaskAllocMap := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown - cdstStageMask, cdstStageMaskAllocMap := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown - cmemoryBarrierCount, cmemoryBarrierCountAllocMap := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown - cpMemoryBarriers, cpMemoryBarriersAllocMap := unpackArgSMemoryBarrier(pMemoryBarriers) - cbufferMemoryBarrierCount, cbufferMemoryBarrierCountAllocMap := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown - cpBufferMemoryBarriers, cpBufferMemoryBarriersAllocMap := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) - cimageMemoryBarrierCount, cimageMemoryBarrierCountAllocMap := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown - cpImageMemoryBarriers, cpImageMemoryBarriersAllocMap := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ceventCount, _ := (C.uint32_t)(eventCount), cgoAllocsUnknown + cpEvents, _ := (*C.VkEvent)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pEvents)).Data)), cgoAllocsUnknown + csrcStageMask, _ := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown + cdstStageMask, _ := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown + cmemoryBarrierCount, _ := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown + cpMemoryBarriers, _ := unpackArgSMemoryBarrier(pMemoryBarriers) + cbufferMemoryBarrierCount, _ := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown + cpBufferMemoryBarriers, _ := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) + cimageMemoryBarrierCount, _ := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown + cpImageMemoryBarriers, _ := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) C.callVkCmdWaitEvents(ccommandBuffer, ceventCount, cpEvents, csrcStageMask, cdstStageMask, cmemoryBarrierCount, cpMemoryBarriers, cbufferMemoryBarrierCount, cpBufferMemoryBarriers, cimageMemoryBarrierCount, cpImageMemoryBarriers) packSImageMemoryBarrier(pImageMemoryBarriers, cpImageMemoryBarriers) - runtime.KeepAlive(cpImageMemoryBarriersAllocMap) - runtime.KeepAlive(cimageMemoryBarrierCountAllocMap) packSBufferMemoryBarrier(pBufferMemoryBarriers, cpBufferMemoryBarriers) - runtime.KeepAlive(cpBufferMemoryBarriersAllocMap) - runtime.KeepAlive(cbufferMemoryBarrierCountAllocMap) packSMemoryBarrier(pMemoryBarriers, cpMemoryBarriers) - runtime.KeepAlive(cpMemoryBarriersAllocMap) - runtime.KeepAlive(cmemoryBarrierCountAllocMap) - runtime.KeepAlive(cdstStageMaskAllocMap) - runtime.KeepAlive(csrcStageMaskAllocMap) - runtime.KeepAlive(cpEventsAllocMap) - runtime.KeepAlive(ceventCountAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdPipelineBarrier function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdPipelineBarrier.html func CmdPipelineBarrier(commandBuffer CommandBuffer, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, dependencyFlags DependencyFlags, memoryBarrierCount uint32, pMemoryBarriers []MemoryBarrier, bufferMemoryBarrierCount uint32, pBufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarrierCount uint32, pImageMemoryBarriers []ImageMemoryBarrier) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - csrcStageMask, csrcStageMaskAllocMap := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown - cdstStageMask, cdstStageMaskAllocMap := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown - cdependencyFlags, cdependencyFlagsAllocMap := (C.VkDependencyFlags)(dependencyFlags), cgoAllocsUnknown - cmemoryBarrierCount, cmemoryBarrierCountAllocMap := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown - cpMemoryBarriers, cpMemoryBarriersAllocMap := unpackArgSMemoryBarrier(pMemoryBarriers) - cbufferMemoryBarrierCount, cbufferMemoryBarrierCountAllocMap := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown - cpBufferMemoryBarriers, cpBufferMemoryBarriersAllocMap := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) - cimageMemoryBarrierCount, cimageMemoryBarrierCountAllocMap := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown - cpImageMemoryBarriers, cpImageMemoryBarriersAllocMap := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + csrcStageMask, _ := (C.VkPipelineStageFlags)(srcStageMask), cgoAllocsUnknown + cdstStageMask, _ := (C.VkPipelineStageFlags)(dstStageMask), cgoAllocsUnknown + cdependencyFlags, _ := (C.VkDependencyFlags)(dependencyFlags), cgoAllocsUnknown + cmemoryBarrierCount, _ := (C.uint32_t)(memoryBarrierCount), cgoAllocsUnknown + cpMemoryBarriers, _ := unpackArgSMemoryBarrier(pMemoryBarriers) + cbufferMemoryBarrierCount, _ := (C.uint32_t)(bufferMemoryBarrierCount), cgoAllocsUnknown + cpBufferMemoryBarriers, _ := unpackArgSBufferMemoryBarrier(pBufferMemoryBarriers) + cimageMemoryBarrierCount, _ := (C.uint32_t)(imageMemoryBarrierCount), cgoAllocsUnknown + cpImageMemoryBarriers, _ := unpackArgSImageMemoryBarrier(pImageMemoryBarriers) C.callVkCmdPipelineBarrier(ccommandBuffer, csrcStageMask, cdstStageMask, cdependencyFlags, cmemoryBarrierCount, cpMemoryBarriers, cbufferMemoryBarrierCount, cpBufferMemoryBarriers, cimageMemoryBarrierCount, cpImageMemoryBarriers) packSImageMemoryBarrier(pImageMemoryBarriers, cpImageMemoryBarriers) - runtime.KeepAlive(cpImageMemoryBarriersAllocMap) - runtime.KeepAlive(cimageMemoryBarrierCountAllocMap) packSBufferMemoryBarrier(pBufferMemoryBarriers, cpBufferMemoryBarriers) - runtime.KeepAlive(cpBufferMemoryBarriersAllocMap) - runtime.KeepAlive(cbufferMemoryBarrierCountAllocMap) packSMemoryBarrier(pMemoryBarriers, cpMemoryBarriers) - runtime.KeepAlive(cpMemoryBarriersAllocMap) - runtime.KeepAlive(cmemoryBarrierCountAllocMap) - runtime.KeepAlive(cdependencyFlagsAllocMap) - runtime.KeepAlive(cdstStageMaskAllocMap) - runtime.KeepAlive(csrcStageMaskAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBeginQuery function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBeginQuery.html func CmdBeginQuery(commandBuffer CommandBuffer, queryPool QueryPool, query uint32, flags QueryControlFlags) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkQueryControlFlags)(flags), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown + cflags, _ := (C.VkQueryControlFlags)(flags), cgoAllocsUnknown C.callVkCmdBeginQuery(ccommandBuffer, cqueryPool, cquery, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cqueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdEndQuery function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdEndQuery.html func CmdEndQuery(commandBuffer CommandBuffer, queryPool QueryPool, query uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown C.callVkCmdEndQuery(ccommandBuffer, cqueryPool, cquery) - runtime.KeepAlive(cqueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdResetQueryPool function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdResetQueryPool.html func CmdResetQueryPool(commandBuffer CommandBuffer, queryPool QueryPool, firstQuery uint32, queryCount uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown + cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown C.callVkCmdResetQueryPool(ccommandBuffer, cqueryPool, cfirstQuery, cqueryCount) - runtime.KeepAlive(cqueryCountAllocMap) - runtime.KeepAlive(cfirstQueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdWriteTimestamp function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdWriteTimestamp.html func CmdWriteTimestamp(commandBuffer CommandBuffer, pipelineStage PipelineStageFlagBits, queryPool QueryPool, query uint32) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpipelineStage, cpipelineStageAllocMap := (C.VkPipelineStageFlagBits)(pipelineStage), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cquery, cqueryAllocMap := (C.uint32_t)(query), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpipelineStage, _ := (C.VkPipelineStageFlagBits)(pipelineStage), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cquery, _ := (C.uint32_t)(query), cgoAllocsUnknown C.callVkCmdWriteTimestamp(ccommandBuffer, cpipelineStage, cqueryPool, cquery) - runtime.KeepAlive(cqueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(cpipelineStageAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdCopyQueryPoolResults function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdCopyQueryPoolResults.html func CmdCopyQueryPoolResults(commandBuffer CommandBuffer, queryPool QueryPool, firstQuery uint32, queryCount uint32, dstBuffer Buffer, dstOffset DeviceSize, stride DeviceSize, flags QueryResultFlags) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cqueryPool, cqueryPoolAllocMap := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown - cfirstQuery, cfirstQueryAllocMap := (C.uint32_t)(firstQuery), cgoAllocsUnknown - cqueryCount, cqueryCountAllocMap := (C.uint32_t)(queryCount), cgoAllocsUnknown - cdstBuffer, cdstBufferAllocMap := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown - cdstOffset, cdstOffsetAllocMap := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown - cstride, cstrideAllocMap := (C.VkDeviceSize)(stride), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown + cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown + cqueryCount, _ := (C.uint32_t)(queryCount), cgoAllocsUnknown + cdstBuffer, _ := *(*C.VkBuffer)(unsafe.Pointer(&dstBuffer)), cgoAllocsUnknown + cdstOffset, _ := (C.VkDeviceSize)(dstOffset), cgoAllocsUnknown + cstride, _ := (C.VkDeviceSize)(stride), cgoAllocsUnknown + cflags, _ := (C.VkQueryResultFlags)(flags), cgoAllocsUnknown C.callVkCmdCopyQueryPoolResults(ccommandBuffer, cqueryPool, cfirstQuery, cqueryCount, cdstBuffer, cdstOffset, cstride, cflags) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cstrideAllocMap) - runtime.KeepAlive(cdstOffsetAllocMap) - runtime.KeepAlive(cdstBufferAllocMap) - runtime.KeepAlive(cqueryCountAllocMap) - runtime.KeepAlive(cfirstQueryAllocMap) - runtime.KeepAlive(cqueryPoolAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdPushConstants function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdPushConstants.html func CmdPushConstants(commandBuffer CommandBuffer, layout PipelineLayout, stageFlags ShaderStageFlags, offset uint32, size uint32, pValues unsafe.Pointer) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - clayout, clayoutAllocMap := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown - cstageFlags, cstageFlagsAllocMap := (C.VkShaderStageFlags)(stageFlags), cgoAllocsUnknown - coffset, coffsetAllocMap := (C.uint32_t)(offset), cgoAllocsUnknown - csize, csizeAllocMap := (C.uint32_t)(size), cgoAllocsUnknown - cpValues, cpValuesAllocMap := pValues, cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + clayout, _ := *(*C.VkPipelineLayout)(unsafe.Pointer(&layout)), cgoAllocsUnknown + cstageFlags, _ := (C.VkShaderStageFlags)(stageFlags), cgoAllocsUnknown + coffset, _ := (C.uint32_t)(offset), cgoAllocsUnknown + csize, _ := (C.uint32_t)(size), cgoAllocsUnknown + cpValues, _ := pValues, cgoAllocsUnknown C.callVkCmdPushConstants(ccommandBuffer, clayout, cstageFlags, coffset, csize, cpValues) - runtime.KeepAlive(cpValuesAllocMap) - runtime.KeepAlive(csizeAllocMap) - runtime.KeepAlive(coffsetAllocMap) - runtime.KeepAlive(cstageFlagsAllocMap) - runtime.KeepAlive(clayoutAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdBeginRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdBeginRenderPass.html func CmdBeginRenderPass(commandBuffer CommandBuffer, pRenderPassBegin *RenderPassBeginInfo, contents SubpassContents) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - cpRenderPassBegin, cpRenderPassBeginAllocMap := pRenderPassBegin.PassRef() - ccontents, ccontentsAllocMap := (C.VkSubpassContents)(contents), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + cpRenderPassBegin, _ := pRenderPassBegin.PassRef() + ccontents, _ := (C.VkSubpassContents)(contents), cgoAllocsUnknown C.callVkCmdBeginRenderPass(ccommandBuffer, cpRenderPassBegin, ccontents) - runtime.KeepAlive(ccontentsAllocMap) - runtime.KeepAlive(cpRenderPassBeginAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdNextSubpass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdNextSubpass.html func CmdNextSubpass(commandBuffer CommandBuffer, contents SubpassContents) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ccontents, ccontentsAllocMap := (C.VkSubpassContents)(contents), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccontents, _ := (C.VkSubpassContents)(contents), cgoAllocsUnknown C.callVkCmdNextSubpass(ccommandBuffer, ccontents) - runtime.KeepAlive(ccontentsAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdEndRenderPass function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdEndRenderPass.html func CmdEndRenderPass(commandBuffer CommandBuffer) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown C.callVkCmdEndRenderPass(ccommandBuffer) - runtime.KeepAlive(ccommandBufferAllocMap) } // CmdExecuteCommands function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdExecuteCommands.html func CmdExecuteCommands(commandBuffer CommandBuffer, commandBufferCount uint32, pCommandBuffers []CommandBuffer) { - ccommandBuffer, ccommandBufferAllocMap := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown - ccommandBufferCount, ccommandBufferCountAllocMap := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown - cpCommandBuffers, cpCommandBuffersAllocMap := copyPCommandBufferBytes((*sliceHeader)(unsafe.Pointer(&pCommandBuffers))) + ccommandBuffer, _ := *(*C.VkCommandBuffer)(unsafe.Pointer(&commandBuffer)), cgoAllocsUnknown + ccommandBufferCount, _ := (C.uint32_t)(commandBufferCount), cgoAllocsUnknown + cpCommandBuffers, _ := (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pCommandBuffers)).Data)), cgoAllocsUnknown C.callVkCmdExecuteCommands(ccommandBuffer, ccommandBufferCount, cpCommandBuffers) - runtime.KeepAlive(cpCommandBuffersAllocMap) - runtime.KeepAlive(ccommandBufferCountAllocMap) - runtime.KeepAlive(ccommandBufferAllocMap) } // DestroySurface function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDestroySurfaceKHR func DestroySurface(instance Instance, surface Surface, pAllocator *AllocationCallbacks) { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySurfaceKHR(cinstance, csurface, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(csurfaceAllocMap) - runtime.KeepAlive(cinstanceAllocMap) } // GetPhysicalDeviceSurfaceSupport function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceSupportKHR func GetPhysicalDeviceSurfaceSupport(physicalDevice PhysicalDevice, queueFamilyIndex uint32, surface Surface, pSupported *Bool32) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cqueueFamilyIndex, cqueueFamilyIndexAllocMap := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown - csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSupported, cpSupportedAllocMap := (*C.VkBool32)(unsafe.Pointer(pSupported)), cgoAllocsUnknown + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cqueueFamilyIndex, _ := (C.uint32_t)(queueFamilyIndex), cgoAllocsUnknown + csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSupported, _ := (*C.VkBool32)(unsafe.Pointer(pSupported)), cgoAllocsUnknown __ret := C.callVkGetPhysicalDeviceSurfaceSupportKHR(cphysicalDevice, cqueueFamilyIndex, csurface, cpSupported) - runtime.KeepAlive(cpSupportedAllocMap) - runtime.KeepAlive(csurfaceAllocMap) - runtime.KeepAlive(cqueueFamilyIndexAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfaceCapabilities function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceCapabilitiesKHR func GetPhysicalDeviceSurfaceCapabilities(physicalDevice PhysicalDevice, surface Surface, pSurfaceCapabilities *SurfaceCapabilities) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSurfaceCapabilities, cpSurfaceCapabilitiesAllocMap := pSurfaceCapabilities.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSurfaceCapabilities, _ := pSurfaceCapabilities.PassRef() __ret := C.callVkGetPhysicalDeviceSurfaceCapabilitiesKHR(cphysicalDevice, csurface, cpSurfaceCapabilities) - runtime.KeepAlive(cpSurfaceCapabilitiesAllocMap) - runtime.KeepAlive(csurfaceAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfaceFormats function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfaceFormatsKHR func GetPhysicalDeviceSurfaceFormats(physicalDevice PhysicalDevice, surface Surface, pSurfaceFormatCount *uint32, pSurfaceFormats []SurfaceFormat) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpSurfaceFormatCount, cpSurfaceFormatCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pSurfaceFormatCount)), cgoAllocsUnknown - cpSurfaceFormats, cpSurfaceFormatsAllocMap := unpackArgSSurfaceFormat(pSurfaceFormats) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpSurfaceFormatCount, _ := (*C.uint32_t)(unsafe.Pointer(pSurfaceFormatCount)), cgoAllocsUnknown + cpSurfaceFormats, _ := unpackArgSSurfaceFormat(pSurfaceFormats) __ret := C.callVkGetPhysicalDeviceSurfaceFormatsKHR(cphysicalDevice, csurface, cpSurfaceFormatCount, cpSurfaceFormats) packSSurfaceFormat(pSurfaceFormats, cpSurfaceFormats) - runtime.KeepAlive(cpSurfaceFormatsAllocMap) - runtime.KeepAlive(cpSurfaceFormatCountAllocMap) - runtime.KeepAlive(csurfaceAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceSurfacePresentModes function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceSurfacePresentModesKHR func GetPhysicalDeviceSurfacePresentModes(physicalDevice PhysicalDevice, surface Surface, pPresentModeCount *uint32, pPresentModes []PresentMode) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - csurface, csurfaceAllocMap := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown - cpPresentModeCount, cpPresentModeCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPresentModeCount)), cgoAllocsUnknown - cpPresentModes, cpPresentModesAllocMap := copyPPresentModeBytes((*sliceHeader)(unsafe.Pointer(&pPresentModes))) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + csurface, _ := *(*C.VkSurfaceKHR)(unsafe.Pointer(&surface)), cgoAllocsUnknown + cpPresentModeCount, _ := (*C.uint32_t)(unsafe.Pointer(pPresentModeCount)), cgoAllocsUnknown + cpPresentModes, _ := (*C.VkPresentModeKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pPresentModes)).Data)), cgoAllocsUnknown __ret := C.callVkGetPhysicalDeviceSurfacePresentModesKHR(cphysicalDevice, csurface, cpPresentModeCount, cpPresentModes) - runtime.KeepAlive(cpPresentModesAllocMap) - runtime.KeepAlive(cpPresentModeCountAllocMap) - runtime.KeepAlive(csurfaceAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateSwapchain function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateSwapchainKHR func CreateSwapchain(device Device, pCreateInfo *SwapchainCreateInfo, pAllocator *AllocationCallbacks, pSwapchain *Swapchain) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSwapchain, cpSwapchainAllocMap := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchain)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSwapchain, _ := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchain)), cgoAllocsUnknown __ret := C.callVkCreateSwapchainKHR(cdevice, cpCreateInfo, cpAllocator, cpSwapchain) - runtime.KeepAlive(cpSwapchainAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // DestroySwapchain function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDestroySwapchainKHR func DestroySwapchain(device Device, swapchain Swapchain, pAllocator *AllocationCallbacks) { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroySwapchainKHR(cdevice, cswapchain, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cswapchainAllocMap) - runtime.KeepAlive(cdeviceAllocMap) } // GetSwapchainImages function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetSwapchainImagesKHR func GetSwapchainImages(device Device, swapchain Swapchain, pSwapchainImageCount *uint32, pSwapchainImages []Image) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpSwapchainImageCount, cpSwapchainImageCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pSwapchainImageCount)), cgoAllocsUnknown - cpSwapchainImages, cpSwapchainImagesAllocMap := copyPImageBytes((*sliceHeader)(unsafe.Pointer(&pSwapchainImages))) + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpSwapchainImageCount, _ := (*C.uint32_t)(unsafe.Pointer(pSwapchainImageCount)), cgoAllocsUnknown + cpSwapchainImages, _ := (*C.VkImage)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pSwapchainImages)).Data)), cgoAllocsUnknown __ret := C.callVkGetSwapchainImagesKHR(cdevice, cswapchain, cpSwapchainImageCount, cpSwapchainImages) - runtime.KeepAlive(cpSwapchainImagesAllocMap) - runtime.KeepAlive(cpSwapchainImageCountAllocMap) - runtime.KeepAlive(cswapchainAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // AcquireNextImage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireNextImageKHR func AcquireNextImage(device Device, swapchain Swapchain, timeout uint64, semaphore Semaphore, fence Fence, pImageIndex *uint32) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - ctimeout, ctimeoutAllocMap := (C.uint64_t)(timeout), cgoAllocsUnknown - csemaphore, csemaphoreAllocMap := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown - cfence, cfenceAllocMap := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown - cpImageIndex, cpImageIndexAllocMap := (*C.uint32_t)(unsafe.Pointer(pImageIndex)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + ctimeout, _ := (C.uint64_t)(timeout), cgoAllocsUnknown + csemaphore, _ := *(*C.VkSemaphore)(unsafe.Pointer(&semaphore)), cgoAllocsUnknown + cfence, _ := *(*C.VkFence)(unsafe.Pointer(&fence)), cgoAllocsUnknown + cpImageIndex, _ := (*C.uint32_t)(unsafe.Pointer(pImageIndex)), cgoAllocsUnknown __ret := C.callVkAcquireNextImageKHR(cdevice, cswapchain, ctimeout, csemaphore, cfence, cpImageIndex) - runtime.KeepAlive(cpImageIndexAllocMap) - runtime.KeepAlive(cfenceAllocMap) - runtime.KeepAlive(csemaphoreAllocMap) - runtime.KeepAlive(ctimeoutAllocMap) - runtime.KeepAlive(cswapchainAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // QueuePresent function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueuePresentKHR func QueuePresent(queue Queue, pPresentInfo *PresentInfo) Result { - cqueue, cqueueAllocMap := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown - cpPresentInfo, cpPresentInfoAllocMap := pPresentInfo.PassRef() + cqueue, _ := *(*C.VkQueue)(unsafe.Pointer(&queue)), cgoAllocsUnknown + cpPresentInfo, _ := pPresentInfo.PassRef() __ret := C.callVkQueuePresentKHR(cqueue, cpPresentInfo) - runtime.KeepAlive(cpPresentInfoAllocMap) - runtime.KeepAlive(cqueueAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceDisplayProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceDisplayPropertiesKHR func GetPhysicalDeviceDisplayProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []DisplayProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSDisplayProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSDisplayProperties(pProperties) __ret := C.callVkGetPhysicalDeviceDisplayPropertiesKHR(cphysicalDevice, cpPropertyCount, cpProperties) packSDisplayProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetPhysicalDeviceDisplayPlaneProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetPhysicalDeviceDisplayPlanePropertiesKHR func GetPhysicalDeviceDisplayPlaneProperties(physicalDevice PhysicalDevice, pPropertyCount *uint32, pProperties []DisplayPlaneProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSDisplayPlaneProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSDisplayPlaneProperties(pProperties) __ret := C.callVkGetPhysicalDeviceDisplayPlanePropertiesKHR(cphysicalDevice, cpPropertyCount, cpProperties) packSDisplayPlaneProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayPlaneSupportedDisplays function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayPlaneSupportedDisplaysKHR func GetDisplayPlaneSupportedDisplays(physicalDevice PhysicalDevice, planeIndex uint32, pDisplayCount *uint32, pDisplays []Display) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cplaneIndex, cplaneIndexAllocMap := (C.uint32_t)(planeIndex), cgoAllocsUnknown - cpDisplayCount, cpDisplayCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pDisplayCount)), cgoAllocsUnknown - cpDisplays, cpDisplaysAllocMap := copyPDisplayBytes((*sliceHeader)(unsafe.Pointer(&pDisplays))) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cplaneIndex, _ := (C.uint32_t)(planeIndex), cgoAllocsUnknown + cpDisplayCount, _ := (*C.uint32_t)(unsafe.Pointer(pDisplayCount)), cgoAllocsUnknown + cpDisplays, _ := (*C.VkDisplayKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&pDisplays)).Data)), cgoAllocsUnknown __ret := C.callVkGetDisplayPlaneSupportedDisplaysKHR(cphysicalDevice, cplaneIndex, cpDisplayCount, cpDisplays) - runtime.KeepAlive(cpDisplaysAllocMap) - runtime.KeepAlive(cpDisplayCountAllocMap) - runtime.KeepAlive(cplaneIndexAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayModeProperties function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayModePropertiesKHR func GetDisplayModeProperties(physicalDevice PhysicalDevice, display Display, pPropertyCount *uint32, pProperties []DisplayModeProperties) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cdisplay, cdisplayAllocMap := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown - cpPropertyCount, cpPropertyCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown - cpProperties, cpPropertiesAllocMap := unpackArgSDisplayModeProperties(pProperties) + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cdisplay, _ := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown + cpPropertyCount, _ := (*C.uint32_t)(unsafe.Pointer(pPropertyCount)), cgoAllocsUnknown + cpProperties, _ := unpackArgSDisplayModeProperties(pProperties) __ret := C.callVkGetDisplayModePropertiesKHR(cphysicalDevice, cdisplay, cpPropertyCount, cpProperties) packSDisplayModeProperties(pProperties, cpProperties) - runtime.KeepAlive(cpPropertiesAllocMap) - runtime.KeepAlive(cpPropertyCountAllocMap) - runtime.KeepAlive(cdisplayAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDisplayMode function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateDisplayModeKHR func CreateDisplayMode(physicalDevice PhysicalDevice, display Display, pCreateInfo *DisplayModeCreateInfo, pAllocator *AllocationCallbacks, pMode *DisplayMode) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cdisplay, cdisplayAllocMap := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpMode, cpModeAllocMap := (*C.VkDisplayModeKHR)(unsafe.Pointer(pMode)), cgoAllocsUnknown + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cdisplay, _ := *(*C.VkDisplayKHR)(unsafe.Pointer(&display)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpMode, _ := (*C.VkDisplayModeKHR)(unsafe.Pointer(pMode)), cgoAllocsUnknown __ret := C.callVkCreateDisplayModeKHR(cphysicalDevice, cdisplay, cpCreateInfo, cpAllocator, cpMode) - runtime.KeepAlive(cpModeAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cdisplayAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // GetDisplayPlaneCapabilities function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkGetDisplayPlaneCapabilitiesKHR func GetDisplayPlaneCapabilities(physicalDevice PhysicalDevice, mode DisplayMode, planeIndex uint32, pCapabilities *DisplayPlaneCapabilities) Result { - cphysicalDevice, cphysicalDeviceAllocMap := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown - cmode, cmodeAllocMap := *(*C.VkDisplayModeKHR)(unsafe.Pointer(&mode)), cgoAllocsUnknown - cplaneIndex, cplaneIndexAllocMap := (C.uint32_t)(planeIndex), cgoAllocsUnknown - cpCapabilities, cpCapabilitiesAllocMap := pCapabilities.PassRef() + cphysicalDevice, _ := *(*C.VkPhysicalDevice)(unsafe.Pointer(&physicalDevice)), cgoAllocsUnknown + cmode, _ := *(*C.VkDisplayModeKHR)(unsafe.Pointer(&mode)), cgoAllocsUnknown + cplaneIndex, _ := (C.uint32_t)(planeIndex), cgoAllocsUnknown + cpCapabilities, _ := pCapabilities.PassRef() __ret := C.callVkGetDisplayPlaneCapabilitiesKHR(cphysicalDevice, cmode, cplaneIndex, cpCapabilities) - runtime.KeepAlive(cpCapabilitiesAllocMap) - runtime.KeepAlive(cplaneIndexAllocMap) - runtime.KeepAlive(cmodeAllocMap) - runtime.KeepAlive(cphysicalDeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDisplayPlaneSurface function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateDisplayPlaneSurfaceKHR func CreateDisplayPlaneSurface(instance Instance, pCreateInfo *DisplaySurfaceCreateInfo, pAllocator *AllocationCallbacks, pSurface *Surface) Result { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSurface, cpSurfaceAllocMap := (*C.VkSurfaceKHR)(unsafe.Pointer(pSurface)), cgoAllocsUnknown + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSurface, _ := (*C.VkSurfaceKHR)(unsafe.Pointer(pSurface)), cgoAllocsUnknown __ret := C.callVkCreateDisplayPlaneSurfaceKHR(cinstance, cpCreateInfo, cpAllocator, cpSurface) - runtime.KeepAlive(cpSurfaceAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // CreateSharedSwapchains function as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCreateSharedSwapchainsKHR func CreateSharedSwapchains(device Device, swapchainCount uint32, pCreateInfos []SwapchainCreateInfo, pAllocator *AllocationCallbacks, pSwapchains *Swapchain) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchainCount, cswapchainCountAllocMap := (C.uint32_t)(swapchainCount), cgoAllocsUnknown - cpCreateInfos, cpCreateInfosAllocMap := unpackArgSSwapchainCreateInfo(pCreateInfos) - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpSwapchains, cpSwapchainsAllocMap := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchains)), cgoAllocsUnknown + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchainCount, _ := (C.uint32_t)(swapchainCount), cgoAllocsUnknown + cpCreateInfos, _ := unpackArgSSwapchainCreateInfo(pCreateInfos) + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpSwapchains, _ := (*C.VkSwapchainKHR)(unsafe.Pointer(pSwapchains)), cgoAllocsUnknown __ret := C.callVkCreateSharedSwapchainsKHR(cdevice, cswapchainCount, cpCreateInfos, cpAllocator, cpSwapchains) - runtime.KeepAlive(cpSwapchainsAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) packSSwapchainCreateInfo(pCreateInfos, cpCreateInfos) - runtime.KeepAlive(cpCreateInfosAllocMap) - runtime.KeepAlive(cswapchainCountAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // CreateDebugReportCallback function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCreateDebugReportCallbackEXT.html func CreateDebugReportCallback(instance Instance, pCreateInfo *DebugReportCallbackCreateInfo, pAllocator *AllocationCallbacks, pCallback *DebugReportCallback) Result { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cpCreateInfo, cpCreateInfoAllocMap := pCreateInfo.PassRef() - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown - cpCallback, cpCallbackAllocMap := (*C.VkDebugReportCallbackEXT)(unsafe.Pointer(pCallback)), cgoAllocsUnknown + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + cpCreateInfo, _ := pCreateInfo.PassRef() + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cpCallback, _ := (*C.VkDebugReportCallbackEXT)(unsafe.Pointer(pCallback)), cgoAllocsUnknown __ret := C.callVkCreateDebugReportCallbackEXT(cinstance, cpCreateInfo, cpAllocator, cpCallback) - runtime.KeepAlive(cpCallbackAllocMap) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(cpCreateInfoAllocMap) - runtime.KeepAlive(cinstanceAllocMap) __v := (Result)(__ret) return __v } // DestroyDebugReportCallback function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDestroyDebugReportCallbackEXT.html func DestroyDebugReportCallback(instance Instance, callback DebugReportCallback, pAllocator *AllocationCallbacks) { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - ccallback, ccallbackAllocMap := *(*C.VkDebugReportCallbackEXT)(unsafe.Pointer(&callback)), cgoAllocsUnknown - cpAllocator, cpAllocatorAllocMap := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown + cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown + ccallback, _ := *(*C.VkDebugReportCallbackEXT)(unsafe.Pointer(&callback)), cgoAllocsUnknown + cpAllocator, _ := (*C.VkAllocationCallbacks)(unsafe.Pointer(pAllocator)), cgoAllocsUnknown C.callVkDestroyDebugReportCallbackEXT(cinstance, ccallback, cpAllocator) - runtime.KeepAlive(cpAllocatorAllocMap) - runtime.KeepAlive(ccallbackAllocMap) - runtime.KeepAlive(cinstanceAllocMap) } // 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 uint32, messageCode int32, pLayerPrefix string, pMessage string) { - cinstance, cinstanceAllocMap := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown - cflags, cflagsAllocMap := (C.VkDebugReportFlagsEXT)(flags), cgoAllocsUnknown - cobjectType, cobjectTypeAllocMap := (C.VkDebugReportObjectTypeEXT)(objectType), cgoAllocsUnknown - cobject, cobjectAllocMap := (C.uint64_t)(object), cgoAllocsUnknown - clocation, clocationAllocMap := (C.size_t)(location), cgoAllocsUnknown - cmessageCode, cmessageCodeAllocMap := (C.int32_t)(messageCode), cgoAllocsUnknown - cpLayerPrefix, cpLayerPrefixAllocMap := unpackPCharString(pLayerPrefix) - cpMessage, cpMessageAllocMap := unpackPCharString(pMessage) +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 + cobject, _ := (C.uint64_t)(object), cgoAllocsUnknown + clocation, _ := (C.size_t)(location), cgoAllocsUnknown + cmessageCode, _ := (C.int32_t)(messageCode), cgoAllocsUnknown + cpLayerPrefix, _ := unpackPCharString(pLayerPrefix) + cpMessage, _ := unpackPCharString(pMessage) C.callVkDebugReportMessageEXT(cinstance, cflags, cobjectType, cobject, clocation, cmessageCode, cpLayerPrefix, cpMessage) - runtime.KeepAlive(cpMessageAllocMap) - runtime.KeepAlive(cpLayerPrefixAllocMap) - runtime.KeepAlive(cmessageCodeAllocMap) - runtime.KeepAlive(clocationAllocMap) - runtime.KeepAlive(cobjectAllocMap) - runtime.KeepAlive(cobjectTypeAllocMap) - runtime.KeepAlive(cflagsAllocMap) - runtime.KeepAlive(cinstanceAllocMap) } // GetRefreshCycleDurationGOOGLE function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetRefreshCycleDurationGOOGLE.html func GetRefreshCycleDurationGOOGLE(device Device, swapchain Swapchain, pDisplayTimingProperties *RefreshCycleDurationGOOGLE) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpDisplayTimingProperties, cpDisplayTimingPropertiesAllocMap := pDisplayTimingProperties.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpDisplayTimingProperties, _ := pDisplayTimingProperties.PassRef() __ret := C.callVkGetRefreshCycleDurationGOOGLE(cdevice, cswapchain, cpDisplayTimingProperties) - runtime.KeepAlive(cpDisplayTimingPropertiesAllocMap) - runtime.KeepAlive(cswapchainAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } // GetPastPresentationTimingGOOGLE function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPastPresentationTimingGOOGLE.html func GetPastPresentationTimingGOOGLE(device Device, swapchain Swapchain, pPresentationTimingCount *uint32, pPresentationTimings *PastPresentationTimingGOOGLE) Result { - cdevice, cdeviceAllocMap := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, cswapchainAllocMap := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpPresentationTimingCount, cpPresentationTimingCountAllocMap := (*C.uint32_t)(unsafe.Pointer(pPresentationTimingCount)), cgoAllocsUnknown - cpPresentationTimings, cpPresentationTimingsAllocMap := pPresentationTimings.PassRef() + cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown + cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown + cpPresentationTimingCount, _ := (*C.uint32_t)(unsafe.Pointer(pPresentationTimingCount)), cgoAllocsUnknown + cpPresentationTimings, _ := pPresentationTimings.PassRef() __ret := C.callVkGetPastPresentationTimingGOOGLE(cdevice, cswapchain, cpPresentationTimingCount, cpPresentationTimings) - runtime.KeepAlive(cpPresentationTimingsAllocMap) - runtime.KeepAlive(cpPresentationTimingCountAllocMap) - runtime.KeepAlive(cswapchainAllocMap) - runtime.KeepAlive(cdeviceAllocMap) __v := (Result)(__ret) return __v } From 827c7c2598ddf4c04794122b538a2160dea03c39 Mon Sep 17 00:00:00 2001 From: Gary Miguel Date: Thu, 25 Aug 2022 19:55:22 +0000 Subject: [PATCH 03/25] add Bazel build support For now the main benefit is that it specifies the dependency on the Vulkan headers, so it can be built at least on some Linux machines without installing the Vulkan SDK. Currently this cannot be built a MacOS machine that doesn't have the Vulkan SDK installed. I'll try to fix that in the future. --- .gitignore | 1 + BUILD.bazel | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ WORKSPACE.bazel | 18 +++++++++ 3 files changed, 117 insertions(+) create mode 100644 .gitignore create mode 100644 BUILD.bazel create mode 100644 WORKSPACE.bazel diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6ef824 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bazel-* diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 0000000..c4b4f33 --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,98 @@ +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"], + 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", + "-lMoltenVK", + "-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/WORKSPACE.bazel b/WORKSPACE.bazel new file mode 100644 index 0000000..6f5fd32 --- /dev/null +++ b/WORKSPACE.bazel @@ -0,0 +1,18 @@ +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 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", + "https://github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", + ], +) + +load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") + +go_rules_dependencies() + +go_register_toolchains(version = "1.18.5") From 57c291e1d51425458df0ef0d7805c7d61f39365a Mon Sep 17 00:00:00 2001 From: Gary Miguel Date: Thu, 25 Aug 2022 13:48:45 -0700 Subject: [PATCH 04/25] Bazel: Fetch libMoltenVK rather than relying on system library This makes this target usable in Bazel without requiring the user to install a compatible Vulkan SDK. --- BUILD.bazel | 12 +++++++++--- WORKSPACE.bazel | 13 +++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index c4b4f33..fc5d019 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -35,7 +35,12 @@ go_library( "vulkan_ios.go", "vulkan_linux.go", ], - cdeps = [":vulkan_headers"], + cdeps = [":vulkan_headers"] + select({ + "@io_bazel_rules_go//go/platform:darwin": [ + "@com_github_goki_vulkan_mac_deps//:libmoltenvk_dylib", + ], + "//conditions:default": [], + }), cgo = True, clinkopts = select({ "@io_bazel_rules_go//go/platform:android": [ @@ -50,11 +55,12 @@ go_library( "-framework IOSurface", "-framework QuartzCore", "-framework Metal", - "-lMoltenVK", "-lc++", ], "@io_bazel_rules_go//go/platform:freebsd": [ - "-L/usr/local/lib -ldl -lvulkan", + "-L/usr/local/lib", + "-ldl", + "-lvulkan", ], "@io_bazel_rules_go//go/platform:linux": [ "-ldl", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 6f5fd32..17e258a 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -11,6 +11,19 @@ http_archive( ], ) +# NOTE: consumers of this repository need to copy the following into their WORKSPACE + +vulkan_mac_deps_version = "1.3.211.0" + +http_archive( + name = "com_github_goki_vulkan_mac_deps", + sha256 = "8d3277edf13a29703fc8922e32cf6e15a67c2af67c89fb1bec4dc2bce3e0cbf6", + 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, +) + +# END NOTE + load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() From a9837dfe09ad942e0110166deaa5c4e9771fb5a0 Mon Sep 17 00:00:00 2001 From: Gary Miguel Date: Fri, 16 Sep 2022 14:29:39 -0700 Subject: [PATCH 05/25] Rely on system installation of MoltenVK with Bazel The previous attempt to use a hermetic copy of it didn't work in all cases. The dylib was linked properly, but some Vulkan libraries at runtime access it through the "loader driver interface", which requires an `icd.d` directory to be present in a particular path. See https://vulkan.lunarg.com/doc/view/1.3.211.0/mac/LoaderDriverInterface.html#user-content-driver-discovery-on-macos So for now we'll just rely on the user to install MoltenVK (probably via the LunarG Vulkan SDK), but I hope that maybe this is fixable once https://github.com/bazelbuild/bazel/issues/13930 is fixed. --- BUILD.bazel | 22 +++++++++++++++------- WORKSPACE.bazel | 13 ------------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index fc5d019..feaf13f 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -35,12 +35,7 @@ go_library( "vulkan_ios.go", "vulkan_linux.go", ], - cdeps = [":vulkan_headers"] + select({ - "@io_bazel_rules_go//go/platform:darwin": [ - "@com_github_goki_vulkan_mac_deps//:libmoltenvk_dylib", - ], - "//conditions:default": [], - }), + cdeps = [":vulkan_headers"], cgo = True, clinkopts = select({ "@io_bazel_rules_go//go/platform:android": [ @@ -55,6 +50,16 @@ go_library( "-framework IOSurface", "-framework QuartzCore", "-framework Metal", + # This line requires the Vulkan SDK to be installed. + # TODO: We should not require this. + # We can use cc_import and cdeps to link it, but the + # vulkan loader at run-time searches for the icd.d directory. + # I haven't figured out how to bundle that directory with this library. + # Maybe fixable by setting SYSCONFDIR once this is fixed: + # https://github.com/bazelbuild/bazel/issues/13930 + # Reference: + # https://vulkan.lunarg.com/doc/view/1.3.211.0/mac/LoaderDriverInterface.html#user-content-driver-discovery-on-macos + "-lMoltenVK", "-lc++", ], "@io_bazel_rules_go//go/platform:freebsd": [ @@ -71,13 +76,16 @@ go_library( "-framework Foundation", "-framework Metal", "-framework QuartzCore", - "-framework MoltenVK -lc++", + "-framework MoltenVK", + "-lc++", ], "//conditions:default": [], }), copts = [ "-I.", "-DVK_NO_PROTOTYPES", + # + # "-DSYSCONFDIR=$(rootpath @com_github_goki_vulkan_mac_deps//:vulkan_mac_deps)/sdk/macOS/share", ] + select({ "@io_bazel_rules_go//go/platform:android": [ "-DVK_USE_PLATFORM_ANDROID_KHR", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 17e258a..6f5fd32 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -11,19 +11,6 @@ http_archive( ], ) -# NOTE: consumers of this repository need to copy the following into their WORKSPACE - -vulkan_mac_deps_version = "1.3.211.0" - -http_archive( - name = "com_github_goki_vulkan_mac_deps", - sha256 = "8d3277edf13a29703fc8922e32cf6e15a67c2af67c89fb1bec4dc2bce3e0cbf6", - 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, -) - -# END NOTE - load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() From 9ad0685964420fe92f1c85cd7eb75967b47141d5 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:12:20 -0800 Subject: [PATCH 06/25] Update to vulkan version 1.3.239 with UPDATING.md notes updated and updated README to reflect current status. --- Makefile | 27 + README.md | 65 +- UPDATING.md | 6 + cgo_helpers.c | 2 +- cgo_helpers.go | 34605 +++++++++++++++++++------------ cgo_helpers.h | 3 +- const.go | 2605 ++- const_go.patch | 54 +- doc.go | 2 +- go.mod | 2 +- moltenVK/vk_mvk_moltenvk.h | 190 +- types.go | 1529 +- vk_wrapper.h | 1 + vulkan.go | 3 +- vulkan.yml | 3 + vulkan/vk_enum_string_helper.h | 1987 +- vulkan/vk_icd.h | 29 +- vulkan/vk_layer.h | 11 +- vulkan/vk_sdk_platform.h | 26 +- vulkan/vulkan.h | 1 - vulkan/vulkan_beta.h | 745 +- vulkan/vulkan_core.h | 2947 ++- vulkan/vulkan_core_h.patch | 63 +- vulkan/vulkan_metal.h | 141 +- vulkan/vulkan_win32.h | 18 + 25 files changed, 28724 insertions(+), 16341 deletions(-) diff --git a/Makefile b/Makefile index cfb9ff4..dafe91c 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.18 +PACKAGE=vgpu +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 " Version = \"$(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 21e53c4..4fbeb7a 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/goki/vulkan?status.svg)](https://godoc.org/github.com/goki/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/goki/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/goki/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 @@ -105,6 +58,8 @@ 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! + ## 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). diff --git a/UPDATING.md b/UPDATING.md index 880068f..4779c41 100644 --- a/UPDATING.md +++ b/UPDATING.md @@ -1,3 +1,9 @@ +# 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. diff --git a/cgo_helpers.c b/cgo_helpers.c index 8d891fb..9d25463 100644 --- a/cgo_helpers.c +++ b/cgo_helpers.c @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "_cgo_export.h" diff --git a/cgo_helpers.go b/cgo_helpers.go index f86c11d..6b7479d 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 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 @@ -34661,89 +34662,81 @@ func (x *DisplayPresentInfo) Deref() { x.Persistent = (Bool32)(x.ref8d2571e4.persistent) } -// allocRenderingFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentShadingRateAttachmentInfoKHR in C. +// allocQueueFamilyQueryResultStatusPropertiesMemory allocates memory for type C.VkQueueFamilyQueryResultStatusPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderingFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentShadingRateAttachmentInfoValue)) +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 sizeOfRenderingFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentShadingRateAttachmentInfoKHR{}) +const sizeOfQueueFamilyQueryResultStatusPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyQueryResultStatusPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderingFragmentShadingRateAttachmentInfo) Ref() *C.VkRenderingFragmentShadingRateAttachmentInfoKHR { +func (x *QueueFamilyQueryResultStatusProperties) Ref() *C.VkQueueFamilyQueryResultStatusPropertiesKHR { if x == nil { return nil } - return x.ref4d98d68f + 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 *RenderingFragmentShadingRateAttachmentInfo) Free() { - if x != nil && x.allocs4d98d68f != nil { - x.allocs4d98d68f.(*cgoAllocMap).Free() - x.ref4d98d68f = nil +func (x *QueueFamilyQueryResultStatusProperties) Free() { + if x != nil && x.allocs1453d181 != nil { + x.allocs1453d181.(*cgoAllocMap).Free() + x.ref1453d181 = nil } } -// NewRenderingFragmentShadingRateAttachmentInfoRef 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 NewRenderingFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentShadingRateAttachmentInfo { +func NewQueueFamilyQueryResultStatusPropertiesRef(ref unsafe.Pointer) *QueueFamilyQueryResultStatusProperties { if ref == nil { return nil } - obj := new(RenderingFragmentShadingRateAttachmentInfo) - obj.ref4d98d68f = (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(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 *RenderingFragmentShadingRateAttachmentInfo) PassRef() (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { +func (x *QueueFamilyQueryResultStatusProperties) PassRef() (*C.VkQueueFamilyQueryResultStatusPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4d98d68f != nil { - return x.ref4d98d68f, nil + } else if x.ref1453d181 != nil { + return x.ref1453d181, nil } - mem4d98d68f := allocRenderingFragmentShadingRateAttachmentInfoMemory(1) - ref4d98d68f := (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(mem4d98d68f) - allocs4d98d68f := new(cgoAllocMap) - allocs4d98d68f.Add(mem4d98d68f) + mem1453d181 := allocQueueFamilyQueryResultStatusPropertiesMemory(1) + ref1453d181 := (*C.VkQueueFamilyQueryResultStatusPropertiesKHR)(mem1453d181) + allocs1453d181 := new(cgoAllocMap) + allocs1453d181.Add(mem1453d181) var csType_allocs *cgoAllocMap - ref4d98d68f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4d98d68f.Borrow(csType_allocs) + ref1453d181.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1453d181.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) + ref1453d181.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1453d181.Borrow(cpNext_allocs) - var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap - ref4d98d68f.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() - allocs4d98d68f.Borrow(cshadingRateAttachmentTexelSize_allocs) + var cqueryResultStatusSupport_allocs *cgoAllocMap + ref1453d181.queryResultStatusSupport, cqueryResultStatusSupport_allocs = (C.VkBool32)(x.QueryResultStatusSupport), cgoAllocsUnknown + allocs1453d181.Borrow(cqueryResultStatusSupport_allocs) - x.ref4d98d68f = ref4d98d68f - x.allocs4d98d68f = allocs4d98d68f - return ref4d98d68f, allocs4d98d68f + x.ref1453d181 = ref1453d181 + x.allocs1453d181 = allocs1453d181 + return ref1453d181, allocs1453d181 } // 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 +func (x QueueFamilyQueryResultStatusProperties) PassValue() (C.VkQueueFamilyQueryResultStatusPropertiesKHR, *cgoAllocMap) { + if x.ref1453d181 != nil { + return *x.ref1453d181, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34751,96 +34744,90 @@ func (x RenderingFragmentShadingRateAttachmentInfo) PassValue() (C.VkRenderingFr // Deref uses the underlying reference to C object and fills the wrapping struct with 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 { +func (x *QueueFamilyQueryResultStatusProperties) Deref() { + if x.ref1453d181 == 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)) + x.SType = (StructureType)(x.ref1453d181.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1453d181.pNext)) + x.QueryResultStatusSupport = (Bool32)(x.ref1453d181.queryResultStatusSupport) } -// allocRenderingFragmentDensityMapAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentDensityMapAttachmentInfoEXT in C. +// allocQueueFamilyVideoPropertiesMemory allocates memory for type C.VkQueueFamilyVideoPropertiesKHR 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)) +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 } -const sizeOfRenderingFragmentDensityMapAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentDensityMapAttachmentInfoEXT{}) +const sizeOfQueueFamilyVideoPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyVideoPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderingFragmentDensityMapAttachmentInfo) Ref() *C.VkRenderingFragmentDensityMapAttachmentInfoEXT { +func (x *QueueFamilyVideoProperties) Ref() *C.VkQueueFamilyVideoPropertiesKHR { if x == nil { return nil } - return x.ref5a007d48 + 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 *RenderingFragmentDensityMapAttachmentInfo) Free() { - if x != nil && x.allocs5a007d48 != nil { - x.allocs5a007d48.(*cgoAllocMap).Free() - x.ref5a007d48 = nil +func (x *QueueFamilyVideoProperties) Free() { + if x != nil && x.allocsb21c87c4 != nil { + x.allocsb21c87c4.(*cgoAllocMap).Free() + x.refb21c87c4 = nil } } -// NewRenderingFragmentDensityMapAttachmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewRenderingFragmentDensityMapAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentDensityMapAttachmentInfo { +func NewQueueFamilyVideoPropertiesRef(ref unsafe.Pointer) *QueueFamilyVideoProperties { if ref == nil { return nil } - obj := new(RenderingFragmentDensityMapAttachmentInfo) - obj.ref5a007d48 = (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(unsafe.Pointer(ref)) + obj := new(QueueFamilyVideoProperties) + obj.refb21c87c4 = (*C.VkQueueFamilyVideoPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderingFragmentDensityMapAttachmentInfo) PassRef() (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { +func (x *QueueFamilyVideoProperties) PassRef() (*C.VkQueueFamilyVideoPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5a007d48 != nil { - return x.ref5a007d48, nil + } else if x.refb21c87c4 != nil { + return x.refb21c87c4, nil } - mem5a007d48 := allocRenderingFragmentDensityMapAttachmentInfoMemory(1) - ref5a007d48 := (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(mem5a007d48) - allocs5a007d48 := new(cgoAllocMap) - allocs5a007d48.Add(mem5a007d48) + memb21c87c4 := allocQueueFamilyVideoPropertiesMemory(1) + refb21c87c4 := (*C.VkQueueFamilyVideoPropertiesKHR)(memb21c87c4) + allocsb21c87c4 := new(cgoAllocMap) + allocsb21c87c4.Add(memb21c87c4) var csType_allocs *cgoAllocMap - ref5a007d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5a007d48.Borrow(csType_allocs) + refb21c87c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb21c87c4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5a007d48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5a007d48.Borrow(cpNext_allocs) - - var cimageView_allocs *cgoAllocMap - ref5a007d48.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown - allocs5a007d48.Borrow(cimageView_allocs) + refb21c87c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb21c87c4.Borrow(cpNext_allocs) - var cimageLayout_allocs *cgoAllocMap - ref5a007d48.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown - allocs5a007d48.Borrow(cimageLayout_allocs) + var cvideoCodecOperations_allocs *cgoAllocMap + refb21c87c4.videoCodecOperations, cvideoCodecOperations_allocs = (C.VkVideoCodecOperationFlagsKHR)(x.VideoCodecOperations), cgoAllocsUnknown + allocsb21c87c4.Borrow(cvideoCodecOperations_allocs) - x.ref5a007d48 = ref5a007d48 - x.allocs5a007d48 = allocs5a007d48 - return ref5a007d48, allocs5a007d48 + 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 RenderingFragmentDensityMapAttachmentInfo) PassValue() (C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { - if x.ref5a007d48 != nil { - return *x.ref5a007d48, nil +func (x QueueFamilyVideoProperties) PassValue() (C.VkQueueFamilyVideoPropertiesKHR, *cgoAllocMap) { + if x.refb21c87c4 != nil { + return *x.refb21c87c4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34848,99 +34835,102 @@ func (x RenderingFragmentDensityMapAttachmentInfo) PassValue() (C.VkRenderingFra // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderingFragmentDensityMapAttachmentInfo) Deref() { - if x.ref5a007d48 == nil { +func (x *QueueFamilyVideoProperties) Deref() { + if x.refb21c87c4 == nil { return } - 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) + x.SType = (StructureType)(x.refb21c87c4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb21c87c4.pNext)) + x.VideoCodecOperations = (VideoCodecOperationFlags)(x.refb21c87c4.videoCodecOperations) } -// allocAttachmentSampleCountInfoAMDMemory allocates memory for type C.VkAttachmentSampleCountInfoAMD in C. +// allocVideoProfileInfoMemory allocates memory for type C.VkVideoProfileInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentSampleCountInfoAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleCountInfoAMDValue)) +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 sizeOfAttachmentSampleCountInfoAMDValue = unsafe.Sizeof([1]C.VkAttachmentSampleCountInfoAMD{}) +const sizeOfVideoProfileInfoValue = unsafe.Sizeof([1]C.VkVideoProfileInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentSampleCountInfoAMD) Ref() *C.VkAttachmentSampleCountInfoAMD { +func (x *VideoProfileInfo) Ref() *C.VkVideoProfileInfoKHR { if x == nil { return nil } - return x.refeef56262 + 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 *AttachmentSampleCountInfoAMD) Free() { - if x != nil && x.allocseef56262 != nil { - x.allocseef56262.(*cgoAllocMap).Free() - x.refeef56262 = nil +func (x *VideoProfileInfo) Free() { + if x != nil && x.allocsdbadacde != nil { + x.allocsdbadacde.(*cgoAllocMap).Free() + x.refdbadacde = nil } } -// NewAttachmentSampleCountInfoAMDRef 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 NewAttachmentSampleCountInfoAMDRef(ref unsafe.Pointer) *AttachmentSampleCountInfoAMD { +func NewVideoProfileInfoRef(ref unsafe.Pointer) *VideoProfileInfo { if ref == nil { return nil } - obj := new(AttachmentSampleCountInfoAMD) - obj.refeef56262 = (*C.VkAttachmentSampleCountInfoAMD)(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 *AttachmentSampleCountInfoAMD) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { +func (x *VideoProfileInfo) PassRef() (*C.VkVideoProfileInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeef56262 != nil { - return x.refeef56262, nil + } else if x.refdbadacde != nil { + return x.refdbadacde, nil } - memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) - refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) - allocseef56262 := new(cgoAllocMap) - allocseef56262.Add(memeef56262) + memdbadacde := allocVideoProfileInfoMemory(1) + refdbadacde := (*C.VkVideoProfileInfoKHR)(memdbadacde) + allocsdbadacde := new(cgoAllocMap) + allocsdbadacde.Add(memdbadacde) var csType_allocs *cgoAllocMap - refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseef56262.Borrow(csType_allocs) + refdbadacde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdbadacde.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocseef56262.Borrow(cpNext_allocs) + refdbadacde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdbadacde.Borrow(cpNext_allocs) - var ccolorAttachmentCount_allocs *cgoAllocMap - refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown - allocseef56262.Borrow(ccolorAttachmentCount_allocs) + var cvideoCodecOperation_allocs *cgoAllocMap + refdbadacde.videoCodecOperation, cvideoCodecOperation_allocs = (C.VkVideoCodecOperationFlagBitsKHR)(x.VideoCodecOperation), cgoAllocsUnknown + allocsdbadacde.Borrow(cvideoCodecOperation_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 cchromaSubsampling_allocs *cgoAllocMap + refdbadacde.chromaSubsampling, cchromaSubsampling_allocs = (C.VkVideoChromaSubsamplingFlagsKHR)(x.ChromaSubsampling), cgoAllocsUnknown + allocsdbadacde.Borrow(cchromaSubsampling_allocs) - var cdepthStencilAttachmentSamples_allocs *cgoAllocMap - refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown - allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) + var clumaBitDepth_allocs *cgoAllocMap + refdbadacde.lumaBitDepth, clumaBitDepth_allocs = (C.VkVideoComponentBitDepthFlagsKHR)(x.LumaBitDepth), cgoAllocsUnknown + allocsdbadacde.Borrow(clumaBitDepth_allocs) - x.refeef56262 = refeef56262 - x.allocseef56262 = allocseef56262 - return refeef56262, allocseef56262 + var cchromaBitDepth_allocs *cgoAllocMap + refdbadacde.chromaBitDepth, cchromaBitDepth_allocs = (C.VkVideoComponentBitDepthFlagsKHR)(x.ChromaBitDepth), cgoAllocsUnknown + allocsdbadacde.Borrow(cchromaBitDepth_allocs) + + 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 AttachmentSampleCountInfoAMD) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { - if x.refeef56262 != nil { - return *x.refeef56262, nil +func (x VideoProfileInfo) PassValue() (C.VkVideoProfileInfoKHR, *cgoAllocMap) { + if x.refdbadacde != nil { + return *x.refdbadacde, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34948,92 +34938,135 @@ func (x AttachmentSampleCountInfoAMD) PassValue() (C.VkAttachmentSampleCountInfo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentSampleCountInfoAMD) Deref() { - if x.refeef56262 == nil { +func (x *VideoProfileInfo) Deref() { + if x.refdbadacde == nil { return } - 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 = ? + 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) +} - x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) +// allocVideoProfileListInfoMemory allocates memory for type C.VkVideoProfileListInfoKHR in C. +// The caller is responsible for freeing the this memory via C.free. +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 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 *AttachmentSampleCountInfoNV) Ref() *C.VkAttachmentSampleCountInfoAMD { +func (x *VideoProfileListInfo) Ref() *C.VkVideoProfileListInfoKHR { if x == nil { return nil } - return x.refeef56262 + 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 *AttachmentSampleCountInfoNV) Free() { - if x != nil && x.allocseef56262 != nil { - x.allocseef56262.(*cgoAllocMap).Free() - x.refeef56262 = nil +func (x *VideoProfileListInfo) Free() { + if x != nil && x.allocsd98c78d7 != nil { + x.allocsd98c78d7.(*cgoAllocMap).Free() + x.refd98c78d7 = nil } } -// NewAttachmentSampleCountInfoNVRef 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 NewAttachmentSampleCountInfoNVRef(ref unsafe.Pointer) *AttachmentSampleCountInfoNV { +func NewVideoProfileListInfoRef(ref unsafe.Pointer) *VideoProfileListInfo { if ref == nil { return nil } - obj := new(AttachmentSampleCountInfoNV) - obj.refeef56262 = (*C.VkAttachmentSampleCountInfoAMD)(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 *AttachmentSampleCountInfoNV) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { +func (x *VideoProfileListInfo) PassRef() (*C.VkVideoProfileListInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeef56262 != nil { - return x.refeef56262, nil + } else if x.refd98c78d7 != nil { + return x.refd98c78d7, nil } - memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) - refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) - allocseef56262 := new(cgoAllocMap) - allocseef56262.Add(memeef56262) + memd98c78d7 := allocVideoProfileListInfoMemory(1) + refd98c78d7 := (*C.VkVideoProfileListInfoKHR)(memd98c78d7) + allocsd98c78d7 := new(cgoAllocMap) + allocsd98c78d7.Add(memd98c78d7) var csType_allocs *cgoAllocMap - refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseef56262.Borrow(csType_allocs) + refd98c78d7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd98c78d7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocseef56262.Borrow(cpNext_allocs) - - var ccolorAttachmentCount_allocs *cgoAllocMap - refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown - allocseef56262.Borrow(ccolorAttachmentCount_allocs) + refd98c78d7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd98c78d7.Borrow(cpNext_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 cprofileCount_allocs *cgoAllocMap + refd98c78d7.profileCount, cprofileCount_allocs = (C.uint32_t)(x.ProfileCount), cgoAllocsUnknown + allocsd98c78d7.Borrow(cprofileCount_allocs) - var cdepthStencilAttachmentSamples_allocs *cgoAllocMap - refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown - allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) + var cpProfiles_allocs *cgoAllocMap + refd98c78d7.pProfiles, cpProfiles_allocs = unpackSVideoProfileInfo(x.PProfiles) + allocsd98c78d7.Borrow(cpProfiles_allocs) - x.refeef56262 = refeef56262 - x.allocseef56262 = allocseef56262 - return refeef56262, allocseef56262 + 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 AttachmentSampleCountInfoNV) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { - if x.refeef56262 != nil { - return *x.refeef56262, nil +func (x VideoProfileListInfo) PassValue() (C.VkVideoProfileListInfoKHR, *cgoAllocMap) { + if x.refd98c78d7 != nil { + return *x.refd98c78d7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35041,100 +35074,123 @@ func (x AttachmentSampleCountInfoNV) PassValue() (C.VkAttachmentSampleCountInfoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentSampleCountInfoNV) Deref() { - if x.refeef56262 == nil { +func (x *VideoProfileListInfo) Deref() { + if x.refd98c78d7 == nil { return } - 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.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) + 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) } -// allocMultiviewPerViewAttributesInfoNVXMemory allocates memory for type C.VkMultiviewPerViewAttributesInfoNVX in C. +// allocVideoCapabilitiesMemory allocates memory for type C.VkVideoCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMultiviewPerViewAttributesInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiviewPerViewAttributesInfoNVXValue)) +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 sizeOfMultiviewPerViewAttributesInfoNVXValue = unsafe.Sizeof([1]C.VkMultiviewPerViewAttributesInfoNVX{}) +const sizeOfVideoCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultiviewPerViewAttributesInfoNVX) Ref() *C.VkMultiviewPerViewAttributesInfoNVX { +func (x *VideoCapabilities) Ref() *C.VkVideoCapabilitiesKHR { if x == nil { return nil } - return x.refc7d79ea0 + 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 *MultiviewPerViewAttributesInfoNVX) Free() { - if x != nil && x.allocsc7d79ea0 != nil { - x.allocsc7d79ea0.(*cgoAllocMap).Free() - x.refc7d79ea0 = nil +func (x *VideoCapabilities) Free() { + if x != nil && x.allocsf1959efe != nil { + x.allocsf1959efe.(*cgoAllocMap).Free() + x.reff1959efe = nil } } -// NewMultiviewPerViewAttributesInfoNVXRef 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 NewMultiviewPerViewAttributesInfoNVXRef(ref unsafe.Pointer) *MultiviewPerViewAttributesInfoNVX { +func NewVideoCapabilitiesRef(ref unsafe.Pointer) *VideoCapabilities { if ref == nil { return nil } - obj := new(MultiviewPerViewAttributesInfoNVX) - obj.refc7d79ea0 = (*C.VkMultiviewPerViewAttributesInfoNVX)(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 *MultiviewPerViewAttributesInfoNVX) PassRef() (*C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { +func (x *VideoCapabilities) PassRef() (*C.VkVideoCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc7d79ea0 != nil { - return x.refc7d79ea0, nil + } else if x.reff1959efe != nil { + return x.reff1959efe, nil } - memc7d79ea0 := allocMultiviewPerViewAttributesInfoNVXMemory(1) - refc7d79ea0 := (*C.VkMultiviewPerViewAttributesInfoNVX)(memc7d79ea0) - allocsc7d79ea0 := new(cgoAllocMap) - allocsc7d79ea0.Add(memc7d79ea0) + memf1959efe := allocVideoCapabilitiesMemory(1) + reff1959efe := (*C.VkVideoCapabilitiesKHR)(memf1959efe) + allocsf1959efe := new(cgoAllocMap) + allocsf1959efe.Add(memf1959efe) var csType_allocs *cgoAllocMap - refc7d79ea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc7d79ea0.Borrow(csType_allocs) + reff1959efe.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf1959efe.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc7d79ea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc7d79ea0.Borrow(cpNext_allocs) + reff1959efe.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf1959efe.Borrow(cpNext_allocs) - var cperViewAttributes_allocs *cgoAllocMap - refc7d79ea0.perViewAttributes, cperViewAttributes_allocs = (C.VkBool32)(x.PerViewAttributes), cgoAllocsUnknown - allocsc7d79ea0.Borrow(cperViewAttributes_allocs) + var cflags_allocs *cgoAllocMap + reff1959efe.flags, cflags_allocs = (C.VkVideoCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsf1959efe.Borrow(cflags_allocs) - var cperViewAttributesPositionXOnly_allocs *cgoAllocMap - refc7d79ea0.perViewAttributesPositionXOnly, cperViewAttributesPositionXOnly_allocs = (C.VkBool32)(x.PerViewAttributesPositionXOnly), cgoAllocsUnknown - allocsc7d79ea0.Borrow(cperViewAttributesPositionXOnly_allocs) + var cminBitstreamBufferOffsetAlignment_allocs *cgoAllocMap + reff1959efe.minBitstreamBufferOffsetAlignment, cminBitstreamBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinBitstreamBufferOffsetAlignment), cgoAllocsUnknown + allocsf1959efe.Borrow(cminBitstreamBufferOffsetAlignment_allocs) - x.refc7d79ea0 = refc7d79ea0 - x.allocsc7d79ea0 = allocsc7d79ea0 - return refc7d79ea0, allocsc7d79ea0 + var cminBitstreamBufferSizeAlignment_allocs *cgoAllocMap + reff1959efe.minBitstreamBufferSizeAlignment, cminBitstreamBufferSizeAlignment_allocs = (C.VkDeviceSize)(x.MinBitstreamBufferSizeAlignment), cgoAllocsUnknown + allocsf1959efe.Borrow(cminBitstreamBufferSizeAlignment_allocs) + + var cpictureAccessGranularity_allocs *cgoAllocMap + reff1959efe.pictureAccessGranularity, cpictureAccessGranularity_allocs = x.PictureAccessGranularity.PassValue() + allocsf1959efe.Borrow(cpictureAccessGranularity_allocs) + + var cminCodedExtent_allocs *cgoAllocMap + reff1959efe.minCodedExtent, cminCodedExtent_allocs = x.MinCodedExtent.PassValue() + allocsf1959efe.Borrow(cminCodedExtent_allocs) + + var cmaxCodedExtent_allocs *cgoAllocMap + reff1959efe.maxCodedExtent, cmaxCodedExtent_allocs = x.MaxCodedExtent.PassValue() + allocsf1959efe.Borrow(cmaxCodedExtent_allocs) + + var cmaxDpbSlots_allocs *cgoAllocMap + reff1959efe.maxDpbSlots, cmaxDpbSlots_allocs = (C.uint32_t)(x.MaxDpbSlots), cgoAllocsUnknown + allocsf1959efe.Borrow(cmaxDpbSlots_allocs) + + var cmaxActiveReferencePictures_allocs *cgoAllocMap + reff1959efe.maxActiveReferencePictures, cmaxActiveReferencePictures_allocs = (C.uint32_t)(x.MaxActiveReferencePictures), cgoAllocsUnknown + allocsf1959efe.Borrow(cmaxActiveReferencePictures_allocs) + + var cstdHeaderVersion_allocs *cgoAllocMap + reff1959efe.stdHeaderVersion, cstdHeaderVersion_allocs = x.StdHeaderVersion.PassValue() + allocsf1959efe.Borrow(cstdHeaderVersion_allocs) + + 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 MultiviewPerViewAttributesInfoNVX) PassValue() (C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { - if x.refc7d79ea0 != nil { - return *x.refc7d79ea0, nil +func (x VideoCapabilities) PassValue() (C.VkVideoCapabilitiesKHR, *cgoAllocMap) { + if x.reff1959efe != nil { + return *x.reff1959efe, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35142,95 +35198,98 @@ func (x MultiviewPerViewAttributesInfoNVX) PassValue() (C.VkMultiviewPerViewAttr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MultiviewPerViewAttributesInfoNVX) Deref() { - if x.refc7d79ea0 == nil { +func (x *VideoCapabilities) Deref() { + if x.reff1959efe == nil { return } - 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) + 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)) } -// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR in C. +// allocPhysicalDeviceVideoFormatInfoMemory allocates memory for type C.VkPhysicalDeviceVideoFormatInfoKHR 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 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 sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) +const sizeOfPhysicalDeviceVideoFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVideoFormatInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { +func (x *PhysicalDeviceVideoFormatInfo) Ref() *C.VkPhysicalDeviceVideoFormatInfoKHR { if x == nil { return nil } - return x.ref73f83287 + 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 *ImportMemoryFdInfo) Free() { - if x != nil && x.allocs73f83287 != nil { - x.allocs73f83287.(*cgoAllocMap).Free() - x.ref73f83287 = nil +func (x *PhysicalDeviceVideoFormatInfo) Free() { + if x != nil && x.allocs4d0248b7 != nil { + x.allocs4d0248b7.(*cgoAllocMap).Free() + x.ref4d0248b7 = nil } } -// NewImportMemoryFdInfoRef 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 NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { +func NewPhysicalDeviceVideoFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceVideoFormatInfo { if ref == nil { return nil } - obj := new(ImportMemoryFdInfo) - obj.ref73f83287 = (*C.VkImportMemoryFdInfoKHR)(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 *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceVideoFormatInfo) PassRef() (*C.VkPhysicalDeviceVideoFormatInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref73f83287 != nil { - return x.ref73f83287, nil + } else if x.ref4d0248b7 != nil { + return x.ref4d0248b7, nil } - mem73f83287 := allocImportMemoryFdInfoMemory(1) - ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) - allocs73f83287 := new(cgoAllocMap) - allocs73f83287.Add(mem73f83287) + mem4d0248b7 := allocPhysicalDeviceVideoFormatInfoMemory(1) + ref4d0248b7 := (*C.VkPhysicalDeviceVideoFormatInfoKHR)(mem4d0248b7) + allocs4d0248b7 := new(cgoAllocMap) + allocs4d0248b7.Add(mem4d0248b7) var csType_allocs *cgoAllocMap - ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs73f83287.Borrow(csType_allocs) + ref4d0248b7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4d0248b7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs73f83287.Borrow(cpNext_allocs) - - var chandleType_allocs *cgoAllocMap - ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs73f83287.Borrow(chandleType_allocs) + ref4d0248b7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4d0248b7.Borrow(cpNext_allocs) - var cfd_allocs *cgoAllocMap - ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs73f83287.Borrow(cfd_allocs) + var cimageUsage_allocs *cgoAllocMap + ref4d0248b7.imageUsage, cimageUsage_allocs = (C.VkImageUsageFlags)(x.ImageUsage), cgoAllocsUnknown + allocs4d0248b7.Borrow(cimageUsage_allocs) - x.ref73f83287 = ref73f83287 - x.allocs73f83287 = allocs73f83287 - return ref73f83287, allocs73f83287 + 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 ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { - if x.ref73f83287 != nil { - return *x.ref73f83287, nil +func (x PhysicalDeviceVideoFormatInfo) PassValue() (C.VkPhysicalDeviceVideoFormatInfoKHR, *cgoAllocMap) { + if x.ref4d0248b7 != nil { + return *x.ref4d0248b7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35238,91 +35297,110 @@ 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 *PhysicalDeviceVideoFormatInfo) Deref() { + if x.ref4d0248b7 == 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.ref4d0248b7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4d0248b7.pNext)) + x.ImageUsage = (ImageUsageFlags)(x.ref4d0248b7.imageUsage) } -// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR in C. +// allocVideoFormatPropertiesMemory allocates memory for type C.VkVideoFormatPropertiesKHR 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 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 sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) +const sizeOfVideoFormatPropertiesValue = unsafe.Sizeof([1]C.VkVideoFormatPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { +func (x *VideoFormatProperties) Ref() *C.VkVideoFormatPropertiesKHR { if x == nil { return nil } - return x.ref51e16d38 + 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 *MemoryFdProperties) Free() { - if x != nil && x.allocs51e16d38 != nil { - x.allocs51e16d38.(*cgoAllocMap).Free() - x.ref51e16d38 = nil +func (x *VideoFormatProperties) Free() { + if x != nil && x.allocsa1a566f8 != nil { + x.allocsa1a566f8.(*cgoAllocMap).Free() + x.refa1a566f8 = nil } } -// NewMemoryFdPropertiesRef 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 NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { +func NewVideoFormatPropertiesRef(ref unsafe.Pointer) *VideoFormatProperties { if ref == nil { return nil } - obj := new(MemoryFdProperties) - obj.ref51e16d38 = (*C.VkMemoryFdPropertiesKHR)(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 *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { +func (x *VideoFormatProperties) PassRef() (*C.VkVideoFormatPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51e16d38 != nil { - return x.ref51e16d38, nil + } else if x.refa1a566f8 != nil { + return x.refa1a566f8, nil } - mem51e16d38 := allocMemoryFdPropertiesMemory(1) - ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) - allocs51e16d38 := new(cgoAllocMap) - allocs51e16d38.Add(mem51e16d38) + mema1a566f8 := allocVideoFormatPropertiesMemory(1) + refa1a566f8 := (*C.VkVideoFormatPropertiesKHR)(mema1a566f8) + allocsa1a566f8 := new(cgoAllocMap) + allocsa1a566f8.Add(mema1a566f8) var csType_allocs *cgoAllocMap - ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51e16d38.Borrow(csType_allocs) + refa1a566f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa1a566f8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51e16d38.Borrow(cpNext_allocs) + refa1a566f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa1a566f8.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocs51e16d38.Borrow(cmemoryTypeBits_allocs) + var cformat_allocs *cgoAllocMap + refa1a566f8.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsa1a566f8.Borrow(cformat_allocs) - x.ref51e16d38 = ref51e16d38 - x.allocs51e16d38 = allocs51e16d38 - return ref51e16d38, allocs51e16d38 + var ccomponentMapping_allocs *cgoAllocMap + refa1a566f8.componentMapping, ccomponentMapping_allocs = x.ComponentMapping.PassValue() + allocsa1a566f8.Borrow(ccomponentMapping_allocs) + + var cimageCreateFlags_allocs *cgoAllocMap + refa1a566f8.imageCreateFlags, cimageCreateFlags_allocs = (C.VkImageCreateFlags)(x.ImageCreateFlags), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageCreateFlags_allocs) + + var cimageType_allocs *cgoAllocMap + refa1a566f8.imageType, cimageType_allocs = (C.VkImageType)(x.ImageType), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageType_allocs) + + var cimageTiling_allocs *cgoAllocMap + refa1a566f8.imageTiling, cimageTiling_allocs = (C.VkImageTiling)(x.ImageTiling), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageTiling_allocs) + + var cimageUsageFlags_allocs *cgoAllocMap + refa1a566f8.imageUsageFlags, cimageUsageFlags_allocs = (C.VkImageUsageFlags)(x.ImageUsageFlags), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageUsageFlags_allocs) + + 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 MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { - if x.ref51e16d38 != nil { - return *x.ref51e16d38, nil +func (x VideoFormatProperties) PassValue() (C.VkVideoFormatPropertiesKHR, *cgoAllocMap) { + if x.refa1a566f8 != nil { + return *x.refa1a566f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35330,94 +35408,107 @@ 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 *VideoFormatProperties) Deref() { + if x.refa1a566f8 == 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.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) } -// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR in C. +// allocVideoPictureResourceInfoMemory allocates memory for type C.VkVideoPictureResourceInfoKHR 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 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 sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) +const sizeOfVideoPictureResourceInfoValue = unsafe.Sizeof([1]C.VkVideoPictureResourceInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { +func (x *VideoPictureResourceInfo) Ref() *C.VkVideoPictureResourceInfoKHR { if x == nil { return nil } - return x.ref75a079b1 + 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 *MemoryGetFdInfo) Free() { - if x != nil && x.allocs75a079b1 != nil { - x.allocs75a079b1.(*cgoAllocMap).Free() - x.ref75a079b1 = nil +func (x *VideoPictureResourceInfo) Free() { + if x != nil && x.allocse7a42049 != nil { + x.allocse7a42049.(*cgoAllocMap).Free() + x.refe7a42049 = nil } } -// NewMemoryGetFdInfoRef 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 NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { +func NewVideoPictureResourceInfoRef(ref unsafe.Pointer) *VideoPictureResourceInfo { if ref == nil { return nil } - obj := new(MemoryGetFdInfo) - obj.ref75a079b1 = (*C.VkMemoryGetFdInfoKHR)(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 *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { +func (x *VideoPictureResourceInfo) PassRef() (*C.VkVideoPictureResourceInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75a079b1 != nil { - return x.ref75a079b1, nil + } else if x.refe7a42049 != nil { + return x.refe7a42049, nil } - mem75a079b1 := allocMemoryGetFdInfoMemory(1) - ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) - allocs75a079b1 := new(cgoAllocMap) - allocs75a079b1.Add(mem75a079b1) + meme7a42049 := allocVideoPictureResourceInfoMemory(1) + refe7a42049 := (*C.VkVideoPictureResourceInfoKHR)(meme7a42049) + allocse7a42049 := new(cgoAllocMap) + allocse7a42049.Add(meme7a42049) var csType_allocs *cgoAllocMap - ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75a079b1.Borrow(csType_allocs) + refe7a42049.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse7a42049.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75a079b1.Borrow(cpNext_allocs) + refe7a42049.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse7a42049.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs75a079b1.Borrow(cmemory_allocs) + var ccodedOffset_allocs *cgoAllocMap + refe7a42049.codedOffset, ccodedOffset_allocs = x.CodedOffset.PassValue() + allocse7a42049.Borrow(ccodedOffset_allocs) - var chandleType_allocs *cgoAllocMap - ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs75a079b1.Borrow(chandleType_allocs) + var ccodedExtent_allocs *cgoAllocMap + refe7a42049.codedExtent, ccodedExtent_allocs = x.CodedExtent.PassValue() + allocse7a42049.Borrow(ccodedExtent_allocs) - x.ref75a079b1 = ref75a079b1 - x.allocs75a079b1 = allocs75a079b1 - return ref75a079b1, allocs75a079b1 + var cbaseArrayLayer_allocs *cgoAllocMap + refe7a42049.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocse7a42049.Borrow(cbaseArrayLayer_allocs) + + 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 MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { - if x.ref75a079b1 != nil { - return *x.ref75a079b1, nil +func (x VideoPictureResourceInfo) PassValue() (C.VkVideoPictureResourceInfoKHR, *cgoAllocMap) { + if x.refe7a42049 != nil { + return *x.refe7a42049, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35425,103 +35516,135 @@ 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 *VideoPictureResourceInfo) Deref() { + if x.refe7a42049 == 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.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)) } -// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR in C. +// allocVideoReferenceSlotInfoMemory allocates memory for type C.VkVideoReferenceSlotInfoKHR 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 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 sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) +const sizeOfVideoReferenceSlotInfoValue = unsafe.Sizeof([1]C.VkVideoReferenceSlotInfoKHR{}) + +// 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.VkVideoPictureResourceInfoKHR) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoPictureResourceInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkVideoPictureResourceInfoKHR)(h.Data) + return +} + +// 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 / 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 *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { +func (x *VideoReferenceSlotInfo) Ref() *C.VkVideoReferenceSlotInfoKHR { if x == nil { return nil } - return x.refbc2f829a + 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 *ImportSemaphoreFdInfo) Free() { - if x != nil && x.allocsbc2f829a != nil { - x.allocsbc2f829a.(*cgoAllocMap).Free() - x.refbc2f829a = nil +func (x *VideoReferenceSlotInfo) Free() { + if x != nil && x.allocsbbd1d28 != nil { + x.allocsbbd1d28.(*cgoAllocMap).Free() + x.refbbd1d28 = nil } } -// NewImportSemaphoreFdInfoRef 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 NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { +func NewVideoReferenceSlotInfoRef(ref unsafe.Pointer) *VideoReferenceSlotInfo { if ref == nil { return nil } - obj := new(ImportSemaphoreFdInfo) - obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(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 *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { +func (x *VideoReferenceSlotInfo) PassRef() (*C.VkVideoReferenceSlotInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc2f829a != nil { - return x.refbc2f829a, nil + } else if x.refbbd1d28 != nil { + return x.refbbd1d28, nil } - membc2f829a := allocImportSemaphoreFdInfoMemory(1) - refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) - allocsbc2f829a := new(cgoAllocMap) - allocsbc2f829a.Add(membc2f829a) + membbd1d28 := allocVideoReferenceSlotInfoMemory(1) + refbbd1d28 := (*C.VkVideoReferenceSlotInfoKHR)(membbd1d28) + allocsbbd1d28 := new(cgoAllocMap) + allocsbbd1d28.Add(membbd1d28) var csType_allocs *cgoAllocMap - refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc2f829a.Borrow(csType_allocs) + refbbd1d28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbd1d28.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) + refbbd1d28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbd1d28.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - refbc2f829a.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsbc2f829a.Borrow(chandleType_allocs) + var cslotIndex_allocs *cgoAllocMap + refbbd1d28.slotIndex, cslotIndex_allocs = (C.int32_t)(x.SlotIndex), cgoAllocsUnknown + allocsbbd1d28.Borrow(cslotIndex_allocs) - var cfd_allocs *cgoAllocMap - refbc2f829a.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocsbc2f829a.Borrow(cfd_allocs) + var cpPictureResource_allocs *cgoAllocMap + refbbd1d28.pPictureResource, cpPictureResource_allocs = unpackSVideoPictureResourceInfo(x.PPictureResource) + allocsbbd1d28.Borrow(cpPictureResource_allocs) - x.refbc2f829a = refbc2f829a - x.allocsbc2f829a = allocsbc2f829a - return refbc2f829a, allocsbc2f829a + 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 ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { - if x.refbc2f829a != nil { - return *x.refbc2f829a, nil +func (x VideoReferenceSlotInfo) PassValue() (C.VkVideoReferenceSlotInfoKHR, *cgoAllocMap) { + if x.refbbd1d28 != nil { + return *x.refbbd1d28, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35529,97 +35652,95 @@ 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 *VideoReferenceSlotInfo) Deref() { + if x.refbbd1d28 == 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.refbbd1d28.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbbd1d28.pNext)) + x.SlotIndex = (int32)(x.refbbd1d28.slotIndex) + packSVideoPictureResourceInfo(x.PPictureResource, x.refbbd1d28.pPictureResource) } -// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR in C. +// allocVideoSessionMemoryRequirementsMemory allocates memory for type C.VkVideoSessionMemoryRequirementsKHR 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 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 sizeOfSemaphoreGetFdInfoValue = unsafe.Sizeof([1]C.VkSemaphoreGetFdInfoKHR{}) +const sizeOfVideoSessionMemoryRequirementsValue = unsafe.Sizeof([1]C.VkVideoSessionMemoryRequirementsKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SemaphoreGetFdInfo) Ref() *C.VkSemaphoreGetFdInfoKHR { +func (x *VideoSessionMemoryRequirements) Ref() *C.VkVideoSessionMemoryRequirementsKHR { if x == nil { return nil } - return x.refd9bd07cf + 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 *SemaphoreGetFdInfo) Free() { - if x != nil && x.allocsd9bd07cf != nil { - x.allocsd9bd07cf.(*cgoAllocMap).Free() - x.refd9bd07cf = nil +func (x *VideoSessionMemoryRequirements) Free() { + if x != nil && x.allocsd39e523e != nil { + x.allocsd39e523e.(*cgoAllocMap).Free() + x.refd39e523e = nil } } -// NewSemaphoreGetFdInfoRef 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 NewSemaphoreGetFdInfoRef(ref unsafe.Pointer) *SemaphoreGetFdInfo { +func NewVideoSessionMemoryRequirementsRef(ref unsafe.Pointer) *VideoSessionMemoryRequirements { if ref == nil { return nil } - obj := new(SemaphoreGetFdInfo) - obj.refd9bd07cf = (*C.VkSemaphoreGetFdInfoKHR)(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 *SemaphoreGetFdInfo) PassRef() (*C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { +func (x *VideoSessionMemoryRequirements) PassRef() (*C.VkVideoSessionMemoryRequirementsKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9bd07cf != nil { - return x.refd9bd07cf, nil + } else if x.refd39e523e != nil { + return x.refd39e523e, nil } - memd9bd07cf := allocSemaphoreGetFdInfoMemory(1) - refd9bd07cf := (*C.VkSemaphoreGetFdInfoKHR)(memd9bd07cf) - allocsd9bd07cf := new(cgoAllocMap) - allocsd9bd07cf.Add(memd9bd07cf) + memd39e523e := allocVideoSessionMemoryRequirementsMemory(1) + refd39e523e := (*C.VkVideoSessionMemoryRequirementsKHR)(memd39e523e) + allocsd39e523e := new(cgoAllocMap) + allocsd39e523e.Add(memd39e523e) var csType_allocs *cgoAllocMap - refd9bd07cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csType_allocs) + refd39e523e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd39e523e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd9bd07cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(cpNext_allocs) + refd39e523e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd39e523e.Borrow(cpNext_allocs) - var csemaphore_allocs *cgoAllocMap - refd9bd07cf.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csemaphore_allocs) + var cmemoryBindIndex_allocs *cgoAllocMap + refd39e523e.memoryBindIndex, cmemoryBindIndex_allocs = (C.uint32_t)(x.MemoryBindIndex), cgoAllocsUnknown + allocsd39e523e.Borrow(cmemoryBindIndex_allocs) - var chandleType_allocs *cgoAllocMap - refd9bd07cf.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(chandleType_allocs) + var cmemoryRequirements_allocs *cgoAllocMap + refd39e523e.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() + allocsd39e523e.Borrow(cmemoryRequirements_allocs) - x.refd9bd07cf = refd9bd07cf - x.allocsd9bd07cf = allocsd9bd07cf - return refd9bd07cf, allocsd9bd07cf + 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 SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { - if x.refd9bd07cf != nil { - return *x.refd9bd07cf, nil +func (x VideoSessionMemoryRequirements) PassValue() (C.VkVideoSessionMemoryRequirementsKHR, *cgoAllocMap) { + if x.refd39e523e != nil { + return *x.refd39e523e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35627,91 +35748,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 *VideoSessionMemoryRequirements) Deref() { + if x.refd39e523e == 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.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)) } -// allocPhysicalDevicePushDescriptorPropertiesMemory allocates memory for type C.VkPhysicalDevicePushDescriptorPropertiesKHR in C. +// allocBindVideoSessionMemoryInfoMemory allocates memory for type C.VkBindVideoSessionMemoryInfoKHR 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 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 sizeOfPhysicalDevicePushDescriptorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePushDescriptorPropertiesKHR{}) +const sizeOfBindVideoSessionMemoryInfoValue = unsafe.Sizeof([1]C.VkBindVideoSessionMemoryInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePushDescriptorProperties) Ref() *C.VkPhysicalDevicePushDescriptorPropertiesKHR { +func (x *BindVideoSessionMemoryInfo) Ref() *C.VkBindVideoSessionMemoryInfoKHR { if x == nil { return nil } - return x.ref8c58a1a5 + 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 *PhysicalDevicePushDescriptorProperties) Free() { - if x != nil && x.allocs8c58a1a5 != nil { - x.allocs8c58a1a5.(*cgoAllocMap).Free() - x.ref8c58a1a5 = nil +func (x *BindVideoSessionMemoryInfo) Free() { + if x != nil && x.allocsaa36fd7c != nil { + x.allocsaa36fd7c.(*cgoAllocMap).Free() + x.refaa36fd7c = nil } } -// NewPhysicalDevicePushDescriptorPropertiesRef 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 NewPhysicalDevicePushDescriptorPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePushDescriptorProperties { +func NewBindVideoSessionMemoryInfoRef(ref unsafe.Pointer) *BindVideoSessionMemoryInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePushDescriptorProperties) - obj.ref8c58a1a5 = (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(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 *PhysicalDevicePushDescriptorProperties) PassRef() (*C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { +func (x *BindVideoSessionMemoryInfo) PassRef() (*C.VkBindVideoSessionMemoryInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8c58a1a5 != nil { - return x.ref8c58a1a5, nil + } else if x.refaa36fd7c != nil { + return x.refaa36fd7c, nil } - mem8c58a1a5 := allocPhysicalDevicePushDescriptorPropertiesMemory(1) - ref8c58a1a5 := (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(mem8c58a1a5) - allocs8c58a1a5 := new(cgoAllocMap) - allocs8c58a1a5.Add(mem8c58a1a5) + memaa36fd7c := allocBindVideoSessionMemoryInfoMemory(1) + refaa36fd7c := (*C.VkBindVideoSessionMemoryInfoKHR)(memaa36fd7c) + allocsaa36fd7c := new(cgoAllocMap) + allocsaa36fd7c.Add(memaa36fd7c) var csType_allocs *cgoAllocMap - ref8c58a1a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8c58a1a5.Borrow(csType_allocs) + refaa36fd7c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaa36fd7c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8c58a1a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cpNext_allocs) + refaa36fd7c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cpNext_allocs) - var cmaxPushDescriptors_allocs *cgoAllocMap - ref8c58a1a5.maxPushDescriptors, cmaxPushDescriptors_allocs = (C.uint32_t)(x.MaxPushDescriptors), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cmaxPushDescriptors_allocs) + var cmemoryBindIndex_allocs *cgoAllocMap + refaa36fd7c.memoryBindIndex, cmemoryBindIndex_allocs = (C.uint32_t)(x.MemoryBindIndex), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cmemoryBindIndex_allocs) - x.ref8c58a1a5 = ref8c58a1a5 - x.allocs8c58a1a5 = allocs8c58a1a5 - return ref8c58a1a5, allocs8c58a1a5 + 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 PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { - if x.ref8c58a1a5 != nil { - return *x.ref8c58a1a5, nil +func (x BindVideoSessionMemoryInfo) PassValue() (C.VkBindVideoSessionMemoryInfoKHR, *cgoAllocMap) { + if x.refaa36fd7c != nil { + return *x.refaa36fd7c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35719,82 +35852,163 @@ 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 *BindVideoSessionMemoryInfo) Deref() { + if x.refaa36fd7c == 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.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) +} + +// allocVideoSessionCreateInfoMemory allocates memory for type C.VkVideoSessionCreateInfoKHR in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfVideoSessionCreateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionCreateInfoKHR{}) + +// 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.VkExtensionProperties) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocExtensionPropertiesMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkExtensionProperties)(h.Data) + 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)) + } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFloat16Int8Features) Ref() *C.VkPhysicalDeviceShaderFloat16Int8Features { +func (x *VideoSessionCreateInfo) Ref() *C.VkVideoSessionCreateInfoKHR { if x == nil { return nil } - return x.refc9d315b6 + 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 *PhysicalDeviceFloat16Int8Features) Free() { - if x != nil && x.allocsc9d315b6 != nil { - x.allocsc9d315b6.(*cgoAllocMap).Free() - x.refc9d315b6 = nil +func (x *VideoSessionCreateInfo) Free() { + if x != nil && x.allocsaf4ef5a1 != nil { + x.allocsaf4ef5a1.(*cgoAllocMap).Free() + x.refaf4ef5a1 = nil } } -// NewPhysicalDeviceFloat16Int8FeaturesRef 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 NewPhysicalDeviceFloat16Int8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFloat16Int8Features { +func NewVideoSessionCreateInfoRef(ref unsafe.Pointer) *VideoSessionCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceFloat16Int8Features) - obj.refc9d315b6 = (*C.VkPhysicalDeviceShaderFloat16Int8Features)(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 *PhysicalDeviceFloat16Int8Features) PassRef() (*C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { +func (x *VideoSessionCreateInfo) PassRef() (*C.VkVideoSessionCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc9d315b6 != nil { - return x.refc9d315b6, nil + } else if x.refaf4ef5a1 != nil { + return x.refaf4ef5a1, nil } - memc9d315b6 := allocPhysicalDeviceShaderFloat16Int8FeaturesMemory(1) - refc9d315b6 := (*C.VkPhysicalDeviceShaderFloat16Int8Features)(memc9d315b6) - allocsc9d315b6 := new(cgoAllocMap) - allocsc9d315b6.Add(memc9d315b6) + memaf4ef5a1 := allocVideoSessionCreateInfoMemory(1) + refaf4ef5a1 := (*C.VkVideoSessionCreateInfoKHR)(memaf4ef5a1) + allocsaf4ef5a1 := new(cgoAllocMap) + allocsaf4ef5a1.Add(memaf4ef5a1) var csType_allocs *cgoAllocMap - refc9d315b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc9d315b6.Borrow(csType_allocs) + refaf4ef5a1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc9d315b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc9d315b6.Borrow(cpNext_allocs) + refaf4ef5a1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cpNext_allocs) - var cshaderFloat16_allocs *cgoAllocMap - refc9d315b6.shaderFloat16, cshaderFloat16_allocs = (C.VkBool32)(x.ShaderFloat16), cgoAllocsUnknown - allocsc9d315b6.Borrow(cshaderFloat16_allocs) + var cqueueFamilyIndex_allocs *cgoAllocMap + refaf4ef5a1.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cqueueFamilyIndex_allocs) - var cshaderInt8_allocs *cgoAllocMap - refc9d315b6.shaderInt8, cshaderInt8_allocs = (C.VkBool32)(x.ShaderInt8), cgoAllocsUnknown - allocsc9d315b6.Borrow(cshaderInt8_allocs) + var cflags_allocs *cgoAllocMap + refaf4ef5a1.flags, cflags_allocs = (C.VkVideoSessionCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cflags_allocs) - x.refc9d315b6 = refc9d315b6 - x.allocsc9d315b6 = allocsc9d315b6 - return refc9d315b6, allocsc9d315b6 + var cpVideoProfile_allocs *cgoAllocMap + refaf4ef5a1.pVideoProfile, cpVideoProfile_allocs = unpackSVideoProfileInfo(x.PVideoProfile) + allocsaf4ef5a1.Borrow(cpVideoProfile_allocs) + + var cpictureFormat_allocs *cgoAllocMap + refaf4ef5a1.pictureFormat, cpictureFormat_allocs = (C.VkFormat)(x.PictureFormat), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cpictureFormat_allocs) + + var cmaxCodedExtent_allocs *cgoAllocMap + refaf4ef5a1.maxCodedExtent, cmaxCodedExtent_allocs = x.MaxCodedExtent.PassValue() + allocsaf4ef5a1.Borrow(cmaxCodedExtent_allocs) + + var creferencePictureFormat_allocs *cgoAllocMap + refaf4ef5a1.referencePictureFormat, creferencePictureFormat_allocs = (C.VkFormat)(x.ReferencePictureFormat), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(creferencePictureFormat_allocs) + + 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 PhysicalDeviceFloat16Int8Features) PassValue() (C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { - if x.refc9d315b6 != nil { - return *x.refc9d315b6, nil +func (x VideoSessionCreateInfo) PassValue() (C.VkVideoSessionCreateInfoKHR, *cgoAllocMap) { + if x.refaf4ef5a1 != nil { + return *x.refaf4ef5a1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35802,91 +36016,106 @@ func (x PhysicalDeviceFloat16Int8Features) PassValue() (C.VkPhysicalDeviceShader // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFloat16Int8Features) Deref() { - if x.refc9d315b6 == nil { +func (x *VideoSessionCreateInfo) Deref() { + if x.refaf4ef5a1 == 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) + 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) } -// allocRectLayerMemory allocates memory for type C.VkRectLayerKHR in C. +// allocVideoSessionParametersCreateInfoMemory allocates memory for type C.VkVideoSessionParametersCreateInfoKHR 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 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 sizeOfRectLayerValue = unsafe.Sizeof([1]C.VkRectLayerKHR{}) +const sizeOfVideoSessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionParametersCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RectLayer) Ref() *C.VkRectLayerKHR { +func (x *VideoSessionParametersCreateInfo) Ref() *C.VkVideoSessionParametersCreateInfoKHR { if x == nil { return nil } - return x.refaf248476 + 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 *RectLayer) Free() { - if x != nil && x.allocsaf248476 != nil { - x.allocsaf248476.(*cgoAllocMap).Free() - x.refaf248476 = nil +func (x *VideoSessionParametersCreateInfo) Free() { + if x != nil && x.allocsf62c4e51 != nil { + x.allocsf62c4e51.(*cgoAllocMap).Free() + x.reff62c4e51 = nil } } -// NewRectLayerRef 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 NewRectLayerRef(ref unsafe.Pointer) *RectLayer { +func NewVideoSessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoSessionParametersCreateInfo { if ref == nil { return nil } - obj := new(RectLayer) - obj.refaf248476 = (*C.VkRectLayerKHR)(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 *RectLayer) PassRef() (*C.VkRectLayerKHR, *cgoAllocMap) { +func (x *VideoSessionParametersCreateInfo) PassRef() (*C.VkVideoSessionParametersCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf248476 != nil { - return x.refaf248476, nil + } else if x.reff62c4e51 != nil { + return x.reff62c4e51, nil } - memaf248476 := allocRectLayerMemory(1) - refaf248476 := (*C.VkRectLayerKHR)(memaf248476) - allocsaf248476 := new(cgoAllocMap) - allocsaf248476.Add(memaf248476) + memf62c4e51 := allocVideoSessionParametersCreateInfoMemory(1) + reff62c4e51 := (*C.VkVideoSessionParametersCreateInfoKHR)(memf62c4e51) + allocsf62c4e51 := new(cgoAllocMap) + allocsf62c4e51.Add(memf62c4e51) - var coffset_allocs *cgoAllocMap - refaf248476.offset, coffset_allocs = x.Offset.PassValue() - allocsaf248476.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + reff62c4e51.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf62c4e51.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - refaf248476.extent, cextent_allocs = x.Extent.PassValue() - allocsaf248476.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + reff62c4e51.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf62c4e51.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 + reff62c4e51.flags, cflags_allocs = (C.VkVideoSessionParametersCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsf62c4e51.Borrow(cflags_allocs) - x.refaf248476 = refaf248476 - x.allocsaf248476 = allocsaf248476 - return refaf248476, allocsaf248476 + var cvideoSessionParametersTemplate_allocs *cgoAllocMap + reff62c4e51.videoSessionParametersTemplate, cvideoSessionParametersTemplate_allocs = *(*C.VkVideoSessionParametersKHR)(unsafe.Pointer(&x.VideoSessionParametersTemplate)), cgoAllocsUnknown + allocsf62c4e51.Borrow(cvideoSessionParametersTemplate_allocs) + + var cvideoSession_allocs *cgoAllocMap + reff62c4e51.videoSession, cvideoSession_allocs = *(*C.VkVideoSessionKHR)(unsafe.Pointer(&x.VideoSession)), cgoAllocsUnknown + allocsf62c4e51.Borrow(cvideoSession_allocs) + + 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 RectLayer) PassValue() (C.VkRectLayerKHR, *cgoAllocMap) { - if x.refaf248476 != nil { - return *x.refaf248476, nil +func (x VideoSessionParametersCreateInfo) PassValue() (C.VkVideoSessionParametersCreateInfoKHR, *cgoAllocMap) { + if x.reff62c4e51 != nil { + return *x.reff62c4e51, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35894,124 +36123,92 @@ func (x RectLayer) PassValue() (C.VkRectLayerKHR, *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 *RectLayer) Deref() { - if x.refaf248476 == nil { +func (x *VideoSessionParametersCreateInfo) Deref() { + if x.reff62c4e51 == nil { return } - x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.refaf248476.offset)) - x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.refaf248476.extent)) - x.Layer = (uint32)(x.refaf248476.layer) + 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)) } -// allocPresentRegionMemory allocates memory for type C.VkPresentRegionKHR in C. +// allocVideoSessionParametersUpdateInfoMemory allocates memory for type C.VkVideoSessionParametersUpdateInfoKHR 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)) +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 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) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkRectLayerKHR)(h.Data) - return -} - -// 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)) - } -} +const sizeOfVideoSessionParametersUpdateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionParametersUpdateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentRegion) Ref() *C.VkPresentRegionKHR { +func (x *VideoSessionParametersUpdateInfo) Ref() *C.VkVideoSessionParametersUpdateInfoKHR { if x == nil { return nil } - return x.refbbc0d1b9 + 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 *PresentRegion) Free() { - if x != nil && x.allocsbbc0d1b9 != nil { - x.allocsbbc0d1b9.(*cgoAllocMap).Free() - x.refbbc0d1b9 = nil +func (x *VideoSessionParametersUpdateInfo) Free() { + if x != nil && x.allocscf7b7609 != nil { + x.allocscf7b7609.(*cgoAllocMap).Free() + x.refcf7b7609 = nil } } -// NewPresentRegionRef 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 NewPresentRegionRef(ref unsafe.Pointer) *PresentRegion { +func NewVideoSessionParametersUpdateInfoRef(ref unsafe.Pointer) *VideoSessionParametersUpdateInfo { if ref == nil { return nil } - obj := new(PresentRegion) - obj.refbbc0d1b9 = (*C.VkPresentRegionKHR)(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 *PresentRegion) PassRef() (*C.VkPresentRegionKHR, *cgoAllocMap) { +func (x *VideoSessionParametersUpdateInfo) PassRef() (*C.VkVideoSessionParametersUpdateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbbc0d1b9 != nil { - return x.refbbc0d1b9, nil + } else if x.refcf7b7609 != nil { + return x.refcf7b7609, nil } - membbc0d1b9 := allocPresentRegionMemory(1) - refbbc0d1b9 := (*C.VkPresentRegionKHR)(membbc0d1b9) - allocsbbc0d1b9 := new(cgoAllocMap) - allocsbbc0d1b9.Add(membbc0d1b9) + memcf7b7609 := allocVideoSessionParametersUpdateInfoMemory(1) + refcf7b7609 := (*C.VkVideoSessionParametersUpdateInfoKHR)(memcf7b7609) + allocscf7b7609 := new(cgoAllocMap) + allocscf7b7609.Add(memcf7b7609) - var crectangleCount_allocs *cgoAllocMap - refbbc0d1b9.rectangleCount, crectangleCount_allocs = (C.uint32_t)(x.RectangleCount), cgoAllocsUnknown - allocsbbc0d1b9.Borrow(crectangleCount_allocs) + var csType_allocs *cgoAllocMap + refcf7b7609.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscf7b7609.Borrow(csType_allocs) - var cpRectangles_allocs *cgoAllocMap - refbbc0d1b9.pRectangles, cpRectangles_allocs = unpackSRectLayer(x.PRectangles) - allocsbbc0d1b9.Borrow(cpRectangles_allocs) + var cpNext_allocs *cgoAllocMap + refcf7b7609.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscf7b7609.Borrow(cpNext_allocs) - x.refbbc0d1b9 = refbbc0d1b9 - x.allocsbbc0d1b9 = allocsbbc0d1b9 - return refbbc0d1b9, allocsbbc0d1b9 + var cupdateSequenceCount_allocs *cgoAllocMap + refcf7b7609.updateSequenceCount, cupdateSequenceCount_allocs = (C.uint32_t)(x.UpdateSequenceCount), cgoAllocsUnknown + allocscf7b7609.Borrow(cupdateSequenceCount_allocs) + + 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 PresentRegion) PassValue() (C.VkPresentRegionKHR, *cgoAllocMap) { - if x.refbbc0d1b9 != nil { - return *x.refbbc0d1b9, nil +func (x VideoSessionParametersUpdateInfo) PassValue() (C.VkVideoSessionParametersUpdateInfoKHR, *cgoAllocMap) { + if x.refcf7b7609 != nil { + return *x.refcf7b7609, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36019,131 +36216,144 @@ 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 *VideoSessionParametersUpdateInfo) Deref() { + if x.refcf7b7609 == nil { return } - x.RectangleCount = (uint32)(x.refbbc0d1b9.rectangleCount) - packSRectLayer(x.PRectangles, x.refbbc0d1b9.pRectangles) + x.SType = (StructureType)(x.refcf7b7609.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcf7b7609.pNext)) + x.UpdateSequenceCount = (uint32)(x.refcf7b7609.updateSequenceCount) } -// allocPresentRegionsMemory allocates memory for type C.VkPresentRegionsKHR in C. +// allocVideoBeginCodingInfoMemory allocates memory for type C.VkVideoBeginCodingInfoKHR 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 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 sizeOfPresentRegionsValue = unsafe.Sizeof([1]C.VkPresentRegionsKHR{}) +const sizeOfVideoBeginCodingInfoValue = unsafe.Sizeof([1]C.VkVideoBeginCodingInfoKHR{}) -// unpackSPresentRegion transforms a sliced Go data structure into plain C format. -func unpackSPresentRegion(x []PresentRegion) (unpacked *C.VkPresentRegionKHR, 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.VkPresentRegionKHR) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoReferenceSlotInfoKHR) { go allocs.Free() }) len0 := len(x) - mem0 := allocPresentRegionMemory(len0) + mem0 := allocVideoReferenceSlotInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkPresentRegionKHR)(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.VkPresentRegionKHR)(h.Data) + unpacked = (*C.VkVideoReferenceSlotInfoKHR)(h.Data) return } -// packSPresentRegion reads sliced Go data structure out from plain C format. -func packSPresentRegion(v []PresentRegion, ptr0 *C.VkPresentRegionKHR) { +// 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 / sizeOfPresentRegionValue]C.VkPresentRegionKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPresentRegionRef(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 *PresentRegions) Ref() *C.VkPresentRegionsKHR { +func (x *VideoBeginCodingInfo) Ref() *C.VkVideoBeginCodingInfoKHR { if x == nil { return nil } - return x.ref62958060 + 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 *PresentRegions) Free() { - if x != nil && x.allocs62958060 != nil { - x.allocs62958060.(*cgoAllocMap).Free() - x.ref62958060 = nil +func (x *VideoBeginCodingInfo) Free() { + if x != nil && x.allocs6ab3d7b5 != nil { + x.allocs6ab3d7b5.(*cgoAllocMap).Free() + x.ref6ab3d7b5 = nil } } -// NewPresentRegionsRef 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 NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { +func NewVideoBeginCodingInfoRef(ref unsafe.Pointer) *VideoBeginCodingInfo { if ref == nil { return nil } - obj := new(PresentRegions) - obj.ref62958060 = (*C.VkPresentRegionsKHR)(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 *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { +func (x *VideoBeginCodingInfo) PassRef() (*C.VkVideoBeginCodingInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref62958060 != nil { - return x.ref62958060, nil + } else if x.ref6ab3d7b5 != nil { + return x.ref6ab3d7b5, nil } - mem62958060 := allocPresentRegionsMemory(1) - ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) - allocs62958060 := new(cgoAllocMap) - allocs62958060.Add(mem62958060) + mem6ab3d7b5 := allocVideoBeginCodingInfoMemory(1) + ref6ab3d7b5 := (*C.VkVideoBeginCodingInfoKHR)(mem6ab3d7b5) + allocs6ab3d7b5 := new(cgoAllocMap) + allocs6ab3d7b5.Add(mem6ab3d7b5) var csType_allocs *cgoAllocMap - ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs62958060.Borrow(csType_allocs) + ref6ab3d7b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs62958060.Borrow(cpNext_allocs) + ref6ab3d7b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs62958060.Borrow(cswapchainCount_allocs) + var cflags_allocs *cgoAllocMap + ref6ab3d7b5.flags, cflags_allocs = (C.VkVideoBeginCodingFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cflags_allocs) - var cpRegions_allocs *cgoAllocMap - ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) - allocs62958060.Borrow(cpRegions_allocs) + var cvideoSession_allocs *cgoAllocMap + ref6ab3d7b5.videoSession, cvideoSession_allocs = *(*C.VkVideoSessionKHR)(unsafe.Pointer(&x.VideoSession)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cvideoSession_allocs) - x.ref62958060 = ref62958060 - x.allocs62958060 = allocs62958060 - return ref62958060, allocs62958060 + var cvideoSessionParameters_allocs *cgoAllocMap + ref6ab3d7b5.videoSessionParameters, cvideoSessionParameters_allocs = *(*C.VkVideoSessionParametersKHR)(unsafe.Pointer(&x.VideoSessionParameters)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cvideoSessionParameters_allocs) + + var creferenceSlotCount_allocs *cgoAllocMap + ref6ab3d7b5.referenceSlotCount, creferenceSlotCount_allocs = (C.uint32_t)(x.ReferenceSlotCount), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(creferenceSlotCount_allocs) + + var cpReferenceSlots_allocs *cgoAllocMap + ref6ab3d7b5.pReferenceSlots, cpReferenceSlots_allocs = unpackSVideoReferenceSlotInfo(x.PReferenceSlots) + allocs6ab3d7b5.Borrow(cpReferenceSlots_allocs) + + 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 PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { - if x.ref62958060 != nil { - return *x.ref62958060, nil +func (x VideoBeginCodingInfo) PassValue() (C.VkVideoBeginCodingInfoKHR, *cgoAllocMap) { + if x.ref6ab3d7b5 != nil { + return *x.ref6ab3d7b5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36151,91 +36361,94 @@ 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 *VideoBeginCodingInfo) Deref() { + if x.ref6ab3d7b5 == 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.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) } -// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR in C. +// allocVideoEndCodingInfoMemory allocates memory for type C.VkVideoEndCodingInfoKHR 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 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 sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) +const sizeOfVideoEndCodingInfoValue = unsafe.Sizeof([1]C.VkVideoEndCodingInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { +func (x *VideoEndCodingInfo) Ref() *C.VkVideoEndCodingInfoKHR { if x == nil { return nil } - return x.ref3f98a814 + 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 *SharedPresentSurfaceCapabilities) Free() { - if x != nil && x.allocs3f98a814 != nil { - x.allocs3f98a814.(*cgoAllocMap).Free() - x.ref3f98a814 = nil +func (x *VideoEndCodingInfo) Free() { + if x != nil && x.allocs13b0038a != nil { + x.allocs13b0038a.(*cgoAllocMap).Free() + x.ref13b0038a = nil } } -// NewSharedPresentSurfaceCapabilitiesRef 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 NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { +func NewVideoEndCodingInfoRef(ref unsafe.Pointer) *VideoEndCodingInfo { if ref == nil { return nil } - obj := new(SharedPresentSurfaceCapabilities) - obj.ref3f98a814 = (*C.VkSharedPresentSurfaceCapabilitiesKHR)(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 *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { +func (x *VideoEndCodingInfo) PassRef() (*C.VkVideoEndCodingInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3f98a814 != nil { - return x.ref3f98a814, nil + } else if x.ref13b0038a != nil { + return x.ref13b0038a, nil } - mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) - ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) - allocs3f98a814 := new(cgoAllocMap) - allocs3f98a814.Add(mem3f98a814) + mem13b0038a := allocVideoEndCodingInfoMemory(1) + ref13b0038a := (*C.VkVideoEndCodingInfoKHR)(mem13b0038a) + allocs13b0038a := new(cgoAllocMap) + allocs13b0038a.Add(mem13b0038a) var csType_allocs *cgoAllocMap - ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3f98a814.Borrow(csType_allocs) + ref13b0038a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs13b0038a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3f98a814.Borrow(cpNext_allocs) + ref13b0038a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs13b0038a.Borrow(cpNext_allocs) - var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap - ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown - allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) + var cflags_allocs *cgoAllocMap + ref13b0038a.flags, cflags_allocs = (C.VkVideoEndCodingFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs13b0038a.Borrow(cflags_allocs) - x.ref3f98a814 = ref3f98a814 - x.allocs3f98a814 = allocs3f98a814 - return ref3f98a814, allocs3f98a814 + 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 SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { - if x.ref3f98a814 != nil { - return *x.ref3f98a814, nil +func (x VideoEndCodingInfo) PassValue() (C.VkVideoEndCodingInfoKHR, *cgoAllocMap) { + if x.ref13b0038a != nil { + return *x.ref13b0038a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36243,102 +36456,90 @@ 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 *VideoEndCodingInfo) Deref() { + if x.ref13b0038a == 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.ref13b0038a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref13b0038a.pNext)) + x.Flags = (VideoEndCodingFlags)(x.ref13b0038a.flags) } -// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR in C. +// allocVideoCodingControlInfoMemory allocates memory for type C.VkVideoCodingControlInfoKHR 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 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 sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) +const sizeOfVideoCodingControlInfoValue = unsafe.Sizeof([1]C.VkVideoCodingControlInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { +func (x *VideoCodingControlInfo) Ref() *C.VkVideoCodingControlInfoKHR { if x == nil { return nil } - return x.ref86ebd28c + 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 *ImportFenceFdInfo) Free() { - if x != nil && x.allocs86ebd28c != nil { - x.allocs86ebd28c.(*cgoAllocMap).Free() - x.ref86ebd28c = nil +func (x *VideoCodingControlInfo) Free() { + if x != nil && x.allocs226eddcd != nil { + x.allocs226eddcd.(*cgoAllocMap).Free() + x.ref226eddcd = nil } } -// NewImportFenceFdInfoRef 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 NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { +func NewVideoCodingControlInfoRef(ref unsafe.Pointer) *VideoCodingControlInfo { if ref == nil { return nil } - obj := new(ImportFenceFdInfo) - obj.ref86ebd28c = (*C.VkImportFenceFdInfoKHR)(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 *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { +func (x *VideoCodingControlInfo) PassRef() (*C.VkVideoCodingControlInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86ebd28c != nil { - return x.ref86ebd28c, nil + } else if x.ref226eddcd != nil { + return x.ref226eddcd, nil } - mem86ebd28c := allocImportFenceFdInfoMemory(1) - ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) - allocs86ebd28c := new(cgoAllocMap) - allocs86ebd28c.Add(mem86ebd28c) + mem226eddcd := allocVideoCodingControlInfoMemory(1) + ref226eddcd := (*C.VkVideoCodingControlInfoKHR)(mem226eddcd) + allocs226eddcd := new(cgoAllocMap) + allocs226eddcd.Add(mem226eddcd) var csType_allocs *cgoAllocMap - ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86ebd28c.Borrow(csType_allocs) + ref226eddcd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs226eddcd.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) + ref226eddcd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs226eddcd.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown - allocs86ebd28c.Borrow(cflags_allocs) - - var chandleType_allocs *cgoAllocMap - ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs86ebd28c.Borrow(chandleType_allocs) - - var cfd_allocs *cgoAllocMap - ref86ebd28c.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs86ebd28c.Borrow(cfd_allocs) + ref226eddcd.flags, cflags_allocs = (C.VkVideoCodingControlFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs226eddcd.Borrow(cflags_allocs) - x.ref86ebd28c = ref86ebd28c - x.allocs86ebd28c = allocs86ebd28c - return ref86ebd28c, allocs86ebd28c + 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 ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { - if x.ref86ebd28c != nil { - return *x.ref86ebd28c, nil +func (x VideoCodingControlInfo) PassValue() (C.VkVideoCodingControlInfoKHR, *cgoAllocMap) { + if x.ref226eddcd != nil { + return *x.ref226eddcd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36346,97 +36547,90 @@ 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 *VideoCodingControlInfo) Deref() { + if x.ref226eddcd == 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.ref226eddcd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref226eddcd.pNext)) + x.Flags = (VideoCodingControlFlags)(x.ref226eddcd.flags) } -// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR in C. +// allocVideoDecodeCapabilitiesMemory allocates memory for type C.VkVideoDecodeCapabilitiesKHR 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 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 sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) +const sizeOfVideoDecodeCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { +func (x *VideoDecodeCapabilities) Ref() *C.VkVideoDecodeCapabilitiesKHR { if x == nil { return nil } - return x.refc2668bc3 + 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 *FenceGetFdInfo) Free() { - if x != nil && x.allocsc2668bc3 != nil { - x.allocsc2668bc3.(*cgoAllocMap).Free() - x.refc2668bc3 = nil +func (x *VideoDecodeCapabilities) Free() { + if x != nil && x.allocsc94faaf3 != nil { + x.allocsc94faaf3.(*cgoAllocMap).Free() + x.refc94faaf3 = nil } } -// NewFenceGetFdInfoRef 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 NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { +func NewVideoDecodeCapabilitiesRef(ref unsafe.Pointer) *VideoDecodeCapabilities { if ref == nil { return nil } - obj := new(FenceGetFdInfo) - obj.refc2668bc3 = (*C.VkFenceGetFdInfoKHR)(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 *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { +func (x *VideoDecodeCapabilities) PassRef() (*C.VkVideoDecodeCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc2668bc3 != nil { - return x.refc2668bc3, nil + } else if x.refc94faaf3 != nil { + return x.refc94faaf3, nil } - memc2668bc3 := allocFenceGetFdInfoMemory(1) - refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) - allocsc2668bc3 := new(cgoAllocMap) - allocsc2668bc3.Add(memc2668bc3) + memc94faaf3 := allocVideoDecodeCapabilitiesMemory(1) + refc94faaf3 := (*C.VkVideoDecodeCapabilitiesKHR)(memc94faaf3) + allocsc94faaf3 := new(cgoAllocMap) + allocsc94faaf3.Add(memc94faaf3) var csType_allocs *cgoAllocMap - refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc2668bc3.Borrow(csType_allocs) + refc94faaf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc94faaf3.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) + refc94faaf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc94faaf3.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsc2668bc3.Borrow(chandleType_allocs) + var cflags_allocs *cgoAllocMap + refc94faaf3.flags, cflags_allocs = (C.VkVideoDecodeCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsc94faaf3.Borrow(cflags_allocs) - x.refc2668bc3 = refc2668bc3 - x.allocsc2668bc3 = allocsc2668bc3 - return refc2668bc3, allocsc2668bc3 + 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 FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { - if x.refc2668bc3 != nil { - return *x.refc2668bc3, nil +func (x VideoDecodeCapabilities) PassValue() (C.VkVideoDecodeCapabilitiesKHR, *cgoAllocMap) { + if x.refc94faaf3 != nil { + return *x.refc94faaf3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36444,95 +36638,90 @@ 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 *VideoDecodeCapabilities) Deref() { + if x.refc94faaf3 == 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.refc94faaf3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc94faaf3.pNext)) + x.Flags = (VideoDecodeCapabilityFlags)(x.refc94faaf3.flags) } -// allocPhysicalDevicePerformanceQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryFeaturesKHR in C. +// allocVideoDecodeUsageInfoMemory allocates memory for type C.VkVideoDecodeUsageInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePerformanceQueryFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryFeaturesValue)) +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 sizeOfPhysicalDevicePerformanceQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryFeaturesKHR{}) +const sizeOfVideoDecodeUsageInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeUsageInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePerformanceQueryFeatures) Ref() *C.VkPhysicalDevicePerformanceQueryFeaturesKHR { +func (x *VideoDecodeUsageInfo) Ref() *C.VkVideoDecodeUsageInfoKHR { if x == nil { return nil } - return x.ref8e4527cb + 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 *PhysicalDevicePerformanceQueryFeatures) Free() { - if x != nil && x.allocs8e4527cb != nil { - x.allocs8e4527cb.(*cgoAllocMap).Free() - x.ref8e4527cb = nil +func (x *VideoDecodeUsageInfo) Free() { + if x != nil && x.allocsd72a4309 != nil { + x.allocsd72a4309.(*cgoAllocMap).Free() + x.refd72a4309 = nil } } -// NewPhysicalDevicePerformanceQueryFeaturesRef 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 NewPhysicalDevicePerformanceQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryFeatures { +func NewVideoDecodeUsageInfoRef(ref unsafe.Pointer) *VideoDecodeUsageInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePerformanceQueryFeatures) - obj.ref8e4527cb = (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(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 *PhysicalDevicePerformanceQueryFeatures) PassRef() (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { +func (x *VideoDecodeUsageInfo) PassRef() (*C.VkVideoDecodeUsageInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8e4527cb != nil { - return x.ref8e4527cb, nil + } else if x.refd72a4309 != nil { + return x.refd72a4309, nil } - mem8e4527cb := allocPhysicalDevicePerformanceQueryFeaturesMemory(1) - ref8e4527cb := (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(mem8e4527cb) - allocs8e4527cb := new(cgoAllocMap) - allocs8e4527cb.Add(mem8e4527cb) + memd72a4309 := allocVideoDecodeUsageInfoMemory(1) + refd72a4309 := (*C.VkVideoDecodeUsageInfoKHR)(memd72a4309) + allocsd72a4309 := new(cgoAllocMap) + allocsd72a4309.Add(memd72a4309) var csType_allocs *cgoAllocMap - ref8e4527cb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8e4527cb.Borrow(csType_allocs) + refd72a4309.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd72a4309.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8e4527cb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8e4527cb.Borrow(cpNext_allocs) + refd72a4309.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd72a4309.Borrow(cpNext_allocs) - var cperformanceCounterQueryPools_allocs *cgoAllocMap - ref8e4527cb.performanceCounterQueryPools, cperformanceCounterQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterQueryPools), cgoAllocsUnknown - allocs8e4527cb.Borrow(cperformanceCounterQueryPools_allocs) + var cvideoUsageHints_allocs *cgoAllocMap + refd72a4309.videoUsageHints, cvideoUsageHints_allocs = (C.VkVideoDecodeUsageFlagsKHR)(x.VideoUsageHints), cgoAllocsUnknown + allocsd72a4309.Borrow(cvideoUsageHints_allocs) - var cperformanceCounterMultipleQueryPools_allocs *cgoAllocMap - ref8e4527cb.performanceCounterMultipleQueryPools, cperformanceCounterMultipleQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterMultipleQueryPools), cgoAllocsUnknown - allocs8e4527cb.Borrow(cperformanceCounterMultipleQueryPools_allocs) - - x.ref8e4527cb = ref8e4527cb - x.allocs8e4527cb = allocs8e4527cb - return ref8e4527cb, allocs8e4527cb + 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 PhysicalDevicePerformanceQueryFeatures) PassValue() (C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { - if x.ref8e4527cb != nil { - return *x.ref8e4527cb, nil +func (x VideoDecodeUsageInfo) PassValue() (C.VkVideoDecodeUsageInfoKHR, *cgoAllocMap) { + if x.refd72a4309 != nil { + return *x.refd72a4309, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36540,91 +36729,118 @@ func (x PhysicalDevicePerformanceQueryFeatures) 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 *PhysicalDevicePerformanceQueryFeatures) Deref() { - if x.ref8e4527cb == nil { +func (x *VideoDecodeUsageInfo) Deref() { + if x.refd72a4309 == nil { return } - 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) + x.SType = (StructureType)(x.refd72a4309.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd72a4309.pNext)) + x.VideoUsageHints = (VideoDecodeUsageFlags)(x.refd72a4309.videoUsageHints) } -// allocPhysicalDevicePerformanceQueryPropertiesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryPropertiesKHR in C. +// allocVideoDecodeInfoMemory allocates memory for type C.VkVideoDecodeInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePerformanceQueryPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryPropertiesValue)) +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 sizeOfPhysicalDevicePerformanceQueryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryPropertiesKHR{}) +const sizeOfVideoDecodeInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePerformanceQueryProperties) Ref() *C.VkPhysicalDevicePerformanceQueryPropertiesKHR { +func (x *VideoDecodeInfo) Ref() *C.VkVideoDecodeInfoKHR { if x == nil { return nil } - return x.refc3efa645 + 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 *PhysicalDevicePerformanceQueryProperties) Free() { - if x != nil && x.allocsc3efa645 != nil { - x.allocsc3efa645.(*cgoAllocMap).Free() - x.refc3efa645 = nil +func (x *VideoDecodeInfo) Free() { + if x != nil && x.allocsbbf9d3b8 != nil { + x.allocsbbf9d3b8.(*cgoAllocMap).Free() + x.refbbf9d3b8 = nil } } -// NewPhysicalDevicePerformanceQueryPropertiesRef 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 NewPhysicalDevicePerformanceQueryPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryProperties { +func NewVideoDecodeInfoRef(ref unsafe.Pointer) *VideoDecodeInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePerformanceQueryProperties) - obj.refc3efa645 = (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(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 *PhysicalDevicePerformanceQueryProperties) PassRef() (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { +func (x *VideoDecodeInfo) PassRef() (*C.VkVideoDecodeInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc3efa645 != nil { - return x.refc3efa645, nil + } else if x.refbbf9d3b8 != nil { + return x.refbbf9d3b8, nil } - memc3efa645 := allocPhysicalDevicePerformanceQueryPropertiesMemory(1) - refc3efa645 := (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(memc3efa645) - allocsc3efa645 := new(cgoAllocMap) - allocsc3efa645.Add(memc3efa645) + membbf9d3b8 := allocVideoDecodeInfoMemory(1) + refbbf9d3b8 := (*C.VkVideoDecodeInfoKHR)(membbf9d3b8) + allocsbbf9d3b8 := new(cgoAllocMap) + allocsbbf9d3b8.Add(membbf9d3b8) var csType_allocs *cgoAllocMap - refc3efa645.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc3efa645.Borrow(csType_allocs) + refbbf9d3b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc3efa645.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc3efa645.Borrow(cpNext_allocs) + refbbf9d3b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(cpNext_allocs) - var callowCommandBufferQueryCopies_allocs *cgoAllocMap - refc3efa645.allowCommandBufferQueryCopies, callowCommandBufferQueryCopies_allocs = (C.VkBool32)(x.AllowCommandBufferQueryCopies), cgoAllocsUnknown - allocsc3efa645.Borrow(callowCommandBufferQueryCopies_allocs) + var cflags_allocs *cgoAllocMap + refbbf9d3b8.flags, cflags_allocs = (C.VkVideoDecodeFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(cflags_allocs) - x.refc3efa645 = refc3efa645 - x.allocsc3efa645 = allocsc3efa645 - return refc3efa645, allocsc3efa645 + 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 PhysicalDevicePerformanceQueryProperties) PassValue() (C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { - if x.refc3efa645 != nil { - return *x.refc3efa645, nil +func (x VideoDecodeInfo) PassValue() (C.VkVideoDecodeInfoKHR, *cgoAllocMap) { + if x.refbbf9d3b8 != nil { + return *x.refbbf9d3b8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36632,102 +36848,97 @@ func (x PhysicalDevicePerformanceQueryProperties) 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 *PhysicalDevicePerformanceQueryProperties) Deref() { - if x.refc3efa645 == nil { +func (x *VideoDecodeInfo) Deref() { + if x.refbbf9d3b8 == nil { return } - x.SType = (StructureType)(x.refc3efa645.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc3efa645.pNext)) - x.AllowCommandBufferQueryCopies = (Bool32)(x.refc3efa645.allowCommandBufferQueryCopies) + 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) } -// allocPerformanceCounterMemory allocates memory for type C.VkPerformanceCounterKHR in C. +// allocVideoDecodeH264ProfileInfoMemory allocates memory for type C.VkVideoDecodeH264ProfileInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceCounterMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterValue)) +func allocVideoDecodeH264ProfileInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264ProfileInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPerformanceCounterValue = unsafe.Sizeof([1]C.VkPerformanceCounterKHR{}) +const sizeOfVideoDecodeH264ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264ProfileInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceCounter) Ref() *C.VkPerformanceCounterKHR { +func (x *VideoDecodeH264ProfileInfo) Ref() *C.VkVideoDecodeH264ProfileInfoKHR { if x == nil { return nil } - return x.refc754b4e5 + return x.ref5dfcb5c1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PerformanceCounter) Free() { - if x != nil && x.allocsc754b4e5 != nil { - x.allocsc754b4e5.(*cgoAllocMap).Free() - x.refc754b4e5 = nil +func (x *VideoDecodeH264ProfileInfo) Free() { + if x != nil && x.allocs5dfcb5c1 != nil { + x.allocs5dfcb5c1.(*cgoAllocMap).Free() + x.ref5dfcb5c1 = nil } } -// NewPerformanceCounterRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPerformanceCounterRef(ref unsafe.Pointer) *PerformanceCounter { +func NewVideoDecodeH264ProfileInfoRef(ref unsafe.Pointer) *VideoDecodeH264ProfileInfo { if ref == nil { return nil } - obj := new(PerformanceCounter) - obj.refc754b4e5 = (*C.VkPerformanceCounterKHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264ProfileInfo) + obj.ref5dfcb5c1 = (*C.VkVideoDecodeH264ProfileInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PerformanceCounter) PassRef() (*C.VkPerformanceCounterKHR, *cgoAllocMap) { +func (x *VideoDecodeH264ProfileInfo) PassRef() (*C.VkVideoDecodeH264ProfileInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc754b4e5 != nil { - return x.refc754b4e5, nil + } else if x.ref5dfcb5c1 != nil { + return x.ref5dfcb5c1, nil } - memc754b4e5 := allocPerformanceCounterMemory(1) - refc754b4e5 := (*C.VkPerformanceCounterKHR)(memc754b4e5) - allocsc754b4e5 := new(cgoAllocMap) - allocsc754b4e5.Add(memc754b4e5) + mem5dfcb5c1 := allocVideoDecodeH264ProfileInfoMemory(1) + ref5dfcb5c1 := (*C.VkVideoDecodeH264ProfileInfoKHR)(mem5dfcb5c1) + allocs5dfcb5c1 := new(cgoAllocMap) + allocs5dfcb5c1.Add(mem5dfcb5c1) var csType_allocs *cgoAllocMap - refc754b4e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc754b4e5.Borrow(csType_allocs) + ref5dfcb5c1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5dfcb5c1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc754b4e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc754b4e5.Borrow(cpNext_allocs) - - var cunit_allocs *cgoAllocMap - refc754b4e5.unit, cunit_allocs = (C.VkPerformanceCounterUnitKHR)(x.Unit), cgoAllocsUnknown - allocsc754b4e5.Borrow(cunit_allocs) - - 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) + ref5dfcb5c1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5dfcb5c1.Borrow(cpNext_allocs) - var cuuid_allocs *cgoAllocMap - refc754b4e5.uuid, cuuid_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.Uuid)), cgoAllocsUnknown - allocsc754b4e5.Borrow(cuuid_allocs) + var cpictureLayout_allocs *cgoAllocMap + ref5dfcb5c1.pictureLayout, cpictureLayout_allocs = (C.VkVideoDecodeH264PictureLayoutFlagBitsKHR)(x.PictureLayout), cgoAllocsUnknown + allocs5dfcb5c1.Borrow(cpictureLayout_allocs) - x.refc754b4e5 = refc754b4e5 - x.allocsc754b4e5 = allocsc754b4e5 - return refc754b4e5, allocsc754b4e5 + x.ref5dfcb5c1 = ref5dfcb5c1 + x.allocs5dfcb5c1 = allocs5dfcb5c1 + return ref5dfcb5c1, allocs5dfcb5c1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PerformanceCounter) PassValue() (C.VkPerformanceCounterKHR, *cgoAllocMap) { - if x.refc754b4e5 != nil { - return *x.refc754b4e5, nil +func (x VideoDecodeH264ProfileInfo) PassValue() (C.VkVideoDecodeH264ProfileInfoKHR, *cgoAllocMap) { + if x.ref5dfcb5c1 != nil { + return *x.ref5dfcb5c1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36735,105 +36946,90 @@ func (x PerformanceCounter) PassValue() (C.VkPerformanceCounterKHR, *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 *PerformanceCounter) Deref() { - if x.refc754b4e5 == nil { +func (x *VideoDecodeH264ProfileInfo) Deref() { + if x.ref5dfcb5c1 == nil { return } - 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)) + x.SType = (StructureType)(x.ref5dfcb5c1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5dfcb5c1.pNext)) + x.PictureLayout = (VideoDecodeH264PictureLayoutFlagBits)(x.ref5dfcb5c1.pictureLayout) } -// allocPerformanceCounterDescriptionMemory allocates memory for type C.VkPerformanceCounterDescriptionKHR in C. +// allocVideoDecodeH264CapabilitiesMemory allocates memory for type C.VkVideoDecodeH264CapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceCounterDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterDescriptionValue)) +func allocVideoDecodeH264CapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264CapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPerformanceCounterDescriptionValue = unsafe.Sizeof([1]C.VkPerformanceCounterDescriptionKHR{}) +const sizeOfVideoDecodeH264CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeH264CapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceCounterDescription) Ref() *C.VkPerformanceCounterDescriptionKHR { +func (x *VideoDecodeH264Capabilities) Ref() *C.VkVideoDecodeH264CapabilitiesKHR { if x == nil { return nil } - return x.ref95209df5 + return x.ref7c1bc212 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PerformanceCounterDescription) Free() { - if x != nil && x.allocs95209df5 != nil { - x.allocs95209df5.(*cgoAllocMap).Free() - x.ref95209df5 = nil +func (x *VideoDecodeH264Capabilities) Free() { + if x != nil && x.allocs7c1bc212 != nil { + x.allocs7c1bc212.(*cgoAllocMap).Free() + x.ref7c1bc212 = nil } } -// NewPerformanceCounterDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPerformanceCounterDescriptionRef(ref unsafe.Pointer) *PerformanceCounterDescription { +func NewVideoDecodeH264CapabilitiesRef(ref unsafe.Pointer) *VideoDecodeH264Capabilities { if ref == nil { return nil } - obj := new(PerformanceCounterDescription) - obj.ref95209df5 = (*C.VkPerformanceCounterDescriptionKHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264Capabilities) + obj.ref7c1bc212 = (*C.VkVideoDecodeH264CapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PerformanceCounterDescription) PassRef() (*C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { +func (x *VideoDecodeH264Capabilities) PassRef() (*C.VkVideoDecodeH264CapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref95209df5 != nil { - return x.ref95209df5, nil + } else if x.ref7c1bc212 != nil { + return x.ref7c1bc212, nil } - mem95209df5 := allocPerformanceCounterDescriptionMemory(1) - ref95209df5 := (*C.VkPerformanceCounterDescriptionKHR)(mem95209df5) - allocs95209df5 := new(cgoAllocMap) - allocs95209df5.Add(mem95209df5) + mem7c1bc212 := allocVideoDecodeH264CapabilitiesMemory(1) + ref7c1bc212 := (*C.VkVideoDecodeH264CapabilitiesKHR)(mem7c1bc212) + allocs7c1bc212 := new(cgoAllocMap) + allocs7c1bc212.Add(mem7c1bc212) var csType_allocs *cgoAllocMap - ref95209df5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs95209df5.Borrow(csType_allocs) + ref7c1bc212.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7c1bc212.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref95209df5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs95209df5.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref95209df5.flags, cflags_allocs = (C.VkPerformanceCounterDescriptionFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs95209df5.Borrow(cflags_allocs) + ref7c1bc212.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7c1bc212.Borrow(cpNext_allocs) - 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) + var cfieldOffsetGranularity_allocs *cgoAllocMap + ref7c1bc212.fieldOffsetGranularity, cfieldOffsetGranularity_allocs = x.FieldOffsetGranularity.PassValue() + allocs7c1bc212.Borrow(cfieldOffsetGranularity_allocs) - x.ref95209df5 = ref95209df5 - x.allocs95209df5 = allocs95209df5 - return ref95209df5, allocs95209df5 + x.ref7c1bc212 = ref7c1bc212 + x.allocs7c1bc212 = allocs7c1bc212 + return ref7c1bc212, allocs7c1bc212 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PerformanceCounterDescription) PassValue() (C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { - if x.ref95209df5 != nil { - return *x.ref95209df5, nil +func (x VideoDecodeH264Capabilities) PassValue() (C.VkVideoDecodeH264CapabilitiesKHR, *cgoAllocMap) { + if x.ref7c1bc212 != nil { + return *x.ref7c1bc212, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36841,101 +37037,94 @@ func (x PerformanceCounterDescription) PassValue() (C.VkPerformanceCounterDescri // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceCounterDescription) Deref() { - if x.ref95209df5 == nil { +func (x *VideoDecodeH264Capabilities) Deref() { + if x.ref7c1bc212 == nil { return } - 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)) + x.SType = (StructureType)(x.ref7c1bc212.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7c1bc212.pNext)) + x.FieldOffsetGranularity = *NewOffset2DRef(unsafe.Pointer(&x.ref7c1bc212.fieldOffsetGranularity)) } -// allocQueryPoolPerformanceCreateInfoMemory allocates memory for type C.VkQueryPoolPerformanceCreateInfoKHR in C. +// allocVideoDecodeH264SessionParametersAddInfoMemory allocates memory for type C.VkVideoDecodeH264SessionParametersAddInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueryPoolPerformanceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceCreateInfoValue)) +func allocVideoDecodeH264SessionParametersAddInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264SessionParametersAddInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfQueryPoolPerformanceCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceCreateInfoKHR{}) +const sizeOfVideoDecodeH264SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264SessionParametersAddInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueryPoolPerformanceCreateInfo) Ref() *C.VkQueryPoolPerformanceCreateInfoKHR { +func (x *VideoDecodeH264SessionParametersAddInfo) Ref() *C.VkVideoDecodeH264SessionParametersAddInfoKHR { if x == nil { return nil } - return x.ref55afa561 + return x.refa7619eae } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *QueryPoolPerformanceCreateInfo) Free() { - if x != nil && x.allocs55afa561 != nil { - x.allocs55afa561.(*cgoAllocMap).Free() - x.ref55afa561 = nil +func (x *VideoDecodeH264SessionParametersAddInfo) Free() { + if x != nil && x.allocsa7619eae != nil { + x.allocsa7619eae.(*cgoAllocMap).Free() + x.refa7619eae = nil } } -// NewQueryPoolPerformanceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewQueryPoolPerformanceCreateInfoRef(ref unsafe.Pointer) *QueryPoolPerformanceCreateInfo { +func NewVideoDecodeH264SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoDecodeH264SessionParametersAddInfo { if ref == nil { return nil } - obj := new(QueryPoolPerformanceCreateInfo) - obj.ref55afa561 = (*C.VkQueryPoolPerformanceCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264SessionParametersAddInfo) + obj.refa7619eae = (*C.VkVideoDecodeH264SessionParametersAddInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *QueryPoolPerformanceCreateInfo) PassRef() (*C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { +func (x *VideoDecodeH264SessionParametersAddInfo) PassRef() (*C.VkVideoDecodeH264SessionParametersAddInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref55afa561 != nil { - return x.ref55afa561, nil + } else if x.refa7619eae != nil { + return x.refa7619eae, nil } - mem55afa561 := allocQueryPoolPerformanceCreateInfoMemory(1) - ref55afa561 := (*C.VkQueryPoolPerformanceCreateInfoKHR)(mem55afa561) - allocs55afa561 := new(cgoAllocMap) - allocs55afa561.Add(mem55afa561) + mema7619eae := allocVideoDecodeH264SessionParametersAddInfoMemory(1) + refa7619eae := (*C.VkVideoDecodeH264SessionParametersAddInfoKHR)(mema7619eae) + allocsa7619eae := new(cgoAllocMap) + allocsa7619eae.Add(mema7619eae) var csType_allocs *cgoAllocMap - ref55afa561.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs55afa561.Borrow(csType_allocs) + refa7619eae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa7619eae.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref55afa561.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs55afa561.Borrow(cpNext_allocs) - - var cqueueFamilyIndex_allocs *cgoAllocMap - ref55afa561.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs55afa561.Borrow(cqueueFamilyIndex_allocs) + refa7619eae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa7619eae.Borrow(cpNext_allocs) - var ccounterIndexCount_allocs *cgoAllocMap - ref55afa561.counterIndexCount, ccounterIndexCount_allocs = (C.uint32_t)(x.CounterIndexCount), cgoAllocsUnknown - allocs55afa561.Borrow(ccounterIndexCount_allocs) + var cstdSPSCount_allocs *cgoAllocMap + refa7619eae.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown + allocsa7619eae.Borrow(cstdSPSCount_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) + var cstdPPSCount_allocs *cgoAllocMap + refa7619eae.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown + allocsa7619eae.Borrow(cstdPPSCount_allocs) - x.ref55afa561 = ref55afa561 - x.allocs55afa561 = allocs55afa561 - return ref55afa561, allocs55afa561 + x.refa7619eae = refa7619eae + x.allocsa7619eae = allocsa7619eae + return refa7619eae, allocsa7619eae } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x QueryPoolPerformanceCreateInfo) PassValue() (C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { - if x.ref55afa561 != nil { - return *x.ref55afa561, nil +func (x VideoDecodeH264SessionParametersAddInfo) PassValue() (C.VkVideoDecodeH264SessionParametersAddInfoKHR, *cgoAllocMap) { + if x.refa7619eae != nil { + return *x.refa7619eae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36943,100 +37132,137 @@ func (x QueryPoolPerformanceCreateInfo) PassValue() (C.VkQueryPoolPerformanceCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueryPoolPerformanceCreateInfo) Deref() { - if x.ref55afa561 == nil { +func (x *VideoDecodeH264SessionParametersAddInfo) Deref() { + if x.refa7619eae == nil { return } - 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 = ? - + x.SType = (StructureType)(x.refa7619eae.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa7619eae.pNext)) + x.StdSPSCount = (uint32)(x.refa7619eae.stdSPSCount) + x.StdPPSCount = (uint32)(x.refa7619eae.stdPPSCount) } -// allocAcquireProfilingLockInfoMemory allocates memory for type C.VkAcquireProfilingLockInfoKHR in C. +// allocVideoDecodeH264SessionParametersCreateInfoMemory allocates memory for type C.VkVideoDecodeH264SessionParametersCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocAcquireProfilingLockInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireProfilingLockInfoValue)) +func allocVideoDecodeH264SessionParametersCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264SessionParametersCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAcquireProfilingLockInfoValue = unsafe.Sizeof([1]C.VkAcquireProfilingLockInfoKHR{}) +const sizeOfVideoDecodeH264SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264SessionParametersCreateInfoKHR{}) + +// unpackSVideoDecodeH264SessionParametersAddInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoDecodeH264SessionParametersAddInfo(x []VideoDecodeH264SessionParametersAddInfo) (unpacked *C.VkVideoDecodeH264SessionParametersAddInfoKHR, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoDecodeH264SessionParametersAddInfoKHR) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoDecodeH264SessionParametersAddInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoDecodeH264SessionParametersAddInfoKHR)(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.VkVideoDecodeH264SessionParametersAddInfoKHR)(h.Data) + return +} + +// packSVideoDecodeH264SessionParametersAddInfo reads sliced Go data structure out from plain C format. +func packSVideoDecodeH264SessionParametersAddInfo(v []VideoDecodeH264SessionParametersAddInfo, ptr0 *C.VkVideoDecodeH264SessionParametersAddInfoKHR) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoDecodeH264SessionParametersAddInfoValue]C.VkVideoDecodeH264SessionParametersAddInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoDecodeH264SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AcquireProfilingLockInfo) Ref() *C.VkAcquireProfilingLockInfoKHR { +func (x *VideoDecodeH264SessionParametersCreateInfo) Ref() *C.VkVideoDecodeH264SessionParametersCreateInfoKHR { if x == nil { return nil } - return x.ref73cbb121 + return x.ref167a4ff4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AcquireProfilingLockInfo) Free() { - if x != nil && x.allocs73cbb121 != nil { - x.allocs73cbb121.(*cgoAllocMap).Free() - x.ref73cbb121 = nil +func (x *VideoDecodeH264SessionParametersCreateInfo) Free() { + if x != nil && x.allocs167a4ff4 != nil { + x.allocs167a4ff4.(*cgoAllocMap).Free() + x.ref167a4ff4 = nil } } -// NewAcquireProfilingLockInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAcquireProfilingLockInfoRef(ref unsafe.Pointer) *AcquireProfilingLockInfo { +func NewVideoDecodeH264SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoDecodeH264SessionParametersCreateInfo { if ref == nil { return nil } - obj := new(AcquireProfilingLockInfo) - obj.ref73cbb121 = (*C.VkAcquireProfilingLockInfoKHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264SessionParametersCreateInfo) + obj.ref167a4ff4 = (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AcquireProfilingLockInfo) PassRef() (*C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { +func (x *VideoDecodeH264SessionParametersCreateInfo) PassRef() (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref73cbb121 != nil { - return x.ref73cbb121, nil + } else if x.ref167a4ff4 != nil { + return x.ref167a4ff4, nil } - mem73cbb121 := allocAcquireProfilingLockInfoMemory(1) - ref73cbb121 := (*C.VkAcquireProfilingLockInfoKHR)(mem73cbb121) - allocs73cbb121 := new(cgoAllocMap) - allocs73cbb121.Add(mem73cbb121) + mem167a4ff4 := allocVideoDecodeH264SessionParametersCreateInfoMemory(1) + ref167a4ff4 := (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR)(mem167a4ff4) + allocs167a4ff4 := new(cgoAllocMap) + allocs167a4ff4.Add(mem167a4ff4) var csType_allocs *cgoAllocMap - ref73cbb121.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs73cbb121.Borrow(csType_allocs) + ref167a4ff4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs167a4ff4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref73cbb121.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs73cbb121.Borrow(cpNext_allocs) + ref167a4ff4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs167a4ff4.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref73cbb121.flags, cflags_allocs = (C.VkAcquireProfilingLockFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs73cbb121.Borrow(cflags_allocs) + var cmaxStdSPSCount_allocs *cgoAllocMap + ref167a4ff4.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown + allocs167a4ff4.Borrow(cmaxStdSPSCount_allocs) - var ctimeout_allocs *cgoAllocMap - ref73cbb121.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown - allocs73cbb121.Borrow(ctimeout_allocs) + var cmaxStdPPSCount_allocs *cgoAllocMap + ref167a4ff4.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown + allocs167a4ff4.Borrow(cmaxStdPPSCount_allocs) - x.ref73cbb121 = ref73cbb121 - x.allocs73cbb121 = allocs73cbb121 - return ref73cbb121, allocs73cbb121 + var cpParametersAddInfo_allocs *cgoAllocMap + ref167a4ff4.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoDecodeH264SessionParametersAddInfo(x.PParametersAddInfo) + allocs167a4ff4.Borrow(cpParametersAddInfo_allocs) + + x.ref167a4ff4 = ref167a4ff4 + x.allocs167a4ff4 = allocs167a4ff4 + return ref167a4ff4, allocs167a4ff4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AcquireProfilingLockInfo) PassValue() (C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { - if x.ref73cbb121 != nil { - return *x.ref73cbb121, nil +func (x VideoDecodeH264SessionParametersCreateInfo) PassValue() (C.VkVideoDecodeH264SessionParametersCreateInfoKHR, *cgoAllocMap) { + if x.ref167a4ff4 != nil { + return *x.ref167a4ff4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37044,91 +37270,96 @@ func (x AcquireProfilingLockInfo) PassValue() (C.VkAcquireProfilingLockInfoKHR, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AcquireProfilingLockInfo) Deref() { - if x.ref73cbb121 == nil { +func (x *VideoDecodeH264SessionParametersCreateInfo) Deref() { + if x.ref167a4ff4 == nil { return } - 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) + x.SType = (StructureType)(x.ref167a4ff4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref167a4ff4.pNext)) + x.MaxStdSPSCount = (uint32)(x.ref167a4ff4.maxStdSPSCount) + x.MaxStdPPSCount = (uint32)(x.ref167a4ff4.maxStdPPSCount) + packSVideoDecodeH264SessionParametersAddInfo(x.PParametersAddInfo, x.ref167a4ff4.pParametersAddInfo) } -// allocPerformanceQuerySubmitInfoMemory allocates memory for type C.VkPerformanceQuerySubmitInfoKHR in C. +// allocVideoDecodeH264PictureInfoMemory allocates memory for type C.VkVideoDecodeH264PictureInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceQuerySubmitInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceQuerySubmitInfoValue)) +func allocVideoDecodeH264PictureInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264PictureInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPerformanceQuerySubmitInfoValue = unsafe.Sizeof([1]C.VkPerformanceQuerySubmitInfoKHR{}) +const sizeOfVideoDecodeH264PictureInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264PictureInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceQuerySubmitInfo) Ref() *C.VkPerformanceQuerySubmitInfoKHR { +func (x *VideoDecodeH264PictureInfo) Ref() *C.VkVideoDecodeH264PictureInfoKHR { if x == nil { return nil } - return x.refbccd2736 + return x.refa43264b6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PerformanceQuerySubmitInfo) Free() { - if x != nil && x.allocsbccd2736 != nil { - x.allocsbccd2736.(*cgoAllocMap).Free() - x.refbccd2736 = nil +func (x *VideoDecodeH264PictureInfo) Free() { + if x != nil && x.allocsa43264b6 != nil { + x.allocsa43264b6.(*cgoAllocMap).Free() + x.refa43264b6 = nil } } -// NewPerformanceQuerySubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264PictureInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPerformanceQuerySubmitInfoRef(ref unsafe.Pointer) *PerformanceQuerySubmitInfo { +func NewVideoDecodeH264PictureInfoRef(ref unsafe.Pointer) *VideoDecodeH264PictureInfo { if ref == nil { return nil } - obj := new(PerformanceQuerySubmitInfo) - obj.refbccd2736 = (*C.VkPerformanceQuerySubmitInfoKHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264PictureInfo) + obj.refa43264b6 = (*C.VkVideoDecodeH264PictureInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PerformanceQuerySubmitInfo) PassRef() (*C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { +func (x *VideoDecodeH264PictureInfo) PassRef() (*C.VkVideoDecodeH264PictureInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbccd2736 != nil { - return x.refbccd2736, nil + } else if x.refa43264b6 != nil { + return x.refa43264b6, nil } - membccd2736 := allocPerformanceQuerySubmitInfoMemory(1) - refbccd2736 := (*C.VkPerformanceQuerySubmitInfoKHR)(membccd2736) - allocsbccd2736 := new(cgoAllocMap) - allocsbccd2736.Add(membccd2736) + mema43264b6 := allocVideoDecodeH264PictureInfoMemory(1) + refa43264b6 := (*C.VkVideoDecodeH264PictureInfoKHR)(mema43264b6) + allocsa43264b6 := new(cgoAllocMap) + allocsa43264b6.Add(mema43264b6) var csType_allocs *cgoAllocMap - refbccd2736.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbccd2736.Borrow(csType_allocs) + refa43264b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa43264b6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbccd2736.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbccd2736.Borrow(cpNext_allocs) + refa43264b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa43264b6.Borrow(cpNext_allocs) - var ccounterPassIndex_allocs *cgoAllocMap - refbccd2736.counterPassIndex, ccounterPassIndex_allocs = (C.uint32_t)(x.CounterPassIndex), cgoAllocsUnknown - allocsbccd2736.Borrow(ccounterPassIndex_allocs) + var csliceCount_allocs *cgoAllocMap + refa43264b6.sliceCount, csliceCount_allocs = (C.uint32_t)(x.SliceCount), cgoAllocsUnknown + allocsa43264b6.Borrow(csliceCount_allocs) - x.refbccd2736 = refbccd2736 - x.allocsbccd2736 = allocsbccd2736 - return refbccd2736, allocsbccd2736 + var cpSliceOffsets_allocs *cgoAllocMap + refa43264b6.pSliceOffsets, cpSliceOffsets_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSliceOffsets)).Data)), cgoAllocsUnknown + allocsa43264b6.Borrow(cpSliceOffsets_allocs) + + x.refa43264b6 = refa43264b6 + x.allocsa43264b6 = allocsa43264b6 + return refa43264b6, allocsa43264b6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PerformanceQuerySubmitInfo) PassValue() (C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { - if x.refbccd2736 != nil { - return *x.refbccd2736, nil +func (x VideoDecodeH264PictureInfo) PassValue() (C.VkVideoDecodeH264PictureInfoKHR, *cgoAllocMap) { + if x.refa43264b6 != nil { + return *x.refa43264b6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37136,90 +37367,91 @@ func (x PerformanceQuerySubmitInfo) PassValue() (C.VkPerformanceQuerySubmitInfoK // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceQuerySubmitInfo) Deref() { - if x.refbccd2736 == nil { +func (x *VideoDecodeH264PictureInfo) Deref() { + if x.refa43264b6 == nil { return } - x.SType = (StructureType)(x.refbccd2736.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbccd2736.pNext)) - x.CounterPassIndex = (uint32)(x.refbccd2736.counterPassIndex) + x.SType = (StructureType)(x.refa43264b6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa43264b6.pNext)) + x.SliceCount = (uint32)(x.refa43264b6.sliceCount) + hxf9aab83 := (*sliceHeader)(unsafe.Pointer(&x.PSliceOffsets)) + hxf9aab83.Data = unsafe.Pointer(x.refa43264b6.pSliceOffsets) + hxf9aab83.Cap = 0x7fffffff + // hxf9aab83.Len = ? + } -// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR in C. +// allocVideoDecodeH264DpbSlotInfoMemory allocates memory for type C.VkVideoDecodeH264DpbSlotInfoKHR 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 allocVideoDecodeH264DpbSlotInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264DpbSlotInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) +const sizeOfVideoDecodeH264DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264DpbSlotInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { +func (x *VideoDecodeH264DpbSlotInfo) Ref() *C.VkVideoDecodeH264DpbSlotInfoKHR { if x == nil { return nil } - return x.refd22370ae + return x.refea999379 } // Free invokes alloc map'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 *VideoDecodeH264DpbSlotInfo) Free() { + if x != nil && x.allocsea999379 != nil { + x.allocsea999379.(*cgoAllocMap).Free() + x.refea999379 = nil } } -// NewPhysicalDeviceSurfaceInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH264DpbSlotInfoRef creates a new 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 NewVideoDecodeH264DpbSlotInfoRef(ref unsafe.Pointer) *VideoDecodeH264DpbSlotInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceSurfaceInfo2) - obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH264DpbSlotInfo) + obj.refea999379 = (*C.VkVideoDecodeH264DpbSlotInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH264DpbSlotInfo) PassRef() (*C.VkVideoDecodeH264DpbSlotInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd22370ae != nil { - return x.refd22370ae, nil + } else if x.refea999379 != nil { + return x.refea999379, nil } - memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) - refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) - allocsd22370ae := new(cgoAllocMap) - allocsd22370ae.Add(memd22370ae) + memea999379 := allocVideoDecodeH264DpbSlotInfoMemory(1) + refea999379 := (*C.VkVideoDecodeH264DpbSlotInfoKHR)(memea999379) + allocsea999379 := new(cgoAllocMap) + allocsea999379.Add(memea999379) var csType_allocs *cgoAllocMap - refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd22370ae.Borrow(csType_allocs) + refea999379.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea999379.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd22370ae.Borrow(cpNext_allocs) - - var csurface_allocs *cgoAllocMap - refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown - allocsd22370ae.Borrow(csurface_allocs) + refea999379.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea999379.Borrow(cpNext_allocs) - x.refd22370ae = refd22370ae - x.allocsd22370ae = allocsd22370ae - return refd22370ae, allocsd22370ae + x.refea999379 = refea999379 + x.allocsea999379 = allocsea999379 + return refea999379, allocsea999379 } // 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 VideoDecodeH264DpbSlotInfo) PassValue() (C.VkVideoDecodeH264DpbSlotInfoKHR, *cgoAllocMap) { + if x.refea999379 != nil { + return *x.refea999379, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37227,90 +37459,97 @@ 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 *VideoDecodeH264DpbSlotInfo) Deref() { + if x.refea999379 == 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.SType = (StructureType)(x.refea999379.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea999379.pNext)) } -// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR in C. +// allocRenderingFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentShadingRateAttachmentInfoKHR 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 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 sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) +const sizeOfRenderingFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentShadingRateAttachmentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { +func (x *RenderingFragmentShadingRateAttachmentInfo) Ref() *C.VkRenderingFragmentShadingRateAttachmentInfoKHR { if x == nil { return nil } - return x.refea469745 + return x.ref4d98d68f } // Free invokes alloc map'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 *RenderingFragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocs4d98d68f != nil { + x.allocs4d98d68f.(*cgoAllocMap).Free() + x.ref4d98d68f = nil } } -// NewSurfaceCapabilities2Ref creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { +func NewRenderingFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentShadingRateAttachmentInfo { if ref == nil { return nil } - obj := new(SurfaceCapabilities2) - obj.refea469745 = (*C.VkSurfaceCapabilities2KHR)(unsafe.Pointer(ref)) + obj := new(RenderingFragmentShadingRateAttachmentInfo) + obj.ref4d98d68f = (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *RenderingFragmentShadingRateAttachmentInfo) PassRef() (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea469745 != nil { - return x.refea469745, nil + } else if x.ref4d98d68f != nil { + return x.ref4d98d68f, nil } - memea469745 := allocSurfaceCapabilities2Memory(1) - refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) - allocsea469745 := new(cgoAllocMap) - allocsea469745.Add(memea469745) + mem4d98d68f := allocRenderingFragmentShadingRateAttachmentInfoMemory(1) + ref4d98d68f := (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(mem4d98d68f) + allocs4d98d68f := new(cgoAllocMap) + allocs4d98d68f.Add(mem4d98d68f) var csType_allocs *cgoAllocMap - refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea469745.Borrow(csType_allocs) + ref4d98d68f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4d98d68f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea469745.Borrow(cpNext_allocs) + ref4d98d68f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4d98d68f.Borrow(cpNext_allocs) - var csurfaceCapabilities_allocs *cgoAllocMap - refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() - allocsea469745.Borrow(csurfaceCapabilities_allocs) + var cimageView_allocs *cgoAllocMap + ref4d98d68f.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs4d98d68f.Borrow(cimageView_allocs) - x.refea469745 = refea469745 - x.allocsea469745 = allocsea469745 - return refea469745, allocsea469745 + 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 SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { - if x.refea469745 != nil { - return *x.refea469745, nil +func (x RenderingFragmentShadingRateAttachmentInfo) PassValue() (C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.ref4d98d68f != nil { + return *x.ref4d98d68f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37318,90 +37557,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 *RenderingFragmentShadingRateAttachmentInfo) Deref() { + if x.ref4d98d68f == 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.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)) } -// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR in C. +// allocRenderingFragmentDensityMapAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentDensityMapAttachmentInfoEXT 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 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 sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) +const sizeOfRenderingFragmentDensityMapAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentDensityMapAttachmentInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { +func (x *RenderingFragmentDensityMapAttachmentInfo) Ref() *C.VkRenderingFragmentDensityMapAttachmentInfoEXT { if x == nil { return nil } - return x.ref8867f0ed + 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 *SurfaceFormat2) Free() { - if x != nil && x.allocs8867f0ed != nil { - x.allocs8867f0ed.(*cgoAllocMap).Free() - x.ref8867f0ed = nil +func (x *RenderingFragmentDensityMapAttachmentInfo) Free() { + if x != nil && x.allocs5a007d48 != nil { + x.allocs5a007d48.(*cgoAllocMap).Free() + x.ref5a007d48 = nil } } -// NewSurfaceFormat2Ref 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 NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { +func NewRenderingFragmentDensityMapAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentDensityMapAttachmentInfo { if ref == nil { return nil } - obj := new(SurfaceFormat2) - obj.ref8867f0ed = (*C.VkSurfaceFormat2KHR)(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 *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { +func (x *RenderingFragmentDensityMapAttachmentInfo) PassRef() (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8867f0ed != nil { - return x.ref8867f0ed, nil + } else if x.ref5a007d48 != nil { + return x.ref5a007d48, nil } - mem8867f0ed := allocSurfaceFormat2Memory(1) - ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) - allocs8867f0ed := new(cgoAllocMap) - allocs8867f0ed.Add(mem8867f0ed) + mem5a007d48 := allocRenderingFragmentDensityMapAttachmentInfoMemory(1) + ref5a007d48 := (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(mem5a007d48) + allocs5a007d48 := new(cgoAllocMap) + allocs5a007d48.Add(mem5a007d48) var csType_allocs *cgoAllocMap - ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8867f0ed.Borrow(csType_allocs) + ref5a007d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5a007d48.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8867f0ed.Borrow(cpNext_allocs) + ref5a007d48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5a007d48.Borrow(cpNext_allocs) - var csurfaceFormat_allocs *cgoAllocMap - ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() - allocs8867f0ed.Borrow(csurfaceFormat_allocs) + var cimageView_allocs *cgoAllocMap + ref5a007d48.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageView_allocs) - x.ref8867f0ed = ref8867f0ed - x.allocs8867f0ed = allocs8867f0ed - return ref8867f0ed, allocs8867f0ed + var cimageLayout_allocs *cgoAllocMap + ref5a007d48.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageLayout_allocs) + + 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 SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { - if x.ref8867f0ed != nil { - return *x.ref8867f0ed, nil +func (x RenderingFragmentDensityMapAttachmentInfo) PassValue() (C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { + if x.ref5a007d48 != nil { + return *x.ref5a007d48, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37409,90 +37654,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 *RenderingFragmentDensityMapAttachmentInfo) Deref() { + if x.ref5a007d48 == 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.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) } -// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR in C. +// allocAttachmentSampleCountInfoAMDMemory allocates memory for type C.VkAttachmentSampleCountInfoAMD 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 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 sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) +const sizeOfAttachmentSampleCountInfoAMDValue = unsafe.Sizeof([1]C.VkAttachmentSampleCountInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { +func (x *AttachmentSampleCountInfoAMD) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { return nil } - return x.ref80194833 + 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 *DisplayProperties2) Free() { - if x != nil && x.allocs80194833 != nil { - x.allocs80194833.(*cgoAllocMap).Free() - x.ref80194833 = nil +func (x *AttachmentSampleCountInfoAMD) Free() { + if x != nil && x.allocseef56262 != nil { + x.allocseef56262.(*cgoAllocMap).Free() + x.refeef56262 = nil } } -// NewDisplayProperties2Ref 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 NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { +func NewAttachmentSampleCountInfoAMDRef(ref unsafe.Pointer) *AttachmentSampleCountInfoAMD { if ref == nil { return nil } - obj := new(DisplayProperties2) - obj.ref80194833 = (*C.VkDisplayProperties2KHR)(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 *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { +func (x *AttachmentSampleCountInfoAMD) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80194833 != nil { - return x.ref80194833, nil + } else if x.refeef56262 != nil { + return x.refeef56262, nil } - mem80194833 := allocDisplayProperties2Memory(1) - ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) - allocs80194833 := new(cgoAllocMap) - allocs80194833.Add(mem80194833) + memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) + refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) + allocseef56262 := new(cgoAllocMap) + allocseef56262.Add(memeef56262) var csType_allocs *cgoAllocMap - ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80194833.Borrow(csType_allocs) + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80194833.Borrow(cpNext_allocs) + refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseef56262.Borrow(cpNext_allocs) - var cdisplayProperties_allocs *cgoAllocMap - ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() - allocs80194833.Borrow(cdisplayProperties_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocseef56262.Borrow(ccolorAttachmentCount_allocs) - x.ref80194833 = ref80194833 - x.allocs80194833 = allocs80194833 - return ref80194833, allocs80194833 + var cpColorAttachmentSamples_allocs *cgoAllocMap + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown + allocseef56262.Borrow(cpColorAttachmentSamples_allocs) + + var cdepthStencilAttachmentSamples_allocs *cgoAllocMap + refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown + allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) + + 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 DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { - if x.ref80194833 != nil { - return *x.ref80194833, nil +func (x AttachmentSampleCountInfoAMD) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37500,90 +37754,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 *AttachmentSampleCountInfoAMD) Deref() { + if x.refeef56262 == 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.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 = ? -// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR 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)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { +func (x *AttachmentSampleCountInfoNV) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { return nil } - return x.refa72b1e5b + 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 *DisplayPlaneProperties2) Free() { - if x != nil && x.allocsa72b1e5b != nil { - x.allocsa72b1e5b.(*cgoAllocMap).Free() - x.refa72b1e5b = nil +func (x *AttachmentSampleCountInfoNV) Free() { + if x != nil && x.allocseef56262 != nil { + x.allocseef56262.(*cgoAllocMap).Free() + x.refeef56262 = nil } } -// NewDisplayPlaneProperties2Ref 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 NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { +func NewAttachmentSampleCountInfoNVRef(ref unsafe.Pointer) *AttachmentSampleCountInfoNV { if ref == nil { return nil } - obj := new(DisplayPlaneProperties2) - obj.refa72b1e5b = (*C.VkDisplayPlaneProperties2KHR)(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 *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { +func (x *AttachmentSampleCountInfoNV) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa72b1e5b != nil { - return x.refa72b1e5b, nil + } else if x.refeef56262 != nil { + return x.refeef56262, nil } - mema72b1e5b := allocDisplayPlaneProperties2Memory(1) - refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) - allocsa72b1e5b := new(cgoAllocMap) - allocsa72b1e5b.Add(mema72b1e5b) + memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) + refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) + allocseef56262 := new(cgoAllocMap) + allocseef56262.Add(memeef56262) var csType_allocs *cgoAllocMap - refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa72b1e5b.Borrow(csType_allocs) + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa72b1e5b.Borrow(cpNext_allocs) + refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseef56262.Borrow(cpNext_allocs) - var cdisplayPlaneProperties_allocs *cgoAllocMap - refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() - allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocseef56262.Borrow(ccolorAttachmentCount_allocs) - x.refa72b1e5b = refa72b1e5b - x.allocsa72b1e5b = allocsa72b1e5b - return refa72b1e5b, allocsa72b1e5b + var cpColorAttachmentSamples_allocs *cgoAllocMap + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown + allocseef56262.Borrow(cpColorAttachmentSamples_allocs) + + var cdepthStencilAttachmentSamples_allocs *cgoAllocMap + refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown + allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) + + 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 DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { - if x.refa72b1e5b != nil { - return *x.refa72b1e5b, nil +func (x AttachmentSampleCountInfoNV) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37591,90 +37847,100 @@ 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 *AttachmentSampleCountInfoNV) Deref() { + if x.refeef56262 == 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.SType = (StructureType)(x.refeef56262.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeef56262.pNext)) + x.ColorAttachmentCount = (uint32)(x.refeef56262.colorAttachmentCount) + hxf8959c2 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf8959c2.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf8959c2.Cap = 0x7fffffff + // hxf8959c2.Len = ? + + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR in C. +// allocMultiviewPerViewAttributesInfoNVXMemory allocates memory for type C.VkMultiviewPerViewAttributesInfoNVX 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 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 sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) +const sizeOfMultiviewPerViewAttributesInfoNVXValue = unsafe.Sizeof([1]C.VkMultiviewPerViewAttributesInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { +func (x *MultiviewPerViewAttributesInfoNVX) Ref() *C.VkMultiviewPerViewAttributesInfoNVX { if x == nil { return nil } - return x.refc566048d + 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 *DisplayModeProperties2) Free() { - if x != nil && x.allocsc566048d != nil { - x.allocsc566048d.(*cgoAllocMap).Free() - x.refc566048d = nil +func (x *MultiviewPerViewAttributesInfoNVX) Free() { + if x != nil && x.allocsc7d79ea0 != nil { + x.allocsc7d79ea0.(*cgoAllocMap).Free() + x.refc7d79ea0 = nil } } -// NewDisplayModeProperties2Ref 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 NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { +func NewMultiviewPerViewAttributesInfoNVXRef(ref unsafe.Pointer) *MultiviewPerViewAttributesInfoNVX { if ref == nil { return nil } - obj := new(DisplayModeProperties2) - obj.refc566048d = (*C.VkDisplayModeProperties2KHR)(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 *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { +func (x *MultiviewPerViewAttributesInfoNVX) PassRef() (*C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc566048d != nil { - return x.refc566048d, nil + } else if x.refc7d79ea0 != nil { + return x.refc7d79ea0, nil } - memc566048d := allocDisplayModeProperties2Memory(1) - refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) - allocsc566048d := new(cgoAllocMap) - allocsc566048d.Add(memc566048d) + memc7d79ea0 := allocMultiviewPerViewAttributesInfoNVXMemory(1) + refc7d79ea0 := (*C.VkMultiviewPerViewAttributesInfoNVX)(memc7d79ea0) + allocsc7d79ea0 := new(cgoAllocMap) + allocsc7d79ea0.Add(memc7d79ea0) var csType_allocs *cgoAllocMap - refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc566048d.Borrow(csType_allocs) + refc7d79ea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc7d79ea0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc566048d.Borrow(cpNext_allocs) + refc7d79ea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cpNext_allocs) - var cdisplayModeProperties_allocs *cgoAllocMap - refc566048d.displayModeProperties, cdisplayModeProperties_allocs = x.DisplayModeProperties.PassValue() - allocsc566048d.Borrow(cdisplayModeProperties_allocs) + var cperViewAttributes_allocs *cgoAllocMap + refc7d79ea0.perViewAttributes, cperViewAttributes_allocs = (C.VkBool32)(x.PerViewAttributes), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributes_allocs) - x.refc566048d = refc566048d - x.allocsc566048d = allocsc566048d - return refc566048d, allocsc566048d + var cperViewAttributesPositionXOnly_allocs *cgoAllocMap + refc7d79ea0.perViewAttributesPositionXOnly, cperViewAttributesPositionXOnly_allocs = (C.VkBool32)(x.PerViewAttributesPositionXOnly), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributesPositionXOnly_allocs) + + 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 DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { - if x.refc566048d != nil { - return *x.refc566048d, nil +func (x MultiviewPerViewAttributesInfoNVX) PassValue() (C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { + if x.refc7d79ea0 != nil { + return *x.refc7d79ea0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37682,94 +37948,95 @@ 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 *MultiviewPerViewAttributesInfoNVX) Deref() { + if x.refc7d79ea0 == 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.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) } -// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR in C. +// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR 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 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 sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) +const sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { +func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { if x == nil { return nil } - return x.reff355ccbf + 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 *DisplayPlaneInfo2) Free() { - if x != nil && x.allocsf355ccbf != nil { - x.allocsf355ccbf.(*cgoAllocMap).Free() - x.reff355ccbf = nil +func (x *ImportMemoryFdInfo) Free() { + if x != nil && x.allocs73f83287 != nil { + x.allocs73f83287.(*cgoAllocMap).Free() + x.ref73f83287 = nil } } -// NewDisplayPlaneInfo2Ref 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 NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { +func NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { if ref == nil { return nil } - obj := new(DisplayPlaneInfo2) - obj.reff355ccbf = (*C.VkDisplayPlaneInfo2KHR)(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 *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { +func (x *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff355ccbf != nil { - return x.reff355ccbf, nil + } else if x.ref73f83287 != nil { + return x.ref73f83287, nil } - memf355ccbf := allocDisplayPlaneInfo2Memory(1) - reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) - allocsf355ccbf := new(cgoAllocMap) - allocsf355ccbf.Add(memf355ccbf) + mem73f83287 := allocImportMemoryFdInfoMemory(1) + ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) + allocs73f83287 := new(cgoAllocMap) + allocs73f83287.Add(mem73f83287) var csType_allocs *cgoAllocMap - reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf355ccbf.Borrow(csType_allocs) + ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73f83287.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cpNext_allocs) + ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73f83287.Borrow(cpNext_allocs) - var cmode_allocs *cgoAllocMap - reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cmode_allocs) + var chandleType_allocs *cgoAllocMap + ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs73f83287.Borrow(chandleType_allocs) - var cplaneIndex_allocs *cgoAllocMap - reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown - allocsf355ccbf.Borrow(cplaneIndex_allocs) + var cfd_allocs *cgoAllocMap + ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocs73f83287.Borrow(cfd_allocs) - x.reff355ccbf = reff355ccbf - x.allocsf355ccbf = allocsf355ccbf - return reff355ccbf, allocsf355ccbf + 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 DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { - if x.reff355ccbf != nil { - return *x.reff355ccbf, nil +func (x ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { + if x.ref73f83287 != nil { + return *x.ref73f83287, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37777,91 +38044,91 @@ 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 *ImportMemoryFdInfo) Deref() { + if x.ref73f83287 == 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.ref73f83287.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73f83287.pNext)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref73f83287.handleType) + x.Fd = (int32)(x.ref73f83287.fd) } -// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR in C. +// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR 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 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 sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) +const sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { +func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { if x == nil { return nil } - return x.refb53dfb44 + 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 *DisplayPlaneCapabilities2) Free() { - if x != nil && x.allocsb53dfb44 != nil { - x.allocsb53dfb44.(*cgoAllocMap).Free() - x.refb53dfb44 = nil +func (x *MemoryFdProperties) Free() { + if x != nil && x.allocs51e16d38 != nil { + x.allocs51e16d38.(*cgoAllocMap).Free() + x.ref51e16d38 = nil } } -// NewDisplayPlaneCapabilities2Ref 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 NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { +func NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { if ref == nil { return nil } - obj := new(DisplayPlaneCapabilities2) - obj.refb53dfb44 = (*C.VkDisplayPlaneCapabilities2KHR)(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 *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { +func (x *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb53dfb44 != nil { - return x.refb53dfb44, nil + } else if x.ref51e16d38 != nil { + return x.ref51e16d38, nil } - memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) - refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) - allocsb53dfb44 := new(cgoAllocMap) - allocsb53dfb44.Add(memb53dfb44) + mem51e16d38 := allocMemoryFdPropertiesMemory(1) + ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) + allocs51e16d38 := new(cgoAllocMap) + allocs51e16d38.Add(mem51e16d38) var csType_allocs *cgoAllocMap - refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb53dfb44.Borrow(csType_allocs) + ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51e16d38.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb53dfb44.Borrow(cpNext_allocs) + ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51e16d38.Borrow(cpNext_allocs) - var ccapabilities_allocs *cgoAllocMap - refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() - allocsb53dfb44.Borrow(ccapabilities_allocs) + var cmemoryTypeBits_allocs *cgoAllocMap + ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocs51e16d38.Borrow(cmemoryTypeBits_allocs) - x.refb53dfb44 = refb53dfb44 - x.allocsb53dfb44 = allocsb53dfb44 - return refb53dfb44, allocsb53dfb44 + 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 DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { - if x.refb53dfb44 != nil { - return *x.refb53dfb44, nil +func (x MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { + if x.ref51e16d38 != nil { + return *x.ref51e16d38, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37869,94 +38136,94 @@ 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 *MemoryFdProperties) Deref() { + if x.ref51e16d38 == 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.ref51e16d38.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51e16d38.pNext)) + x.MemoryTypeBits = (uint32)(x.ref51e16d38.memoryTypeBits) } -// allocPhysicalDeviceShaderClockFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderClockFeaturesKHR in C. +// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderClockFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderClockFeaturesValue)) +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 sizeOfPhysicalDeviceShaderClockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderClockFeaturesKHR{}) +const sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderClockFeatures) Ref() *C.VkPhysicalDeviceShaderClockFeaturesKHR { +func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { if x == nil { return nil } - return x.refab512283 + 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 *PhysicalDeviceShaderClockFeatures) Free() { - if x != nil && x.allocsab512283 != nil { - x.allocsab512283.(*cgoAllocMap).Free() - x.refab512283 = nil +func (x *MemoryGetFdInfo) Free() { + if x != nil && x.allocs75a079b1 != nil { + x.allocs75a079b1.(*cgoAllocMap).Free() + x.ref75a079b1 = nil } } -// NewPhysicalDeviceShaderClockFeaturesRef 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 NewPhysicalDeviceShaderClockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderClockFeatures { +func NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderClockFeatures) - obj.refab512283 = (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(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 *PhysicalDeviceShaderClockFeatures) PassRef() (*C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { +func (x *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refab512283 != nil { - return x.refab512283, nil + } else if x.ref75a079b1 != nil { + return x.ref75a079b1, nil } - memab512283 := allocPhysicalDeviceShaderClockFeaturesMemory(1) - refab512283 := (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(memab512283) - allocsab512283 := new(cgoAllocMap) - allocsab512283.Add(memab512283) + mem75a079b1 := allocMemoryGetFdInfoMemory(1) + ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) + allocs75a079b1 := new(cgoAllocMap) + allocs75a079b1.Add(mem75a079b1) var csType_allocs *cgoAllocMap - refab512283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsab512283.Borrow(csType_allocs) + ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75a079b1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refab512283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsab512283.Borrow(cpNext_allocs) + ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75a079b1.Borrow(cpNext_allocs) - var cshaderSubgroupClock_allocs *cgoAllocMap - refab512283.shaderSubgroupClock, cshaderSubgroupClock_allocs = (C.VkBool32)(x.ShaderSubgroupClock), cgoAllocsUnknown - allocsab512283.Borrow(cshaderSubgroupClock_allocs) + var cmemory_allocs *cgoAllocMap + ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs75a079b1.Borrow(cmemory_allocs) - var cshaderDeviceClock_allocs *cgoAllocMap - refab512283.shaderDeviceClock, cshaderDeviceClock_allocs = (C.VkBool32)(x.ShaderDeviceClock), cgoAllocsUnknown - allocsab512283.Borrow(cshaderDeviceClock_allocs) + var chandleType_allocs *cgoAllocMap + ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs75a079b1.Borrow(chandleType_allocs) - x.refab512283 = refab512283 - x.allocsab512283 = allocsab512283 - return refab512283, allocsab512283 + 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 PhysicalDeviceShaderClockFeatures) PassValue() (C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { - if x.refab512283 != nil { - return *x.refab512283, nil +func (x MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { + if x.ref75a079b1 != nil { + return *x.ref75a079b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37964,91 +38231,103 @@ func (x PhysicalDeviceShaderClockFeatures) PassValue() (C.VkPhysicalDeviceShader // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderClockFeatures) Deref() { - if x.refab512283 == nil { +func (x *MemoryGetFdInfo) Deref() { + if x.ref75a079b1 == nil { return } - 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) + 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) } -// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoKHR in C. +// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR 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 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 sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoKHR{}) +const sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoKHR { +func (x *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { if x == nil { return nil } - return x.refdf0afc28 + return x.refbc2f829a } // Free invokes alloc map'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.allocsdf0afc28 != nil { - x.allocsdf0afc28.(*cgoAllocMap).Free() - x.refdf0afc28 = nil +func (x *ImportSemaphoreFdInfo) Free() { + if x != nil && x.allocsbc2f829a != nil { + x.allocsbc2f829a.(*cgoAllocMap).Free() + x.refbc2f829a = nil } } -// NewDeviceQueueGlobalPriorityCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewDeviceQueueGlobalPriorityCreateInfoRef(ref unsafe.Pointer) *DeviceQueueGlobalPriorityCreateInfo { +func NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { if ref == nil { return nil } - obj := new(DeviceQueueGlobalPriorityCreateInfo) - obj.refdf0afc28 = (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(ImportSemaphoreFdInfo) + obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { +func (x *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdf0afc28 != nil { - return x.refdf0afc28, nil + } else if x.refbc2f829a != nil { + return x.refbc2f829a, nil } - memdf0afc28 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) - refdf0afc28 := (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(memdf0afc28) - allocsdf0afc28 := new(cgoAllocMap) - allocsdf0afc28.Add(memdf0afc28) + membc2f829a := allocImportSemaphoreFdInfoMemory(1) + refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) + allocsbc2f829a := new(cgoAllocMap) + allocsbc2f829a.Add(membc2f829a) var csType_allocs *cgoAllocMap - refdf0afc28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdf0afc28.Borrow(csType_allocs) + refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc2f829a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdf0afc28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdf0afc28.Borrow(cpNext_allocs) + refbc2f829a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc2f829a.Borrow(cpNext_allocs) - var cglobalPriority_allocs *cgoAllocMap - refdf0afc28.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityKHR)(x.GlobalPriority), cgoAllocsUnknown - allocsdf0afc28.Borrow(cglobalPriority_allocs) + var csemaphore_allocs *cgoAllocMap + refbc2f829a.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocsbc2f829a.Borrow(csemaphore_allocs) - x.refdf0afc28 = refdf0afc28 - x.allocsdf0afc28 = allocsdf0afc28 - return refdf0afc28, allocsdf0afc28 + 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 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { - if x.refdf0afc28 != nil { - return *x.refdf0afc28, nil +func (x ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { + if x.refbc2f829a != nil { + return *x.refbc2f829a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38056,90 +38335,97 @@ 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.refdf0afc28 == nil { +func (x *ImportSemaphoreFdInfo) Deref() { + if x.refbc2f829a == nil { return } - x.SType = (StructureType)(x.refdf0afc28.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf0afc28.pNext)) - x.GlobalPriority = (QueueGlobalPriority)(x.refdf0afc28.globalPriority) + 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) } -// allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR in C. +// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue)) +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 sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR{}) +const sizeOfSemaphoreGetFdInfoValue = unsafe.Sizeof([1]C.VkSemaphoreGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Ref() *C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { +func (x *SemaphoreGetFdInfo) Ref() *C.VkSemaphoreGetFdInfoKHR { if x == nil { return nil } - return x.refa6f56699 + 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 *PhysicalDeviceGlobalPriorityQueryFeatures) Free() { - if x != nil && x.allocsa6f56699 != nil { - x.allocsa6f56699.(*cgoAllocMap).Free() - x.refa6f56699 = nil +func (x *SemaphoreGetFdInfo) Free() { + if x != nil && x.allocsd9bd07cf != nil { + x.allocsd9bd07cf.(*cgoAllocMap).Free() + x.refd9bd07cf = nil } } -// NewPhysicalDeviceGlobalPriorityQueryFeaturesRef 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 NewPhysicalDeviceGlobalPriorityQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGlobalPriorityQueryFeatures { +func NewSemaphoreGetFdInfoRef(ref unsafe.Pointer) *SemaphoreGetFdInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceGlobalPriorityQueryFeatures) - obj.refa6f56699 = (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(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 *PhysicalDeviceGlobalPriorityQueryFeatures) PassRef() (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { +func (x *SemaphoreGetFdInfo) PassRef() (*C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa6f56699 != nil { - return x.refa6f56699, nil + } else if x.refd9bd07cf != nil { + return x.refd9bd07cf, nil } - mema6f56699 := allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(1) - refa6f56699 := (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(mema6f56699) - allocsa6f56699 := new(cgoAllocMap) - allocsa6f56699.Add(mema6f56699) + memd9bd07cf := allocSemaphoreGetFdInfoMemory(1) + refd9bd07cf := (*C.VkSemaphoreGetFdInfoKHR)(memd9bd07cf) + allocsd9bd07cf := new(cgoAllocMap) + allocsd9bd07cf.Add(memd9bd07cf) var csType_allocs *cgoAllocMap - refa6f56699.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa6f56699.Borrow(csType_allocs) + refd9bd07cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9bd07cf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa6f56699.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa6f56699.Borrow(cpNext_allocs) + refd9bd07cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9bd07cf.Borrow(cpNext_allocs) - var cglobalPriorityQuery_allocs *cgoAllocMap - refa6f56699.globalPriorityQuery, cglobalPriorityQuery_allocs = (C.VkBool32)(x.GlobalPriorityQuery), cgoAllocsUnknown - allocsa6f56699.Borrow(cglobalPriorityQuery_allocs) + var csemaphore_allocs *cgoAllocMap + refd9bd07cf.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocsd9bd07cf.Borrow(csemaphore_allocs) - x.refa6f56699 = refa6f56699 - x.allocsa6f56699 = allocsa6f56699 - return refa6f56699, allocsa6f56699 + var chandleType_allocs *cgoAllocMap + refd9bd07cf.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsd9bd07cf.Borrow(chandleType_allocs) + + 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 PhysicalDeviceGlobalPriorityQueryFeatures) PassValue() (C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { - if x.refa6f56699 != nil { - return *x.refa6f56699, nil +func (x SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { + if x.refd9bd07cf != nil { + return *x.refd9bd07cf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38147,94 +38433,91 @@ func (x PhysicalDeviceGlobalPriorityQueryFeatures) 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 *PhysicalDeviceGlobalPriorityQueryFeatures) Deref() { - if x.refa6f56699 == nil { +func (x *SemaphoreGetFdInfo) Deref() { + if x.refd9bd07cf == nil { return } - x.SType = (StructureType)(x.refa6f56699.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6f56699.pNext)) - x.GlobalPriorityQuery = (Bool32)(x.refa6f56699.globalPriorityQuery) + 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) } -// allocQueueFamilyGlobalPriorityPropertiesMemory allocates memory for type C.VkQueueFamilyGlobalPriorityPropertiesKHR in C. +// allocPhysicalDevicePushDescriptorPropertiesMemory allocates memory for type C.VkPhysicalDevicePushDescriptorPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueueFamilyGlobalPriorityPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyGlobalPriorityPropertiesValue)) +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 sizeOfQueueFamilyGlobalPriorityPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyGlobalPriorityPropertiesKHR{}) +const sizeOfPhysicalDevicePushDescriptorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePushDescriptorPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyGlobalPriorityProperties) Ref() *C.VkQueueFamilyGlobalPriorityPropertiesKHR { +func (x *PhysicalDevicePushDescriptorProperties) Ref() *C.VkPhysicalDevicePushDescriptorPropertiesKHR { if x == nil { return nil } - return x.reff5bb6c4d + 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 *QueueFamilyGlobalPriorityProperties) Free() { - if x != nil && x.allocsf5bb6c4d != nil { - x.allocsf5bb6c4d.(*cgoAllocMap).Free() - x.reff5bb6c4d = nil +func (x *PhysicalDevicePushDescriptorProperties) Free() { + if x != nil && x.allocs8c58a1a5 != nil { + x.allocs8c58a1a5.(*cgoAllocMap).Free() + x.ref8c58a1a5 = nil } } -// NewQueueFamilyGlobalPriorityPropertiesRef 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 NewQueueFamilyGlobalPriorityPropertiesRef(ref unsafe.Pointer) *QueueFamilyGlobalPriorityProperties { +func NewPhysicalDevicePushDescriptorPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePushDescriptorProperties { if ref == nil { return nil } - obj := new(QueueFamilyGlobalPriorityProperties) - obj.reff5bb6c4d = (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(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 *QueueFamilyGlobalPriorityProperties) PassRef() (*C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { +func (x *PhysicalDevicePushDescriptorProperties) PassRef() (*C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff5bb6c4d != nil { - return x.reff5bb6c4d, nil + } else if x.ref8c58a1a5 != nil { + return x.ref8c58a1a5, nil } - memf5bb6c4d := allocQueueFamilyGlobalPriorityPropertiesMemory(1) - reff5bb6c4d := (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(memf5bb6c4d) - allocsf5bb6c4d := new(cgoAllocMap) - allocsf5bb6c4d.Add(memf5bb6c4d) + mem8c58a1a5 := allocPhysicalDevicePushDescriptorPropertiesMemory(1) + ref8c58a1a5 := (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(mem8c58a1a5) + allocs8c58a1a5 := new(cgoAllocMap) + allocs8c58a1a5.Add(mem8c58a1a5) var csType_allocs *cgoAllocMap - reff5bb6c4d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf5bb6c4d.Borrow(csType_allocs) + ref8c58a1a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8c58a1a5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff5bb6c4d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf5bb6c4d.Borrow(cpNext_allocs) - - var cpriorityCount_allocs *cgoAllocMap - reff5bb6c4d.priorityCount, cpriorityCount_allocs = (C.uint32_t)(x.PriorityCount), cgoAllocsUnknown - allocsf5bb6c4d.Borrow(cpriorityCount_allocs) + ref8c58a1a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8c58a1a5.Borrow(cpNext_allocs) - var cpriorities_allocs *cgoAllocMap - reff5bb6c4d.priorities, cpriorities_allocs = *(*[16]C.VkQueueGlobalPriorityKHR)(unsafe.Pointer(&x.Priorities)), cgoAllocsUnknown - allocsf5bb6c4d.Borrow(cpriorities_allocs) + var cmaxPushDescriptors_allocs *cgoAllocMap + ref8c58a1a5.maxPushDescriptors, cmaxPushDescriptors_allocs = (C.uint32_t)(x.MaxPushDescriptors), cgoAllocsUnknown + allocs8c58a1a5.Borrow(cmaxPushDescriptors_allocs) - x.reff5bb6c4d = reff5bb6c4d - x.allocsf5bb6c4d = allocsf5bb6c4d - return reff5bb6c4d, allocsf5bb6c4d + 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 QueueFamilyGlobalPriorityProperties) PassValue() (C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { - if x.reff5bb6c4d != nil { - return *x.reff5bb6c4d, nil +func (x PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { + if x.ref8c58a1a5 != nil { + return *x.ref8c58a1a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38242,95 +38525,82 @@ func (x QueueFamilyGlobalPriorityProperties) PassValue() (C.VkQueueFamilyGlobalP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueueFamilyGlobalPriorityProperties) Deref() { - if x.reff5bb6c4d == nil { +func (x *PhysicalDevicePushDescriptorProperties) Deref() { + if x.ref8c58a1a5 == nil { return } - 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)) -} - -// allocFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkFragmentShadingRateAttachmentInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -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 + x.SType = (StructureType)(x.ref8c58a1a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8c58a1a5.pNext)) + x.MaxPushDescriptors = (uint32)(x.ref8c58a1a5.maxPushDescriptors) } -const sizeOfFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkFragmentShadingRateAttachmentInfoKHR{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FragmentShadingRateAttachmentInfo) Ref() *C.VkFragmentShadingRateAttachmentInfoKHR { +func (x *PhysicalDeviceFloat16Int8Features) Ref() *C.VkPhysicalDeviceShaderFloat16Int8Features { if x == nil { return nil } - return x.refd9f9d390 + 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 *FragmentShadingRateAttachmentInfo) Free() { - if x != nil && x.allocsd9f9d390 != nil { - x.allocsd9f9d390.(*cgoAllocMap).Free() - x.refd9f9d390 = nil +func (x *PhysicalDeviceFloat16Int8Features) Free() { + if x != nil && x.allocsc9d315b6 != nil { + x.allocsc9d315b6.(*cgoAllocMap).Free() + x.refc9d315b6 = nil } } -// NewFragmentShadingRateAttachmentInfoRef 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 NewFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *FragmentShadingRateAttachmentInfo { +func NewPhysicalDeviceFloat16Int8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFloat16Int8Features { if ref == nil { return nil } - obj := new(FragmentShadingRateAttachmentInfo) - obj.refd9f9d390 = (*C.VkFragmentShadingRateAttachmentInfoKHR)(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 *FragmentShadingRateAttachmentInfo) PassRef() (*C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceFloat16Int8Features) PassRef() (*C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9f9d390 != nil { - return x.refd9f9d390, nil + } else if x.refc9d315b6 != nil { + return x.refc9d315b6, nil } - memd9f9d390 := allocFragmentShadingRateAttachmentInfoMemory(1) - refd9f9d390 := (*C.VkFragmentShadingRateAttachmentInfoKHR)(memd9f9d390) - allocsd9f9d390 := new(cgoAllocMap) - allocsd9f9d390.Add(memd9f9d390) + memc9d315b6 := allocPhysicalDeviceShaderFloat16Int8FeaturesMemory(1) + refc9d315b6 := (*C.VkPhysicalDeviceShaderFloat16Int8Features)(memc9d315b6) + allocsc9d315b6 := new(cgoAllocMap) + allocsc9d315b6.Add(memc9d315b6) var csType_allocs *cgoAllocMap - refd9f9d390.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9f9d390.Borrow(csType_allocs) + refc9d315b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc9d315b6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd9f9d390.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9f9d390.Borrow(cpNext_allocs) + refc9d315b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc9d315b6.Borrow(cpNext_allocs) - var cpFragmentShadingRateAttachment_allocs *cgoAllocMap - refd9f9d390.pFragmentShadingRateAttachment, cpFragmentShadingRateAttachment_allocs = unpackSAttachmentReference2(x.PFragmentShadingRateAttachment) - allocsd9f9d390.Borrow(cpFragmentShadingRateAttachment_allocs) + var cshaderFloat16_allocs *cgoAllocMap + refc9d315b6.shaderFloat16, cshaderFloat16_allocs = (C.VkBool32)(x.ShaderFloat16), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderFloat16_allocs) - var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap - refd9f9d390.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() - allocsd9f9d390.Borrow(cshadingRateAttachmentTexelSize_allocs) + var cshaderInt8_allocs *cgoAllocMap + refc9d315b6.shaderInt8, cshaderInt8_allocs = (C.VkBool32)(x.ShaderInt8), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderInt8_allocs) - x.refd9f9d390 = refd9f9d390 - x.allocsd9f9d390 = allocsd9f9d390 - return refd9f9d390, allocsd9f9d390 + 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 FragmentShadingRateAttachmentInfo) PassValue() (C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { - if x.refd9f9d390 != nil { - return *x.refd9f9d390, nil +func (x PhysicalDeviceFloat16Int8Features) PassValue() (C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { + if x.refc9d315b6 != nil { + return *x.refc9d315b6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38338,95 +38608,91 @@ func (x FragmentShadingRateAttachmentInfo) PassValue() (C.VkFragmentShadingRateA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FragmentShadingRateAttachmentInfo) Deref() { - if x.refd9f9d390 == nil { +func (x *PhysicalDeviceFloat16Int8Features) Deref() { + if x.refc9d315b6 == nil { return } - 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)) + 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) } -// allocPipelineFragmentShadingRateStateCreateInfoMemory allocates memory for type C.VkPipelineFragmentShadingRateStateCreateInfoKHR in C. +// allocRectLayerMemory allocates memory for type C.VkRectLayerKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineFragmentShadingRateStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateStateCreateInfoValue)) +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 sizeOfPipelineFragmentShadingRateStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateStateCreateInfoKHR{}) +const sizeOfRectLayerValue = unsafe.Sizeof([1]C.VkRectLayerKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineFragmentShadingRateStateCreateInfo) Ref() *C.VkPipelineFragmentShadingRateStateCreateInfoKHR { +func (x *RectLayer) Ref() *C.VkRectLayerKHR { if x == nil { return nil } - return x.ref47a79f27 + 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 *PipelineFragmentShadingRateStateCreateInfo) Free() { - if x != nil && x.allocs47a79f27 != nil { - x.allocs47a79f27.(*cgoAllocMap).Free() - x.ref47a79f27 = nil +func (x *RectLayer) Free() { + if x != nil && x.allocsaf248476 != nil { + x.allocsaf248476.(*cgoAllocMap).Free() + x.refaf248476 = nil } } -// NewPipelineFragmentShadingRateStateCreateInfoRef 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 NewPipelineFragmentShadingRateStateCreateInfoRef(ref unsafe.Pointer) *PipelineFragmentShadingRateStateCreateInfo { +func NewRectLayerRef(ref unsafe.Pointer) *RectLayer { if ref == nil { return nil } - obj := new(PipelineFragmentShadingRateStateCreateInfo) - obj.ref47a79f27 = (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(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 *PipelineFragmentShadingRateStateCreateInfo) PassRef() (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { +func (x *RectLayer) PassRef() (*C.VkRectLayerKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref47a79f27 != nil { - return x.ref47a79f27, nil + } else if x.refaf248476 != nil { + return x.refaf248476, nil } - mem47a79f27 := allocPipelineFragmentShadingRateStateCreateInfoMemory(1) - ref47a79f27 := (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(mem47a79f27) - allocs47a79f27 := new(cgoAllocMap) - allocs47a79f27.Add(mem47a79f27) - - var csType_allocs *cgoAllocMap - ref47a79f27.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs47a79f27.Borrow(csType_allocs) + memaf248476 := allocRectLayerMemory(1) + refaf248476 := (*C.VkRectLayerKHR)(memaf248476) + allocsaf248476 := new(cgoAllocMap) + allocsaf248476.Add(memaf248476) - var cpNext_allocs *cgoAllocMap - ref47a79f27.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs47a79f27.Borrow(cpNext_allocs) + var coffset_allocs *cgoAllocMap + refaf248476.offset, coffset_allocs = x.Offset.PassValue() + allocsaf248476.Borrow(coffset_allocs) - var cfragmentSize_allocs *cgoAllocMap - ref47a79f27.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() - allocs47a79f27.Borrow(cfragmentSize_allocs) + var cextent_allocs *cgoAllocMap + refaf248476.extent, cextent_allocs = x.Extent.PassValue() + allocsaf248476.Borrow(cextent_allocs) - var ccombinerOps_allocs *cgoAllocMap - ref47a79f27.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown - allocs47a79f27.Borrow(ccombinerOps_allocs) + var clayer_allocs *cgoAllocMap + refaf248476.layer, clayer_allocs = (C.uint32_t)(x.Layer), cgoAllocsUnknown + allocsaf248476.Borrow(clayer_allocs) - x.ref47a79f27 = ref47a79f27 - x.allocs47a79f27 = allocs47a79f27 - return ref47a79f27, allocs47a79f27 + 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 PipelineFragmentShadingRateStateCreateInfo) PassValue() (C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { - if x.ref47a79f27 != nil { - return *x.ref47a79f27, nil +func (x RectLayer) PassValue() (C.VkRectLayerKHR, *cgoAllocMap) { + if x.refaf248476 != nil { + return *x.refaf248476, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38434,99 +38700,124 @@ func (x PipelineFragmentShadingRateStateCreateInfo) PassValue() (C.VkPipelineFra // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineFragmentShadingRateStateCreateInfo) Deref() { - if x.ref47a79f27 == nil { +func (x *RectLayer) Deref() { + if x.refaf248476 == nil { return } - 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)) + x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.refaf248476.offset)) + x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.refaf248476.extent)) + x.Layer = (uint32)(x.refaf248476.layer) } -// allocPhysicalDeviceFragmentShadingRateFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR in C. +// allocPresentRegionMemory allocates memory for type C.VkPresentRegionKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentShadingRateFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue)) +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 sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR{}) +const sizeOfPresentRegionValue = unsafe.Sizeof([1]C.VkPresentRegionKHR{}) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShadingRateFeatures) Ref() *C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR { +// 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 + return nil, nil } - return x.ref9041f272 -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkRectLayerKHR) { + go allocs.Free() + }) -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFragmentShadingRateFeatures) Free() { - if x != nil && x.allocs9041f272 != nil { - x.allocs9041f272.(*cgoAllocMap).Free() - x.ref9041f272 = nil + len0 := len(x) + mem0 := allocRectLayerMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, } -} - -// 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 NewPhysicalDeviceFragmentShadingRateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateFeatures { + 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.VkRectLayerKHR)(h.Data) + return +} + +// 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)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PresentRegion) Ref() *C.VkPresentRegionKHR { + if x == nil { + return nil + } + 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 *PresentRegion) Free() { + if x != nil && x.allocsbbc0d1b9 != nil { + x.allocsbbc0d1b9.(*cgoAllocMap).Free() + x.refbbc0d1b9 = nil + } +} + +// 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 NewPresentRegionRef(ref unsafe.Pointer) *PresentRegion { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShadingRateFeatures) - obj.ref9041f272 = (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(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 *PhysicalDeviceFragmentShadingRateFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { +func (x *PresentRegion) PassRef() (*C.VkPresentRegionKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9041f272 != nil { - return x.ref9041f272, nil + } else if x.refbbc0d1b9 != nil { + return x.refbbc0d1b9, nil } - mem9041f272 := allocPhysicalDeviceFragmentShadingRateFeaturesMemory(1) - ref9041f272 := (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(mem9041f272) - allocs9041f272 := new(cgoAllocMap) - allocs9041f272.Add(mem9041f272) - - var csType_allocs *cgoAllocMap - ref9041f272.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9041f272.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9041f272.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9041f272.Borrow(cpNext_allocs) - - var cpipelineFragmentShadingRate_allocs *cgoAllocMap - ref9041f272.pipelineFragmentShadingRate, cpipelineFragmentShadingRate_allocs = (C.VkBool32)(x.PipelineFragmentShadingRate), cgoAllocsUnknown - allocs9041f272.Borrow(cpipelineFragmentShadingRate_allocs) + membbc0d1b9 := allocPresentRegionMemory(1) + refbbc0d1b9 := (*C.VkPresentRegionKHR)(membbc0d1b9) + allocsbbc0d1b9 := new(cgoAllocMap) + allocsbbc0d1b9.Add(membbc0d1b9) - var cprimitiveFragmentShadingRate_allocs *cgoAllocMap - ref9041f272.primitiveFragmentShadingRate, cprimitiveFragmentShadingRate_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRate), cgoAllocsUnknown - allocs9041f272.Borrow(cprimitiveFragmentShadingRate_allocs) + var crectangleCount_allocs *cgoAllocMap + refbbc0d1b9.rectangleCount, crectangleCount_allocs = (C.uint32_t)(x.RectangleCount), cgoAllocsUnknown + allocsbbc0d1b9.Borrow(crectangleCount_allocs) - var cattachmentFragmentShadingRate_allocs *cgoAllocMap - ref9041f272.attachmentFragmentShadingRate, cattachmentFragmentShadingRate_allocs = (C.VkBool32)(x.AttachmentFragmentShadingRate), cgoAllocsUnknown - allocs9041f272.Borrow(cattachmentFragmentShadingRate_allocs) + var cpRectangles_allocs *cgoAllocMap + refbbc0d1b9.pRectangles, cpRectangles_allocs = unpackSRectLayer(x.PRectangles) + allocsbbc0d1b9.Borrow(cpRectangles_allocs) - x.ref9041f272 = ref9041f272 - x.allocs9041f272 = allocs9041f272 - return ref9041f272, allocs9041f272 + 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 PhysicalDeviceFragmentShadingRateFeatures) PassValue() (C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { - if x.ref9041f272 != nil { - return *x.ref9041f272, nil +func (x PresentRegion) PassValue() (C.VkPresentRegionKHR, *cgoAllocMap) { + if x.refbbc0d1b9 != nil { + return *x.refbbc0d1b9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38534,156 +38825,131 @@ func (x PhysicalDeviceFragmentShadingRateFeatures) 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 *PhysicalDeviceFragmentShadingRateFeatures) Deref() { - if x.ref9041f272 == nil { +func (x *PresentRegion) Deref() { + if x.refbbc0d1b9 == nil { return } - 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) + x.RectangleCount = (uint32)(x.refbbc0d1b9.rectangleCount) + packSRectLayer(x.PRectangles, x.refbbc0d1b9.pRectangles) } -// allocPhysicalDeviceFragmentShadingRatePropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR in C. +// allocPresentRegionsMemory allocates memory for type C.VkPresentRegionsKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentShadingRatePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue)) +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 sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR{}) +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 *PhysicalDeviceFragmentShadingRateProperties) Ref() *C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR { +func (x *PresentRegions) Ref() *C.VkPresentRegionsKHR { if x == nil { return nil } - return x.ref518beb + 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 *PhysicalDeviceFragmentShadingRateProperties) Free() { - if x != nil && x.allocs518beb != nil { - x.allocs518beb.(*cgoAllocMap).Free() - x.ref518beb = nil +func (x *PresentRegions) Free() { + if x != nil && x.allocs62958060 != nil { + x.allocs62958060.(*cgoAllocMap).Free() + x.ref62958060 = nil } } -// NewPhysicalDeviceFragmentShadingRatePropertiesRef 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 NewPhysicalDeviceFragmentShadingRatePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateProperties { +func NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShadingRateProperties) - obj.ref518beb = (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(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 *PhysicalDeviceFragmentShadingRateProperties) PassRef() (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { +func (x *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref518beb != nil { - return x.ref518beb, nil + } else if x.ref62958060 != nil { + return x.ref62958060, nil } - mem518beb := allocPhysicalDeviceFragmentShadingRatePropertiesMemory(1) - ref518beb := (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(mem518beb) - allocs518beb := new(cgoAllocMap) - allocs518beb.Add(mem518beb) + mem62958060 := allocPresentRegionsMemory(1) + ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) + allocs62958060 := new(cgoAllocMap) + allocs62958060.Add(mem62958060) var csType_allocs *cgoAllocMap - ref518beb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs518beb.Borrow(csType_allocs) + ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62958060.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref518beb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs518beb.Borrow(cpNext_allocs) - - var cminFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap - ref518beb.minFragmentShadingRateAttachmentTexelSize, cminFragmentShadingRateAttachmentTexelSize_allocs = x.MinFragmentShadingRateAttachmentTexelSize.PassValue() - allocs518beb.Borrow(cminFragmentShadingRateAttachmentTexelSize_allocs) - - var cmaxFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap - ref518beb.maxFragmentShadingRateAttachmentTexelSize, cmaxFragmentShadingRateAttachmentTexelSize_allocs = x.MaxFragmentShadingRateAttachmentTexelSize.PassValue() - allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSize_allocs) - - var cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs *cgoAllocMap - ref518beb.maxFragmentShadingRateAttachmentTexelSizeAspectRatio, cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs = (C.uint32_t)(x.MaxFragmentShadingRateAttachmentTexelSizeAspectRatio), cgoAllocsUnknown - allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs) - - 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) + ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62958060.Borrow(cpNext_allocs) - var cfragmentShadingRateWithCustomSampleLocations_allocs *cgoAllocMap - ref518beb.fragmentShadingRateWithCustomSampleLocations, cfragmentShadingRateWithCustomSampleLocations_allocs = (C.VkBool32)(x.FragmentShadingRateWithCustomSampleLocations), cgoAllocsUnknown - allocs518beb.Borrow(cfragmentShadingRateWithCustomSampleLocations_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs62958060.Borrow(cswapchainCount_allocs) - var cfragmentShadingRateStrictMultiplyCombiner_allocs *cgoAllocMap - ref518beb.fragmentShadingRateStrictMultiplyCombiner, cfragmentShadingRateStrictMultiplyCombiner_allocs = (C.VkBool32)(x.FragmentShadingRateStrictMultiplyCombiner), cgoAllocsUnknown - allocs518beb.Borrow(cfragmentShadingRateStrictMultiplyCombiner_allocs) + var cpRegions_allocs *cgoAllocMap + ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) + allocs62958060.Borrow(cpRegions_allocs) - x.ref518beb = ref518beb - x.allocs518beb = allocs518beb - return ref518beb, allocs518beb + 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 PhysicalDeviceFragmentShadingRateProperties) PassValue() (C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { - if x.ref518beb != nil { - return *x.ref518beb, nil +func (x PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { + if x.ref62958060 != nil { + return *x.ref62958060, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38691,110 +38957,91 @@ func (x PhysicalDeviceFragmentShadingRateProperties) 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 *PhysicalDeviceFragmentShadingRateProperties) Deref() { - if x.ref518beb == nil { +func (x *PresentRegions) Deref() { + if x.ref62958060 == nil { return } - 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) + 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) } -// allocPhysicalDeviceFragmentShadingRateMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateKHR in C. +// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentShadingRateMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateValue)) +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 sizeOfPhysicalDeviceFragmentShadingRateValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateKHR{}) +const sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShadingRate) Ref() *C.VkPhysicalDeviceFragmentShadingRateKHR { +func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { if x == nil { return nil } - return x.ref17914e16 + 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 *PhysicalDeviceFragmentShadingRate) Free() { - if x != nil && x.allocs17914e16 != nil { - x.allocs17914e16.(*cgoAllocMap).Free() - x.ref17914e16 = nil +func (x *SharedPresentSurfaceCapabilities) Free() { + if x != nil && x.allocs3f98a814 != nil { + x.allocs3f98a814.(*cgoAllocMap).Free() + x.ref3f98a814 = nil } } -// NewPhysicalDeviceFragmentShadingRateRef 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 NewPhysicalDeviceFragmentShadingRateRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRate { +func NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShadingRate) - obj.ref17914e16 = (*C.VkPhysicalDeviceFragmentShadingRateKHR)(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 *PhysicalDeviceFragmentShadingRate) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { +func (x *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref17914e16 != nil { - return x.ref17914e16, nil + } else if x.ref3f98a814 != nil { + return x.ref3f98a814, nil } - mem17914e16 := allocPhysicalDeviceFragmentShadingRateMemory(1) - ref17914e16 := (*C.VkPhysicalDeviceFragmentShadingRateKHR)(mem17914e16) - allocs17914e16 := new(cgoAllocMap) - allocs17914e16.Add(mem17914e16) + mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) + ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) + allocs3f98a814 := new(cgoAllocMap) + allocs3f98a814.Add(mem3f98a814) var csType_allocs *cgoAllocMap - ref17914e16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs17914e16.Borrow(csType_allocs) + ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3f98a814.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref17914e16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs17914e16.Borrow(cpNext_allocs) - - var csampleCounts_allocs *cgoAllocMap - ref17914e16.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown - allocs17914e16.Borrow(csampleCounts_allocs) + ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3f98a814.Borrow(cpNext_allocs) - var cfragmentSize_allocs *cgoAllocMap - ref17914e16.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() - allocs17914e16.Borrow(cfragmentSize_allocs) + var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap + ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown + allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) - x.ref17914e16 = ref17914e16 - x.allocs17914e16 = allocs17914e16 - return ref17914e16, allocs17914e16 + 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 PhysicalDeviceFragmentShadingRate) PassValue() (C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { - if x.ref17914e16 != nil { - return *x.ref17914e16, nil +func (x SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { + if x.ref3f98a814 != nil { + return *x.ref3f98a814, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38802,91 +39049,102 @@ func (x PhysicalDeviceFragmentShadingRate) PassValue() (C.VkPhysicalDeviceFragme // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFragmentShadingRate) Deref() { - if x.ref17914e16 == nil { +func (x *SharedPresentSurfaceCapabilities) Deref() { + if x.ref3f98a814 == nil { return } - 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)) + x.SType = (StructureType)(x.ref3f98a814.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3f98a814.pNext)) + x.SharedPresentSupportedUsageFlags = (ImageUsageFlags)(x.ref3f98a814.sharedPresentSupportedUsageFlags) } -// allocSurfaceProtectedCapabilitiesMemory allocates memory for type C.VkSurfaceProtectedCapabilitiesKHR in C. +// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSurfaceProtectedCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceProtectedCapabilitiesValue)) +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 sizeOfSurfaceProtectedCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceProtectedCapabilitiesKHR{}) +const sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceProtectedCapabilities) Ref() *C.VkSurfaceProtectedCapabilitiesKHR { +func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { if x == nil { return nil } - return x.refa5f4111 + 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 *SurfaceProtectedCapabilities) Free() { - if x != nil && x.allocsa5f4111 != nil { - x.allocsa5f4111.(*cgoAllocMap).Free() - x.refa5f4111 = nil +func (x *ImportFenceFdInfo) Free() { + if x != nil && x.allocs86ebd28c != nil { + x.allocs86ebd28c.(*cgoAllocMap).Free() + x.ref86ebd28c = nil } } -// NewSurfaceProtectedCapabilitiesRef 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 NewSurfaceProtectedCapabilitiesRef(ref unsafe.Pointer) *SurfaceProtectedCapabilities { +func NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { if ref == nil { return nil } - obj := new(SurfaceProtectedCapabilities) - obj.refa5f4111 = (*C.VkSurfaceProtectedCapabilitiesKHR)(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 *SurfaceProtectedCapabilities) PassRef() (*C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { +func (x *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5f4111 != nil { - return x.refa5f4111, nil + } else if x.ref86ebd28c != nil { + return x.ref86ebd28c, nil } - mema5f4111 := allocSurfaceProtectedCapabilitiesMemory(1) - refa5f4111 := (*C.VkSurfaceProtectedCapabilitiesKHR)(mema5f4111) - allocsa5f4111 := new(cgoAllocMap) - allocsa5f4111.Add(mema5f4111) + mem86ebd28c := allocImportFenceFdInfoMemory(1) + ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) + allocs86ebd28c := new(cgoAllocMap) + allocs86ebd28c.Add(mem86ebd28c) var csType_allocs *cgoAllocMap - refa5f4111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa5f4111.Borrow(csType_allocs) + ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86ebd28c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa5f4111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa5f4111.Borrow(cpNext_allocs) + ref86ebd28c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cpNext_allocs) - var csupportsProtected_allocs *cgoAllocMap - refa5f4111.supportsProtected, csupportsProtected_allocs = (C.VkBool32)(x.SupportsProtected), cgoAllocsUnknown - allocsa5f4111.Borrow(csupportsProtected_allocs) + var cfence_allocs *cgoAllocMap + ref86ebd28c.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cfence_allocs) - x.refa5f4111 = refa5f4111 - x.allocsa5f4111 = allocsa5f4111 - return refa5f4111, allocsa5f4111 + var cflags_allocs *cgoAllocMap + ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown + allocs86ebd28c.Borrow(cflags_allocs) + + var chandleType_allocs *cgoAllocMap + ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs86ebd28c.Borrow(chandleType_allocs) + + 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 SurfaceProtectedCapabilities) PassValue() (C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { - if x.refa5f4111 != nil { - return *x.refa5f4111, nil +func (x ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { + if x.ref86ebd28c != nil { + return *x.ref86ebd28c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38894,90 +39152,97 @@ func (x SurfaceProtectedCapabilities) PassValue() (C.VkSurfaceProtectedCapabilit // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SurfaceProtectedCapabilities) Deref() { - if x.refa5f4111 == nil { +func (x *ImportFenceFdInfo) Deref() { + if x.ref86ebd28c == nil { return } - x.SType = (StructureType)(x.refa5f4111.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa5f4111.pNext)) - x.SupportsProtected = (Bool32)(x.refa5f4111.supportsProtected) + 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) } -// allocPhysicalDevicePresentWaitFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentWaitFeaturesKHR in C. +// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePresentWaitFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentWaitFeaturesValue)) +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 sizeOfPhysicalDevicePresentWaitFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentWaitFeaturesKHR{}) +const sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePresentWaitFeatures) Ref() *C.VkPhysicalDevicePresentWaitFeaturesKHR { +func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { if x == nil { return nil } - return x.ref1cd9c482 + 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 *PhysicalDevicePresentWaitFeatures) Free() { - if x != nil && x.allocs1cd9c482 != nil { - x.allocs1cd9c482.(*cgoAllocMap).Free() - x.ref1cd9c482 = nil +func (x *FenceGetFdInfo) Free() { + if x != nil && x.allocsc2668bc3 != nil { + x.allocsc2668bc3.(*cgoAllocMap).Free() + x.refc2668bc3 = nil } } -// NewPhysicalDevicePresentWaitFeaturesRef 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 NewPhysicalDevicePresentWaitFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentWaitFeatures { +func NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePresentWaitFeatures) - obj.ref1cd9c482 = (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(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 *PhysicalDevicePresentWaitFeatures) PassRef() (*C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { +func (x *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1cd9c482 != nil { - return x.ref1cd9c482, nil + } else if x.refc2668bc3 != nil { + return x.refc2668bc3, nil } - mem1cd9c482 := allocPhysicalDevicePresentWaitFeaturesMemory(1) - ref1cd9c482 := (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(mem1cd9c482) - allocs1cd9c482 := new(cgoAllocMap) - allocs1cd9c482.Add(mem1cd9c482) + memc2668bc3 := allocFenceGetFdInfoMemory(1) + refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) + allocsc2668bc3 := new(cgoAllocMap) + allocsc2668bc3.Add(memc2668bc3) var csType_allocs *cgoAllocMap - ref1cd9c482.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1cd9c482.Borrow(csType_allocs) + refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc2668bc3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1cd9c482.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1cd9c482.Borrow(cpNext_allocs) + refc2668bc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cpNext_allocs) - var cpresentWait_allocs *cgoAllocMap - ref1cd9c482.presentWait, cpresentWait_allocs = (C.VkBool32)(x.PresentWait), cgoAllocsUnknown - allocs1cd9c482.Borrow(cpresentWait_allocs) + var cfence_allocs *cgoAllocMap + refc2668bc3.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cfence_allocs) - x.ref1cd9c482 = ref1cd9c482 - x.allocs1cd9c482 = allocs1cd9c482 - return ref1cd9c482, allocs1cd9c482 + var chandleType_allocs *cgoAllocMap + refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsc2668bc3.Borrow(chandleType_allocs) + + 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 PhysicalDevicePresentWaitFeatures) PassValue() (C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { - if x.ref1cd9c482 != nil { - return *x.ref1cd9c482, nil +func (x FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { + if x.refc2668bc3 != nil { + return *x.refc2668bc3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38985,90 +39250,95 @@ func (x PhysicalDevicePresentWaitFeatures) PassValue() (C.VkPhysicalDevicePresen // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePresentWaitFeatures) Deref() { - if x.ref1cd9c482 == nil { +func (x *FenceGetFdInfo) Deref() { + if x.refc2668bc3 == nil { return } - x.SType = (StructureType)(x.ref1cd9c482.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1cd9c482.pNext)) - x.PresentWait = (Bool32)(x.ref1cd9c482.presentWait) + 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) } -// allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR in C. +// allocPhysicalDevicePerformanceQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue)) +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 sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR{}) +const sizeOfPhysicalDevicePerformanceQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Ref() *C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { +func (x *PhysicalDevicePerformanceQueryFeatures) Ref() *C.VkPhysicalDevicePerformanceQueryFeaturesKHR { if x == nil { return nil } - return x.ref84acf0e1 + 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 *PhysicalDevicePipelineExecutablePropertiesFeatures) Free() { - if x != nil && x.allocs84acf0e1 != nil { - x.allocs84acf0e1.(*cgoAllocMap).Free() - x.ref84acf0e1 = nil +func (x *PhysicalDevicePerformanceQueryFeatures) Free() { + if x != nil && x.allocs8e4527cb != nil { + x.allocs8e4527cb.(*cgoAllocMap).Free() + x.ref8e4527cb = nil } } -// NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef 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 NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineExecutablePropertiesFeatures { +func NewPhysicalDevicePerformanceQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryFeatures { if ref == nil { return nil } - obj := new(PhysicalDevicePipelineExecutablePropertiesFeatures) - obj.ref84acf0e1 = (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(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 *PhysicalDevicePipelineExecutablePropertiesFeatures) PassRef() (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryFeatures) PassRef() (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref84acf0e1 != nil { - return x.ref84acf0e1, nil + } else if x.ref8e4527cb != nil { + return x.ref8e4527cb, nil } - mem84acf0e1 := allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(1) - ref84acf0e1 := (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(mem84acf0e1) - allocs84acf0e1 := new(cgoAllocMap) - allocs84acf0e1.Add(mem84acf0e1) + mem8e4527cb := allocPhysicalDevicePerformanceQueryFeaturesMemory(1) + ref8e4527cb := (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(mem8e4527cb) + allocs8e4527cb := new(cgoAllocMap) + allocs8e4527cb.Add(mem8e4527cb) var csType_allocs *cgoAllocMap - ref84acf0e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs84acf0e1.Borrow(csType_allocs) + ref8e4527cb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8e4527cb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref84acf0e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs84acf0e1.Borrow(cpNext_allocs) + ref8e4527cb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8e4527cb.Borrow(cpNext_allocs) - var cpipelineExecutableInfo_allocs *cgoAllocMap - ref84acf0e1.pipelineExecutableInfo, cpipelineExecutableInfo_allocs = (C.VkBool32)(x.PipelineExecutableInfo), cgoAllocsUnknown - allocs84acf0e1.Borrow(cpipelineExecutableInfo_allocs) + var cperformanceCounterQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterQueryPools, cperformanceCounterQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterQueryPools_allocs) - x.ref84acf0e1 = ref84acf0e1 - x.allocs84acf0e1 = allocs84acf0e1 - return ref84acf0e1, allocs84acf0e1 + var cperformanceCounterMultipleQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterMultipleQueryPools, cperformanceCounterMultipleQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterMultipleQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterMultipleQueryPools_allocs) + + 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 PhysicalDevicePipelineExecutablePropertiesFeatures) PassValue() (C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { - if x.ref84acf0e1 != nil { - return *x.ref84acf0e1, nil +func (x PhysicalDevicePerformanceQueryFeatures) PassValue() (C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { + if x.ref8e4527cb != nil { + return *x.ref8e4527cb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39076,90 +39346,91 @@ func (x PhysicalDevicePipelineExecutablePropertiesFeatures) 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 *PhysicalDevicePipelineExecutablePropertiesFeatures) Deref() { - if x.ref84acf0e1 == nil { +func (x *PhysicalDevicePerformanceQueryFeatures) Deref() { + if x.ref8e4527cb == nil { return } - x.SType = (StructureType)(x.ref84acf0e1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref84acf0e1.pNext)) - x.PipelineExecutableInfo = (Bool32)(x.ref84acf0e1.pipelineExecutableInfo) + 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) } -// allocPipelineInfoMemory allocates memory for type C.VkPipelineInfoKHR in C. +// allocPhysicalDevicePerformanceQueryPropertiesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInfoValue)) +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 sizeOfPipelineInfoValue = unsafe.Sizeof([1]C.VkPipelineInfoKHR{}) +const sizeOfPhysicalDevicePerformanceQueryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineInfo) Ref() *C.VkPipelineInfoKHR { +func (x *PhysicalDevicePerformanceQueryProperties) Ref() *C.VkPhysicalDevicePerformanceQueryPropertiesKHR { if x == nil { return nil } - return x.refcd879ca1 + 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 *PipelineInfo) Free() { - if x != nil && x.allocscd879ca1 != nil { - x.allocscd879ca1.(*cgoAllocMap).Free() - x.refcd879ca1 = nil +func (x *PhysicalDevicePerformanceQueryProperties) Free() { + if x != nil && x.allocsc3efa645 != nil { + x.allocsc3efa645.(*cgoAllocMap).Free() + x.refc3efa645 = nil } } -// NewPipelineInfoRef 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 NewPipelineInfoRef(ref unsafe.Pointer) *PipelineInfo { +func NewPhysicalDevicePerformanceQueryPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryProperties { if ref == nil { return nil } - obj := new(PipelineInfo) - obj.refcd879ca1 = (*C.VkPipelineInfoKHR)(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 *PipelineInfo) PassRef() (*C.VkPipelineInfoKHR, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryProperties) PassRef() (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd879ca1 != nil { - return x.refcd879ca1, nil + } else if x.refc3efa645 != nil { + return x.refc3efa645, nil } - memcd879ca1 := allocPipelineInfoMemory(1) - refcd879ca1 := (*C.VkPipelineInfoKHR)(memcd879ca1) - allocscd879ca1 := new(cgoAllocMap) - allocscd879ca1.Add(memcd879ca1) + memc3efa645 := allocPhysicalDevicePerformanceQueryPropertiesMemory(1) + refc3efa645 := (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(memc3efa645) + allocsc3efa645 := new(cgoAllocMap) + allocsc3efa645.Add(memc3efa645) var csType_allocs *cgoAllocMap - refcd879ca1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd879ca1.Borrow(csType_allocs) + refc3efa645.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc3efa645.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd879ca1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd879ca1.Borrow(cpNext_allocs) + refc3efa645.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc3efa645.Borrow(cpNext_allocs) - var cpipeline_allocs *cgoAllocMap - refcd879ca1.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocscd879ca1.Borrow(cpipeline_allocs) + var callowCommandBufferQueryCopies_allocs *cgoAllocMap + refc3efa645.allowCommandBufferQueryCopies, callowCommandBufferQueryCopies_allocs = (C.VkBool32)(x.AllowCommandBufferQueryCopies), cgoAllocsUnknown + allocsc3efa645.Borrow(callowCommandBufferQueryCopies_allocs) - x.refcd879ca1 = refcd879ca1 - x.allocscd879ca1 = allocscd879ca1 - return refcd879ca1, allocscd879ca1 + 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 PipelineInfo) PassValue() (C.VkPipelineInfoKHR, *cgoAllocMap) { - if x.refcd879ca1 != nil { - return *x.refcd879ca1, nil +func (x PhysicalDevicePerformanceQueryProperties) PassValue() (C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { + if x.refc3efa645 != nil { + return *x.refc3efa645, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39167,102 +39438,102 @@ func (x PipelineInfo) PassValue() (C.VkPipelineInfoKHR, *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 *PipelineInfo) Deref() { - if x.refcd879ca1 == nil { +func (x *PhysicalDevicePerformanceQueryProperties) Deref() { + if x.refc3efa645 == nil { return } - x.SType = (StructureType)(x.refcd879ca1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd879ca1.pNext)) - x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refcd879ca1.pipeline)) + x.SType = (StructureType)(x.refc3efa645.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc3efa645.pNext)) + x.AllowCommandBufferQueryCopies = (Bool32)(x.refc3efa645.allowCommandBufferQueryCopies) } -// allocPipelineExecutablePropertiesMemory allocates memory for type C.VkPipelineExecutablePropertiesKHR in C. +// allocPerformanceCounterMemory allocates memory for type C.VkPerformanceCounterKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineExecutablePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutablePropertiesValue)) +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 sizeOfPipelineExecutablePropertiesValue = unsafe.Sizeof([1]C.VkPipelineExecutablePropertiesKHR{}) +const sizeOfPerformanceCounterValue = unsafe.Sizeof([1]C.VkPerformanceCounterKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineExecutableProperties) Ref() *C.VkPipelineExecutablePropertiesKHR { +func (x *PerformanceCounter) Ref() *C.VkPerformanceCounterKHR { if x == nil { return nil } - return x.ref4eb592a4 + 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 *PipelineExecutableProperties) Free() { - if x != nil && x.allocs4eb592a4 != nil { - x.allocs4eb592a4.(*cgoAllocMap).Free() - x.ref4eb592a4 = nil +func (x *PerformanceCounter) Free() { + if x != nil && x.allocsc754b4e5 != nil { + x.allocsc754b4e5.(*cgoAllocMap).Free() + x.refc754b4e5 = nil } } -// NewPipelineExecutablePropertiesRef 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 NewPipelineExecutablePropertiesRef(ref unsafe.Pointer) *PipelineExecutableProperties { +func NewPerformanceCounterRef(ref unsafe.Pointer) *PerformanceCounter { if ref == nil { return nil } - obj := new(PipelineExecutableProperties) - obj.ref4eb592a4 = (*C.VkPipelineExecutablePropertiesKHR)(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 *PipelineExecutableProperties) PassRef() (*C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { +func (x *PerformanceCounter) PassRef() (*C.VkPerformanceCounterKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4eb592a4 != nil { - return x.ref4eb592a4, nil + } else if x.refc754b4e5 != nil { + return x.refc754b4e5, nil } - mem4eb592a4 := allocPipelineExecutablePropertiesMemory(1) - ref4eb592a4 := (*C.VkPipelineExecutablePropertiesKHR)(mem4eb592a4) - allocs4eb592a4 := new(cgoAllocMap) - allocs4eb592a4.Add(mem4eb592a4) + memc754b4e5 := allocPerformanceCounterMemory(1) + refc754b4e5 := (*C.VkPerformanceCounterKHR)(memc754b4e5) + allocsc754b4e5 := new(cgoAllocMap) + allocsc754b4e5.Add(memc754b4e5) var csType_allocs *cgoAllocMap - ref4eb592a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4eb592a4.Borrow(csType_allocs) + refc754b4e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc754b4e5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4eb592a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4eb592a4.Borrow(cpNext_allocs) + refc754b4e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc754b4e5.Borrow(cpNext_allocs) - var cstages_allocs *cgoAllocMap - ref4eb592a4.stages, cstages_allocs = (C.VkShaderStageFlags)(x.Stages), cgoAllocsUnknown - allocs4eb592a4.Borrow(cstages_allocs) + var cunit_allocs *cgoAllocMap + refc754b4e5.unit, cunit_allocs = (C.VkPerformanceCounterUnitKHR)(x.Unit), cgoAllocsUnknown + allocsc754b4e5.Borrow(cunit_allocs) - var cname_allocs *cgoAllocMap - ref4eb592a4.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown - allocs4eb592a4.Borrow(cname_allocs) + var cscope_allocs *cgoAllocMap + refc754b4e5.scope, cscope_allocs = (C.VkPerformanceCounterScopeKHR)(x.Scope), cgoAllocsUnknown + allocsc754b4e5.Borrow(cscope_allocs) - var cdescription_allocs *cgoAllocMap - ref4eb592a4.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown - allocs4eb592a4.Borrow(cdescription_allocs) + var cstorage_allocs *cgoAllocMap + refc754b4e5.storage, cstorage_allocs = (C.VkPerformanceCounterStorageKHR)(x.Storage), cgoAllocsUnknown + allocsc754b4e5.Borrow(cstorage_allocs) - var csubgroupSize_allocs *cgoAllocMap - ref4eb592a4.subgroupSize, csubgroupSize_allocs = (C.uint32_t)(x.SubgroupSize), cgoAllocsUnknown - allocs4eb592a4.Borrow(csubgroupSize_allocs) + var cuuid_allocs *cgoAllocMap + refc754b4e5.uuid, cuuid_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.Uuid)), cgoAllocsUnknown + allocsc754b4e5.Borrow(cuuid_allocs) - x.ref4eb592a4 = ref4eb592a4 - x.allocs4eb592a4 = allocs4eb592a4 - return ref4eb592a4, allocs4eb592a4 + 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 PipelineExecutableProperties) PassValue() (C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { - if x.ref4eb592a4 != nil { - return *x.ref4eb592a4, nil +func (x PerformanceCounter) PassValue() (C.VkPerformanceCounterKHR, *cgoAllocMap) { + if x.refc754b4e5 != nil { + return *x.refc754b4e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39270,97 +39541,105 @@ func (x PipelineExecutableProperties) PassValue() (C.VkPipelineExecutablePropert // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineExecutableProperties) Deref() { - if x.ref4eb592a4 == nil { +func (x *PerformanceCounter) Deref() { + if x.refc754b4e5 == nil { return } - 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) + 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)) } -// allocPipelineExecutableInfoMemory allocates memory for type C.VkPipelineExecutableInfoKHR in C. +// allocPerformanceCounterDescriptionMemory allocates memory for type C.VkPerformanceCounterDescriptionKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineExecutableInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInfoValue)) +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 sizeOfPipelineExecutableInfoValue = unsafe.Sizeof([1]C.VkPipelineExecutableInfoKHR{}) +const sizeOfPerformanceCounterDescriptionValue = unsafe.Sizeof([1]C.VkPerformanceCounterDescriptionKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineExecutableInfo) Ref() *C.VkPipelineExecutableInfoKHR { +func (x *PerformanceCounterDescription) Ref() *C.VkPerformanceCounterDescriptionKHR { if x == nil { return nil } - return x.ref9b891dad + 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 *PipelineExecutableInfo) Free() { - if x != nil && x.allocs9b891dad != nil { - x.allocs9b891dad.(*cgoAllocMap).Free() - x.ref9b891dad = nil +func (x *PerformanceCounterDescription) Free() { + if x != nil && x.allocs95209df5 != nil { + x.allocs95209df5.(*cgoAllocMap).Free() + x.ref95209df5 = nil } } -// NewPipelineExecutableInfoRef 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 NewPipelineExecutableInfoRef(ref unsafe.Pointer) *PipelineExecutableInfo { +func NewPerformanceCounterDescriptionRef(ref unsafe.Pointer) *PerformanceCounterDescription { if ref == nil { return nil } - obj := new(PipelineExecutableInfo) - obj.ref9b891dad = (*C.VkPipelineExecutableInfoKHR)(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 *PipelineExecutableInfo) PassRef() (*C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { +func (x *PerformanceCounterDescription) PassRef() (*C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9b891dad != nil { - return x.ref9b891dad, nil + } else if x.ref95209df5 != nil { + return x.ref95209df5, nil } - mem9b891dad := allocPipelineExecutableInfoMemory(1) - ref9b891dad := (*C.VkPipelineExecutableInfoKHR)(mem9b891dad) - allocs9b891dad := new(cgoAllocMap) - allocs9b891dad.Add(mem9b891dad) + mem95209df5 := allocPerformanceCounterDescriptionMemory(1) + ref95209df5 := (*C.VkPerformanceCounterDescriptionKHR)(mem95209df5) + allocs95209df5 := new(cgoAllocMap) + allocs95209df5.Add(mem95209df5) var csType_allocs *cgoAllocMap - ref9b891dad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9b891dad.Borrow(csType_allocs) + ref95209df5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95209df5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9b891dad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9b891dad.Borrow(cpNext_allocs) + ref95209df5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95209df5.Borrow(cpNext_allocs) - var cpipeline_allocs *cgoAllocMap - ref9b891dad.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocs9b891dad.Borrow(cpipeline_allocs) + var cflags_allocs *cgoAllocMap + ref95209df5.flags, cflags_allocs = (C.VkPerformanceCounterDescriptionFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs95209df5.Borrow(cflags_allocs) - var cexecutableIndex_allocs *cgoAllocMap - ref9b891dad.executableIndex, cexecutableIndex_allocs = (C.uint32_t)(x.ExecutableIndex), cgoAllocsUnknown - allocs9b891dad.Borrow(cexecutableIndex_allocs) + var cname_allocs *cgoAllocMap + ref95209df5.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs95209df5.Borrow(cname_allocs) - x.ref9b891dad = ref9b891dad - x.allocs9b891dad = allocs9b891dad - return ref9b891dad, allocs9b891dad + 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 PipelineExecutableInfo) PassValue() (C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { - if x.ref9b891dad != nil { - return *x.ref9b891dad, nil +func (x PerformanceCounterDescription) PassValue() (C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { + if x.ref95209df5 != nil { + return *x.ref95209df5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39368,103 +39647,101 @@ func (x PipelineExecutableInfo) PassValue() (C.VkPipelineExecutableInfoKHR, *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 *PipelineExecutableInfo) Deref() { - if x.ref9b891dad == nil { +func (x *PerformanceCounterDescription) Deref() { + if x.ref95209df5 == nil { return } - 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) + 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)) } -// allocPipelineExecutableStatisticMemory allocates memory for type C.VkPipelineExecutableStatisticKHR in C. +// allocQueryPoolPerformanceCreateInfoMemory allocates memory for type C.VkQueryPoolPerformanceCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineExecutableStatisticMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableStatisticValue)) +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 sizeOfPipelineExecutableStatisticValue = unsafe.Sizeof([1]C.VkPipelineExecutableStatisticKHR{}) +const sizeOfQueryPoolPerformanceCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineExecutableStatistic) Ref() *C.VkPipelineExecutableStatisticKHR { +func (x *QueryPoolPerformanceCreateInfo) Ref() *C.VkQueryPoolPerformanceCreateInfoKHR { if x == nil { return nil } - return x.ref4af1a62c + 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 *PipelineExecutableStatistic) Free() { - if x != nil && x.allocs4af1a62c != nil { - x.allocs4af1a62c.(*cgoAllocMap).Free() - x.ref4af1a62c = nil +func (x *QueryPoolPerformanceCreateInfo) Free() { + if x != nil && x.allocs55afa561 != nil { + x.allocs55afa561.(*cgoAllocMap).Free() + x.ref55afa561 = nil } } -// NewPipelineExecutableStatisticRef 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 NewPipelineExecutableStatisticRef(ref unsafe.Pointer) *PipelineExecutableStatistic { +func NewQueryPoolPerformanceCreateInfoRef(ref unsafe.Pointer) *QueryPoolPerformanceCreateInfo { if ref == nil { return nil } - obj := new(PipelineExecutableStatistic) - obj.ref4af1a62c = (*C.VkPipelineExecutableStatisticKHR)(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 *PipelineExecutableStatistic) PassRef() (*C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { +func (x *QueryPoolPerformanceCreateInfo) PassRef() (*C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4af1a62c != nil { - return x.ref4af1a62c, nil + } else if x.ref55afa561 != nil { + return x.ref55afa561, nil } - mem4af1a62c := allocPipelineExecutableStatisticMemory(1) - ref4af1a62c := (*C.VkPipelineExecutableStatisticKHR)(mem4af1a62c) - allocs4af1a62c := new(cgoAllocMap) - allocs4af1a62c.Add(mem4af1a62c) + mem55afa561 := allocQueryPoolPerformanceCreateInfoMemory(1) + ref55afa561 := (*C.VkQueryPoolPerformanceCreateInfoKHR)(mem55afa561) + allocs55afa561 := new(cgoAllocMap) + allocs55afa561.Add(mem55afa561) var csType_allocs *cgoAllocMap - ref4af1a62c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4af1a62c.Borrow(csType_allocs) + ref55afa561.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs55afa561.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4af1a62c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4af1a62c.Borrow(cpNext_allocs) - - var cname_allocs *cgoAllocMap - ref4af1a62c.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown - allocs4af1a62c.Borrow(cname_allocs) + ref55afa561.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs55afa561.Borrow(cpNext_allocs) - var cdescription_allocs *cgoAllocMap - ref4af1a62c.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown - allocs4af1a62c.Borrow(cdescription_allocs) + var cqueueFamilyIndex_allocs *cgoAllocMap + ref55afa561.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs55afa561.Borrow(cqueueFamilyIndex_allocs) - var cformat_allocs *cgoAllocMap - ref4af1a62c.format, cformat_allocs = (C.VkPipelineExecutableStatisticFormatKHR)(x.Format), cgoAllocsUnknown - allocs4af1a62c.Borrow(cformat_allocs) + var ccounterIndexCount_allocs *cgoAllocMap + ref55afa561.counterIndexCount, ccounterIndexCount_allocs = (C.uint32_t)(x.CounterIndexCount), cgoAllocsUnknown + allocs55afa561.Borrow(ccounterIndexCount_allocs) - var cvalue_allocs *cgoAllocMap - ref4af1a62c.value, cvalue_allocs = *(*C.VkPipelineExecutableStatisticValueKHR)(unsafe.Pointer(&x.Value)), cgoAllocsUnknown - allocs4af1a62c.Borrow(cvalue_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.ref4af1a62c = ref4af1a62c - x.allocs4af1a62c = allocs4af1a62c - return ref4af1a62c, allocs4af1a62c + 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 PipelineExecutableStatistic) PassValue() (C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { - if x.ref4af1a62c != nil { - return *x.ref4af1a62c, nil +func (x QueryPoolPerformanceCreateInfo) PassValue() (C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { + if x.ref55afa561 != nil { + return *x.ref55afa561, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39472,109 +39749,100 @@ func (x PipelineExecutableStatistic) PassValue() (C.VkPipelineExecutableStatisti // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineExecutableStatistic) Deref() { - if x.ref4af1a62c == nil { +func (x *QueryPoolPerformanceCreateInfo) Deref() { + if x.ref55afa561 == nil { return } - 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)) + 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) + hxfb029a7 := (*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)) + hxfb029a7.Data = unsafe.Pointer(x.ref55afa561.pCounterIndices) + hxfb029a7.Cap = 0x7fffffff + // hxfb029a7.Len = ? + } -// allocPipelineExecutableInternalRepresentationMemory allocates memory for type C.VkPipelineExecutableInternalRepresentationKHR in C. +// allocAcquireProfilingLockInfoMemory allocates memory for type C.VkAcquireProfilingLockInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineExecutableInternalRepresentationMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInternalRepresentationValue)) +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 sizeOfPipelineExecutableInternalRepresentationValue = unsafe.Sizeof([1]C.VkPipelineExecutableInternalRepresentationKHR{}) +const sizeOfAcquireProfilingLockInfoValue = unsafe.Sizeof([1]C.VkAcquireProfilingLockInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineExecutableInternalRepresentation) Ref() *C.VkPipelineExecutableInternalRepresentationKHR { +func (x *AcquireProfilingLockInfo) Ref() *C.VkAcquireProfilingLockInfoKHR { if x == nil { return nil } - return x.ref20e334f7 + 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 *PipelineExecutableInternalRepresentation) Free() { - if x != nil && x.allocs20e334f7 != nil { - x.allocs20e334f7.(*cgoAllocMap).Free() - x.ref20e334f7 = nil +func (x *AcquireProfilingLockInfo) Free() { + if x != nil && x.allocs73cbb121 != nil { + x.allocs73cbb121.(*cgoAllocMap).Free() + x.ref73cbb121 = nil } } -// NewPipelineExecutableInternalRepresentationRef 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 NewPipelineExecutableInternalRepresentationRef(ref unsafe.Pointer) *PipelineExecutableInternalRepresentation { +func NewAcquireProfilingLockInfoRef(ref unsafe.Pointer) *AcquireProfilingLockInfo { if ref == nil { return nil } - obj := new(PipelineExecutableInternalRepresentation) - obj.ref20e334f7 = (*C.VkPipelineExecutableInternalRepresentationKHR)(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 *PipelineExecutableInternalRepresentation) PassRef() (*C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { +func (x *AcquireProfilingLockInfo) PassRef() (*C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref20e334f7 != nil { - return x.ref20e334f7, nil + } else if x.ref73cbb121 != nil { + return x.ref73cbb121, nil } - mem20e334f7 := allocPipelineExecutableInternalRepresentationMemory(1) - ref20e334f7 := (*C.VkPipelineExecutableInternalRepresentationKHR)(mem20e334f7) - allocs20e334f7 := new(cgoAllocMap) - allocs20e334f7.Add(mem20e334f7) + mem73cbb121 := allocAcquireProfilingLockInfoMemory(1) + ref73cbb121 := (*C.VkAcquireProfilingLockInfoKHR)(mem73cbb121) + allocs73cbb121 := new(cgoAllocMap) + allocs73cbb121.Add(mem73cbb121) var csType_allocs *cgoAllocMap - ref20e334f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs20e334f7.Borrow(csType_allocs) + ref73cbb121.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73cbb121.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref20e334f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs20e334f7.Borrow(cpNext_allocs) - - var cname_allocs *cgoAllocMap - ref20e334f7.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown - allocs20e334f7.Borrow(cname_allocs) - - 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) + ref73cbb121.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73cbb121.Borrow(cpNext_allocs) - var cdataSize_allocs *cgoAllocMap - ref20e334f7.dataSize, cdataSize_allocs = (C.size_t)(x.DataSize), cgoAllocsUnknown - allocs20e334f7.Borrow(cdataSize_allocs) + var cflags_allocs *cgoAllocMap + ref73cbb121.flags, cflags_allocs = (C.VkAcquireProfilingLockFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs73cbb121.Borrow(cflags_allocs) - var cpData_allocs *cgoAllocMap - ref20e334f7.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown - allocs20e334f7.Borrow(cpData_allocs) + var ctimeout_allocs *cgoAllocMap + ref73cbb121.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown + allocs73cbb121.Borrow(ctimeout_allocs) - x.ref20e334f7 = ref20e334f7 - x.allocs20e334f7 = allocs20e334f7 - return ref20e334f7, allocs20e334f7 + 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 PipelineExecutableInternalRepresentation) PassValue() (C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { - if x.ref20e334f7 != nil { - return *x.ref20e334f7, nil +func (x AcquireProfilingLockInfo) PassValue() (C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { + if x.ref73cbb121 != nil { + return *x.ref73cbb121, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39582,98 +39850,91 @@ func (x PipelineExecutableInternalRepresentation) PassValue() (C.VkPipelineExecu // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineExecutableInternalRepresentation) Deref() { - if x.ref20e334f7 == nil { +func (x *AcquireProfilingLockInfo) Deref() { + if x.ref73cbb121 == nil { return } - 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)) + 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) } -// allocPipelineLibraryCreateInfoMemory allocates memory for type C.VkPipelineLibraryCreateInfoKHR in C. +// allocPerformanceQuerySubmitInfoMemory allocates memory for type C.VkPerformanceQuerySubmitInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLibraryCreateInfoValue)) +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 sizeOfPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLibraryCreateInfoKHR{}) +const sizeOfPerformanceQuerySubmitInfoValue = unsafe.Sizeof([1]C.VkPerformanceQuerySubmitInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineLibraryCreateInfo) Ref() *C.VkPipelineLibraryCreateInfoKHR { +func (x *PerformanceQuerySubmitInfo) Ref() *C.VkPerformanceQuerySubmitInfoKHR { if x == nil { return nil } - return x.ref6bb7541b + 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 *PipelineLibraryCreateInfo) Free() { - if x != nil && x.allocs6bb7541b != nil { - x.allocs6bb7541b.(*cgoAllocMap).Free() - x.ref6bb7541b = nil +func (x *PerformanceQuerySubmitInfo) Free() { + if x != nil && x.allocsbccd2736 != nil { + x.allocsbccd2736.(*cgoAllocMap).Free() + x.refbccd2736 = nil } } -// NewPipelineLibraryCreateInfoRef 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 NewPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *PipelineLibraryCreateInfo { +func NewPerformanceQuerySubmitInfoRef(ref unsafe.Pointer) *PerformanceQuerySubmitInfo { if ref == nil { return nil } - obj := new(PipelineLibraryCreateInfo) - obj.ref6bb7541b = (*C.VkPipelineLibraryCreateInfoKHR)(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 *PipelineLibraryCreateInfo) PassRef() (*C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { +func (x *PerformanceQuerySubmitInfo) PassRef() (*C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bb7541b != nil { - return x.ref6bb7541b, nil + } else if x.refbccd2736 != nil { + return x.refbccd2736, nil } - mem6bb7541b := allocPipelineLibraryCreateInfoMemory(1) - ref6bb7541b := (*C.VkPipelineLibraryCreateInfoKHR)(mem6bb7541b) - allocs6bb7541b := new(cgoAllocMap) - allocs6bb7541b.Add(mem6bb7541b) + membccd2736 := allocPerformanceQuerySubmitInfoMemory(1) + refbccd2736 := (*C.VkPerformanceQuerySubmitInfoKHR)(membccd2736) + allocsbccd2736 := new(cgoAllocMap) + allocsbccd2736.Add(membccd2736) var csType_allocs *cgoAllocMap - ref6bb7541b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6bb7541b.Borrow(csType_allocs) + refbccd2736.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbccd2736.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6bb7541b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6bb7541b.Borrow(cpNext_allocs) - - var clibraryCount_allocs *cgoAllocMap - ref6bb7541b.libraryCount, clibraryCount_allocs = (C.uint32_t)(x.LibraryCount), cgoAllocsUnknown - allocs6bb7541b.Borrow(clibraryCount_allocs) + refbccd2736.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbccd2736.Borrow(cpNext_allocs) - var cpLibraries_allocs *cgoAllocMap - ref6bb7541b.pLibraries, cpLibraries_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PLibraries)).Data)), cgoAllocsUnknown - allocs6bb7541b.Borrow(cpLibraries_allocs) + var ccounterPassIndex_allocs *cgoAllocMap + refbccd2736.counterPassIndex, ccounterPassIndex_allocs = (C.uint32_t)(x.CounterPassIndex), cgoAllocsUnknown + allocsbccd2736.Borrow(ccounterPassIndex_allocs) - x.ref6bb7541b = ref6bb7541b - x.allocs6bb7541b = allocs6bb7541b - return ref6bb7541b, allocs6bb7541b + 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 PipelineLibraryCreateInfo) PassValue() (C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { - if x.ref6bb7541b != nil { - return *x.ref6bb7541b, nil +func (x PerformanceQuerySubmitInfo) PassValue() (C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { + if x.refbccd2736 != nil { + return *x.refbccd2736, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39681,99 +39942,90 @@ func (x PipelineLibraryCreateInfo) PassValue() (C.VkPipelineLibraryCreateInfoKHR // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineLibraryCreateInfo) Deref() { - if x.ref6bb7541b == nil { +func (x *PerformanceQuerySubmitInfo) Deref() { + if x.refbccd2736 == nil { return } - 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 = ? - + x.SType = (StructureType)(x.refbccd2736.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbccd2736.pNext)) + x.CounterPassIndex = (uint32)(x.refbccd2736.counterPassIndex) } -// allocPresentIdMemory allocates memory for type C.VkPresentIdKHR in C. +// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPresentIdMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentIdValue)) +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 sizeOfPresentIdValue = unsafe.Sizeof([1]C.VkPresentIdKHR{}) +const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentId) Ref() *C.VkPresentIdKHR { +func (x *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { if x == nil { return nil } - return x.ref70010623 + 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 *PresentId) Free() { - if x != nil && x.allocs70010623 != nil { - x.allocs70010623.(*cgoAllocMap).Free() - x.ref70010623 = nil +func (x *PhysicalDeviceSurfaceInfo2) Free() { + if x != nil && x.allocsd22370ae != nil { + x.allocsd22370ae.(*cgoAllocMap).Free() + x.refd22370ae = nil } } -// NewPresentIdRef 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 NewPresentIdRef(ref unsafe.Pointer) *PresentId { +func NewPhysicalDeviceSurfaceInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSurfaceInfo2 { if ref == nil { return nil } - obj := new(PresentId) - obj.ref70010623 = (*C.VkPresentIdKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSurfaceInfo2) + obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentId) PassRef() (*C.VkPresentIdKHR, *cgoAllocMap) { +func (x *PhysicalDeviceSurfaceInfo2) PassRef() (*C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref70010623 != nil { - return x.ref70010623, nil + } else if x.refd22370ae != nil { + return x.refd22370ae, nil } - mem70010623 := allocPresentIdMemory(1) - ref70010623 := (*C.VkPresentIdKHR)(mem70010623) - allocs70010623 := new(cgoAllocMap) - allocs70010623.Add(mem70010623) + memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) + refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) + allocsd22370ae := new(cgoAllocMap) + allocsd22370ae.Add(memd22370ae) var csType_allocs *cgoAllocMap - ref70010623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs70010623.Borrow(csType_allocs) + refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd22370ae.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref70010623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs70010623.Borrow(cpNext_allocs) - - var cswapchainCount_allocs *cgoAllocMap - ref70010623.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs70010623.Borrow(cswapchainCount_allocs) + refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd22370ae.Borrow(cpNext_allocs) - var cpPresentIds_allocs *cgoAllocMap - ref70010623.pPresentIds, cpPresentIds_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentIds)).Data)), cgoAllocsUnknown - allocs70010623.Borrow(cpPresentIds_allocs) + var csurface_allocs *cgoAllocMap + refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown + allocsd22370ae.Borrow(csurface_allocs) - x.ref70010623 = ref70010623 - x.allocs70010623 = allocs70010623 - return ref70010623, allocs70010623 + 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 PresentId) PassValue() (C.VkPresentIdKHR, *cgoAllocMap) { - if x.ref70010623 != nil { - return *x.ref70010623, nil +func (x PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { + if x.refd22370ae != nil { + return *x.refd22370ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39781,95 +40033,90 @@ func (x PresentId) PassValue() (C.VkPresentIdKHR, *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 *PresentId) Deref() { - if x.ref70010623 == nil { +func (x *PhysicalDeviceSurfaceInfo2) Deref() { + if x.refd22370ae == nil { return } - 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 = ? - + x.SType = (StructureType)(x.refd22370ae.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd22370ae.pNext)) + x.Surface = *(*Surface)(unsafe.Pointer(&x.refd22370ae.surface)) } -// allocPhysicalDevicePresentIdFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentIdFeaturesKHR in C. +// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePresentIdFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentIdFeaturesValue)) +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 sizeOfPhysicalDevicePresentIdFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentIdFeaturesKHR{}) +const sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePresentIdFeatures) Ref() *C.VkPhysicalDevicePresentIdFeaturesKHR { +func (x *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { if x == nil { return nil } - return x.refba9945cd + 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 *PhysicalDevicePresentIdFeatures) Free() { - if x != nil && x.allocsba9945cd != nil { - x.allocsba9945cd.(*cgoAllocMap).Free() - x.refba9945cd = nil +func (x *SurfaceCapabilities2) Free() { + if x != nil && x.allocsea469745 != nil { + x.allocsea469745.(*cgoAllocMap).Free() + x.refea469745 = nil } } -// NewPhysicalDevicePresentIdFeaturesRef 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 NewPhysicalDevicePresentIdFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentIdFeatures { +func NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { if ref == nil { return nil } - obj := new(PhysicalDevicePresentIdFeatures) - obj.refba9945cd = (*C.VkPhysicalDevicePresentIdFeaturesKHR)(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 *PhysicalDevicePresentIdFeatures) PassRef() (*C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { +func (x *SurfaceCapabilities2) PassRef() (*C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refba9945cd != nil { - return x.refba9945cd, nil + } else if x.refea469745 != nil { + return x.refea469745, nil } - memba9945cd := allocPhysicalDevicePresentIdFeaturesMemory(1) - refba9945cd := (*C.VkPhysicalDevicePresentIdFeaturesKHR)(memba9945cd) - allocsba9945cd := new(cgoAllocMap) - allocsba9945cd.Add(memba9945cd) + memea469745 := allocSurfaceCapabilities2Memory(1) + refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) + allocsea469745 := new(cgoAllocMap) + allocsea469745.Add(memea469745) var csType_allocs *cgoAllocMap - refba9945cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsba9945cd.Borrow(csType_allocs) + refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea469745.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refba9945cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsba9945cd.Borrow(cpNext_allocs) + refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea469745.Borrow(cpNext_allocs) - var cpresentId_allocs *cgoAllocMap - refba9945cd.presentId, cpresentId_allocs = (C.VkBool32)(x.PresentId), cgoAllocsUnknown - allocsba9945cd.Borrow(cpresentId_allocs) + var csurfaceCapabilities_allocs *cgoAllocMap + refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() + allocsea469745.Borrow(csurfaceCapabilities_allocs) - x.refba9945cd = refba9945cd - x.allocsba9945cd = allocsba9945cd - return refba9945cd, allocsba9945cd + 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 PhysicalDevicePresentIdFeatures) PassValue() (C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { - if x.refba9945cd != nil { - return *x.refba9945cd, nil +func (x SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { + if x.refea469745 != nil { + return *x.refea469745, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39877,90 +40124,90 @@ func (x PhysicalDevicePresentIdFeatures) PassValue() (C.VkPhysicalDevicePresentI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePresentIdFeatures) Deref() { - if x.refba9945cd == nil { +func (x *SurfaceCapabilities2) Deref() { + if x.refea469745 == nil { return } - x.SType = (StructureType)(x.refba9945cd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba9945cd.pNext)) - x.PresentId = (Bool32)(x.refba9945cd.presentId) + x.SType = (StructureType)(x.refea469745.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea469745.pNext)) + x.SurfaceCapabilities = *NewSurfaceCapabilitiesRef(unsafe.Pointer(&x.refea469745.surfaceCapabilities)) } -// allocQueueFamilyCheckpointProperties2NVMemory allocates memory for type C.VkQueueFamilyCheckpointProperties2NV in C. +// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueueFamilyCheckpointProperties2NVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointProperties2NVValue)) +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 sizeOfQueueFamilyCheckpointProperties2NVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointProperties2NV{}) +const sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyCheckpointProperties2NV) Ref() *C.VkQueueFamilyCheckpointProperties2NV { +func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { if x == nil { return nil } - return x.reffdc86afc + 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 *QueueFamilyCheckpointProperties2NV) Free() { - if x != nil && x.allocsfdc86afc != nil { - x.allocsfdc86afc.(*cgoAllocMap).Free() - x.reffdc86afc = nil +func (x *SurfaceFormat2) Free() { + if x != nil && x.allocs8867f0ed != nil { + x.allocs8867f0ed.(*cgoAllocMap).Free() + x.ref8867f0ed = nil } } -// NewQueueFamilyCheckpointProperties2NVRef 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 NewQueueFamilyCheckpointProperties2NVRef(ref unsafe.Pointer) *QueueFamilyCheckpointProperties2NV { +func NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { if ref == nil { return nil } - obj := new(QueueFamilyCheckpointProperties2NV) - obj.reffdc86afc = (*C.VkQueueFamilyCheckpointProperties2NV)(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 *QueueFamilyCheckpointProperties2NV) PassRef() (*C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { +func (x *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffdc86afc != nil { - return x.reffdc86afc, nil + } else if x.ref8867f0ed != nil { + return x.ref8867f0ed, nil } - memfdc86afc := allocQueueFamilyCheckpointProperties2NVMemory(1) - reffdc86afc := (*C.VkQueueFamilyCheckpointProperties2NV)(memfdc86afc) - allocsfdc86afc := new(cgoAllocMap) - allocsfdc86afc.Add(memfdc86afc) + mem8867f0ed := allocSurfaceFormat2Memory(1) + ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) + allocs8867f0ed := new(cgoAllocMap) + allocs8867f0ed.Add(mem8867f0ed) var csType_allocs *cgoAllocMap - reffdc86afc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfdc86afc.Borrow(csType_allocs) + ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8867f0ed.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffdc86afc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfdc86afc.Borrow(cpNext_allocs) + ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8867f0ed.Borrow(cpNext_allocs) - var ccheckpointExecutionStageMask_allocs *cgoAllocMap - reffdc86afc.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags2)(x.CheckpointExecutionStageMask), cgoAllocsUnknown - allocsfdc86afc.Borrow(ccheckpointExecutionStageMask_allocs) + var csurfaceFormat_allocs *cgoAllocMap + ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() + allocs8867f0ed.Borrow(csurfaceFormat_allocs) - x.reffdc86afc = reffdc86afc - x.allocsfdc86afc = allocsfdc86afc - return reffdc86afc, allocsfdc86afc + 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 QueueFamilyCheckpointProperties2NV) PassValue() (C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { - if x.reffdc86afc != nil { - return *x.reffdc86afc, nil +func (x SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { + if x.ref8867f0ed != nil { + return *x.ref8867f0ed, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39968,94 +40215,90 @@ func (x QueueFamilyCheckpointProperties2NV) PassValue() (C.VkQueueFamilyCheckpoi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueueFamilyCheckpointProperties2NV) Deref() { - if x.reffdc86afc == nil { +func (x *SurfaceFormat2) Deref() { + if x.ref8867f0ed == nil { return } - x.SType = (StructureType)(x.reffdc86afc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffdc86afc.pNext)) - x.CheckpointExecutionStageMask = (PipelineStageFlags2)(x.reffdc86afc.checkpointExecutionStageMask) + x.SType = (StructureType)(x.ref8867f0ed.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8867f0ed.pNext)) + x.SurfaceFormat = *NewSurfaceFormatRef(unsafe.Pointer(&x.ref8867f0ed.surfaceFormat)) } -// allocCheckpointData2NVMemory allocates memory for type C.VkCheckpointData2NV in C. +// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocCheckpointData2NVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointData2NVValue)) +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 sizeOfCheckpointData2NVValue = unsafe.Sizeof([1]C.VkCheckpointData2NV{}) +const sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CheckpointData2NV) Ref() *C.VkCheckpointData2NV { +func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { if x == nil { return nil } - return x.ref6e25431b + 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 *CheckpointData2NV) Free() { - if x != nil && x.allocs6e25431b != nil { - x.allocs6e25431b.(*cgoAllocMap).Free() - x.ref6e25431b = nil +func (x *DisplayProperties2) Free() { + if x != nil && x.allocs80194833 != nil { + x.allocs80194833.(*cgoAllocMap).Free() + x.ref80194833 = nil } } -// NewCheckpointData2NVRef 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 NewCheckpointData2NVRef(ref unsafe.Pointer) *CheckpointData2NV { +func NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { if ref == nil { return nil } - obj := new(CheckpointData2NV) - obj.ref6e25431b = (*C.VkCheckpointData2NV)(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 *CheckpointData2NV) PassRef() (*C.VkCheckpointData2NV, *cgoAllocMap) { +func (x *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6e25431b != nil { - return x.ref6e25431b, nil + } else if x.ref80194833 != nil { + return x.ref80194833, nil } - mem6e25431b := allocCheckpointData2NVMemory(1) - ref6e25431b := (*C.VkCheckpointData2NV)(mem6e25431b) - allocs6e25431b := new(cgoAllocMap) - allocs6e25431b.Add(mem6e25431b) + mem80194833 := allocDisplayProperties2Memory(1) + ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) + allocs80194833 := new(cgoAllocMap) + allocs80194833.Add(mem80194833) var csType_allocs *cgoAllocMap - ref6e25431b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6e25431b.Borrow(csType_allocs) + ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80194833.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6e25431b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6e25431b.Borrow(cpNext_allocs) - - var cstage_allocs *cgoAllocMap - ref6e25431b.stage, cstage_allocs = (C.VkPipelineStageFlags2)(x.Stage), cgoAllocsUnknown - allocs6e25431b.Borrow(cstage_allocs) + ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80194833.Borrow(cpNext_allocs) - var cpCheckpointMarker_allocs *cgoAllocMap - ref6e25431b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown - allocs6e25431b.Borrow(cpCheckpointMarker_allocs) + var cdisplayProperties_allocs *cgoAllocMap + ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() + allocs80194833.Borrow(cdisplayProperties_allocs) - x.ref6e25431b = ref6e25431b - x.allocs6e25431b = allocs6e25431b - return ref6e25431b, allocs6e25431b + 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 CheckpointData2NV) PassValue() (C.VkCheckpointData2NV, *cgoAllocMap) { - if x.ref6e25431b != nil { - return *x.ref6e25431b, nil +func (x DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { + if x.ref80194833 != nil { + return *x.ref80194833, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40063,91 +40306,90 @@ func (x CheckpointData2NV) PassValue() (C.VkCheckpointData2NV, *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 *CheckpointData2NV) Deref() { - if x.ref6e25431b == nil { +func (x *DisplayProperties2) Deref() { + if x.ref80194833 == nil { return } - 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)) + x.SType = (StructureType)(x.ref80194833.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80194833.pNext)) + x.DisplayProperties = *NewDisplayPropertiesRef(unsafe.Pointer(&x.ref80194833.displayProperties)) } -// allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR in C. +// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue)) +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 sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR{}) +const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Ref() *C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { +func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { if x == nil { return nil } - return x.refadc1f19 + 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 *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Free() { - if x != nil && x.allocsadc1f19 != nil { - x.allocsadc1f19.(*cgoAllocMap).Free() - x.refadc1f19 = nil +func (x *DisplayPlaneProperties2) Free() { + if x != nil && x.allocsa72b1e5b != nil { + x.allocsa72b1e5b.(*cgoAllocMap).Free() + x.refa72b1e5b = nil } } -// NewPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesRef 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 NewPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures { +func NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) - obj.refadc1f19 = (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)(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 *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassRef() (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { +func (x *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refadc1f19 != nil { - return x.refadc1f19, nil + } else if x.refa72b1e5b != nil { + return x.refa72b1e5b, nil } - memadc1f19 := allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(1) - refadc1f19 := (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)(memadc1f19) - allocsadc1f19 := new(cgoAllocMap) - allocsadc1f19.Add(memadc1f19) + mema72b1e5b := allocDisplayPlaneProperties2Memory(1) + refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) + allocsa72b1e5b := new(cgoAllocMap) + allocsa72b1e5b.Add(mema72b1e5b) var csType_allocs *cgoAllocMap - refadc1f19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsadc1f19.Borrow(csType_allocs) + refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa72b1e5b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refadc1f19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsadc1f19.Borrow(cpNext_allocs) + refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa72b1e5b.Borrow(cpNext_allocs) - var cshaderSubgroupUniformControlFlow_allocs *cgoAllocMap - refadc1f19.shaderSubgroupUniformControlFlow, cshaderSubgroupUniformControlFlow_allocs = (C.VkBool32)(x.ShaderSubgroupUniformControlFlow), cgoAllocsUnknown - allocsadc1f19.Borrow(cshaderSubgroupUniformControlFlow_allocs) + var cdisplayPlaneProperties_allocs *cgoAllocMap + refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() + allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) - x.refadc1f19 = refadc1f19 - x.allocsadc1f19 = allocsadc1f19 - return refadc1f19, allocsadc1f19 + 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 PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassValue() (C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { - if x.refadc1f19 != nil { - return *x.refadc1f19, nil +func (x DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { + if x.refa72b1e5b != nil { + return *x.refa72b1e5b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40155,102 +40397,90 @@ func (x PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassValue() (C.V // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Deref() { - if x.refadc1f19 == nil { +func (x *DisplayPlaneProperties2) Deref() { + if x.refa72b1e5b == nil { return } - x.SType = (StructureType)(x.refadc1f19.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refadc1f19.pNext)) - x.ShaderSubgroupUniformControlFlow = (Bool32)(x.refadc1f19.shaderSubgroupUniformControlFlow) + x.SType = (StructureType)(x.refa72b1e5b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa72b1e5b.pNext)) + x.DisplayPlaneProperties = *NewDisplayPlanePropertiesRef(unsafe.Pointer(&x.refa72b1e5b.displayPlaneProperties)) } -// allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR in C. +// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue)) +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 sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{}) +const sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Ref() *C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { +func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { if x == nil { return nil } - return x.ref288a691 + return x.refc566048d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Free() { - if x != nil && x.allocs288a691 != nil { - x.allocs288a691.(*cgoAllocMap).Free() - x.ref288a691 = nil +func (x *DisplayModeProperties2) Free() { + if x != nil && x.allocsc566048d != nil { + x.allocsc566048d.(*cgoAllocMap).Free() + x.refc566048d = nil } } -// NewPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures { +func NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { if ref == nil { return nil } - obj := new(PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) - obj.ref288a691 = (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)(unsafe.Pointer(ref)) + 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 *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassRef() (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { +func (x *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref288a691 != nil { - return x.ref288a691, nil + } else if x.refc566048d != nil { + return x.refc566048d, nil } - mem288a691 := allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(1) - ref288a691 := (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)(mem288a691) - allocs288a691 := new(cgoAllocMap) - allocs288a691.Add(mem288a691) + memc566048d := allocDisplayModeProperties2Memory(1) + refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) + allocsc566048d := new(cgoAllocMap) + allocsc566048d.Add(memc566048d) var csType_allocs *cgoAllocMap - ref288a691.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs288a691.Borrow(csType_allocs) + refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc566048d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref288a691.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs288a691.Borrow(cpNext_allocs) - - var cworkgroupMemoryExplicitLayout_allocs *cgoAllocMap - ref288a691.workgroupMemoryExplicitLayout, cworkgroupMemoryExplicitLayout_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout), cgoAllocsUnknown - allocs288a691.Borrow(cworkgroupMemoryExplicitLayout_allocs) - - 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) + refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc566048d.Borrow(cpNext_allocs) - var cworkgroupMemoryExplicitLayout16BitAccess_allocs *cgoAllocMap - ref288a691.workgroupMemoryExplicitLayout16BitAccess, cworkgroupMemoryExplicitLayout16BitAccess_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout16BitAccess), cgoAllocsUnknown - allocs288a691.Borrow(cworkgroupMemoryExplicitLayout16BitAccess_allocs) + var cdisplayModeProperties_allocs *cgoAllocMap + refc566048d.displayModeProperties, cdisplayModeProperties_allocs = x.DisplayModeProperties.PassValue() + allocsc566048d.Borrow(cdisplayModeProperties_allocs) - x.ref288a691 = ref288a691 - x.allocs288a691 = allocs288a691 - return ref288a691, allocs288a691 + 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 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassValue() (C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { - if x.ref288a691 != nil { - return *x.ref288a691, nil +func (x DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { + if x.refc566048d != nil { + return *x.refc566048d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40258,145 +40488,94 @@ func (x PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassValue() (C.VkPh // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Deref() { - if x.ref288a691 == nil { +func (x *DisplayModeProperties2) Deref() { + if x.refc566048d == nil { return } - 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) -} - -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?)") + x.SType = (StructureType)(x.refc566048d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc566048d.pNext)) + x.DisplayModeProperties = *NewDisplayModePropertiesRef(unsafe.Pointer(&x.refc566048d.displayModeProperties)) } -var debugReportCallbackFuncC918AAC4Func DebugReportCallbackFunc - -// allocDebugReportCallbackCreateInfoMemory allocates memory for type C.VkDebugReportCallbackCreateInfoEXT in C. +// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR 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 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 sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) +const sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { +func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { if x == nil { return nil } - return x.refc8238563 + 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 *DebugReportCallbackCreateInfo) Free() { - if x != nil && x.allocsc8238563 != nil { - x.allocsc8238563.(*cgoAllocMap).Free() - x.refc8238563 = nil +func (x *DisplayPlaneInfo2) Free() { + if x != nil && x.allocsf355ccbf != nil { + x.allocsf355ccbf.(*cgoAllocMap).Free() + x.reff355ccbf = nil } } -// NewDebugReportCallbackCreateInfoRef 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 NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { +func NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { if ref == nil { return nil } - obj := new(DebugReportCallbackCreateInfo) - obj.refc8238563 = (*C.VkDebugReportCallbackCreateInfoEXT)(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 *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { +func (x *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc8238563 != nil { - return x.refc8238563, nil + } else if x.reff355ccbf != nil { + return x.reff355ccbf, nil } - memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) - refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) - allocsc8238563 := new(cgoAllocMap) - allocsc8238563.Add(memc8238563) + memf355ccbf := allocDisplayPlaneInfo2Memory(1) + reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) + allocsf355ccbf := new(cgoAllocMap) + allocsf355ccbf.Add(memf355ccbf) var csType_allocs *cgoAllocMap - refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc8238563.Borrow(csType_allocs) + reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf355ccbf.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) + reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cpNext_allocs) - var cpfnCallback_allocs *cgoAllocMap - refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() - allocsc8238563.Borrow(cpfnCallback_allocs) + var cmode_allocs *cgoAllocMap + reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cmode_allocs) - var cpUserData_allocs *cgoAllocMap - refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown - allocsc8238563.Borrow(cpUserData_allocs) + var cplaneIndex_allocs *cgoAllocMap + reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown + allocsf355ccbf.Borrow(cplaneIndex_allocs) - x.refc8238563 = refc8238563 - x.allocsc8238563 = allocsc8238563 - return refc8238563, allocsc8238563 + 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 DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { - if x.refc8238563 != nil { - return *x.refc8238563, nil +func (x DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { + if x.reff355ccbf != nil { + return *x.reff355ccbf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40404,92 +40583,91 @@ 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 *DisplayPlaneInfo2) Deref() { + if x.reff355ccbf == 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.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) } -// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD in C. +// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR 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 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 sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) +const sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { +func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { if x == nil { return nil } - return x.ref5098cf82 + 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 *PipelineRasterizationStateRasterizationOrderAMD) Free() { - if x != nil && x.allocs5098cf82 != nil { - x.allocs5098cf82.(*cgoAllocMap).Free() - x.ref5098cf82 = nil +func (x *DisplayPlaneCapabilities2) Free() { + if x != nil && x.allocsb53dfb44 != nil { + x.allocsb53dfb44.(*cgoAllocMap).Free() + x.refb53dfb44 = nil } } -// NewPipelineRasterizationStateRasterizationOrderAMDRef 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 NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { +func NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { if ref == nil { return nil } - obj := new(PipelineRasterizationStateRasterizationOrderAMD) - obj.ref5098cf82 = (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(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 *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { +func (x *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5098cf82 != nil { - return x.ref5098cf82, nil + } else if x.refb53dfb44 != nil { + return x.refb53dfb44, nil } - mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) - ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) - allocs5098cf82 := new(cgoAllocMap) - allocs5098cf82.Add(mem5098cf82) + memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) + refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) + allocsb53dfb44 := new(cgoAllocMap) + allocsb53dfb44.Add(memb53dfb44) var csType_allocs *cgoAllocMap - ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5098cf82.Borrow(csType_allocs) + refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb53dfb44.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5098cf82.Borrow(cpNext_allocs) + refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb53dfb44.Borrow(cpNext_allocs) - var crasterizationOrder_allocs *cgoAllocMap - ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown - allocs5098cf82.Borrow(crasterizationOrder_allocs) + var ccapabilities_allocs *cgoAllocMap + refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() + allocsb53dfb44.Borrow(ccapabilities_allocs) - x.ref5098cf82 = ref5098cf82 - x.allocs5098cf82 = allocs5098cf82 - return ref5098cf82, allocs5098cf82 + 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 PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { - if x.ref5098cf82 != nil { - return *x.ref5098cf82, nil +func (x DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { + if x.refb53dfb44 != nil { + return *x.refb53dfb44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40497,98 +40675,94 @@ 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 *DisplayPlaneCapabilities2) Deref() { + if x.refb53dfb44 == 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.refb53dfb44.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb53dfb44.pNext)) + x.Capabilities = *NewDisplayPlaneCapabilitiesRef(unsafe.Pointer(&x.refb53dfb44.capabilities)) } -// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT in C. +// allocPhysicalDeviceShaderClockFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderClockFeaturesKHR 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 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 sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) +const sizeOfPhysicalDeviceShaderClockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderClockFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { +func (x *PhysicalDeviceShaderClockFeatures) Ref() *C.VkPhysicalDeviceShaderClockFeaturesKHR { if x == nil { return nil } - return x.refe4983fab + 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 *DebugMarkerObjectNameInfo) Free() { - if x != nil && x.allocse4983fab != nil { - x.allocse4983fab.(*cgoAllocMap).Free() - x.refe4983fab = nil +func (x *PhysicalDeviceShaderClockFeatures) Free() { + if x != nil && x.allocsab512283 != nil { + x.allocsab512283.(*cgoAllocMap).Free() + x.refab512283 = nil } } -// NewDebugMarkerObjectNameInfoRef 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 NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { +func NewPhysicalDeviceShaderClockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderClockFeatures { if ref == nil { return nil } - obj := new(DebugMarkerObjectNameInfo) - obj.refe4983fab = (*C.VkDebugMarkerObjectNameInfoEXT)(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 *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderClockFeatures) PassRef() (*C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe4983fab != nil { - return x.refe4983fab, nil + } else if x.refab512283 != nil { + return x.refab512283, nil } - meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) - refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) - allocse4983fab := new(cgoAllocMap) - allocse4983fab.Add(meme4983fab) + memab512283 := allocPhysicalDeviceShaderClockFeaturesMemory(1) + refab512283 := (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(memab512283) + allocsab512283 := new(cgoAllocMap) + allocsab512283.Add(memab512283) var csType_allocs *cgoAllocMap - refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse4983fab.Borrow(csType_allocs) + refab512283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsab512283.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse4983fab.Borrow(cpNext_allocs) - - var cobjectType_allocs *cgoAllocMap - refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown - allocse4983fab.Borrow(cobjectType_allocs) + refab512283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsab512283.Borrow(cpNext_allocs) - var cobject_allocs *cgoAllocMap - refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown - allocse4983fab.Borrow(cobject_allocs) + var cshaderSubgroupClock_allocs *cgoAllocMap + refab512283.shaderSubgroupClock, cshaderSubgroupClock_allocs = (C.VkBool32)(x.ShaderSubgroupClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderSubgroupClock_allocs) - var cpObjectName_allocs *cgoAllocMap - refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocse4983fab.Borrow(cpObjectName_allocs) + var cshaderDeviceClock_allocs *cgoAllocMap + refab512283.shaderDeviceClock, cshaderDeviceClock_allocs = (C.VkBool32)(x.ShaderDeviceClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderDeviceClock_allocs) - x.refe4983fab = refe4983fab - x.allocse4983fab = allocse4983fab - return refe4983fab, allocse4983fab + 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 DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { - if x.refe4983fab != nil { - return *x.refe4983fab, nil +func (x PhysicalDeviceShaderClockFeatures) PassValue() (C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { + if x.refab512283 != nil { + return *x.refab512283, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40596,207 +40770,173 @@ 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 *PhysicalDeviceShaderClockFeatures) Deref() { + if x.refab512283 == 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.refab512283.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refab512283.pNext)) + x.ShaderSubgroupClock = (Bool32)(x.refab512283.shaderSubgroupClock) + x.ShaderDeviceClock = (Bool32)(x.refab512283.shaderDeviceClock) } -// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT in C. +// allocVideoDecodeH265ProfileInfoMemory allocates memory for type C.VkVideoDecodeH265ProfileInfoKHR 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 allocVideoDecodeH265ProfileInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265ProfileInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) +const sizeOfVideoDecodeH265ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265ProfileInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { +func (x *VideoDecodeH265ProfileInfo) Ref() *C.VkVideoDecodeH265ProfileInfoKHR { if x == nil { return nil } - return x.refa41a5c3b + return x.refe4076e29 } // Free invokes alloc map'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 *VideoDecodeH265ProfileInfo) Free() { + if x != nil && x.allocse4076e29 != nil { + x.allocse4076e29.(*cgoAllocMap).Free() + x.refe4076e29 = nil } } -// NewDebugMarkerObjectTagInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265ProfileInfoRef creates a new 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 NewVideoDecodeH265ProfileInfoRef(ref unsafe.Pointer) *VideoDecodeH265ProfileInfo { if ref == nil { return nil } - obj := new(DebugMarkerObjectTagInfo) - obj.refa41a5c3b = (*C.VkDebugMarkerObjectTagInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265ProfileInfo) + obj.refe4076e29 = (*C.VkVideoDecodeH265ProfileInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265ProfileInfo) PassRef() (*C.VkVideoDecodeH265ProfileInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa41a5c3b != nil { - return x.refa41a5c3b, nil + } else if x.refe4076e29 != nil { + return x.refe4076e29, nil } - mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) - refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) - allocsa41a5c3b := new(cgoAllocMap) - allocsa41a5c3b.Add(mema41a5c3b) + meme4076e29 := allocVideoDecodeH265ProfileInfoMemory(1) + refe4076e29 := (*C.VkVideoDecodeH265ProfileInfoKHR)(meme4076e29) + allocse4076e29 := new(cgoAllocMap) + allocse4076e29.Add(meme4076e29) var csType_allocs *cgoAllocMap - refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa41a5c3b.Borrow(csType_allocs) + refe4076e29.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse4076e29.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa41a5c3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cpNext_allocs) + refe4076e29.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse4076e29.Borrow(cpNext_allocs) - var cobjectType_allocs *cgoAllocMap - refa41a5c3b.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cobjectType_allocs) + x.refe4076e29 = refe4076e29 + x.allocse4076e29 = allocse4076e29 + return refe4076e29, allocse4076e29 - 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) - - 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 DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { - if x.refa41a5c3b != nil { - return *x.refa41a5c3b, nil - } - ref, allocs := x.PassRef() - return *ref, allocs -} +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x VideoDecodeH265ProfileInfo) PassValue() (C.VkVideoDecodeH265ProfileInfoKHR, *cgoAllocMap) { + if x.refe4076e29 != nil { + return *x.refe4076e29, 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 *DebugMarkerObjectTagInfo) Deref() { - if x.refa41a5c3b == nil { +func (x *VideoDecodeH265ProfileInfo) Deref() { + if x.refe4076e29 == 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 = (uint64)(x.refa41a5c3b.tagSize) - x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pTag)) + x.SType = (StructureType)(x.refe4076e29.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe4076e29.pNext)) } -// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT in C. +// allocVideoDecodeH265CapabilitiesMemory allocates memory for type C.VkVideoDecodeH265CapabilitiesKHR 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 allocVideoDecodeH265CapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265CapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) +const sizeOfVideoDecodeH265CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeH265CapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { +func (x *VideoDecodeH265Capabilities) Ref() *C.VkVideoDecodeH265CapabilitiesKHR { if x == nil { return nil } - return x.ref234b91fd + return x.refd2735383 } // Free invokes alloc map'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 *VideoDecodeH265Capabilities) Free() { + if x != nil && x.allocsd2735383 != nil { + x.allocsd2735383.(*cgoAllocMap).Free() + x.refd2735383 = nil } } -// NewDebugMarkerMarkerInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265CapabilitiesRef creates a new 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 NewVideoDecodeH265CapabilitiesRef(ref unsafe.Pointer) *VideoDecodeH265Capabilities { if ref == nil { return nil } - obj := new(DebugMarkerMarkerInfo) - obj.ref234b91fd = (*C.VkDebugMarkerMarkerInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265Capabilities) + obj.refd2735383 = (*C.VkVideoDecodeH265CapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265Capabilities) PassRef() (*C.VkVideoDecodeH265CapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref234b91fd != nil { - return x.ref234b91fd, nil + } else if x.refd2735383 != nil { + return x.refd2735383, nil } - mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) - ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) - allocs234b91fd := new(cgoAllocMap) - allocs234b91fd.Add(mem234b91fd) + memd2735383 := allocVideoDecodeH265CapabilitiesMemory(1) + refd2735383 := (*C.VkVideoDecodeH265CapabilitiesKHR)(memd2735383) + allocsd2735383 := new(cgoAllocMap) + allocsd2735383.Add(memd2735383) var csType_allocs *cgoAllocMap - ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs234b91fd.Borrow(csType_allocs) + refd2735383.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd2735383.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) - - var ccolor_allocs *cgoAllocMap - ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs234b91fd.Borrow(ccolor_allocs) + refd2735383.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd2735383.Borrow(cpNext_allocs) - x.ref234b91fd = ref234b91fd - x.allocs234b91fd = allocs234b91fd - return ref234b91fd, allocs234b91fd + x.refd2735383 = refd2735383 + x.allocsd2735383 = allocsd2735383 + return refd2735383, allocsd2735383 } // 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 VideoDecodeH265Capabilities) PassValue() (C.VkVideoDecodeH265CapabilitiesKHR, *cgoAllocMap) { + if x.refd2735383 != nil { + return *x.refd2735383, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40804,91 +40944,97 @@ 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 *VideoDecodeH265Capabilities) Deref() { + if x.refd2735383 == 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.refd2735383.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd2735383.pNext)) } -// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV in C. +// allocVideoDecodeH265SessionParametersAddInfoMemory allocates memory for type C.VkVideoDecodeH265SessionParametersAddInfoKHR 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 allocVideoDecodeH265SessionParametersAddInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265SessionParametersAddInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) +const sizeOfVideoDecodeH265SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265SessionParametersAddInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { +func (x *VideoDecodeH265SessionParametersAddInfo) Ref() *C.VkVideoDecodeH265SessionParametersAddInfoKHR { if x == nil { return nil } - return x.ref685d878b + return x.refa6d463b3 } // Free invokes alloc map'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 *VideoDecodeH265SessionParametersAddInfo) Free() { + if x != nil && x.allocsa6d463b3 != nil { + x.allocsa6d463b3.(*cgoAllocMap).Free() + x.refa6d463b3 = nil } } -// NewDedicatedAllocationImageCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265SessionParametersAddInfoRef creates a new 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 NewVideoDecodeH265SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoDecodeH265SessionParametersAddInfo { if ref == nil { return nil } - obj := new(DedicatedAllocationImageCreateInfoNV) - obj.ref685d878b = (*C.VkDedicatedAllocationImageCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265SessionParametersAddInfo) + obj.refa6d463b3 = (*C.VkVideoDecodeH265SessionParametersAddInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265SessionParametersAddInfo) PassRef() (*C.VkVideoDecodeH265SessionParametersAddInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref685d878b != nil { - return x.ref685d878b, nil + } else if x.refa6d463b3 != nil { + return x.refa6d463b3, nil } - mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) - ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) - allocs685d878b := new(cgoAllocMap) - allocs685d878b.Add(mem685d878b) + mema6d463b3 := allocVideoDecodeH265SessionParametersAddInfoMemory(1) + refa6d463b3 := (*C.VkVideoDecodeH265SessionParametersAddInfoKHR)(mema6d463b3) + allocsa6d463b3 := new(cgoAllocMap) + allocsa6d463b3.Add(mema6d463b3) var csType_allocs *cgoAllocMap - ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs685d878b.Borrow(csType_allocs) + refa6d463b3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa6d463b3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs685d878b.Borrow(cpNext_allocs) + refa6d463b3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa6d463b3.Borrow(cpNext_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocs685d878b.Borrow(cdedicatedAllocation_allocs) + var cstdVPSCount_allocs *cgoAllocMap + refa6d463b3.stdVPSCount, cstdVPSCount_allocs = (C.uint32_t)(x.StdVPSCount), cgoAllocsUnknown + allocsa6d463b3.Borrow(cstdVPSCount_allocs) - x.ref685d878b = ref685d878b - x.allocs685d878b = allocs685d878b - return ref685d878b, allocs685d878b + var cstdSPSCount_allocs *cgoAllocMap + refa6d463b3.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown + allocsa6d463b3.Borrow(cstdSPSCount_allocs) + + var cstdPPSCount_allocs *cgoAllocMap + refa6d463b3.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown + allocsa6d463b3.Borrow(cstdPPSCount_allocs) + + x.refa6d463b3 = refa6d463b3 + x.allocsa6d463b3 = allocsa6d463b3 + return refa6d463b3, allocsa6d463b3 } // 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 VideoDecodeH265SessionParametersAddInfo) PassValue() (C.VkVideoDecodeH265SessionParametersAddInfoKHR, *cgoAllocMap) { + if x.refa6d463b3 != nil { + return *x.refa6d463b3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40896,90 +41042,142 @@ 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 *VideoDecodeH265SessionParametersAddInfo) Deref() { + if x.refa6d463b3 == nil { return } - x.SType = (StructureType)(x.ref685d878b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) - x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) + x.SType = (StructureType)(x.refa6d463b3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6d463b3.pNext)) + x.StdVPSCount = (uint32)(x.refa6d463b3.stdVPSCount) + x.StdSPSCount = (uint32)(x.refa6d463b3.stdSPSCount) + x.StdPPSCount = (uint32)(x.refa6d463b3.stdPPSCount) } -// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV in C. +// allocVideoDecodeH265SessionParametersCreateInfoMemory allocates memory for type C.VkVideoDecodeH265SessionParametersCreateInfoKHR 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)) +func allocVideoDecodeH265SessionParametersCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265SessionParametersCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) +const sizeOfVideoDecodeH265SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265SessionParametersCreateInfoKHR{}) + +// unpackSVideoDecodeH265SessionParametersAddInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoDecodeH265SessionParametersAddInfo(x []VideoDecodeH265SessionParametersAddInfo) (unpacked *C.VkVideoDecodeH265SessionParametersAddInfoKHR, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoDecodeH265SessionParametersAddInfoKHR) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoDecodeH265SessionParametersAddInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoDecodeH265SessionParametersAddInfoKHR)(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.VkVideoDecodeH265SessionParametersAddInfoKHR)(h.Data) + return +} + +// packSVideoDecodeH265SessionParametersAddInfo reads sliced Go data structure out from plain C format. +func packSVideoDecodeH265SessionParametersAddInfo(v []VideoDecodeH265SessionParametersAddInfo, ptr0 *C.VkVideoDecodeH265SessionParametersAddInfoKHR) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoDecodeH265SessionParametersAddInfoValue]C.VkVideoDecodeH265SessionParametersAddInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoDecodeH265SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { +func (x *VideoDecodeH265SessionParametersCreateInfo) Ref() *C.VkVideoDecodeH265SessionParametersCreateInfoKHR { if x == nil { return nil } - return x.refbc745a8 + return x.ref189da725 } // Free invokes alloc map'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 *VideoDecodeH265SessionParametersCreateInfo) Free() { + if x != nil && x.allocs189da725 != nil { + x.allocs189da725.(*cgoAllocMap).Free() + x.ref189da725 = nil } } -// NewDedicatedAllocationBufferCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265SessionParametersCreateInfoRef creates a new 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 NewVideoDecodeH265SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoDecodeH265SessionParametersCreateInfo { if ref == nil { return nil } - obj := new(DedicatedAllocationBufferCreateInfoNV) - obj.refbc745a8 = (*C.VkDedicatedAllocationBufferCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265SessionParametersCreateInfo) + obj.ref189da725 = (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265SessionParametersCreateInfo) PassRef() (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc745a8 != nil { - return x.refbc745a8, nil + } else if x.ref189da725 != nil { + return x.ref189da725, nil } - membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) - refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) - allocsbc745a8 := new(cgoAllocMap) - allocsbc745a8.Add(membc745a8) + mem189da725 := allocVideoDecodeH265SessionParametersCreateInfoMemory(1) + ref189da725 := (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR)(mem189da725) + allocs189da725 := new(cgoAllocMap) + allocs189da725.Add(mem189da725) var csType_allocs *cgoAllocMap - refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc745a8.Borrow(csType_allocs) + ref189da725.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs189da725.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc745a8.Borrow(cpNext_allocs) + ref189da725.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs189da725.Borrow(cpNext_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocsbc745a8.Borrow(cdedicatedAllocation_allocs) + var cmaxStdVPSCount_allocs *cgoAllocMap + ref189da725.maxStdVPSCount, cmaxStdVPSCount_allocs = (C.uint32_t)(x.MaxStdVPSCount), cgoAllocsUnknown + allocs189da725.Borrow(cmaxStdVPSCount_allocs) - x.refbc745a8 = refbc745a8 - x.allocsbc745a8 = allocsbc745a8 - return refbc745a8, allocsbc745a8 + var cmaxStdSPSCount_allocs *cgoAllocMap + ref189da725.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown + allocs189da725.Borrow(cmaxStdSPSCount_allocs) + + var cmaxStdPPSCount_allocs *cgoAllocMap + ref189da725.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown + allocs189da725.Borrow(cmaxStdPPSCount_allocs) + + var cpParametersAddInfo_allocs *cgoAllocMap + ref189da725.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoDecodeH265SessionParametersAddInfo(x.PParametersAddInfo) + allocs189da725.Borrow(cpParametersAddInfo_allocs) + + x.ref189da725 = ref189da725 + x.allocs189da725 = allocs189da725 + return ref189da725, allocs189da725 } // 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 VideoDecodeH265SessionParametersCreateInfo) PassValue() (C.VkVideoDecodeH265SessionParametersCreateInfoKHR, *cgoAllocMap) { + if x.ref189da725 != nil { + return *x.ref189da725, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -40987,94 +41185,97 @@ 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 *VideoDecodeH265SessionParametersCreateInfo) Deref() { + if x.ref189da725 == 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.ref189da725.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref189da725.pNext)) + x.MaxStdVPSCount = (uint32)(x.ref189da725.maxStdVPSCount) + x.MaxStdSPSCount = (uint32)(x.ref189da725.maxStdSPSCount) + x.MaxStdPPSCount = (uint32)(x.ref189da725.maxStdPPSCount) + packSVideoDecodeH265SessionParametersAddInfo(x.PParametersAddInfo, x.ref189da725.pParametersAddInfo) } -// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV in C. +// allocVideoDecodeH265PictureInfoMemory allocates memory for type C.VkVideoDecodeH265PictureInfoKHR 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 allocVideoDecodeH265PictureInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265PictureInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) +const sizeOfVideoDecodeH265PictureInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265PictureInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { +func (x *VideoDecodeH265PictureInfo) Ref() *C.VkVideoDecodeH265PictureInfoKHR { if x == nil { return nil } - return x.ref9a72b107 + return x.ref1dc9bf5e } // Free invokes alloc map'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 *VideoDecodeH265PictureInfo) Free() { + if x != nil && x.allocs1dc9bf5e != nil { + x.allocs1dc9bf5e.(*cgoAllocMap).Free() + x.ref1dc9bf5e = nil } } -// NewDedicatedAllocationMemoryAllocateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265PictureInfoRef creates a new 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 NewVideoDecodeH265PictureInfoRef(ref unsafe.Pointer) *VideoDecodeH265PictureInfo { if ref == nil { return nil } - obj := new(DedicatedAllocationMemoryAllocateInfoNV) - obj.ref9a72b107 = (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265PictureInfo) + obj.ref1dc9bf5e = (*C.VkVideoDecodeH265PictureInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265PictureInfo) PassRef() (*C.VkVideoDecodeH265PictureInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a72b107 != nil { - return x.ref9a72b107, nil + } else if x.ref1dc9bf5e != nil { + return x.ref1dc9bf5e, nil } - mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) - ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) - allocs9a72b107 := new(cgoAllocMap) - allocs9a72b107.Add(mem9a72b107) + mem1dc9bf5e := allocVideoDecodeH265PictureInfoMemory(1) + ref1dc9bf5e := (*C.VkVideoDecodeH265PictureInfoKHR)(mem1dc9bf5e) + allocs1dc9bf5e := new(cgoAllocMap) + allocs1dc9bf5e.Add(mem1dc9bf5e) var csType_allocs *cgoAllocMap - ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a72b107.Borrow(csType_allocs) + ref1dc9bf5e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1dc9bf5e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a72b107.Borrow(cpNext_allocs) + ref1dc9bf5e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1dc9bf5e.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs9a72b107.Borrow(cimage_allocs) + var csliceSegmentCount_allocs *cgoAllocMap + ref1dc9bf5e.sliceSegmentCount, csliceSegmentCount_allocs = (C.uint32_t)(x.SliceSegmentCount), cgoAllocsUnknown + allocs1dc9bf5e.Borrow(csliceSegmentCount_allocs) - var cbuffer_allocs *cgoAllocMap - ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs9a72b107.Borrow(cbuffer_allocs) + var cpSliceSegmentOffsets_allocs *cgoAllocMap + ref1dc9bf5e.pSliceSegmentOffsets, cpSliceSegmentOffsets_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSliceSegmentOffsets)).Data)), cgoAllocsUnknown + allocs1dc9bf5e.Borrow(cpSliceSegmentOffsets_allocs) - x.ref9a72b107 = ref9a72b107 - x.allocs9a72b107 = allocs9a72b107 - return ref9a72b107, allocs9a72b107 + x.ref1dc9bf5e = ref1dc9bf5e + x.allocs1dc9bf5e = allocs1dc9bf5e + return ref1dc9bf5e, allocs1dc9bf5e } // 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 VideoDecodeH265PictureInfo) PassValue() (C.VkVideoDecodeH265PictureInfoKHR, *cgoAllocMap) { + if x.ref1dc9bf5e != nil { + return *x.ref1dc9bf5e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41082,95 +41283,91 @@ 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 *VideoDecodeH265PictureInfo) Deref() { + if x.ref1dc9bf5e == 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.ref1dc9bf5e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1dc9bf5e.pNext)) + x.SliceSegmentCount = (uint32)(x.ref1dc9bf5e.sliceSegmentCount) + hxf7d15a2 := (*sliceHeader)(unsafe.Pointer(&x.PSliceSegmentOffsets)) + hxf7d15a2.Data = unsafe.Pointer(x.ref1dc9bf5e.pSliceSegmentOffsets) + hxf7d15a2.Cap = 0x7fffffff + // hxf7d15a2.Len = ? + } -// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT in C. +// allocVideoDecodeH265DpbSlotInfoMemory allocates memory for type C.VkVideoDecodeH265DpbSlotInfoKHR 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 allocVideoDecodeH265DpbSlotInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265DpbSlotInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) +const sizeOfVideoDecodeH265DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265DpbSlotInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { +func (x *VideoDecodeH265DpbSlotInfo) Ref() *C.VkVideoDecodeH265DpbSlotInfoKHR { if x == nil { return nil } - return x.ref64b2a913 + return x.ref53624891 } // Free invokes alloc map'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 *VideoDecodeH265DpbSlotInfo) Free() { + if x != nil && x.allocs53624891 != nil { + x.allocs53624891.(*cgoAllocMap).Free() + x.ref53624891 = nil } } -// NewPhysicalDeviceTransformFeedbackFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeH265DpbSlotInfoRef creates a new 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 NewVideoDecodeH265DpbSlotInfoRef(ref unsafe.Pointer) *VideoDecodeH265DpbSlotInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackFeatures) - obj.ref64b2a913 = (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoDecodeH265DpbSlotInfo) + obj.ref53624891 = (*C.VkVideoDecodeH265DpbSlotInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the 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 *VideoDecodeH265DpbSlotInfo) PassRef() (*C.VkVideoDecodeH265DpbSlotInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref64b2a913 != nil { - return x.ref64b2a913, nil + } else if x.ref53624891 != nil { + return x.ref53624891, nil } - mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) - ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) - allocs64b2a913 := new(cgoAllocMap) - allocs64b2a913.Add(mem64b2a913) + mem53624891 := allocVideoDecodeH265DpbSlotInfoMemory(1) + ref53624891 := (*C.VkVideoDecodeH265DpbSlotInfoKHR)(mem53624891) + allocs53624891 := new(cgoAllocMap) + allocs53624891.Add(mem53624891) var csType_allocs *cgoAllocMap - ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64b2a913.Borrow(csType_allocs) + ref53624891.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs53624891.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64b2a913.Borrow(cpNext_allocs) - - var ctransformFeedback_allocs *cgoAllocMap - ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown - allocs64b2a913.Borrow(ctransformFeedback_allocs) - - var cgeometryStreams_allocs *cgoAllocMap - ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown - allocs64b2a913.Borrow(cgeometryStreams_allocs) + ref53624891.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs53624891.Borrow(cpNext_allocs) - x.ref64b2a913 = ref64b2a913 - x.allocs64b2a913 = allocs64b2a913 - return ref64b2a913, allocs64b2a913 + x.ref53624891 = ref53624891 + x.allocs53624891 = allocs53624891 + return ref53624891, allocs53624891 } // 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 VideoDecodeH265DpbSlotInfo) PassValue() (C.VkVideoDecodeH265DpbSlotInfoKHR, *cgoAllocMap) { + if x.ref53624891 != nil { + return *x.ref53624891, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41178,127 +41375,89 @@ 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 *VideoDecodeH265DpbSlotInfo) Deref() { + if x.ref53624891 == 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.ref53624891.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref53624891.pNext)) } -// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT in C. +// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoKHR 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 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 sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) +const sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { +func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoKHR { if x == nil { return nil } - return x.refc295a2a0 + 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 *PhysicalDeviceTransformFeedbackProperties) Free() { - if x != nil && x.allocsc295a2a0 != nil { - x.allocsc295a2a0.(*cgoAllocMap).Free() - x.refc295a2a0 = nil +func (x *DeviceQueueGlobalPriorityCreateInfo) Free() { + if x != nil && x.allocsdf0afc28 != nil { + x.allocsdf0afc28.(*cgoAllocMap).Free() + x.refdf0afc28 = nil } } -// NewPhysicalDeviceTransformFeedbackPropertiesRef 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 NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { +func NewDeviceQueueGlobalPriorityCreateInfoRef(ref unsafe.Pointer) *DeviceQueueGlobalPriorityCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackProperties) - obj.refc295a2a0 = (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(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 *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { +func (x *DeviceQueueGlobalPriorityCreateInfo) PassRef() (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc295a2a0 != nil { - return x.refc295a2a0, nil + } else if x.refdf0afc28 != nil { + return x.refdf0afc28, nil } - memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) - refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) - allocsc295a2a0 := new(cgoAllocMap) - allocsc295a2a0.Add(memc295a2a0) + memdf0afc28 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) + refdf0afc28 := (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(memdf0afc28) + allocsdf0afc28 := new(cgoAllocMap) + allocsdf0afc28.Add(memdf0afc28) var csType_allocs *cgoAllocMap - refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc295a2a0.Borrow(csType_allocs) + refdf0afc28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf0afc28.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) - - var ctransformFeedbackRasterizationStreamSelect_allocs *cgoAllocMap - refc295a2a0.transformFeedbackRasterizationStreamSelect, ctransformFeedbackRasterizationStreamSelect_allocs = (C.VkBool32)(x.TransformFeedbackRasterizationStreamSelect), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackRasterizationStreamSelect_allocs) + refdf0afc28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf0afc28.Borrow(cpNext_allocs) - var ctransformFeedbackDraw_allocs *cgoAllocMap - refc295a2a0.transformFeedbackDraw, ctransformFeedbackDraw_allocs = (C.VkBool32)(x.TransformFeedbackDraw), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackDraw_allocs) + var cglobalPriority_allocs *cgoAllocMap + refdf0afc28.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityKHR)(x.GlobalPriority), cgoAllocsUnknown + allocsdf0afc28.Borrow(cglobalPriority_allocs) - x.refc295a2a0 = refc295a2a0 - x.allocsc295a2a0 = allocsc295a2a0 - return refc295a2a0, allocsc295a2a0 + 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 PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { - if x.refc295a2a0 != nil { - return *x.refc295a2a0, nil +func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { + if x.refdf0afc28 != nil { + return *x.refdf0afc28, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41306,103 +41465,90 @@ 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 *DeviceQueueGlobalPriorityCreateInfo) Deref() { + if x.refdf0afc28 == 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.refdf0afc28.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf0afc28.pNext)) + x.GlobalPriority = (QueueGlobalPriority)(x.refdf0afc28.globalPriority) } -// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT in C. +// allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR 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 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 sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) +const sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Ref() *C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { if x == nil { return nil } - return x.refed6e1fb9 + 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 *PipelineRasterizationStateStreamCreateInfo) Free() { - if x != nil && x.allocsed6e1fb9 != nil { - x.allocsed6e1fb9.(*cgoAllocMap).Free() - x.refed6e1fb9 = nil +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Free() { + if x != nil && x.allocsa6f56699 != nil { + x.allocsa6f56699.(*cgoAllocMap).Free() + x.refa6f56699 = nil } } -// NewPipelineRasterizationStateStreamCreateInfoRef 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 NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { +func NewPhysicalDeviceGlobalPriorityQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGlobalPriorityQueryFeatures { if ref == nil { return nil } - obj := new(PipelineRasterizationStateStreamCreateInfo) - obj.refed6e1fb9 = (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(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 *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) PassRef() (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refed6e1fb9 != nil { - return x.refed6e1fb9, nil + } else if x.refa6f56699 != nil { + return x.refa6f56699, nil } - memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) - refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) - allocsed6e1fb9 := new(cgoAllocMap) - allocsed6e1fb9.Add(memed6e1fb9) + mema6f56699 := allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(1) + refa6f56699 := (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(mema6f56699) + allocsa6f56699 := new(cgoAllocMap) + allocsa6f56699.Add(mema6f56699) var csType_allocs *cgoAllocMap - refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsed6e1fb9.Borrow(csType_allocs) + refa6f56699.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa6f56699.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) + refa6f56699.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa6f56699.Borrow(cpNext_allocs) - var crasterizationStream_allocs *cgoAllocMap - refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown - allocsed6e1fb9.Borrow(crasterizationStream_allocs) + var cglobalPriorityQuery_allocs *cgoAllocMap + refa6f56699.globalPriorityQuery, cglobalPriorityQuery_allocs = (C.VkBool32)(x.GlobalPriorityQuery), cgoAllocsUnknown + allocsa6f56699.Borrow(cglobalPriorityQuery_allocs) - x.refed6e1fb9 = refed6e1fb9 - x.allocsed6e1fb9 = allocsed6e1fb9 - return refed6e1fb9, allocsed6e1fb9 + 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 PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { - if x.refed6e1fb9 != nil { - return *x.refed6e1fb9, nil +func (x PhysicalDeviceGlobalPriorityQueryFeatures) PassValue() (C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { + if x.refa6f56699 != nil { + return *x.refa6f56699, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41410,99 +41556,94 @@ func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRas // Deref uses the underlying reference to C object and fills the wrapping struct with 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 { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Deref() { + if x.refa6f56699 == 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) + x.SType = (StructureType)(x.refa6f56699.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6f56699.pNext)) + x.GlobalPriorityQuery = (Bool32)(x.refa6f56699.globalPriorityQuery) } -// allocImageViewHandleInfoNVXMemory allocates memory for type C.VkImageViewHandleInfoNVX in C. +// allocQueueFamilyGlobalPriorityPropertiesMemory allocates memory for type C.VkQueueFamilyGlobalPriorityPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewHandleInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewHandleInfoNVXValue)) +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 sizeOfImageViewHandleInfoNVXValue = unsafe.Sizeof([1]C.VkImageViewHandleInfoNVX{}) +const sizeOfQueueFamilyGlobalPriorityPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyGlobalPriorityPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewHandleInfoNVX) Ref() *C.VkImageViewHandleInfoNVX { +func (x *QueueFamilyGlobalPriorityProperties) Ref() *C.VkQueueFamilyGlobalPriorityPropertiesKHR { if x == nil { return nil } - return x.refc283b384 + 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 *ImageViewHandleInfoNVX) Free() { - if x != nil && x.allocsc283b384 != nil { - x.allocsc283b384.(*cgoAllocMap).Free() - x.refc283b384 = nil +func (x *QueueFamilyGlobalPriorityProperties) Free() { + if x != nil && x.allocsf5bb6c4d != nil { + x.allocsf5bb6c4d.(*cgoAllocMap).Free() + x.reff5bb6c4d = nil } } -// NewImageViewHandleInfoNVXRef 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 NewImageViewHandleInfoNVXRef(ref unsafe.Pointer) *ImageViewHandleInfoNVX { +func NewQueueFamilyGlobalPriorityPropertiesRef(ref unsafe.Pointer) *QueueFamilyGlobalPriorityProperties { if ref == nil { return nil } - obj := new(ImageViewHandleInfoNVX) - obj.refc283b384 = (*C.VkImageViewHandleInfoNVX)(unsafe.Pointer(ref)) - return obj + 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 *ImageViewHandleInfoNVX) PassRef() (*C.VkImageViewHandleInfoNVX, *cgoAllocMap) { +func (x *QueueFamilyGlobalPriorityProperties) PassRef() (*C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc283b384 != nil { - return x.refc283b384, nil + } else if x.reff5bb6c4d != nil { + return x.reff5bb6c4d, nil } - memc283b384 := allocImageViewHandleInfoNVXMemory(1) - refc283b384 := (*C.VkImageViewHandleInfoNVX)(memc283b384) - allocsc283b384 := new(cgoAllocMap) - allocsc283b384.Add(memc283b384) + memf5bb6c4d := allocQueueFamilyGlobalPriorityPropertiesMemory(1) + reff5bb6c4d := (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(memf5bb6c4d) + allocsf5bb6c4d := new(cgoAllocMap) + allocsf5bb6c4d.Add(memf5bb6c4d) var csType_allocs *cgoAllocMap - refc283b384.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc283b384.Borrow(csType_allocs) + reff5bb6c4d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc283b384.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc283b384.Borrow(cpNext_allocs) - - var cimageView_allocs *cgoAllocMap - refc283b384.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown - allocsc283b384.Borrow(cimageView_allocs) + reff5bb6c4d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpNext_allocs) - var cdescriptorType_allocs *cgoAllocMap - refc283b384.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocsc283b384.Borrow(cdescriptorType_allocs) + var cpriorityCount_allocs *cgoAllocMap + reff5bb6c4d.priorityCount, cpriorityCount_allocs = (C.uint32_t)(x.PriorityCount), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorityCount_allocs) - var csampler_allocs *cgoAllocMap - refc283b384.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown - allocsc283b384.Borrow(csampler_allocs) + var cpriorities_allocs *cgoAllocMap + reff5bb6c4d.priorities, cpriorities_allocs = *(*[16]C.VkQueueGlobalPriorityKHR)(unsafe.Pointer(&x.Priorities)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorities_allocs) - x.refc283b384 = refc283b384 - x.allocsc283b384 = allocsc283b384 - return refc283b384, allocsc283b384 + 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 ImageViewHandleInfoNVX) PassValue() (C.VkImageViewHandleInfoNVX, *cgoAllocMap) { - if x.refc283b384 != nil { - return *x.refc283b384, nil +func (x QueueFamilyGlobalPriorityProperties) PassValue() (C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { + if x.reff5bb6c4d != nil { + return *x.reff5bb6c4d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41510,96 +41651,95 @@ func (x ImageViewHandleInfoNVX) PassValue() (C.VkImageViewHandleInfoNVX, *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 *ImageViewHandleInfoNVX) Deref() { - if x.refc283b384 == nil { +func (x *QueueFamilyGlobalPriorityProperties) Deref() { + if x.reff5bb6c4d == nil { return } - 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)) + 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)) } -// allocImageViewAddressPropertiesNVXMemory allocates memory for type C.VkImageViewAddressPropertiesNVX in C. +// allocFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkFragmentShadingRateAttachmentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewAddressPropertiesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewAddressPropertiesNVXValue)) +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 sizeOfImageViewAddressPropertiesNVXValue = unsafe.Sizeof([1]C.VkImageViewAddressPropertiesNVX{}) +const sizeOfFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkFragmentShadingRateAttachmentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewAddressPropertiesNVX) Ref() *C.VkImageViewAddressPropertiesNVX { +func (x *FragmentShadingRateAttachmentInfo) Ref() *C.VkFragmentShadingRateAttachmentInfoKHR { if x == nil { return nil } - return x.refe6dd1556 + 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 *ImageViewAddressPropertiesNVX) Free() { - if x != nil && x.allocse6dd1556 != nil { - x.allocse6dd1556.(*cgoAllocMap).Free() - x.refe6dd1556 = nil +func (x *FragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocsd9f9d390 != nil { + x.allocsd9f9d390.(*cgoAllocMap).Free() + x.refd9f9d390 = nil } } -// NewImageViewAddressPropertiesNVXRef 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 NewImageViewAddressPropertiesNVXRef(ref unsafe.Pointer) *ImageViewAddressPropertiesNVX { +func NewFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *FragmentShadingRateAttachmentInfo { if ref == nil { return nil } - obj := new(ImageViewAddressPropertiesNVX) - obj.refe6dd1556 = (*C.VkImageViewAddressPropertiesNVX)(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 *ImageViewAddressPropertiesNVX) PassRef() (*C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { +func (x *FragmentShadingRateAttachmentInfo) PassRef() (*C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe6dd1556 != nil { - return x.refe6dd1556, nil + } else if x.refd9f9d390 != nil { + return x.refd9f9d390, nil } - meme6dd1556 := allocImageViewAddressPropertiesNVXMemory(1) - refe6dd1556 := (*C.VkImageViewAddressPropertiesNVX)(meme6dd1556) - allocse6dd1556 := new(cgoAllocMap) - allocse6dd1556.Add(meme6dd1556) + memd9f9d390 := allocFragmentShadingRateAttachmentInfoMemory(1) + refd9f9d390 := (*C.VkFragmentShadingRateAttachmentInfoKHR)(memd9f9d390) + allocsd9f9d390 := new(cgoAllocMap) + allocsd9f9d390.Add(memd9f9d390) var csType_allocs *cgoAllocMap - refe6dd1556.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse6dd1556.Borrow(csType_allocs) + refd9f9d390.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9f9d390.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe6dd1556.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse6dd1556.Borrow(cpNext_allocs) + refd9f9d390.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9f9d390.Borrow(cpNext_allocs) - var cdeviceAddress_allocs *cgoAllocMap - refe6dd1556.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown - allocse6dd1556.Borrow(cdeviceAddress_allocs) + var cpFragmentShadingRateAttachment_allocs *cgoAllocMap + refd9f9d390.pFragmentShadingRateAttachment, cpFragmentShadingRateAttachment_allocs = unpackSAttachmentReference2(x.PFragmentShadingRateAttachment) + allocsd9f9d390.Borrow(cpFragmentShadingRateAttachment_allocs) - var csize_allocs *cgoAllocMap - refe6dd1556.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocse6dd1556.Borrow(csize_allocs) + var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap + refd9f9d390.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() + allocsd9f9d390.Borrow(cshadingRateAttachmentTexelSize_allocs) - x.refe6dd1556 = refe6dd1556 - x.allocse6dd1556 = allocse6dd1556 - return refe6dd1556, allocse6dd1556 + 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 ImageViewAddressPropertiesNVX) PassValue() (C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { - if x.refe6dd1556 != nil { - return *x.refe6dd1556, nil +func (x FragmentShadingRateAttachmentInfo) PassValue() (C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.refd9f9d390 != nil { + return *x.refd9f9d390, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41607,91 +41747,95 @@ func (x ImageViewAddressPropertiesNVX) PassValue() (C.VkImageViewAddressProperti // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageViewAddressPropertiesNVX) Deref() { - if x.refe6dd1556 == nil { +func (x *FragmentShadingRateAttachmentInfo) Deref() { + if x.refd9f9d390 == nil { return } - 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) + 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)) } -// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD in C. +// allocPipelineFragmentShadingRateStateCreateInfoMemory allocates memory for type C.VkPipelineFragmentShadingRateStateCreateInfoKHR 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)) +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 sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) +const sizeOfPipelineFragmentShadingRateStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateStateCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { +func (x *PipelineFragmentShadingRateStateCreateInfo) Ref() *C.VkPipelineFragmentShadingRateStateCreateInfoKHR { if x == nil { return nil } - return x.ref519ba3a9 + 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 *TextureLODGatherFormatPropertiesAMD) Free() { - if x != nil && x.allocs519ba3a9 != nil { - x.allocs519ba3a9.(*cgoAllocMap).Free() - x.ref519ba3a9 = nil +func (x *PipelineFragmentShadingRateStateCreateInfo) Free() { + if x != nil && x.allocs47a79f27 != nil { + x.allocs47a79f27.(*cgoAllocMap).Free() + x.ref47a79f27 = nil } } -// NewTextureLODGatherFormatPropertiesAMDRef 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 NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { +func NewPipelineFragmentShadingRateStateCreateInfoRef(ref unsafe.Pointer) *PipelineFragmentShadingRateStateCreateInfo { if ref == nil { return nil } - obj := new(TextureLODGatherFormatPropertiesAMD) - obj.ref519ba3a9 = (*C.VkTextureLODGatherFormatPropertiesAMD)(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 *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { +func (x *PipelineFragmentShadingRateStateCreateInfo) PassRef() (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref519ba3a9 != nil { - return x.ref519ba3a9, nil + } else if x.ref47a79f27 != nil { + return x.ref47a79f27, nil } - mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) - ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) - allocs519ba3a9 := new(cgoAllocMap) - allocs519ba3a9.Add(mem519ba3a9) + mem47a79f27 := allocPipelineFragmentShadingRateStateCreateInfoMemory(1) + ref47a79f27 := (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(mem47a79f27) + allocs47a79f27 := new(cgoAllocMap) + allocs47a79f27.Add(mem47a79f27) var csType_allocs *cgoAllocMap - ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs519ba3a9.Borrow(csType_allocs) + ref47a79f27.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs47a79f27.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs519ba3a9.Borrow(cpNext_allocs) + ref47a79f27.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs47a79f27.Borrow(cpNext_allocs) - var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap - ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown - allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) + var cfragmentSize_allocs *cgoAllocMap + ref47a79f27.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() + allocs47a79f27.Borrow(cfragmentSize_allocs) - x.ref519ba3a9 = ref519ba3a9 - x.allocs519ba3a9 = allocs519ba3a9 - return ref519ba3a9, allocs519ba3a9 + var ccombinerOps_allocs *cgoAllocMap + ref47a79f27.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown + allocs47a79f27.Borrow(ccombinerOps_allocs) + + 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 TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { - if x.ref519ba3a9 != nil { - return *x.ref519ba3a9, nil +func (x PipelineFragmentShadingRateStateCreateInfo) PassValue() (C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { + if x.ref47a79f27 != nil { + return *x.ref47a79f27, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41699,98 +41843,99 @@ 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 *PipelineFragmentShadingRateStateCreateInfo) Deref() { + if x.ref47a79f27 == 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.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)) } -// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD in C. +// allocPhysicalDeviceFragmentShadingRateFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR 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 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 sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) +const sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { +func (x *PhysicalDeviceFragmentShadingRateFeatures) Ref() *C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR { if x == nil { return nil } - return x.ref8a688131 + 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 *ShaderResourceUsageAMD) Free() { - if x != nil && x.allocs8a688131 != nil { - x.allocs8a688131.(*cgoAllocMap).Free() - x.ref8a688131 = nil +func (x *PhysicalDeviceFragmentShadingRateFeatures) Free() { + if x != nil && x.allocs9041f272 != nil { + x.allocs9041f272.(*cgoAllocMap).Free() + x.ref9041f272 = nil } } -// NewShaderResourceUsageAMDRef 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 NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { +func NewPhysicalDeviceFragmentShadingRateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateFeatures { if ref == nil { return nil } - obj := new(ShaderResourceUsageAMD) - obj.ref8a688131 = (*C.VkShaderResourceUsageAMD)(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 *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a688131 != nil { - return x.ref8a688131, nil + } else if x.ref9041f272 != nil { + return x.ref9041f272, nil } - mem8a688131 := allocShaderResourceUsageAMDMemory(1) - ref8a688131 := (*C.VkShaderResourceUsageAMD)(mem8a688131) - allocs8a688131 := new(cgoAllocMap) - allocs8a688131.Add(mem8a688131) + mem9041f272 := allocPhysicalDeviceFragmentShadingRateFeaturesMemory(1) + ref9041f272 := (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(mem9041f272) + allocs9041f272 := new(cgoAllocMap) + allocs9041f272.Add(mem9041f272) - var cnumUsedVgprs_allocs *cgoAllocMap - ref8a688131.numUsedVgprs, cnumUsedVgprs_allocs = (C.uint32_t)(x.NumUsedVgprs), cgoAllocsUnknown - allocs8a688131.Borrow(cnumUsedVgprs_allocs) + var csType_allocs *cgoAllocMap + ref9041f272.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9041f272.Borrow(csType_allocs) - var cnumUsedSgprs_allocs *cgoAllocMap - ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown - allocs8a688131.Borrow(cnumUsedSgprs_allocs) + var cpNext_allocs *cgoAllocMap + ref9041f272.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9041f272.Borrow(cpNext_allocs) - var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap - ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown - allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) + var cpipelineFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.pipelineFragmentShadingRate, cpipelineFragmentShadingRate_allocs = (C.VkBool32)(x.PipelineFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cpipelineFragmentShadingRate_allocs) - var cldsUsageSizeInBytes_allocs *cgoAllocMap - ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) + var cprimitiveFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.primitiveFragmentShadingRate, cprimitiveFragmentShadingRate_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cprimitiveFragmentShadingRate_allocs) - var cscratchMemUsageInBytes_allocs *cgoAllocMap - ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) + var cattachmentFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.attachmentFragmentShadingRate, cattachmentFragmentShadingRate_allocs = (C.VkBool32)(x.AttachmentFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cattachmentFragmentShadingRate_allocs) - x.ref8a688131 = ref8a688131 - x.allocs8a688131 = allocs8a688131 - return ref8a688131, allocs8a688131 + 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 ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { - if x.ref8a688131 != nil { - return *x.ref8a688131, nil +func (x PhysicalDeviceFragmentShadingRateFeatures) PassValue() (C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { + if x.ref9041f272 != nil { + return *x.ref9041f272, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41798,108 +41943,156 @@ 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 *PhysicalDeviceFragmentShadingRateFeatures) Deref() { + if x.ref9041f272 == nil { return } - 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) + 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) } -// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD in C. +// allocPhysicalDeviceFragmentShadingRatePropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR 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)) +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 sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) +const sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { +func (x *PhysicalDeviceFragmentShadingRateProperties) Ref() *C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR { if x == nil { return nil } - return x.ref896a52bf + 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 *ShaderStatisticsInfoAMD) Free() { - if x != nil && x.allocs896a52bf != nil { - x.allocs896a52bf.(*cgoAllocMap).Free() - x.ref896a52bf = nil +func (x *PhysicalDeviceFragmentShadingRateProperties) Free() { + if x != nil && x.allocs518beb != nil { + x.allocs518beb.(*cgoAllocMap).Free() + x.ref518beb = nil } } -// NewShaderStatisticsInfoAMDRef 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 NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { +func NewPhysicalDeviceFragmentShadingRatePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateProperties { if ref == nil { return nil } - obj := new(ShaderStatisticsInfoAMD) - obj.ref896a52bf = (*C.VkShaderStatisticsInfoAMD)(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 *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateProperties) PassRef() (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref896a52bf != nil { - return x.ref896a52bf, nil + } else if x.ref518beb != nil { + return x.ref518beb, nil } - mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) - ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) - allocs896a52bf := new(cgoAllocMap) - allocs896a52bf.Add(mem896a52bf) + mem518beb := allocPhysicalDeviceFragmentShadingRatePropertiesMemory(1) + ref518beb := (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(mem518beb) + allocs518beb := new(cgoAllocMap) + allocs518beb.Add(mem518beb) - var cshaderStageMask_allocs *cgoAllocMap - ref896a52bf.shaderStageMask, cshaderStageMask_allocs = (C.VkShaderStageFlags)(x.ShaderStageMask), cgoAllocsUnknown - allocs896a52bf.Borrow(cshaderStageMask_allocs) + var csType_allocs *cgoAllocMap + ref518beb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs518beb.Borrow(csType_allocs) - var cresourceUsage_allocs *cgoAllocMap - ref896a52bf.resourceUsage, cresourceUsage_allocs = x.ResourceUsage.PassValue() - allocs896a52bf.Borrow(cresourceUsage_allocs) + var cpNext_allocs *cgoAllocMap + ref518beb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs518beb.Borrow(cpNext_allocs) - var cnumPhysicalVgprs_allocs *cgoAllocMap - ref896a52bf.numPhysicalVgprs, cnumPhysicalVgprs_allocs = (C.uint32_t)(x.NumPhysicalVgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumPhysicalVgprs_allocs) + var cminFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.minFragmentShadingRateAttachmentTexelSize, cminFragmentShadingRateAttachmentTexelSize_allocs = x.MinFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cminFragmentShadingRateAttachmentTexelSize_allocs) - var cnumPhysicalSgprs_allocs *cgoAllocMap - ref896a52bf.numPhysicalSgprs, cnumPhysicalSgprs_allocs = (C.uint32_t)(x.NumPhysicalSgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumPhysicalSgprs_allocs) + var cmaxFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSize, cmaxFragmentShadingRateAttachmentTexelSize_allocs = x.MaxFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSize_allocs) - var cnumAvailableVgprs_allocs *cgoAllocMap - ref896a52bf.numAvailableVgprs, cnumAvailableVgprs_allocs = (C.uint32_t)(x.NumAvailableVgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumAvailableVgprs_allocs) + var cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSizeAspectRatio, cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs = (C.uint32_t)(x.MaxFragmentShadingRateAttachmentTexelSizeAspectRatio), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs) - var cnumAvailableSgprs_allocs *cgoAllocMap - ref896a52bf.numAvailableSgprs, cnumAvailableSgprs_allocs = (C.uint32_t)(x.NumAvailableSgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumAvailableSgprs_allocs) + var cprimitiveFragmentShadingRateWithMultipleViewports_allocs *cgoAllocMap + ref518beb.primitiveFragmentShadingRateWithMultipleViewports, cprimitiveFragmentShadingRateWithMultipleViewports_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRateWithMultipleViewports), cgoAllocsUnknown + allocs518beb.Borrow(cprimitiveFragmentShadingRateWithMultipleViewports_allocs) - var ccomputeWorkGroupSize_allocs *cgoAllocMap - ref896a52bf.computeWorkGroupSize, ccomputeWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.ComputeWorkGroupSize)), cgoAllocsUnknown - allocs896a52bf.Borrow(ccomputeWorkGroupSize_allocs) + var clayeredShadingRateAttachments_allocs *cgoAllocMap + ref518beb.layeredShadingRateAttachments, clayeredShadingRateAttachments_allocs = (C.VkBool32)(x.LayeredShadingRateAttachments), cgoAllocsUnknown + allocs518beb.Borrow(clayeredShadingRateAttachments_allocs) - x.ref896a52bf = ref896a52bf - x.allocs896a52bf = allocs896a52bf - return ref896a52bf, allocs896a52bf + 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 ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { - if x.ref896a52bf != nil { - return *x.ref896a52bf, nil +func (x PhysicalDeviceFragmentShadingRateProperties) PassValue() (C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { + if x.ref518beb != nil { + return *x.ref518beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -41907,94 +42100,110 @@ 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 *PhysicalDeviceFragmentShadingRateProperties) Deref() { + if x.ref518beb == 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.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) } -// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV in C. +// allocPhysicalDeviceFragmentShadingRateMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateKHR 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)) - if err != nil { +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 sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) +const sizeOfPhysicalDeviceFragmentShadingRateValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { +func (x *PhysicalDeviceFragmentShadingRate) Ref() *C.VkPhysicalDeviceFragmentShadingRateKHR { if x == nil { return nil } - return x.refdf4a62d1 + 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 *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { - if x != nil && x.allocsdf4a62d1 != nil { - x.allocsdf4a62d1.(*cgoAllocMap).Free() - x.refdf4a62d1 = nil +func (x *PhysicalDeviceFragmentShadingRate) Free() { + if x != nil && x.allocs17914e16 != nil { + x.allocs17914e16.(*cgoAllocMap).Free() + x.ref17914e16 = nil } } -// NewPhysicalDeviceCornerSampledImageFeaturesNVRef 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 NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { +func NewPhysicalDeviceFragmentShadingRateRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRate { if ref == nil { return nil } - obj := new(PhysicalDeviceCornerSampledImageFeaturesNV) - obj.refdf4a62d1 = (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(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 *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRate) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdf4a62d1 != nil { - return x.refdf4a62d1, nil + } else if x.ref17914e16 != nil { + return x.ref17914e16, nil } - memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) - refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) - allocsdf4a62d1 := new(cgoAllocMap) - allocsdf4a62d1.Add(memdf4a62d1) + mem17914e16 := allocPhysicalDeviceFragmentShadingRateMemory(1) + ref17914e16 := (*C.VkPhysicalDeviceFragmentShadingRateKHR)(mem17914e16) + allocs17914e16 := new(cgoAllocMap) + allocs17914e16.Add(mem17914e16) var csType_allocs *cgoAllocMap - refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdf4a62d1.Borrow(csType_allocs) + ref17914e16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17914e16.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdf4a62d1.Borrow(cpNext_allocs) + ref17914e16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17914e16.Borrow(cpNext_allocs) - var ccornerSampledImage_allocs *cgoAllocMap - refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown - allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) + var csampleCounts_allocs *cgoAllocMap + ref17914e16.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown + allocs17914e16.Borrow(csampleCounts_allocs) - x.refdf4a62d1 = refdf4a62d1 - x.allocsdf4a62d1 = allocsdf4a62d1 - return refdf4a62d1, allocsdf4a62d1 + 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 PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { - if x.refdf4a62d1 != nil { - return *x.refdf4a62d1, nil +func (x PhysicalDeviceFragmentShadingRate) PassValue() (C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { + if x.ref17914e16 != nil { + return *x.ref17914e16, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42002,94 +42211,91 @@ 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 *PhysicalDeviceFragmentShadingRate) Deref() { + if x.ref17914e16 == 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.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)) } -// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV in C. +// allocSurfaceProtectedCapabilitiesMemory allocates memory for type C.VkSurfaceProtectedCapabilitiesKHR 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 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 sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) +const sizeOfSurfaceProtectedCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceProtectedCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { +func (x *SurfaceProtectedCapabilities) Ref() *C.VkSurfaceProtectedCapabilitiesKHR { if x == nil { return nil } - return x.refa8900ce5 + 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 *ExternalImageFormatPropertiesNV) Free() { - if x != nil && x.allocsa8900ce5 != nil { - x.allocsa8900ce5.(*cgoAllocMap).Free() - x.refa8900ce5 = nil +func (x *SurfaceProtectedCapabilities) Free() { + if x != nil && x.allocsa5f4111 != nil { + x.allocsa5f4111.(*cgoAllocMap).Free() + x.refa5f4111 = nil } } -// NewExternalImageFormatPropertiesNVRef 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 NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { +func NewSurfaceProtectedCapabilitiesRef(ref unsafe.Pointer) *SurfaceProtectedCapabilities { if ref == nil { return nil } - obj := new(ExternalImageFormatPropertiesNV) - obj.refa8900ce5 = (*C.VkExternalImageFormatPropertiesNV)(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 *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { +func (x *SurfaceProtectedCapabilities) PassRef() (*C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8900ce5 != nil { - return x.refa8900ce5, nil + } else if x.refa5f4111 != nil { + return x.refa5f4111, nil } - mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) - refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) - allocsa8900ce5 := new(cgoAllocMap) - allocsa8900ce5.Add(mema8900ce5) - - var cimageFormatProperties_allocs *cgoAllocMap - refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() - allocsa8900ce5.Borrow(cimageFormatProperties_allocs) + mema5f4111 := allocSurfaceProtectedCapabilitiesMemory(1) + refa5f4111 := (*C.VkSurfaceProtectedCapabilitiesKHR)(mema5f4111) + allocsa5f4111 := new(cgoAllocMap) + allocsa5f4111.Add(mema5f4111) - var cexternalMemoryFeatures_allocs *cgoAllocMap - refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) + var csType_allocs *cgoAllocMap + refa5f4111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa5f4111.Borrow(csType_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) + var cpNext_allocs *cgoAllocMap + refa5f4111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa5f4111.Borrow(cpNext_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - refa8900ce5.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(ccompatibleHandleTypes_allocs) + var csupportsProtected_allocs *cgoAllocMap + refa5f4111.supportsProtected, csupportsProtected_allocs = (C.VkBool32)(x.SupportsProtected), cgoAllocsUnknown + allocsa5f4111.Borrow(csupportsProtected_allocs) - x.refa8900ce5 = refa8900ce5 - x.allocsa8900ce5 = allocsa8900ce5 - return refa8900ce5, allocsa8900ce5 + 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 ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { - if x.refa8900ce5 != nil { - return *x.refa8900ce5, nil +func (x SurfaceProtectedCapabilities) PassValue() (C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { + if x.refa5f4111 != nil { + return *x.refa5f4111, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42097,91 +42303,90 @@ 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 *SurfaceProtectedCapabilities) Deref() { + if x.refa5f4111 == 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.refa5f4111.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa5f4111.pNext)) + x.SupportsProtected = (Bool32)(x.refa5f4111.supportsProtected) } -// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV in C. +// allocPhysicalDevicePresentWaitFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentWaitFeaturesKHR 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 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 sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) +const sizeOfPhysicalDevicePresentWaitFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentWaitFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { +func (x *PhysicalDevicePresentWaitFeatures) Ref() *C.VkPhysicalDevicePresentWaitFeaturesKHR { if x == nil { return nil } - return x.ref9a7fb6c8 + 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 *ExternalMemoryImageCreateInfoNV) Free() { - if x != nil && x.allocs9a7fb6c8 != nil { - x.allocs9a7fb6c8.(*cgoAllocMap).Free() - x.ref9a7fb6c8 = nil +func (x *PhysicalDevicePresentWaitFeatures) Free() { + if x != nil && x.allocs1cd9c482 != nil { + x.allocs1cd9c482.(*cgoAllocMap).Free() + x.ref1cd9c482 = nil } } -// NewExternalMemoryImageCreateInfoNVRef 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 NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { +func NewPhysicalDevicePresentWaitFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentWaitFeatures { if ref == nil { return nil } - obj := new(ExternalMemoryImageCreateInfoNV) - obj.ref9a7fb6c8 = (*C.VkExternalMemoryImageCreateInfoNV)(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 *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDevicePresentWaitFeatures) PassRef() (*C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a7fb6c8 != nil { - return x.ref9a7fb6c8, nil + } else if x.ref1cd9c482 != nil { + return x.ref1cd9c482, nil } - mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) - ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) - allocs9a7fb6c8 := new(cgoAllocMap) - allocs9a7fb6c8.Add(mem9a7fb6c8) + mem1cd9c482 := allocPhysicalDevicePresentWaitFeaturesMemory(1) + ref1cd9c482 := (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(mem1cd9c482) + allocs1cd9c482 := new(cgoAllocMap) + allocs1cd9c482.Add(mem1cd9c482) var csType_allocs *cgoAllocMap - ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(csType_allocs) + ref1cd9c482.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cd9c482.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(cpNext_allocs) + ref1cd9c482.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(chandleTypes_allocs) + var cpresentWait_allocs *cgoAllocMap + ref1cd9c482.presentWait, cpresentWait_allocs = (C.VkBool32)(x.PresentWait), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpresentWait_allocs) - x.ref9a7fb6c8 = ref9a7fb6c8 - x.allocs9a7fb6c8 = allocs9a7fb6c8 - return ref9a7fb6c8, allocs9a7fb6c8 + 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 ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { - if x.ref9a7fb6c8 != nil { - return *x.ref9a7fb6c8, nil +func (x PhysicalDevicePresentWaitFeatures) PassValue() (C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { + if x.ref1cd9c482 != nil { + return *x.ref1cd9c482, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42189,90 +42394,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 *PhysicalDevicePresentWaitFeatures) Deref() { + if x.ref1cd9c482 == 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.ref1cd9c482.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1cd9c482.pNext)) + x.PresentWait = (Bool32)(x.ref1cd9c482.presentWait) } -// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV in C. +// allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR 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 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 sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) +const sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Ref() *C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { if x == nil { return nil } - return x.ref5066f33 + 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 *ExportMemoryAllocateInfoNV) Free() { - if x != nil && x.allocs5066f33 != nil { - x.allocs5066f33.(*cgoAllocMap).Free() - x.ref5066f33 = nil +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Free() { + if x != nil && x.allocs84acf0e1 != nil { + x.allocs84acf0e1.(*cgoAllocMap).Free() + x.ref84acf0e1 = nil } } -// NewExportMemoryAllocateInfoNVRef 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 NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { +func NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineExecutablePropertiesFeatures { if ref == nil { return nil } - obj := new(ExportMemoryAllocateInfoNV) - obj.ref5066f33 = (*C.VkExportMemoryAllocateInfoNV)(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 *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) PassRef() (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5066f33 != nil { - return x.ref5066f33, nil + } else if x.ref84acf0e1 != nil { + return x.ref84acf0e1, nil } - mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) - ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) - allocs5066f33 := new(cgoAllocMap) - allocs5066f33.Add(mem5066f33) + mem84acf0e1 := allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(1) + ref84acf0e1 := (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(mem84acf0e1) + allocs84acf0e1 := new(cgoAllocMap) + allocs84acf0e1.Add(mem84acf0e1) var csType_allocs *cgoAllocMap - ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5066f33.Borrow(csType_allocs) + ref84acf0e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs84acf0e1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5066f33.Borrow(cpNext_allocs) + ref84acf0e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs5066f33.Borrow(chandleTypes_allocs) + var cpipelineExecutableInfo_allocs *cgoAllocMap + ref84acf0e1.pipelineExecutableInfo, cpipelineExecutableInfo_allocs = (C.VkBool32)(x.PipelineExecutableInfo), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpipelineExecutableInfo_allocs) - x.ref5066f33 = ref5066f33 - x.allocs5066f33 = allocs5066f33 - return ref5066f33, allocs5066f33 + 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 ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { - if x.ref5066f33 != nil { - return *x.ref5066f33, nil +func (x PhysicalDevicePipelineExecutablePropertiesFeatures) PassValue() (C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { + if x.ref84acf0e1 != nil { + return *x.ref84acf0e1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42280,94 +42485,90 @@ 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 *PhysicalDevicePipelineExecutablePropertiesFeatures) Deref() { + if x.ref84acf0e1 == 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.ref84acf0e1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref84acf0e1.pNext)) + x.PipelineExecutableInfo = (Bool32)(x.ref84acf0e1.pipelineExecutableInfo) } -// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT in C. +// allocPipelineInfoMemory allocates memory for type C.VkPipelineInfoKHR 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 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 sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) +const sizeOfPipelineInfoValue = unsafe.Sizeof([1]C.VkPipelineInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { +func (x *PipelineInfo) Ref() *C.VkPipelineInfoKHR { if x == nil { return nil } - return x.refffe080ad + 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 *ValidationFlags) Free() { - if x != nil && x.allocsffe080ad != nil { - x.allocsffe080ad.(*cgoAllocMap).Free() - x.refffe080ad = nil +func (x *PipelineInfo) Free() { + if x != nil && x.allocscd879ca1 != nil { + x.allocscd879ca1.(*cgoAllocMap).Free() + x.refcd879ca1 = nil } } -// NewValidationFlagsRef 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 NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { +func NewPipelineInfoRef(ref unsafe.Pointer) *PipelineInfo { if ref == nil { return nil } - obj := new(ValidationFlags) - obj.refffe080ad = (*C.VkValidationFlagsEXT)(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 *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { +func (x *PipelineInfo) PassRef() (*C.VkPipelineInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe080ad != nil { - return x.refffe080ad, nil + } else if x.refcd879ca1 != nil { + return x.refcd879ca1, nil } - memffe080ad := allocValidationFlagsMemory(1) - refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) - allocsffe080ad := new(cgoAllocMap) - allocsffe080ad.Add(memffe080ad) + memcd879ca1 := allocPipelineInfoMemory(1) + refcd879ca1 := (*C.VkPipelineInfoKHR)(memcd879ca1) + allocscd879ca1 := new(cgoAllocMap) + allocscd879ca1.Add(memcd879ca1) var csType_allocs *cgoAllocMap - refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe080ad.Borrow(csType_allocs) + refcd879ca1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd879ca1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffe080ad.Borrow(cpNext_allocs) - - var cdisabledValidationCheckCount_allocs *cgoAllocMap - refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown - allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) + refcd879ca1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpNext_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 cpipeline_allocs *cgoAllocMap + refcd879ca1.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpipeline_allocs) - x.refffe080ad = refffe080ad - x.allocsffe080ad = allocsffe080ad - return refffe080ad, allocsffe080ad + 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 ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { - if x.refffe080ad != nil { - return *x.refffe080ad, nil +func (x PipelineInfo) PassValue() (C.VkPipelineInfoKHR, *cgoAllocMap) { + if x.refcd879ca1 != nil { + return *x.refcd879ca1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42375,95 +42576,102 @@ 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 *PipelineInfo) Deref() { + if x.refcd879ca1 == nil { return } - 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 = ? - + x.SType = (StructureType)(x.refcd879ca1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd879ca1.pNext)) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refcd879ca1.pipeline)) } -// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT in C. +// allocPipelineExecutablePropertiesMemory allocates memory for type C.VkPipelineExecutablePropertiesKHR 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 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 sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) +const sizeOfPipelineExecutablePropertiesValue = unsafe.Sizeof([1]C.VkPipelineExecutablePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { +func (x *PipelineExecutableProperties) Ref() *C.VkPipelineExecutablePropertiesKHR { if x == nil { return nil } - return x.ref3a973fc0 + 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 *ImageViewASTCDecodeMode) Free() { - if x != nil && x.allocs3a973fc0 != nil { - x.allocs3a973fc0.(*cgoAllocMap).Free() - x.ref3a973fc0 = nil +func (x *PipelineExecutableProperties) Free() { + if x != nil && x.allocs4eb592a4 != nil { + x.allocs4eb592a4.(*cgoAllocMap).Free() + x.ref4eb592a4 = nil } } -// NewImageViewASTCDecodeModeRef 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 NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { +func NewPipelineExecutablePropertiesRef(ref unsafe.Pointer) *PipelineExecutableProperties { if ref == nil { return nil } - obj := new(ImageViewASTCDecodeMode) - obj.ref3a973fc0 = (*C.VkImageViewASTCDecodeModeEXT)(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 *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { +func (x *PipelineExecutableProperties) PassRef() (*C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3a973fc0 != nil { - return x.ref3a973fc0, nil + } else if x.ref4eb592a4 != nil { + return x.ref4eb592a4, nil } - mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) - ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) - allocs3a973fc0 := new(cgoAllocMap) - allocs3a973fc0.Add(mem3a973fc0) + mem4eb592a4 := allocPipelineExecutablePropertiesMemory(1) + ref4eb592a4 := (*C.VkPipelineExecutablePropertiesKHR)(mem4eb592a4) + allocs4eb592a4 := new(cgoAllocMap) + allocs4eb592a4.Add(mem4eb592a4) var csType_allocs *cgoAllocMap - ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3a973fc0.Borrow(csType_allocs) + ref4eb592a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4eb592a4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3a973fc0.Borrow(cpNext_allocs) + ref4eb592a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cpNext_allocs) - var cdecodeMode_allocs *cgoAllocMap - ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown - allocs3a973fc0.Borrow(cdecodeMode_allocs) + var cstages_allocs *cgoAllocMap + ref4eb592a4.stages, cstages_allocs = (C.VkShaderStageFlags)(x.Stages), cgoAllocsUnknown + allocs4eb592a4.Borrow(cstages_allocs) - x.ref3a973fc0 = ref3a973fc0 - x.allocs3a973fc0 = allocs3a973fc0 - return ref3a973fc0, allocs3a973fc0 + var cname_allocs *cgoAllocMap + ref4eb592a4.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cname_allocs) + + var cdescription_allocs *cgoAllocMap + ref4eb592a4.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cdescription_allocs) + + 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 ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { - if x.ref3a973fc0 != nil { - return *x.ref3a973fc0, nil +func (x PipelineExecutableProperties) PassValue() (C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { + if x.ref4eb592a4 != nil { + return *x.ref4eb592a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42471,90 +42679,97 @@ 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 *PipelineExecutableProperties) Deref() { + if x.ref4eb592a4 == 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.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) } -// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT in C. +// allocPipelineExecutableInfoMemory allocates memory for type C.VkPipelineExecutableInfoKHR 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 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 sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) +const sizeOfPipelineExecutableInfoValue = unsafe.Sizeof([1]C.VkPipelineExecutableInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { +func (x *PipelineExecutableInfo) Ref() *C.VkPipelineExecutableInfoKHR { if x == nil { return nil } - return x.refd8af7d5a + 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 *PhysicalDeviceASTCDecodeFeatures) Free() { - if x != nil && x.allocsd8af7d5a != nil { - x.allocsd8af7d5a.(*cgoAllocMap).Free() - x.refd8af7d5a = nil +func (x *PipelineExecutableInfo) Free() { + if x != nil && x.allocs9b891dad != nil { + x.allocs9b891dad.(*cgoAllocMap).Free() + x.ref9b891dad = nil } } -// NewPhysicalDeviceASTCDecodeFeaturesRef 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 NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { +func NewPipelineExecutableInfoRef(ref unsafe.Pointer) *PipelineExecutableInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceASTCDecodeFeatures) - obj.refd8af7d5a = (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(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 *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { +func (x *PipelineExecutableInfo) PassRef() (*C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8af7d5a != nil { - return x.refd8af7d5a, nil + } else if x.ref9b891dad != nil { + return x.ref9b891dad, nil } - memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) - refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) - allocsd8af7d5a := new(cgoAllocMap) - allocsd8af7d5a.Add(memd8af7d5a) + mem9b891dad := allocPipelineExecutableInfoMemory(1) + ref9b891dad := (*C.VkPipelineExecutableInfoKHR)(mem9b891dad) + allocs9b891dad := new(cgoAllocMap) + allocs9b891dad.Add(mem9b891dad) var csType_allocs *cgoAllocMap - refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8af7d5a.Borrow(csType_allocs) + ref9b891dad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9b891dad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cpNext_allocs) + ref9b891dad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpNext_allocs) - var cdecodeModeSharedExponent_allocs *cgoAllocMap - refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) + var cpipeline_allocs *cgoAllocMap + ref9b891dad.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpipeline_allocs) - x.refd8af7d5a = refd8af7d5a - x.allocsd8af7d5a = allocsd8af7d5a - return refd8af7d5a, allocsd8af7d5a + var cexecutableIndex_allocs *cgoAllocMap + ref9b891dad.executableIndex, cexecutableIndex_allocs = (C.uint32_t)(x.ExecutableIndex), cgoAllocsUnknown + allocs9b891dad.Borrow(cexecutableIndex_allocs) + + 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 PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { - if x.refd8af7d5a != nil { - return *x.refd8af7d5a, nil +func (x PipelineExecutableInfo) PassValue() (C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { + if x.ref9b891dad != nil { + return *x.ref9b891dad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42562,98 +42777,103 @@ 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 *PipelineExecutableInfo) Deref() { + if x.ref9b891dad == nil { return } - x.SType = (StructureType)(x.refd8af7d5a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) - x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) + 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) } -// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT in C. +// allocPipelineExecutableStatisticMemory allocates memory for type C.VkPipelineExecutableStatisticKHR 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 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 sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) +const sizeOfPipelineExecutableStatisticValue = unsafe.Sizeof([1]C.VkPipelineExecutableStatisticKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { +func (x *PipelineExecutableStatistic) Ref() *C.VkPipelineExecutableStatisticKHR { if x == nil { return nil } - return x.ref82da87c9 + 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 *ConditionalRenderingBeginInfo) Free() { - if x != nil && x.allocs82da87c9 != nil { - x.allocs82da87c9.(*cgoAllocMap).Free() - x.ref82da87c9 = nil +func (x *PipelineExecutableStatistic) Free() { + if x != nil && x.allocs4af1a62c != nil { + x.allocs4af1a62c.(*cgoAllocMap).Free() + x.ref4af1a62c = nil } } -// NewConditionalRenderingBeginInfoRef 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 NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { +func NewPipelineExecutableStatisticRef(ref unsafe.Pointer) *PipelineExecutableStatistic { if ref == nil { return nil } - obj := new(ConditionalRenderingBeginInfo) - obj.ref82da87c9 = (*C.VkConditionalRenderingBeginInfoEXT)(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 *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { +func (x *PipelineExecutableStatistic) PassRef() (*C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref82da87c9 != nil { - return x.ref82da87c9, nil + } else if x.ref4af1a62c != nil { + return x.ref4af1a62c, nil } - mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) - ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) - allocs82da87c9 := new(cgoAllocMap) - allocs82da87c9.Add(mem82da87c9) + mem4af1a62c := allocPipelineExecutableStatisticMemory(1) + ref4af1a62c := (*C.VkPipelineExecutableStatisticKHR)(mem4af1a62c) + allocs4af1a62c := new(cgoAllocMap) + allocs4af1a62c.Add(mem4af1a62c) var csType_allocs *cgoAllocMap - ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs82da87c9.Borrow(csType_allocs) + ref4af1a62c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4af1a62c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref82da87c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs82da87c9.Borrow(cpNext_allocs) + ref4af1a62c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - ref82da87c9.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs82da87c9.Borrow(cbuffer_allocs) + var cname_allocs *cgoAllocMap + ref4af1a62c.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cname_allocs) - var coffset_allocs *cgoAllocMap - ref82da87c9.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs82da87c9.Borrow(coffset_allocs) + var cdescription_allocs *cgoAllocMap + ref4af1a62c.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cdescription_allocs) - var cflags_allocs *cgoAllocMap - ref82da87c9.flags, cflags_allocs = (C.VkConditionalRenderingFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs82da87c9.Borrow(cflags_allocs) + var cformat_allocs *cgoAllocMap + ref4af1a62c.format, cformat_allocs = (C.VkPipelineExecutableStatisticFormatKHR)(x.Format), cgoAllocsUnknown + allocs4af1a62c.Borrow(cformat_allocs) - x.ref82da87c9 = ref82da87c9 - x.allocs82da87c9 = allocs82da87c9 - return ref82da87c9, allocs82da87c9 + 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 ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { - if x.ref82da87c9 != nil { - return *x.ref82da87c9, nil +func (x PipelineExecutableStatistic) PassValue() (C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { + if x.ref4af1a62c != nil { + return *x.ref4af1a62c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42661,96 +42881,109 @@ 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 *PipelineExecutableStatistic) Deref() { + if x.ref4af1a62c == 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.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)) } -// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT in C. +// allocPipelineExecutableInternalRepresentationMemory allocates memory for type C.VkPipelineExecutableInternalRepresentationKHR 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 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 sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) +const sizeOfPipelineExecutableInternalRepresentationValue = unsafe.Sizeof([1]C.VkPipelineExecutableInternalRepresentationKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { +func (x *PipelineExecutableInternalRepresentation) Ref() *C.VkPipelineExecutableInternalRepresentationKHR { if x == nil { return nil } - return x.ref89d2a224 + 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 *PhysicalDeviceConditionalRenderingFeatures) Free() { - if x != nil && x.allocs89d2a224 != nil { - x.allocs89d2a224.(*cgoAllocMap).Free() - x.ref89d2a224 = nil +func (x *PipelineExecutableInternalRepresentation) Free() { + if x != nil && x.allocs20e334f7 != nil { + x.allocs20e334f7.(*cgoAllocMap).Free() + x.ref20e334f7 = nil } } -// NewPhysicalDeviceConditionalRenderingFeaturesRef 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 NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { +func NewPipelineExecutableInternalRepresentationRef(ref unsafe.Pointer) *PipelineExecutableInternalRepresentation { if ref == nil { return nil } - obj := new(PhysicalDeviceConditionalRenderingFeatures) - obj.ref89d2a224 = (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(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 *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { +func (x *PipelineExecutableInternalRepresentation) PassRef() (*C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89d2a224 != nil { - return x.ref89d2a224, nil + } else if x.ref20e334f7 != nil { + return x.ref20e334f7, nil } - mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) - ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) - allocs89d2a224 := new(cgoAllocMap) - allocs89d2a224.Add(mem89d2a224) + mem20e334f7 := allocPipelineExecutableInternalRepresentationMemory(1) + ref20e334f7 := (*C.VkPipelineExecutableInternalRepresentationKHR)(mem20e334f7) + allocs20e334f7 := new(cgoAllocMap) + allocs20e334f7.Add(mem20e334f7) var csType_allocs *cgoAllocMap - ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs89d2a224.Borrow(csType_allocs) + ref20e334f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs20e334f7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs89d2a224.Borrow(cpNext_allocs) + ref20e334f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs20e334f7.Borrow(cpNext_allocs) - var cconditionalRendering_allocs *cgoAllocMap - ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cconditionalRendering_allocs) + var cname_allocs *cgoAllocMap + ref20e334f7.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs20e334f7.Borrow(cname_allocs) - var cinheritedConditionalRendering_allocs *cgoAllocMap - ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) + var cdescription_allocs *cgoAllocMap + ref20e334f7.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs20e334f7.Borrow(cdescription_allocs) - x.ref89d2a224 = ref89d2a224 - x.allocs89d2a224 = allocs89d2a224 - return ref89d2a224, allocs89d2a224 + 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 PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { - if x.ref89d2a224 != nil { - return *x.ref89d2a224, nil +func (x PipelineExecutableInternalRepresentation) PassValue() (C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { + if x.ref20e334f7 != nil { + return *x.ref20e334f7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42758,91 +42991,98 @@ 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 *PipelineExecutableInternalRepresentation) Deref() { + if x.ref20e334f7 == 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) + 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)) } -// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT in C. +// allocPipelineLibraryCreateInfoMemory allocates memory for type C.VkPipelineLibraryCreateInfoKHR 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)) +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 sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) +const sizeOfPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLibraryCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { +func (x *PipelineLibraryCreateInfo) Ref() *C.VkPipelineLibraryCreateInfoKHR { if x == nil { return nil } - return x.ref7155f49c + 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 *CommandBufferInheritanceConditionalRenderingInfo) Free() { - if x != nil && x.allocs7155f49c != nil { - x.allocs7155f49c.(*cgoAllocMap).Free() - x.ref7155f49c = nil +func (x *PipelineLibraryCreateInfo) Free() { + if x != nil && x.allocs6bb7541b != nil { + x.allocs6bb7541b.(*cgoAllocMap).Free() + x.ref6bb7541b = nil } } -// NewCommandBufferInheritanceConditionalRenderingInfoRef 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 NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { +func NewPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *PipelineLibraryCreateInfo { if ref == nil { return nil } - obj := new(CommandBufferInheritanceConditionalRenderingInfo) - obj.ref7155f49c = (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(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 *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { +func (x *PipelineLibraryCreateInfo) PassRef() (*C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7155f49c != nil { - return x.ref7155f49c, nil + } else if x.ref6bb7541b != nil { + return x.ref6bb7541b, nil } - mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) - ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) - allocs7155f49c := new(cgoAllocMap) - allocs7155f49c.Add(mem7155f49c) + mem6bb7541b := allocPipelineLibraryCreateInfoMemory(1) + ref6bb7541b := (*C.VkPipelineLibraryCreateInfoKHR)(mem6bb7541b) + allocs6bb7541b := new(cgoAllocMap) + allocs6bb7541b.Add(mem6bb7541b) var csType_allocs *cgoAllocMap - ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7155f49c.Borrow(csType_allocs) + ref6bb7541b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6bb7541b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7155f49c.Borrow(cpNext_allocs) + ref6bb7541b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6bb7541b.Borrow(cpNext_allocs) - var cconditionalRenderingEnable_allocs *cgoAllocMap - ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown - allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) + var clibraryCount_allocs *cgoAllocMap + ref6bb7541b.libraryCount, clibraryCount_allocs = (C.uint32_t)(x.LibraryCount), cgoAllocsUnknown + allocs6bb7541b.Borrow(clibraryCount_allocs) - x.ref7155f49c = ref7155f49c - x.allocs7155f49c = allocs7155f49c - return ref7155f49c, allocs7155f49c + 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 CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { - if x.ref7155f49c != nil { - return *x.ref7155f49c, nil +func (x PipelineLibraryCreateInfo) PassValue() (C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { + if x.ref6bb7541b != nil { + return *x.ref6bb7541b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42850,86 +43090,99 @@ 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 *PipelineLibraryCreateInfo) Deref() { + if x.ref6bb7541b == 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.ref6bb7541b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bb7541b.pNext)) + x.LibraryCount = (uint32)(x.ref6bb7541b.libraryCount) + hxf8dbbe5 := (*sliceHeader)(unsafe.Pointer(&x.PLibraries)) + hxf8dbbe5.Data = unsafe.Pointer(x.ref6bb7541b.pLibraries) + hxf8dbbe5.Cap = 0x7fffffff + // hxf8dbbe5.Len = ? + } -// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV in C. +// allocPresentIdMemory allocates memory for type C.VkPresentIdKHR 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 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 sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) +const sizeOfPresentIdValue = unsafe.Sizeof([1]C.VkPresentIdKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { +func (x *PresentId) Ref() *C.VkPresentIdKHR { if x == nil { return nil } - return x.ref7ea4590f + 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 *ViewportWScalingNV) Free() { - if x != nil && x.allocs7ea4590f != nil { - x.allocs7ea4590f.(*cgoAllocMap).Free() - x.ref7ea4590f = nil +func (x *PresentId) Free() { + if x != nil && x.allocs70010623 != nil { + x.allocs70010623.(*cgoAllocMap).Free() + x.ref70010623 = nil } } -// NewViewportWScalingNVRef 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 NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { +func NewPresentIdRef(ref unsafe.Pointer) *PresentId { if ref == nil { return nil } - obj := new(ViewportWScalingNV) - obj.ref7ea4590f = (*C.VkViewportWScalingNV)(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 *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { +func (x *PresentId) PassRef() (*C.VkPresentIdKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ea4590f != nil { - return x.ref7ea4590f, nil + } else if x.ref70010623 != nil { + return x.ref70010623, nil } - mem7ea4590f := allocViewportWScalingNVMemory(1) - ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) - allocs7ea4590f := new(cgoAllocMap) - allocs7ea4590f.Add(mem7ea4590f) + mem70010623 := allocPresentIdMemory(1) + ref70010623 := (*C.VkPresentIdKHR)(mem70010623) + allocs70010623 := new(cgoAllocMap) + allocs70010623.Add(mem70010623) - var cxcoeff_allocs *cgoAllocMap - ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cxcoeff_allocs) + var csType_allocs *cgoAllocMap + ref70010623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70010623.Borrow(csType_allocs) - var cycoeff_allocs *cgoAllocMap - ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cycoeff_allocs) + var cpNext_allocs *cgoAllocMap + ref70010623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70010623.Borrow(cpNext_allocs) - x.ref7ea4590f = ref7ea4590f - x.allocs7ea4590f = allocs7ea4590f - return ref7ea4590f, allocs7ea4590f + var cswapchainCount_allocs *cgoAllocMap + ref70010623.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70010623.Borrow(cswapchainCount_allocs) + + 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 ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { - if x.ref7ea4590f != nil { - return *x.ref7ea4590f, nil +func (x PresentId) PassValue() (C.VkPresentIdKHR, *cgoAllocMap) { + if x.ref70010623 != nil { + return *x.ref70010623, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -42937,135 +43190,95 @@ 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 *PresentId) Deref() { + if x.ref70010623 == nil { return } - x.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) - x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) + x.SType = (StructureType)(x.ref70010623.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70010623.pNext)) + x.SwapchainCount = (uint32)(x.ref70010623.swapchainCount) + hxf766ff8 := (*sliceHeader)(unsafe.Pointer(&x.PPresentIds)) + hxf766ff8.Data = unsafe.Pointer(x.ref70010623.pPresentIds) + hxf766ff8.Cap = 0x7fffffff + // hxf766ff8.Len = ? + } -// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV in C. +// allocPhysicalDevicePresentIdFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentIdFeaturesKHR 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 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 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 sizeOfPhysicalDevicePresentIdFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentIdFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { +func (x *PhysicalDevicePresentIdFeatures) Ref() *C.VkPhysicalDevicePresentIdFeaturesKHR { if x == nil { return nil } - return x.ref3e532c0b + 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 *PipelineViewportWScalingStateCreateInfoNV) Free() { - if x != nil && x.allocs3e532c0b != nil { - x.allocs3e532c0b.(*cgoAllocMap).Free() - x.ref3e532c0b = nil +func (x *PhysicalDevicePresentIdFeatures) Free() { + if x != nil && x.allocsba9945cd != nil { + x.allocsba9945cd.(*cgoAllocMap).Free() + x.refba9945cd = nil } } -// NewPipelineViewportWScalingStateCreateInfoNVRef 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 NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { +func NewPhysicalDevicePresentIdFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentIdFeatures { if ref == nil { return nil } - obj := new(PipelineViewportWScalingStateCreateInfoNV) - obj.ref3e532c0b = (*C.VkPipelineViewportWScalingStateCreateInfoNV)(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 *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDevicePresentIdFeatures) PassRef() (*C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e532c0b != nil { - return x.ref3e532c0b, nil + } else if x.refba9945cd != nil { + return x.refba9945cd, nil } - mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) - ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) - allocs3e532c0b := new(cgoAllocMap) - allocs3e532c0b.Add(mem3e532c0b) + memba9945cd := allocPhysicalDevicePresentIdFeaturesMemory(1) + refba9945cd := (*C.VkPhysicalDevicePresentIdFeaturesKHR)(memba9945cd) + allocsba9945cd := new(cgoAllocMap) + allocsba9945cd.Add(memba9945cd) var csType_allocs *cgoAllocMap - ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e532c0b.Borrow(csType_allocs) + refba9945cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsba9945cd.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) + refba9945cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsba9945cd.Borrow(cpNext_allocs) - var cpViewportWScalings_allocs *cgoAllocMap - ref3e532c0b.pViewportWScalings, cpViewportWScalings_allocs = unpackSViewportWScalingNV(x.PViewportWScalings) - allocs3e532c0b.Borrow(cpViewportWScalings_allocs) + var cpresentId_allocs *cgoAllocMap + refba9945cd.presentId, cpresentId_allocs = (C.VkBool32)(x.PresentId), cgoAllocsUnknown + allocsba9945cd.Borrow(cpresentId_allocs) - x.ref3e532c0b = ref3e532c0b - x.allocs3e532c0b = allocs3e532c0b - return ref3e532c0b, allocs3e532c0b + 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 PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { - if x.ref3e532c0b != nil { - return *x.ref3e532c0b, nil +func (x PhysicalDevicePresentIdFeatures) PassValue() (C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { + if x.refba9945cd != nil { + return *x.refba9945cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43073,92 +43286,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 *PhysicalDevicePresentIdFeatures) Deref() { + if x.refba9945cd == 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.refba9945cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba9945cd.pNext)) + x.PresentId = (Bool32)(x.refba9945cd.presentId) } -// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT in C. +// allocQueueFamilyCheckpointProperties2NVMemory allocates memory for type C.VkQueueFamilyCheckpointProperties2NV 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 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 sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) +const sizeOfQueueFamilyCheckpointProperties2NVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointProperties2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { +func (x *QueueFamilyCheckpointProperties2NV) Ref() *C.VkQueueFamilyCheckpointProperties2NV { if x == nil { return nil } - return x.ref80fed52f + 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 *DisplayPowerInfo) Free() { - if x != nil && x.allocs80fed52f != nil { - x.allocs80fed52f.(*cgoAllocMap).Free() - x.ref80fed52f = nil +func (x *QueueFamilyCheckpointProperties2NV) Free() { + if x != nil && x.allocsfdc86afc != nil { + x.allocsfdc86afc.(*cgoAllocMap).Free() + x.reffdc86afc = nil } } -// NewDisplayPowerInfoRef 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 NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { +func NewQueueFamilyCheckpointProperties2NVRef(ref unsafe.Pointer) *QueueFamilyCheckpointProperties2NV { if ref == nil { return nil } - obj := new(DisplayPowerInfo) - obj.ref80fed52f = (*C.VkDisplayPowerInfoEXT)(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 *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { +func (x *QueueFamilyCheckpointProperties2NV) PassRef() (*C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80fed52f != nil { - return x.ref80fed52f, nil + } else if x.reffdc86afc != nil { + return x.reffdc86afc, nil } - mem80fed52f := allocDisplayPowerInfoMemory(1) - ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) - allocs80fed52f := new(cgoAllocMap) - allocs80fed52f.Add(mem80fed52f) + memfdc86afc := allocQueueFamilyCheckpointProperties2NVMemory(1) + reffdc86afc := (*C.VkQueueFamilyCheckpointProperties2NV)(memfdc86afc) + allocsfdc86afc := new(cgoAllocMap) + allocsfdc86afc.Add(memfdc86afc) var csType_allocs *cgoAllocMap - ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80fed52f.Borrow(csType_allocs) + reffdc86afc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfdc86afc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80fed52f.Borrow(cpNext_allocs) + reffdc86afc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfdc86afc.Borrow(cpNext_allocs) - var cpowerState_allocs *cgoAllocMap - ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown - allocs80fed52f.Borrow(cpowerState_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + reffdc86afc.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags2)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocsfdc86afc.Borrow(ccheckpointExecutionStageMask_allocs) - x.ref80fed52f = ref80fed52f - x.allocs80fed52f = allocs80fed52f - return ref80fed52f, allocs80fed52f + 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 DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { - if x.ref80fed52f != nil { - return *x.ref80fed52f, nil +func (x QueueFamilyCheckpointProperties2NV) PassValue() (C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { + if x.reffdc86afc != nil { + return *x.reffdc86afc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43166,90 +43377,94 @@ 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 *QueueFamilyCheckpointProperties2NV) Deref() { + if x.reffdc86afc == nil { return } - x.SType = (StructureType)(x.ref80fed52f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) - x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) + x.SType = (StructureType)(x.reffdc86afc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffdc86afc.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags2)(x.reffdc86afc.checkpointExecutionStageMask) } -// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT in C. +// allocCheckpointData2NVMemory allocates memory for type C.VkCheckpointData2NV 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)) +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 sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) +const sizeOfCheckpointData2NVValue = unsafe.Sizeof([1]C.VkCheckpointData2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { +func (x *CheckpointData2NV) Ref() *C.VkCheckpointData2NV { if x == nil { return nil } - return x.ref394b3fcb + 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 *DeviceEventInfo) Free() { - if x != nil && x.allocs394b3fcb != nil { - x.allocs394b3fcb.(*cgoAllocMap).Free() - x.ref394b3fcb = nil +func (x *CheckpointData2NV) Free() { + if x != nil && x.allocs6e25431b != nil { + x.allocs6e25431b.(*cgoAllocMap).Free() + x.ref6e25431b = nil } } -// NewDeviceEventInfoRef 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 NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { +func NewCheckpointData2NVRef(ref unsafe.Pointer) *CheckpointData2NV { if ref == nil { return nil } - obj := new(DeviceEventInfo) - obj.ref394b3fcb = (*C.VkDeviceEventInfoEXT)(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 *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { +func (x *CheckpointData2NV) PassRef() (*C.VkCheckpointData2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref394b3fcb != nil { - return x.ref394b3fcb, nil + } else if x.ref6e25431b != nil { + return x.ref6e25431b, nil } - mem394b3fcb := allocDeviceEventInfoMemory(1) - ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) - allocs394b3fcb := new(cgoAllocMap) - allocs394b3fcb.Add(mem394b3fcb) + mem6e25431b := allocCheckpointData2NVMemory(1) + ref6e25431b := (*C.VkCheckpointData2NV)(mem6e25431b) + allocs6e25431b := new(cgoAllocMap) + allocs6e25431b.Add(mem6e25431b) var csType_allocs *cgoAllocMap - ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs394b3fcb.Borrow(csType_allocs) + ref6e25431b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6e25431b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs394b3fcb.Borrow(cpNext_allocs) + ref6e25431b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6e25431b.Borrow(cpNext_allocs) - var cdeviceEvent_allocs *cgoAllocMap - ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown - allocs394b3fcb.Borrow(cdeviceEvent_allocs) + var cstage_allocs *cgoAllocMap + ref6e25431b.stage, cstage_allocs = (C.VkPipelineStageFlags2)(x.Stage), cgoAllocsUnknown + allocs6e25431b.Borrow(cstage_allocs) - x.ref394b3fcb = ref394b3fcb - x.allocs394b3fcb = allocs394b3fcb - return ref394b3fcb, allocs394b3fcb + 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 DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { - if x.ref394b3fcb != nil { - return *x.ref394b3fcb, nil +func (x CheckpointData2NV) PassValue() (C.VkCheckpointData2NV, *cgoAllocMap) { + if x.ref6e25431b != nil { + return *x.ref6e25431b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43257,90 +43472,91 @@ 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 *CheckpointData2NV) Deref() { + if x.ref6e25431b == 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.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)) } -// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT in C. +// allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR 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 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 sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) +const sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { if x == nil { return nil } - return x.refa69f7302 + 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 *DisplayEventInfo) Free() { - if x != nil && x.allocsa69f7302 != nil { - x.allocsa69f7302.(*cgoAllocMap).Free() - x.refa69f7302 = nil +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) Free() { + if x != nil && x.allocsf7f35e73 != nil { + x.allocsf7f35e73.(*cgoAllocMap).Free() + x.reff7f35e73 = nil } } -// NewDisplayEventInfoRef 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 NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { +func NewPhysicalDeviceFragmentShaderBarycentricFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeatures { if ref == nil { return nil } - obj := new(DisplayEventInfo) - obj.refa69f7302 = (*C.VkDisplayEventInfoEXT)(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 *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa69f7302 != nil { - return x.refa69f7302, nil + } else if x.reff7f35e73 != nil { + return x.reff7f35e73, nil } - mema69f7302 := allocDisplayEventInfoMemory(1) - refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) - allocsa69f7302 := new(cgoAllocMap) - allocsa69f7302.Add(mema69f7302) + memf7f35e73 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory(1) + reff7f35e73 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(memf7f35e73) + allocsf7f35e73 := new(cgoAllocMap) + allocsf7f35e73.Add(memf7f35e73) var csType_allocs *cgoAllocMap - refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa69f7302.Borrow(csType_allocs) + reff7f35e73.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7f35e73.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa69f7302.Borrow(cpNext_allocs) + reff7f35e73.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7f35e73.Borrow(cpNext_allocs) - var cdisplayEvent_allocs *cgoAllocMap - refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown - allocsa69f7302.Borrow(cdisplayEvent_allocs) + var cfragmentShaderBarycentric_allocs *cgoAllocMap + reff7f35e73.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown + allocsf7f35e73.Borrow(cfragmentShaderBarycentric_allocs) - x.refa69f7302 = refa69f7302 - x.allocsa69f7302 = allocsa69f7302 - return refa69f7302, allocsa69f7302 + 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 DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { - if x.refa69f7302 != nil { - return *x.refa69f7302, nil +func (x PhysicalDeviceFragmentShaderBarycentricFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { + if x.reff7f35e73 != nil { + return *x.reff7f35e73, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43348,90 +43564,90 @@ 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 *PhysicalDeviceFragmentShaderBarycentricFeatures) Deref() { + if x.reff7f35e73 == 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.reff7f35e73.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7f35e73.pNext)) + x.FragmentShaderBarycentric = (Bool32)(x.reff7f35e73.fragmentShaderBarycentric) } -// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT in C. +// allocPhysicalDeviceFragmentShaderBarycentricPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR 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 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 sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) +const sizeOfPhysicalDeviceFragmentShaderBarycentricPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { if x == nil { return nil } - return x.ref9f21eca6 + 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 *SwapchainCounterCreateInfo) Free() { - if x != nil && x.allocs9f21eca6 != nil { - x.allocs9f21eca6.(*cgoAllocMap).Free() - x.ref9f21eca6 = nil +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) Free() { + if x != nil && x.allocsc62a32db != nil { + x.allocsc62a32db.(*cgoAllocMap).Free() + x.refc62a32db = nil } } -// NewSwapchainCounterCreateInfoRef 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 NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { +func NewPhysicalDeviceFragmentShaderBarycentricPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricProperties { if ref == nil { return nil } - obj := new(SwapchainCounterCreateInfo) - obj.ref9f21eca6 = (*C.VkSwapchainCounterCreateInfoEXT)(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 *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9f21eca6 != nil { - return x.ref9f21eca6, nil + } else if x.refc62a32db != nil { + return x.refc62a32db, nil } - mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) - ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) - allocs9f21eca6 := new(cgoAllocMap) - allocs9f21eca6.Add(mem9f21eca6) + memc62a32db := allocPhysicalDeviceFragmentShaderBarycentricPropertiesMemory(1) + refc62a32db := (*C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR)(memc62a32db) + allocsc62a32db := new(cgoAllocMap) + allocsc62a32db.Add(memc62a32db) var csType_allocs *cgoAllocMap - ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9f21eca6.Borrow(csType_allocs) + refc62a32db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc62a32db.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9f21eca6.Borrow(cpNext_allocs) + refc62a32db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc62a32db.Borrow(cpNext_allocs) - var csurfaceCounters_allocs *cgoAllocMap - ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown - allocs9f21eca6.Borrow(csurfaceCounters_allocs) + var ctriStripVertexOrderIndependentOfProvokingVertex_allocs *cgoAllocMap + refc62a32db.triStripVertexOrderIndependentOfProvokingVertex, ctriStripVertexOrderIndependentOfProvokingVertex_allocs = (C.VkBool32)(x.TriStripVertexOrderIndependentOfProvokingVertex), cgoAllocsUnknown + allocsc62a32db.Borrow(ctriStripVertexOrderIndependentOfProvokingVertex_allocs) - x.ref9f21eca6 = ref9f21eca6 - x.allocs9f21eca6 = allocs9f21eca6 - return ref9f21eca6, allocs9f21eca6 + 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 SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { - if x.ref9f21eca6 != nil { - return *x.ref9f21eca6, nil +func (x PhysicalDeviceFragmentShaderBarycentricProperties) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, *cgoAllocMap) { + if x.refc62a32db != nil { + return *x.refc62a32db, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43439,82 +43655,90 @@ 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 *PhysicalDeviceFragmentShaderBarycentricProperties) Deref() { + if x.refc62a32db == 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.refc62a32db.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc62a32db.pNext)) + x.TriStripVertexOrderIndependentOfProvokingVertex = (Bool32)(x.refc62a32db.triStripVertexOrderIndependentOfProvokingVertex) } -// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE in C. +// allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 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 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 sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) +const sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Ref() *C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { if x == nil { return nil } - return x.ref969cb55b + 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 *RefreshCycleDurationGOOGLE) Free() { - if x != nil && x.allocs969cb55b != nil { - x.allocs969cb55b.(*cgoAllocMap).Free() - x.ref969cb55b = nil +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Free() { + if x != nil && x.allocsadc1f19 != nil { + x.allocsadc1f19.(*cgoAllocMap).Free() + x.refadc1f19 = nil } } -// NewRefreshCycleDurationGOOGLERef 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 NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { +func NewPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures { if ref == nil { return nil } - obj := new(RefreshCycleDurationGOOGLE) - obj.ref969cb55b = (*C.VkRefreshCycleDurationGOOGLE)(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 *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassRef() (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref969cb55b != nil { - return x.ref969cb55b, nil + } else if x.refadc1f19 != nil { + return x.refadc1f19, nil } - mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) - ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) - allocs969cb55b := new(cgoAllocMap) - allocs969cb55b.Add(mem969cb55b) + memadc1f19 := allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(1) + refadc1f19 := (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)(memadc1f19) + allocsadc1f19 := new(cgoAllocMap) + allocsadc1f19.Add(memadc1f19) - var crefreshDuration_allocs *cgoAllocMap - ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown - allocs969cb55b.Borrow(crefreshDuration_allocs) + var csType_allocs *cgoAllocMap + refadc1f19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsadc1f19.Borrow(csType_allocs) - x.ref969cb55b = ref969cb55b - x.allocs969cb55b = allocs969cb55b - return ref969cb55b, allocs969cb55b + var cpNext_allocs *cgoAllocMap + refadc1f19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsadc1f19.Borrow(cpNext_allocs) + + var cshaderSubgroupUniformControlFlow_allocs *cgoAllocMap + refadc1f19.shaderSubgroupUniformControlFlow, cshaderSubgroupUniformControlFlow_allocs = (C.VkBool32)(x.ShaderSubgroupUniformControlFlow), cgoAllocsUnknown + allocsadc1f19.Borrow(cshaderSubgroupUniformControlFlow_allocs) + + 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 RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { - if x.ref969cb55b != nil { - return *x.ref969cb55b, nil +func (x PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassValue() (C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { + if x.refadc1f19 != nil { + return *x.refadc1f19, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43522,96 +43746,102 @@ 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 *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Deref() { + if x.refadc1f19 == nil { return } - x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) + x.SType = (StructureType)(x.refadc1f19.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refadc1f19.pNext)) + x.ShaderSubgroupUniformControlFlow = (Bool32)(x.refadc1f19.shaderSubgroupUniformControlFlow) } -// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE in C. +// allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 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 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 sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) +const sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Ref() *C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { if x == nil { return nil } - return x.refac8cf1d8 + 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 *PastPresentationTimingGOOGLE) Free() { - if x != nil && x.allocsac8cf1d8 != nil { - x.allocsac8cf1d8.(*cgoAllocMap).Free() - x.refac8cf1d8 = nil +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Free() { + if x != nil && x.allocs288a691 != nil { + x.allocs288a691.(*cgoAllocMap).Free() + x.ref288a691 = nil } } -// NewPastPresentationTimingGOOGLERef 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 NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { +func NewPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures { if ref == nil { return nil } - obj := new(PastPresentationTimingGOOGLE) - obj.refac8cf1d8 = (*C.VkPastPresentationTimingGOOGLE)(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 *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassRef() (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac8cf1d8 != nil { - return x.refac8cf1d8, nil + } else if x.ref288a691 != nil { + return x.ref288a691, nil } - memac8cf1d8 := allocPastPresentationTimingGOOGLEMemory(1) - refac8cf1d8 := (*C.VkPastPresentationTimingGOOGLE)(memac8cf1d8) - allocsac8cf1d8 := new(cgoAllocMap) - allocsac8cf1d8.Add(memac8cf1d8) + mem288a691 := allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(1) + ref288a691 := (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)(mem288a691) + allocs288a691 := new(cgoAllocMap) + allocs288a691.Add(mem288a691) - var cpresentID_allocs *cgoAllocMap - refac8cf1d8.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cpresentID_allocs) + var csType_allocs *cgoAllocMap + ref288a691.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs288a691.Borrow(csType_allocs) - var cdesiredPresentTime_allocs *cgoAllocMap - refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) + var cpNext_allocs *cgoAllocMap + ref288a691.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs288a691.Borrow(cpNext_allocs) - var cactualPresentTime_allocs *cgoAllocMap - refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cactualPresentTime_allocs) + var cworkgroupMemoryExplicitLayout_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayout, cworkgroupMemoryExplicitLayout_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayout_allocs) - var cearliestPresentTime_allocs *cgoAllocMap - refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) + var cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayoutScalarBlockLayout, cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayoutScalarBlockLayout), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs) - var cpresentMargin_allocs *cgoAllocMap - refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cpresentMargin_allocs) + var cworkgroupMemoryExplicitLayout8BitAccess_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayout8BitAccess, cworkgroupMemoryExplicitLayout8BitAccess_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout8BitAccess), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayout8BitAccess_allocs) - x.refac8cf1d8 = refac8cf1d8 - x.allocsac8cf1d8 = allocsac8cf1d8 - return refac8cf1d8, allocsac8cf1d8 + 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 PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { - if x.refac8cf1d8 != nil { - return *x.refac8cf1d8, nil +func (x PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassValue() (C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { + if x.ref288a691 != nil { + return *x.ref288a691, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43619,88 +43849,97 @@ 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 *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Deref() { + if x.ref288a691 == 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.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) } -// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE in C. +// allocPhysicalDeviceRayTracingMaintenance1FeaturesMemory allocates memory for type C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR 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 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 sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) +const sizeOfPhysicalDeviceRayTracingMaintenance1FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { +func (x *PhysicalDeviceRayTracingMaintenance1Features) Ref() *C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { if x == nil { return nil } - return x.ref9cd90ade + 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 *PresentTimeGOOGLE) Free() { - if x != nil && x.allocs9cd90ade != nil { - x.allocs9cd90ade.(*cgoAllocMap).Free() - x.ref9cd90ade = nil +func (x *PhysicalDeviceRayTracingMaintenance1Features) Free() { + if x != nil && x.allocs799fe16 != nil { + x.allocs799fe16.(*cgoAllocMap).Free() + x.ref799fe16 = nil } } -// NewPresentTimeGOOGLERef 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 NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { +func NewPhysicalDeviceRayTracingMaintenance1FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRayTracingMaintenance1Features { if ref == nil { return nil } - obj := new(PresentTimeGOOGLE) - obj.ref9cd90ade = (*C.VkPresentTimeGOOGLE)(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 *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceRayTracingMaintenance1Features) PassRef() (*C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9cd90ade != nil { - return x.ref9cd90ade, nil + } else if x.ref799fe16 != nil { + return x.ref799fe16, nil } - mem9cd90ade := allocPresentTimeGOOGLEMemory(1) - ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) - allocs9cd90ade := new(cgoAllocMap) - allocs9cd90ade.Add(mem9cd90ade) + mem799fe16 := allocPhysicalDeviceRayTracingMaintenance1FeaturesMemory(1) + ref799fe16 := (*C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR)(mem799fe16) + allocs799fe16 := new(cgoAllocMap) + allocs799fe16.Add(mem799fe16) - var cpresentID_allocs *cgoAllocMap - ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown - allocs9cd90ade.Borrow(cpresentID_allocs) + var csType_allocs *cgoAllocMap + ref799fe16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs799fe16.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 + ref799fe16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs799fe16.Borrow(cpNext_allocs) - x.ref9cd90ade = ref9cd90ade - x.allocs9cd90ade = allocs9cd90ade - return ref9cd90ade, allocs9cd90ade + var crayTracingMaintenance1_allocs *cgoAllocMap + ref799fe16.rayTracingMaintenance1, crayTracingMaintenance1_allocs = (C.VkBool32)(x.RayTracingMaintenance1), cgoAllocsUnknown + allocs799fe16.Borrow(crayTracingMaintenance1_allocs) + + 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 PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { - if x.ref9cd90ade != nil { - return *x.ref9cd90ade, nil +func (x PhysicalDeviceRayTracingMaintenance1Features) PassValue() (C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, *cgoAllocMap) { + if x.ref799fe16 != nil { + return *x.ref799fe16, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43708,131 +43947,135 @@ 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 *PhysicalDeviceRayTracingMaintenance1Features) Deref() { + if x.ref799fe16 == nil { return } - x.PresentID = (uint32)(x.ref9cd90ade.presentID) - x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) + 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) } -// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE in C. +// allocTraceRaysIndirectCommand2Memory allocates memory for type C.VkTraceRaysIndirectCommand2KHR 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 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 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 sizeOfTraceRaysIndirectCommand2Value = unsafe.Sizeof([1]C.VkTraceRaysIndirectCommand2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { +func (x *TraceRaysIndirectCommand2) Ref() *C.VkTraceRaysIndirectCommand2KHR { if x == nil { return nil } - return x.ref70eb8ab3 + 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 *PresentTimesInfoGOOGLE) Free() { - if x != nil && x.allocs70eb8ab3 != nil { - x.allocs70eb8ab3.(*cgoAllocMap).Free() - x.ref70eb8ab3 = nil +func (x *TraceRaysIndirectCommand2) Free() { + if x != nil && x.allocs9139d02e != nil { + x.allocs9139d02e.(*cgoAllocMap).Free() + x.ref9139d02e = nil } } -// NewPresentTimesInfoGOOGLERef 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 NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { +func NewTraceRaysIndirectCommand2Ref(ref unsafe.Pointer) *TraceRaysIndirectCommand2 { if ref == nil { return nil } - obj := new(PresentTimesInfoGOOGLE) - obj.ref70eb8ab3 = (*C.VkPresentTimesInfoGOOGLE)(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 *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { +func (x *TraceRaysIndirectCommand2) PassRef() (*C.VkTraceRaysIndirectCommand2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref70eb8ab3 != nil { - return x.ref70eb8ab3, nil + } else if x.ref9139d02e != nil { + return x.ref9139d02e, nil } - mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) - ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) - allocs70eb8ab3 := new(cgoAllocMap) - allocs70eb8ab3.Add(mem70eb8ab3) + mem9139d02e := allocTraceRaysIndirectCommand2Memory(1) + ref9139d02e := (*C.VkTraceRaysIndirectCommand2KHR)(mem9139d02e) + allocs9139d02e := new(cgoAllocMap) + allocs9139d02e.Add(mem9139d02e) - var csType_allocs *cgoAllocMap - ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs70eb8ab3.Borrow(csType_allocs) + var craygenShaderRecordAddress_allocs *cgoAllocMap + ref9139d02e.raygenShaderRecordAddress, craygenShaderRecordAddress_allocs = (C.VkDeviceAddress)(x.RaygenShaderRecordAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(craygenShaderRecordAddress_allocs) - var cpNext_allocs *cgoAllocMap - ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cpNext_allocs) + var craygenShaderRecordSize_allocs *cgoAllocMap + ref9139d02e.raygenShaderRecordSize, craygenShaderRecordSize_allocs = (C.VkDeviceSize)(x.RaygenShaderRecordSize), cgoAllocsUnknown + allocs9139d02e.Borrow(craygenShaderRecordSize_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cswapchainCount_allocs) + var cmissShaderBindingTableAddress_allocs *cgoAllocMap + ref9139d02e.missShaderBindingTableAddress, cmissShaderBindingTableAddress_allocs = (C.VkDeviceAddress)(x.MissShaderBindingTableAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(cmissShaderBindingTableAddress_allocs) - var cpTimes_allocs *cgoAllocMap - ref70eb8ab3.pTimes, cpTimes_allocs = unpackSPresentTimeGOOGLE(x.PTimes) - allocs70eb8ab3.Borrow(cpTimes_allocs) + var cmissShaderBindingTableSize_allocs *cgoAllocMap + ref9139d02e.missShaderBindingTableSize, cmissShaderBindingTableSize_allocs = (C.VkDeviceSize)(x.MissShaderBindingTableSize), cgoAllocsUnknown + allocs9139d02e.Borrow(cmissShaderBindingTableSize_allocs) - x.ref70eb8ab3 = ref70eb8ab3 - x.allocs70eb8ab3 = allocs70eb8ab3 - return ref70eb8ab3, allocs70eb8ab3 + 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 PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { - if x.ref70eb8ab3 != nil { - return *x.ref70eb8ab3, nil +func (x TraceRaysIndirectCommand2) PassValue() (C.VkTraceRaysIndirectCommand2KHR, *cgoAllocMap) { + if x.ref9139d02e != nil { + return *x.ref9139d02e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43840,91 +44083,153 @@ 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 *TraceRaysIndirectCommand2) Deref() { + if x.ref9139d02e == 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.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) } -// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX 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 allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue)) +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 sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) +const sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { if x == nil { return nil } - return x.refbaf399ad + 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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { - if x != nil && x.allocsbaf399ad != nil { - x.allocsbaf399ad.(*cgoAllocMap).Free() - x.refbaf399ad = nil +func (x *DebugReportCallbackCreateInfo) Free() { + if x != nil && x.allocsc8238563 != nil { + x.allocsc8238563.(*cgoAllocMap).Free() + x.refc8238563 = nil } } -// NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef 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 NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) - obj.refbaf399ad = (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { +func (x *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbaf399ad != nil { - return x.refbaf399ad, nil + } else if x.refc8238563 != nil { + return x.refc8238563, nil } - membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) - refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) - allocsbaf399ad := new(cgoAllocMap) - allocsbaf399ad.Add(membaf399ad) + memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) + refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) + allocsc8238563 := new(cgoAllocMap) + allocsc8238563.Add(memc8238563) var csType_allocs *cgoAllocMap - refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbaf399ad.Borrow(csType_allocs) + refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc8238563.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbaf399ad.Borrow(cpNext_allocs) + refc8238563.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc8238563.Borrow(cpNext_allocs) - var cperViewPositionAllComponents_allocs *cgoAllocMap - refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown - allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) + var cflags_allocs *cgoAllocMap + refc8238563.flags, cflags_allocs = (C.VkDebugReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsc8238563.Borrow(cflags_allocs) - x.refbaf399ad = refbaf399ad - x.allocsbaf399ad = allocsbaf399ad - return refbaf399ad, allocsbaf399ad + var cpfnCallback_allocs *cgoAllocMap + refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() + allocsc8238563.Borrow(cpfnCallback_allocs) + + var cpUserData_allocs *cgoAllocMap + refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsc8238563.Borrow(cpUserData_allocs) + + 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 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { - if x.refbaf399ad != nil { - return *x.refbaf399ad, nil +func (x DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { + if x.refc8238563 != nil { + return *x.refc8238563, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -43932,94 +44237,92 @@ 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 *DebugReportCallbackCreateInfo) Deref() { + if x.refc8238563 == 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.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)) } -// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV in C. +// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD 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 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 sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) +const sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { +func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { if x == nil { return nil } - return x.ref74ff2887 + 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 *ViewportSwizzleNV) Free() { - if x != nil && x.allocs74ff2887 != nil { - x.allocs74ff2887.(*cgoAllocMap).Free() - x.ref74ff2887 = nil +func (x *PipelineRasterizationStateRasterizationOrderAMD) Free() { + if x != nil && x.allocs5098cf82 != nil { + x.allocs5098cf82.(*cgoAllocMap).Free() + x.ref5098cf82 = nil } } -// NewViewportSwizzleNVRef 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 NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { +func NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { if ref == nil { return nil } - obj := new(ViewportSwizzleNV) - obj.ref74ff2887 = (*C.VkViewportSwizzleNV)(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 *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { +func (x *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref74ff2887 != nil { - return x.ref74ff2887, nil + } else if x.ref5098cf82 != nil { + return x.ref5098cf82, nil } - mem74ff2887 := allocViewportSwizzleNVMemory(1) - ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) - allocs74ff2887 := new(cgoAllocMap) - allocs74ff2887.Add(mem74ff2887) - - var cx_allocs *cgoAllocMap - ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown - allocs74ff2887.Borrow(cx_allocs) + mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) + ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) + allocs5098cf82 := new(cgoAllocMap) + allocs5098cf82.Add(mem5098cf82) - var cy_allocs *cgoAllocMap - ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown - allocs74ff2887.Borrow(cy_allocs) + var csType_allocs *cgoAllocMap + ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5098cf82.Borrow(csType_allocs) - var cz_allocs *cgoAllocMap - ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown - allocs74ff2887.Borrow(cz_allocs) + var cpNext_allocs *cgoAllocMap + ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5098cf82.Borrow(cpNext_allocs) - var cw_allocs *cgoAllocMap - ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown - allocs74ff2887.Borrow(cw_allocs) + var crasterizationOrder_allocs *cgoAllocMap + ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown + allocs5098cf82.Borrow(crasterizationOrder_allocs) - x.ref74ff2887 = ref74ff2887 - x.allocs74ff2887 = allocs74ff2887 - return ref74ff2887, allocs74ff2887 + 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 ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { - if x.ref74ff2887 != nil { - return *x.ref74ff2887, nil +func (x PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { + if x.ref5098cf82 != nil { + return *x.ref5098cf82, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44027,137 +44330,98 @@ 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 *PipelineRasterizationStateRasterizationOrderAMD) Deref() { + if x.ref5098cf82 == 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.ref5098cf82.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5098cf82.pNext)) + x.RasterizationOrder = (RasterizationOrderAMD)(x.ref5098cf82.rasterizationOrder) } -// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV in C. +// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT 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 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 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 sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { +func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { if x == nil { return nil } - return x.ref5e90f24 + 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 *PipelineViewportSwizzleStateCreateInfoNV) Free() { - if x != nil && x.allocs5e90f24 != nil { - x.allocs5e90f24.(*cgoAllocMap).Free() - x.ref5e90f24 = nil +func (x *DebugMarkerObjectNameInfo) Free() { + if x != nil && x.allocse4983fab != nil { + x.allocse4983fab.(*cgoAllocMap).Free() + x.refe4983fab = nil } } -// NewPipelineViewportSwizzleStateCreateInfoNVRef 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 NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { +func NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { if ref == nil { return nil } - obj := new(PipelineViewportSwizzleStateCreateInfoNV) - obj.ref5e90f24 = (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(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 *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { +func (x *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e90f24 != nil { - return x.ref5e90f24, nil + } else if x.refe4983fab != nil { + return x.refe4983fab, nil } - mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) - ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) - allocs5e90f24 := new(cgoAllocMap) - allocs5e90f24.Add(mem5e90f24) + meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) + refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) + allocse4983fab := new(cgoAllocMap) + allocse4983fab.Add(meme4983fab) var csType_allocs *cgoAllocMap - ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e90f24.Borrow(csType_allocs) + refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse4983fab.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5e90f24.Borrow(cpNext_allocs) + refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse4983fab.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocs5e90f24.Borrow(cflags_allocs) + var cobjectType_allocs *cgoAllocMap + refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown + allocse4983fab.Borrow(cobjectType_allocs) - var cviewportCount_allocs *cgoAllocMap - ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs5e90f24.Borrow(cviewportCount_allocs) + var cobject_allocs *cgoAllocMap + refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown + allocse4983fab.Borrow(cobject_allocs) - var cpViewportSwizzles_allocs *cgoAllocMap - ref5e90f24.pViewportSwizzles, cpViewportSwizzles_allocs = unpackSViewportSwizzleNV(x.PViewportSwizzles) - allocs5e90f24.Borrow(cpViewportSwizzles_allocs) + var cpObjectName_allocs *cgoAllocMap + refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) + allocse4983fab.Borrow(cpObjectName_allocs) - x.ref5e90f24 = ref5e90f24 - x.allocs5e90f24 = allocs5e90f24 - return ref5e90f24, allocs5e90f24 + 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 PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { - if x.ref5e90f24 != nil { - return *x.ref5e90f24, nil +func (x DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { + if x.refe4983fab != nil { + return *x.refe4983fab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44165,92 +44429,108 @@ 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 *DebugMarkerObjectNameInfo) Deref() { + if x.refe4983fab == 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.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) } -// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT in C. +// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT 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 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 sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) +const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { +func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { if x == nil { return nil } - return x.reffe8591da + 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 *PhysicalDeviceDiscardRectangleProperties) Free() { - if x != nil && x.allocsfe8591da != nil { - x.allocsfe8591da.(*cgoAllocMap).Free() - x.reffe8591da = nil +func (x *DebugMarkerObjectTagInfo) Free() { + if x != nil && x.allocsa41a5c3b != nil { + x.allocsa41a5c3b.(*cgoAllocMap).Free() + x.refa41a5c3b = nil } } -// NewPhysicalDeviceDiscardRectanglePropertiesRef 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 NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { +func NewDebugMarkerObjectTagInfoRef(ref unsafe.Pointer) *DebugMarkerObjectTagInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceDiscardRectangleProperties) - obj.reffe8591da = (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(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 *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { +func (x *DebugMarkerObjectTagInfo) PassRef() (*C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe8591da != nil { - return x.reffe8591da, nil + } else if x.refa41a5c3b != nil { + return x.refa41a5c3b, nil } - memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) - reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) - allocsfe8591da := new(cgoAllocMap) - allocsfe8591da.Add(memfe8591da) + mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) + refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) + allocsa41a5c3b := new(cgoAllocMap) + allocsa41a5c3b.Add(mema41a5c3b) var csType_allocs *cgoAllocMap - reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe8591da.Borrow(csType_allocs) + refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa41a5c3b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe8591da.Borrow(cpNext_allocs) - - var cmaxDiscardRectangles_allocs *cgoAllocMap - reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown - allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) + refa41a5c3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cpNext_allocs) - x.reffe8591da = reffe8591da - x.allocsfe8591da = allocsfe8591da - return reffe8591da, allocsfe8591da + 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) + + 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 PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { - if x.reffe8591da != nil { - return *x.reffe8591da, nil +func (x DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { + if x.refa41a5c3b != nil { + return *x.refa41a5c3b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44258,102 +44538,98 @@ 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 *DebugMarkerObjectTagInfo) Deref() { + if x.refa41a5c3b == 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.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)) } -// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT in C. +// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT 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 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 sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) +const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { +func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { if x == nil { return nil } - return x.refcdbb125e + 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 *PipelineDiscardRectangleStateCreateInfo) Free() { - if x != nil && x.allocscdbb125e != nil { - x.allocscdbb125e.(*cgoAllocMap).Free() - x.refcdbb125e = nil +func (x *DebugMarkerMarkerInfo) Free() { + if x != nil && x.allocs234b91fd != nil { + x.allocs234b91fd.(*cgoAllocMap).Free() + x.ref234b91fd = nil } } -// NewPipelineDiscardRectangleStateCreateInfoRef 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 NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { +func NewDebugMarkerMarkerInfoRef(ref unsafe.Pointer) *DebugMarkerMarkerInfo { if ref == nil { return nil } - obj := new(PipelineDiscardRectangleStateCreateInfo) - obj.refcdbb125e = (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(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 *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { +func (x *DebugMarkerMarkerInfo) PassRef() (*C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcdbb125e != nil { - return x.refcdbb125e, nil + } else if x.ref234b91fd != nil { + return x.ref234b91fd, nil } - memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) - refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) - allocscdbb125e := new(cgoAllocMap) - allocscdbb125e.Add(memcdbb125e) + mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) + ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) + allocs234b91fd := new(cgoAllocMap) + allocs234b91fd.Add(mem234b91fd) var csType_allocs *cgoAllocMap - refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscdbb125e.Borrow(csType_allocs) + ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs234b91fd.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) + ref234b91fd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs234b91fd.Borrow(cpNext_allocs) - var cdiscardRectangleCount_allocs *cgoAllocMap - refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown - allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) + var cpMarkerName_allocs *cgoAllocMap + ref234b91fd.pMarkerName, cpMarkerName_allocs = unpackPCharString(x.PMarkerName) + allocs234b91fd.Borrow(cpMarkerName_allocs) - var cpDiscardRectangles_allocs *cgoAllocMap - refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) - allocscdbb125e.Borrow(cpDiscardRectangles_allocs) + var ccolor_allocs *cgoAllocMap + ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs234b91fd.Borrow(ccolor_allocs) - x.refcdbb125e = refcdbb125e - x.allocscdbb125e = allocscdbb125e - return refcdbb125e, allocscdbb125e + 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 PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { - if x.refcdbb125e != nil { - return *x.refcdbb125e, nil +func (x DebugMarkerMarkerInfo) PassValue() (C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { + if x.ref234b91fd != nil { + return *x.ref234b91fd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44361,125 +44637,91 @@ 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 *DebugMarkerMarkerInfo) Deref() { + if x.ref234b91fd == 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.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)) } -// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT in C. +// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV 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 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 sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) +const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { +func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { if x == nil { return nil } - return x.ref878f819c + 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 *PhysicalDeviceConservativeRasterizationProperties) Free() { - if x != nil && x.allocs878f819c != nil { - x.allocs878f819c.(*cgoAllocMap).Free() - x.ref878f819c = nil +func (x *DedicatedAllocationImageCreateInfoNV) Free() { + if x != nil && x.allocs685d878b != nil { + x.allocs685d878b.(*cgoAllocMap).Free() + x.ref685d878b = nil } } -// NewPhysicalDeviceConservativeRasterizationPropertiesRef 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 NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { +func NewDedicatedAllocationImageCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationImageCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceConservativeRasterizationProperties) - obj.ref878f819c = (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(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 *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { +func (x *DedicatedAllocationImageCreateInfoNV) PassRef() (*C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref878f819c != nil { - return x.ref878f819c, nil + } else if x.ref685d878b != nil { + return x.ref685d878b, nil } - mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) - ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) - allocs878f819c := new(cgoAllocMap) - allocs878f819c.Add(mem878f819c) + mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) + ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) + allocs685d878b := new(cgoAllocMap) + allocs685d878b.Add(mem685d878b) var csType_allocs *cgoAllocMap - ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs878f819c.Borrow(csType_allocs) + ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs685d878b.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) - - var cfullyCoveredFragmentShaderInputVariable_allocs *cgoAllocMap - ref878f819c.fullyCoveredFragmentShaderInputVariable, cfullyCoveredFragmentShaderInputVariable_allocs = (C.VkBool32)(x.FullyCoveredFragmentShaderInputVariable), cgoAllocsUnknown - allocs878f819c.Borrow(cfullyCoveredFragmentShaderInputVariable_allocs) + ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs685d878b.Borrow(cpNext_allocs) - var cconservativeRasterizationPostDepthCoverage_allocs *cgoAllocMap - ref878f819c.conservativeRasterizationPostDepthCoverage, cconservativeRasterizationPostDepthCoverage_allocs = (C.VkBool32)(x.ConservativeRasterizationPostDepthCoverage), cgoAllocsUnknown - allocs878f819c.Borrow(cconservativeRasterizationPostDepthCoverage_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocs685d878b.Borrow(cdedicatedAllocation_allocs) - x.ref878f819c = ref878f819c - x.allocs878f819c = allocs878f819c - return ref878f819c, allocs878f819c + 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 PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { - if x.ref878f819c != nil { - return *x.ref878f819c, nil +func (x DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { + if x.ref685d878b != nil { + return *x.ref685d878b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44487,106 +44729,90 @@ 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 *DedicatedAllocationImageCreateInfoNV) Deref() { + if x.ref685d878b == 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.ref685d878b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) + x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) } -// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT in C. +// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV 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 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 sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) +const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { +func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { if x == nil { return nil } - return x.refe3cd0046 + 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 *PipelineRasterizationConservativeStateCreateInfo) Free() { - if x != nil && x.allocse3cd0046 != nil { - x.allocse3cd0046.(*cgoAllocMap).Free() - x.refe3cd0046 = nil +func (x *DedicatedAllocationBufferCreateInfoNV) Free() { + if x != nil && x.allocsbc745a8 != nil { + x.allocsbc745a8.(*cgoAllocMap).Free() + x.refbc745a8 = nil } } -// NewPipelineRasterizationConservativeStateCreateInfoRef 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 NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { +func NewDedicatedAllocationBufferCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationBufferCreateInfoNV { if ref == nil { return nil } - obj := new(PipelineRasterizationConservativeStateCreateInfo) - obj.refe3cd0046 = (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(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 *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { +func (x *DedicatedAllocationBufferCreateInfoNV) PassRef() (*C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe3cd0046 != nil { - return x.refe3cd0046, nil + } else if x.refbc745a8 != nil { + return x.refbc745a8, nil } - meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) - refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) - allocse3cd0046 := new(cgoAllocMap) - allocse3cd0046.Add(meme3cd0046) + membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) + refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) + allocsbc745a8 := new(cgoAllocMap) + allocsbc745a8.Add(membc745a8) var csType_allocs *cgoAllocMap - refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse3cd0046.Borrow(csType_allocs) + refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc745a8.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) + refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc745a8.Borrow(cpNext_allocs) - var cextraPrimitiveOverestimationSize_allocs *cgoAllocMap - refe3cd0046.extraPrimitiveOverestimationSize, cextraPrimitiveOverestimationSize_allocs = (C.float)(x.ExtraPrimitiveOverestimationSize), cgoAllocsUnknown - allocse3cd0046.Borrow(cextraPrimitiveOverestimationSize_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocsbc745a8.Borrow(cdedicatedAllocation_allocs) - x.refe3cd0046 = refe3cd0046 - x.allocse3cd0046 = allocse3cd0046 - return refe3cd0046, allocse3cd0046 + 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 PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { - if x.refe3cd0046 != nil { - return *x.refe3cd0046, nil +func (x DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { + if x.refbc745a8 != nil { + return *x.refbc745a8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44594,92 +44820,94 @@ 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 *DedicatedAllocationBufferCreateInfoNV) Deref() { + if x.refbc745a8 == 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.refbc745a8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc745a8.pNext)) + x.DedicatedAllocation = (Bool32)(x.refbc745a8.dedicatedAllocation) } -// allocPhysicalDeviceDepthClipEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipEnableFeaturesEXT in C. +// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDepthClipEnableFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipEnableFeaturesValue)) +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 sizeOfPhysicalDeviceDepthClipEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipEnableFeaturesEXT{}) +const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDepthClipEnableFeatures) Ref() *C.VkPhysicalDeviceDepthClipEnableFeaturesEXT { +func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { if x == nil { return nil } - return x.refe0daf69c + 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 *PhysicalDeviceDepthClipEnableFeatures) Free() { - if x != nil && x.allocse0daf69c != nil { - x.allocse0daf69c.(*cgoAllocMap).Free() - x.refe0daf69c = nil +func (x *DedicatedAllocationMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs9a72b107 != nil { + x.allocs9a72b107.(*cgoAllocMap).Free() + x.ref9a72b107 = nil } } -// NewPhysicalDeviceDepthClipEnableFeaturesRef 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 NewPhysicalDeviceDepthClipEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipEnableFeatures { +func NewDedicatedAllocationMemoryAllocateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceDepthClipEnableFeatures) - obj.refe0daf69c = (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(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 *PhysicalDeviceDepthClipEnableFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { +func (x *DedicatedAllocationMemoryAllocateInfoNV) PassRef() (*C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe0daf69c != nil { - return x.refe0daf69c, nil + } else if x.ref9a72b107 != nil { + return x.ref9a72b107, nil } - meme0daf69c := allocPhysicalDeviceDepthClipEnableFeaturesMemory(1) - refe0daf69c := (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(meme0daf69c) - allocse0daf69c := new(cgoAllocMap) - allocse0daf69c.Add(meme0daf69c) + mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) + ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) + allocs9a72b107 := new(cgoAllocMap) + allocs9a72b107.Add(mem9a72b107) var csType_allocs *cgoAllocMap - refe0daf69c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse0daf69c.Borrow(csType_allocs) + ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a72b107.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe0daf69c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse0daf69c.Borrow(cpNext_allocs) + ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a72b107.Borrow(cpNext_allocs) - var cdepthClipEnable_allocs *cgoAllocMap - refe0daf69c.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown - allocse0daf69c.Borrow(cdepthClipEnable_allocs) + var cimage_allocs *cgoAllocMap + ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs9a72b107.Borrow(cimage_allocs) - x.refe0daf69c = refe0daf69c - x.allocse0daf69c = allocse0daf69c - return refe0daf69c, allocse0daf69c + var cbuffer_allocs *cgoAllocMap + ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs9a72b107.Borrow(cbuffer_allocs) + + 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 PhysicalDeviceDepthClipEnableFeatures) PassValue() (C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { - if x.refe0daf69c != nil { - return *x.refe0daf69c, nil +func (x DedicatedAllocationMemoryAllocateInfoNV) PassValue() (C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref9a72b107 != nil { + return *x.ref9a72b107, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44687,94 +44915,95 @@ func (x PhysicalDeviceDepthClipEnableFeatures) PassValue() (C.VkPhysicalDeviceDe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDepthClipEnableFeatures) Deref() { - if x.refe0daf69c == nil { +func (x *DedicatedAllocationMemoryAllocateInfoNV) Deref() { + if x.ref9a72b107 == nil { return } - x.SType = (StructureType)(x.refe0daf69c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0daf69c.pNext)) - x.DepthClipEnable = (Bool32)(x.refe0daf69c.depthClipEnable) + 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)) } -// allocPipelineRasterizationDepthClipStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationDepthClipStateCreateInfoEXT in C. +// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationDepthClipStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationDepthClipStateCreateInfoValue)) +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 sizeOfPipelineRasterizationDepthClipStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationDepthClipStateCreateInfoEXT{}) +const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationDepthClipStateCreateInfo) Ref() *C.VkPipelineRasterizationDepthClipStateCreateInfoEXT { +func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { if x == nil { return nil } - return x.ref38a864b5 + 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 *PipelineRasterizationDepthClipStateCreateInfo) Free() { - if x != nil && x.allocs38a864b5 != nil { - x.allocs38a864b5.(*cgoAllocMap).Free() - x.ref38a864b5 = nil +func (x *PhysicalDeviceTransformFeedbackFeatures) Free() { + if x != nil && x.allocs64b2a913 != nil { + x.allocs64b2a913.(*cgoAllocMap).Free() + x.ref64b2a913 = nil } } -// NewPipelineRasterizationDepthClipStateCreateInfoRef 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 NewPipelineRasterizationDepthClipStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationDepthClipStateCreateInfo { +func NewPhysicalDeviceTransformFeedbackFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackFeatures { if ref == nil { return nil } - obj := new(PipelineRasterizationDepthClipStateCreateInfo) - obj.ref38a864b5 = (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(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 *PipelineRasterizationDepthClipStateCreateInfo) PassRef() (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackFeatures) PassRef() (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref38a864b5 != nil { - return x.ref38a864b5, nil + } else if x.ref64b2a913 != nil { + return x.ref64b2a913, nil } - mem38a864b5 := allocPipelineRasterizationDepthClipStateCreateInfoMemory(1) - ref38a864b5 := (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(mem38a864b5) - allocs38a864b5 := new(cgoAllocMap) - allocs38a864b5.Add(mem38a864b5) + mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) + ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) + allocs64b2a913 := new(cgoAllocMap) + allocs64b2a913.Add(mem64b2a913) var csType_allocs *cgoAllocMap - ref38a864b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs38a864b5.Borrow(csType_allocs) + ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64b2a913.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref38a864b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs38a864b5.Borrow(cpNext_allocs) + ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64b2a913.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref38a864b5.flags, cflags_allocs = (C.VkPipelineRasterizationDepthClipStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs38a864b5.Borrow(cflags_allocs) + var ctransformFeedback_allocs *cgoAllocMap + ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown + allocs64b2a913.Borrow(ctransformFeedback_allocs) - var cdepthClipEnable_allocs *cgoAllocMap - ref38a864b5.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown - allocs38a864b5.Borrow(cdepthClipEnable_allocs) + var cgeometryStreams_allocs *cgoAllocMap + ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown + allocs64b2a913.Borrow(cgeometryStreams_allocs) - x.ref38a864b5 = ref38a864b5 - x.allocs38a864b5 = allocs38a864b5 - return ref38a864b5, allocs38a864b5 + 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 PipelineRasterizationDepthClipStateCreateInfo) PassValue() (C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { - if x.ref38a864b5 != nil { - return *x.ref38a864b5, nil +func (x PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { + if x.ref64b2a913 != nil { + return *x.ref64b2a913, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44782,87 +45011,127 @@ func (x PipelineRasterizationDepthClipStateCreateInfo) PassValue() (C.VkPipeline // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationDepthClipStateCreateInfo) Deref() { - if x.ref38a864b5 == nil { +func (x *PhysicalDeviceTransformFeedbackFeatures) Deref() { + if x.ref64b2a913 == nil { return } - 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) + 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) } -// allocXYColorMemory allocates memory for type C.VkXYColorEXT in C. +// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT 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 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 sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) +const sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *XYColor) Ref() *C.VkXYColorEXT { +func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { if x == nil { return nil } - return x.refb8efaa5c + 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 *XYColor) Free() { - if x != nil && x.allocsb8efaa5c != nil { - x.allocsb8efaa5c.(*cgoAllocMap).Free() - x.refb8efaa5c = nil +func (x *PhysicalDeviceTransformFeedbackProperties) Free() { + if x != nil && x.allocsc295a2a0 != nil { + x.allocsc295a2a0.(*cgoAllocMap).Free() + x.refc295a2a0 = nil } } -// NewXYColorRef 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 NewXYColorRef(ref unsafe.Pointer) *XYColor { +func NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { if ref == nil { return nil } - obj := new(XYColor) - obj.refb8efaa5c = (*C.VkXYColorEXT)(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 *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8efaa5c != nil { - return x.refb8efaa5c, nil + } else if x.refc295a2a0 != nil { + return x.refc295a2a0, nil } - memb8efaa5c := allocXYColorMemory(1) - refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) - allocsb8efaa5c := new(cgoAllocMap) - allocsb8efaa5c.Add(memb8efaa5c) + memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) + refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) + allocsc295a2a0 := new(cgoAllocMap) + allocsc295a2a0.Add(memc295a2a0) - var cx_allocs *cgoAllocMap - refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc295a2a0.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + refc295a2a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc295a2a0.Borrow(cpNext_allocs) - x.refb8efaa5c = refb8efaa5c - x.allocsb8efaa5c = allocsb8efaa5c - return refb8efaa5c, allocsb8efaa5c + 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) + + 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.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 XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { - if x.refb8efaa5c != nil { - return *x.refb8efaa5c, nil +func (x PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { + if x.refc295a2a0 != nil { + return *x.refc295a2a0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44870,117 +45139,103 @@ 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 *PhysicalDeviceTransformFeedbackProperties) Deref() { + if x.refc295a2a0 == nil { return } - x.X = (float32)(x.refb8efaa5c.x) - x.Y = (float32)(x.refb8efaa5c.y) + 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) } -// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT in C. +// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT 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 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 sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) +const sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { +func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { if x == nil { return nil } - return x.ref5fd28976 + 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 *HdrMetadata) Free() { - if x != nil && x.allocs5fd28976 != nil { - x.allocs5fd28976.(*cgoAllocMap).Free() - x.ref5fd28976 = nil +func (x *PipelineRasterizationStateStreamCreateInfo) Free() { + if x != nil && x.allocsed6e1fb9 != nil { + x.allocsed6e1fb9.(*cgoAllocMap).Free() + x.refed6e1fb9 = nil } } -// NewHdrMetadataRef 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 NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { +func NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { if ref == nil { return nil } - obj := new(HdrMetadata) - obj.ref5fd28976 = (*C.VkHdrMetadataEXT)(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 *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { +func (x *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fd28976 != nil { - return x.ref5fd28976, nil + } else if x.refed6e1fb9 != nil { + return x.refed6e1fb9, nil } - mem5fd28976 := allocHdrMetadataMemory(1) - ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) - allocs5fd28976 := new(cgoAllocMap) - allocs5fd28976.Add(mem5fd28976) + memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) + refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) + allocsed6e1fb9 := new(cgoAllocMap) + allocsed6e1fb9.Add(memed6e1fb9) var csType_allocs *cgoAllocMap - ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fd28976.Borrow(csType_allocs) + refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed6e1fb9.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) - - 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) + refed6e1fb9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cpNext_allocs) - var cmaxContentLightLevel_allocs *cgoAllocMap - ref5fd28976.maxContentLightLevel, cmaxContentLightLevel_allocs = (C.float)(x.MaxContentLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxContentLightLevel_allocs) + var cflags_allocs *cgoAllocMap + refed6e1fb9.flags, cflags_allocs = (C.VkPipelineRasterizationStateStreamCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cflags_allocs) - var cmaxFrameAverageLightLevel_allocs *cgoAllocMap - ref5fd28976.maxFrameAverageLightLevel, cmaxFrameAverageLightLevel_allocs = (C.float)(x.MaxFrameAverageLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxFrameAverageLightLevel_allocs) + var crasterizationStream_allocs *cgoAllocMap + refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown + allocsed6e1fb9.Borrow(crasterizationStream_allocs) - x.ref5fd28976 = ref5fd28976 - x.allocs5fd28976 = allocs5fd28976 - return ref5fd28976, allocs5fd28976 + 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 HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { - if x.ref5fd28976 != nil { - return *x.ref5fd28976, nil +func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { + if x.refed6e1fb9 != nil { + return *x.refed6e1fb9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -44988,101 +45243,99 @@ 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 *PipelineRasterizationStateStreamCreateInfo) Deref() { + if x.refed6e1fb9 == 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.refed6e1fb9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed6e1fb9.pNext)) + x.Flags = (PipelineRasterizationStateStreamCreateFlags)(x.refed6e1fb9.flags) + x.RasterizationStream = (uint32)(x.refed6e1fb9.rasterizationStream) } -// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT in C. +// allocImageViewHandleInfoNVXMemory allocates memory for type C.VkImageViewHandleInfoNVX 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 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 sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) +const sizeOfImageViewHandleInfoNVXValue = unsafe.Sizeof([1]C.VkImageViewHandleInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { +func (x *ImageViewHandleInfoNVX) Ref() *C.VkImageViewHandleInfoNVX { if x == nil { return nil } - return x.ref8faaf7b1 + 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 *DebugUtilsLabel) Free() { - if x != nil && x.allocs8faaf7b1 != nil { - x.allocs8faaf7b1.(*cgoAllocMap).Free() - x.ref8faaf7b1 = nil +func (x *ImageViewHandleInfoNVX) Free() { + if x != nil && x.allocsc283b384 != nil { + x.allocsc283b384.(*cgoAllocMap).Free() + x.refc283b384 = nil } } -// NewDebugUtilsLabelRef 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 NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { +func NewImageViewHandleInfoNVXRef(ref unsafe.Pointer) *ImageViewHandleInfoNVX { if ref == nil { return nil } - obj := new(DebugUtilsLabel) - obj.ref8faaf7b1 = (*C.VkDebugUtilsLabelEXT)(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 *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { +func (x *ImageViewHandleInfoNVX) PassRef() (*C.VkImageViewHandleInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8faaf7b1 != nil { - return x.ref8faaf7b1, nil + } else if x.refc283b384 != nil { + return x.refc283b384, nil } - mem8faaf7b1 := allocDebugUtilsLabelMemory(1) - ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) - allocs8faaf7b1 := new(cgoAllocMap) - allocs8faaf7b1.Add(mem8faaf7b1) + memc283b384 := allocImageViewHandleInfoNVXMemory(1) + refc283b384 := (*C.VkImageViewHandleInfoNVX)(memc283b384) + allocsc283b384 := new(cgoAllocMap) + allocsc283b384.Add(memc283b384) var csType_allocs *cgoAllocMap - ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8faaf7b1.Borrow(csType_allocs) + refc283b384.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc283b384.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(cpNext_allocs) + refc283b384.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc283b384.Borrow(cpNext_allocs) - var cpLabelName_allocs *cgoAllocMap - ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) - allocs8faaf7b1.Borrow(cpLabelName_allocs) + var cimageView_allocs *cgoAllocMap + refc283b384.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocsc283b384.Borrow(cimageView_allocs) - var ccolor_allocs *cgoAllocMap - ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(ccolor_allocs) + var cdescriptorType_allocs *cgoAllocMap + refc283b384.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown + allocsc283b384.Borrow(cdescriptorType_allocs) - x.ref8faaf7b1 = ref8faaf7b1 - x.allocs8faaf7b1 = allocs8faaf7b1 - return ref8faaf7b1, allocs8faaf7b1 + 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 DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { - if x.ref8faaf7b1 != nil { - return *x.ref8faaf7b1, nil +func (x ImageViewHandleInfoNVX) PassValue() (C.VkImageViewHandleInfoNVX, *cgoAllocMap) { + if x.refc283b384 != nil { + return *x.refc283b384, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45090,99 +45343,96 @@ 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 *ImageViewHandleInfoNVX) Deref() { + if x.refc283b384 == 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)) + 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)) } -// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT in C. +// allocImageViewAddressPropertiesNVXMemory allocates memory for type C.VkImageViewAddressPropertiesNVX 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 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 sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) +const sizeOfImageViewAddressPropertiesNVXValue = unsafe.Sizeof([1]C.VkImageViewAddressPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { +func (x *ImageViewAddressPropertiesNVX) Ref() *C.VkImageViewAddressPropertiesNVX { if x == nil { return nil } - return x.ref5e73c2db + 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 *DebugUtilsObjectNameInfo) Free() { - if x != nil && x.allocs5e73c2db != nil { - x.allocs5e73c2db.(*cgoAllocMap).Free() - x.ref5e73c2db = nil +func (x *ImageViewAddressPropertiesNVX) Free() { + if x != nil && x.allocse6dd1556 != nil { + x.allocse6dd1556.(*cgoAllocMap).Free() + x.refe6dd1556 = nil } } -// NewDebugUtilsObjectNameInfoRef 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 NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { +func NewImageViewAddressPropertiesNVXRef(ref unsafe.Pointer) *ImageViewAddressPropertiesNVX { if ref == nil { return nil } - obj := new(DebugUtilsObjectNameInfo) - obj.ref5e73c2db = (*C.VkDebugUtilsObjectNameInfoEXT)(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 *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { +func (x *ImageViewAddressPropertiesNVX) PassRef() (*C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e73c2db != nil { - return x.ref5e73c2db, nil + } else if x.refe6dd1556 != nil { + return x.refe6dd1556, nil } - mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) - ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) - allocs5e73c2db := new(cgoAllocMap) - allocs5e73c2db.Add(mem5e73c2db) + meme6dd1556 := allocImageViewAddressPropertiesNVXMemory(1) + refe6dd1556 := (*C.VkImageViewAddressPropertiesNVX)(meme6dd1556) + allocse6dd1556 := new(cgoAllocMap) + allocse6dd1556.Add(meme6dd1556) var csType_allocs *cgoAllocMap - ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e73c2db.Borrow(csType_allocs) + refe6dd1556.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse6dd1556.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) + refe6dd1556.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse6dd1556.Borrow(cpNext_allocs) - var cobjectHandle_allocs *cgoAllocMap - ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown - allocs5e73c2db.Borrow(cobjectHandle_allocs) + var cdeviceAddress_allocs *cgoAllocMap + refe6dd1556.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocse6dd1556.Borrow(cdeviceAddress_allocs) - var cpObjectName_allocs *cgoAllocMap - ref5e73c2db.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocs5e73c2db.Borrow(cpObjectName_allocs) + var csize_allocs *cgoAllocMap + refe6dd1556.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocse6dd1556.Borrow(csize_allocs) - x.ref5e73c2db = ref5e73c2db - x.allocs5e73c2db = allocs5e73c2db - return ref5e73c2db, allocs5e73c2db + 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 DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { - if x.ref5e73c2db != nil { - return *x.ref5e73c2db, nil +func (x ImageViewAddressPropertiesNVX) PassValue() (C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { + if x.refe6dd1556 != nil { + return *x.refe6dd1556, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45190,108 +45440,91 @@ 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 *ImageViewAddressPropertiesNVX) Deref() { + if x.refe6dd1556 == 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.refe6dd1556.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe6dd1556.pNext)) + x.DeviceAddress = (DeviceAddress)(x.refe6dd1556.deviceAddress) + x.Size = (DeviceSize)(x.refe6dd1556.size) } -// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT in C. +// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD 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 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 sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) +const sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { +func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { if x == nil { return nil } - return x.ref9fd129cf + 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 *DebugUtilsObjectTagInfo) Free() { - if x != nil && x.allocs9fd129cf != nil { - x.allocs9fd129cf.(*cgoAllocMap).Free() - x.ref9fd129cf = nil +func (x *TextureLODGatherFormatPropertiesAMD) Free() { + if x != nil && x.allocs519ba3a9 != nil { + x.allocs519ba3a9.(*cgoAllocMap).Free() + x.ref519ba3a9 = nil } } -// NewDebugUtilsObjectTagInfoRef 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 NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { +func NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { if ref == nil { return nil } - obj := new(DebugUtilsObjectTagInfo) - obj.ref9fd129cf = (*C.VkDebugUtilsObjectTagInfoEXT)(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 *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { +func (x *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9fd129cf != nil { - return x.ref9fd129cf, nil + } else if x.ref519ba3a9 != nil { + return x.ref519ba3a9, nil } - mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) - ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) - allocs9fd129cf := new(cgoAllocMap) - allocs9fd129cf.Add(mem9fd129cf) + mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) + ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) + allocs519ba3a9 := new(cgoAllocMap) + allocs519ba3a9.Add(mem519ba3a9) var csType_allocs *cgoAllocMap - ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9fd129cf.Borrow(csType_allocs) + ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs519ba3a9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9fd129cf.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 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) + ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs519ba3a9.Borrow(cpNext_allocs) - var cpTag_allocs *cgoAllocMap - ref9fd129cf.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown - allocs9fd129cf.Borrow(cpTag_allocs) + var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap + ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown + allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) - x.ref9fd129cf = ref9fd129cf - x.allocs9fd129cf = allocs9fd129cf - return ref9fd129cf, allocs9fd129cf + 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 DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { - if x.ref9fd129cf != nil { - return *x.ref9fd129cf, nil +func (x TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { + if x.ref519ba3a9 != nil { + return *x.ref519ba3a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45299,90 +45532,98 @@ 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 *TextureLODGatherFormatPropertiesAMD) Deref() { + if x.ref519ba3a9 == 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 = (uint64)(x.ref9fd129cf.tagSize) - x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pTag)) + x.SType = (StructureType)(x.ref519ba3a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref519ba3a9.pNext)) + x.SupportsTextureGatherLODBiasAMD = (Bool32)(x.ref519ba3a9.supportsTextureGatherLODBiasAMD) } -// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT in C. +// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD 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 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 sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) +const sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { +func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { if x == nil { return nil } - return x.refe7a2e761 + 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 *SampleLocation) Free() { - if x != nil && x.allocse7a2e761 != nil { - x.allocse7a2e761.(*cgoAllocMap).Free() - x.refe7a2e761 = nil +func (x *ShaderResourceUsageAMD) Free() { + if x != nil && x.allocs8a688131 != nil { + x.allocs8a688131.(*cgoAllocMap).Free() + x.ref8a688131 = nil } } -// NewSampleLocationRef 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 NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { +func NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { if ref == nil { return nil } - obj := new(SampleLocation) - obj.refe7a2e761 = (*C.VkSampleLocationEXT)(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 *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { +func (x *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe7a2e761 != nil { - return x.refe7a2e761, nil + } else if x.ref8a688131 != nil { + return x.ref8a688131, nil } - meme7a2e761 := allocSampleLocationMemory(1) - refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) - allocse7a2e761 := new(cgoAllocMap) - allocse7a2e761.Add(meme7a2e761) + mem8a688131 := allocShaderResourceUsageAMDMemory(1) + ref8a688131 := (*C.VkShaderResourceUsageAMD)(mem8a688131) + allocs8a688131 := new(cgoAllocMap) + allocs8a688131.Add(mem8a688131) - var cx_allocs *cgoAllocMap - refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocse7a2e761.Borrow(cx_allocs) + var cnumUsedVgprs_allocs *cgoAllocMap + ref8a688131.numUsedVgprs, cnumUsedVgprs_allocs = (C.uint32_t)(x.NumUsedVgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedVgprs_allocs) - var cy_allocs *cgoAllocMap - refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocse7a2e761.Borrow(cy_allocs) + var cnumUsedSgprs_allocs *cgoAllocMap + ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedSgprs_allocs) - x.refe7a2e761 = refe7a2e761 - x.allocse7a2e761 = allocse7a2e761 - return refe7a2e761, allocse7a2e761 + var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap + ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown + allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) + + var cldsUsageSizeInBytes_allocs *cgoAllocMap + ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) + + var cscratchMemUsageInBytes_allocs *cgoAllocMap + ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) + + 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 SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { - if x.refe7a2e761 != nil { - return *x.refe7a2e761, nil +func (x ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { + if x.ref8a688131 != nil { + return *x.ref8a688131, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45390,139 +45631,108 @@ 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 *ShaderResourceUsageAMD) Deref() { + if x.ref8a688131 == nil { return } - x.X = (float32)(x.refe7a2e761.x) - x.Y = (float32)(x.refe7a2e761.y) + 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) } -// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT in C. +// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD 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 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 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 sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { +func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { if x == nil { return nil } - return x.refd8f3bd2d + 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 *SampleLocationsInfo) Free() { - if x != nil && x.allocsd8f3bd2d != nil { - x.allocsd8f3bd2d.(*cgoAllocMap).Free() - x.refd8f3bd2d = nil +func (x *ShaderStatisticsInfoAMD) Free() { + if x != nil && x.allocs896a52bf != nil { + x.allocs896a52bf.(*cgoAllocMap).Free() + x.ref896a52bf = nil } } -// NewSampleLocationsInfoRef 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 NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { +func NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { if ref == nil { return nil } - obj := new(SampleLocationsInfo) - obj.refd8f3bd2d = (*C.VkSampleLocationsInfoEXT)(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 *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { +func (x *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8f3bd2d != nil { - return x.refd8f3bd2d, nil + } else if x.ref896a52bf != nil { + return x.ref896a52bf, nil } - memd8f3bd2d := allocSampleLocationsInfoMemory(1) - refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) - allocsd8f3bd2d := new(cgoAllocMap) - allocsd8f3bd2d.Add(memd8f3bd2d) + mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) + ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) + allocs896a52bf := new(cgoAllocMap) + allocs896a52bf.Add(mem896a52bf) - var csType_allocs *cgoAllocMap - refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csType_allocs) + var cshaderStageMask_allocs *cgoAllocMap + ref896a52bf.shaderStageMask, cshaderStageMask_allocs = (C.VkShaderStageFlags)(x.ShaderStageMask), cgoAllocsUnknown + allocs896a52bf.Borrow(cshaderStageMask_allocs) - var cpNext_allocs *cgoAllocMap - refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(cpNext_allocs) + var cresourceUsage_allocs *cgoAllocMap + ref896a52bf.resourceUsage, cresourceUsage_allocs = x.ResourceUsage.PassValue() + allocs896a52bf.Borrow(cresourceUsage_allocs) - var csampleLocationsPerPixel_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) + var cnumPhysicalVgprs_allocs *cgoAllocMap + ref896a52bf.numPhysicalVgprs, cnumPhysicalVgprs_allocs = (C.uint32_t)(x.NumPhysicalVgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumPhysicalVgprs_allocs) - var csampleLocationGridSize_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() - allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) + var cnumPhysicalSgprs_allocs *cgoAllocMap + ref896a52bf.numPhysicalSgprs, cnumPhysicalSgprs_allocs = (C.uint32_t)(x.NumPhysicalSgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumPhysicalSgprs_allocs) - var csampleLocationsCount_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) + var cnumAvailableVgprs_allocs *cgoAllocMap + ref896a52bf.numAvailableVgprs, cnumAvailableVgprs_allocs = (C.uint32_t)(x.NumAvailableVgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumAvailableVgprs_allocs) - var cpSampleLocations_allocs *cgoAllocMap - refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) - allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) + var cnumAvailableSgprs_allocs *cgoAllocMap + ref896a52bf.numAvailableSgprs, cnumAvailableSgprs_allocs = (C.uint32_t)(x.NumAvailableSgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumAvailableSgprs_allocs) - x.refd8f3bd2d = refd8f3bd2d - x.allocsd8f3bd2d = allocsd8f3bd2d - return refd8f3bd2d, allocsd8f3bd2d + 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 SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { - if x.refd8f3bd2d != nil { - return *x.refd8f3bd2d, nil +func (x ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { + if x.ref896a52bf != nil { + return *x.ref896a52bf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45530,89 +45740,94 @@ 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 *ShaderStatisticsInfoAMD) Deref() { + if x.ref896a52bf == 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.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)) } -// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT in C. +// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV 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 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 sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) +const sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { if x == nil { return nil } - return x.ref6a3dd41e + 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 *AttachmentSampleLocations) Free() { - if x != nil && x.allocs6a3dd41e != nil { - x.allocs6a3dd41e.(*cgoAllocMap).Free() - x.ref6a3dd41e = nil +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { + if x != nil && x.allocsdf4a62d1 != nil { + x.allocsdf4a62d1.(*cgoAllocMap).Free() + x.refdf4a62d1 = nil } } -// NewAttachmentSampleLocationsRef 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 NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { +func NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { if ref == nil { return nil } - obj := new(AttachmentSampleLocations) - obj.ref6a3dd41e = (*C.VkAttachmentSampleLocationsEXT)(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 *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6a3dd41e != nil { - return x.ref6a3dd41e, nil + } else if x.refdf4a62d1 != nil { + return x.refdf4a62d1, nil } - mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) - ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) - allocs6a3dd41e := new(cgoAllocMap) - allocs6a3dd41e.Add(mem6a3dd41e) + memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) + refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) + allocsdf4a62d1 := new(cgoAllocMap) + allocsdf4a62d1.Add(memdf4a62d1) - var cattachmentIndex_allocs *cgoAllocMap - ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown - allocs6a3dd41e.Borrow(cattachmentIndex_allocs) + var csType_allocs *cgoAllocMap + refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf4a62d1.Borrow(csType_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) + var cpNext_allocs *cgoAllocMap + refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf4a62d1.Borrow(cpNext_allocs) - x.ref6a3dd41e = ref6a3dd41e - x.allocs6a3dd41e = allocs6a3dd41e - return ref6a3dd41e, allocs6a3dd41e + var ccornerSampledImage_allocs *cgoAllocMap + refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown + allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) + + 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 AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { - if x.ref6a3dd41e != nil { - return *x.ref6a3dd41e, nil +func (x PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { + if x.refdf4a62d1 != nil { + return *x.refdf4a62d1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45620,85 +45835,94 @@ 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 *PhysicalDeviceCornerSampledImageFeaturesNV) Deref() { + if x.refdf4a62d1 == nil { return } - x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) + x.SType = (StructureType)(x.refdf4a62d1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf4a62d1.pNext)) + x.CornerSampledImage = (Bool32)(x.refdf4a62d1.cornerSampledImage) } -// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT in C. +// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV 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 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 sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) +const sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { +func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { if x == nil { return nil } - return x.ref1f612812 + 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 *SubpassSampleLocations) Free() { - if x != nil && x.allocs1f612812 != nil { - x.allocs1f612812.(*cgoAllocMap).Free() - x.ref1f612812 = nil +func (x *ExternalImageFormatPropertiesNV) Free() { + if x != nil && x.allocsa8900ce5 != nil { + x.allocsa8900ce5.(*cgoAllocMap).Free() + x.refa8900ce5 = nil } } -// NewSubpassSampleLocationsRef 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 NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { +func NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { if ref == nil { return nil } - obj := new(SubpassSampleLocations) - obj.ref1f612812 = (*C.VkSubpassSampleLocationsEXT)(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 *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { +func (x *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1f612812 != nil { - return x.ref1f612812, nil + } else if x.refa8900ce5 != nil { + return x.refa8900ce5, nil } - mem1f612812 := allocSubpassSampleLocationsMemory(1) - ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) - allocs1f612812 := new(cgoAllocMap) - allocs1f612812.Add(mem1f612812) + mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) + refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) + allocsa8900ce5 := new(cgoAllocMap) + allocsa8900ce5.Add(mema8900ce5) - var csubpassIndex_allocs *cgoAllocMap - ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown - allocs1f612812.Borrow(csubpassIndex_allocs) + var cimageFormatProperties_allocs *cgoAllocMap + refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() + allocsa8900ce5.Borrow(cimageFormatProperties_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs1f612812.Borrow(csampleLocationsInfo_allocs) + var cexternalMemoryFeatures_allocs *cgoAllocMap + refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) - x.ref1f612812 = ref1f612812 - x.allocs1f612812 = allocs1f612812 - return ref1f612812, allocs1f612812 + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) + + 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 SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { - if x.ref1f612812 != nil { - return *x.ref1f612812, nil +func (x ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { + if x.refa8900ce5 != nil { + return *x.refa8900ce5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45706,177 +45930,91 @@ 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 *ExternalImageFormatPropertiesNV) Deref() { + if x.refa8900ce5 == nil { return } - x.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) + 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) } -// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT in C. +// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV 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 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 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 sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { +func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { if x == nil { return nil } - return x.refb61b51d4 + 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 *RenderPassSampleLocationsBeginInfo) Free() { - if x != nil && x.allocsb61b51d4 != nil { - x.allocsb61b51d4.(*cgoAllocMap).Free() - x.refb61b51d4 = nil +func (x *ExternalMemoryImageCreateInfoNV) Free() { + if x != nil && x.allocs9a7fb6c8 != nil { + x.allocs9a7fb6c8.(*cgoAllocMap).Free() + x.ref9a7fb6c8 = nil } } -// NewRenderPassSampleLocationsBeginInfoRef 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 NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { +func NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { if ref == nil { return nil } - obj := new(RenderPassSampleLocationsBeginInfo) - obj.refb61b51d4 = (*C.VkRenderPassSampleLocationsBeginInfoEXT)(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 *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { +func (x *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb61b51d4 != nil { - return x.refb61b51d4, nil + } else if x.ref9a7fb6c8 != nil { + return x.ref9a7fb6c8, nil } - memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) - refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) - allocsb61b51d4 := new(cgoAllocMap) - allocsb61b51d4.Add(memb61b51d4) + mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) + ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) + allocs9a7fb6c8 := new(cgoAllocMap) + allocs9a7fb6c8.Add(mem9a7fb6c8) var csType_allocs *cgoAllocMap - refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb61b51d4.Borrow(csType_allocs) + ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a7fb6c8.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) - - var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap - refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) - allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) - - var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap - refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown - allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) + ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(cpNext_allocs) - var cpPostSubpassSampleLocations_allocs *cgoAllocMap - refb61b51d4.pPostSubpassSampleLocations, cpPostSubpassSampleLocations_allocs = unpackSSubpassSampleLocations(x.PPostSubpassSampleLocations) - allocsb61b51d4.Borrow(cpPostSubpassSampleLocations_allocs) + var chandleTypes_allocs *cgoAllocMap + ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(chandleTypes_allocs) - x.refb61b51d4 = refb61b51d4 - x.allocsb61b51d4 = allocsb61b51d4 - return refb61b51d4, allocsb61b51d4 + 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 RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { - if x.refb61b51d4 != nil { - return *x.refb61b51d4, nil +func (x ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { + if x.ref9a7fb6c8 != nil { + return *x.ref9a7fb6c8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45884,97 +46022,90 @@ 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 *ExternalMemoryImageCreateInfoNV) Deref() { + if x.ref9a7fb6c8 == 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.ref9a7fb6c8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a7fb6c8.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref9a7fb6c8.handleTypes) } -// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT in C. +// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV 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 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 sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) +const sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { +func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { if x == nil { return nil } - return x.ref93a2968f + 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 *PipelineSampleLocationsStateCreateInfo) Free() { - if x != nil && x.allocs93a2968f != nil { - x.allocs93a2968f.(*cgoAllocMap).Free() - x.ref93a2968f = nil +func (x *ExportMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs5066f33 != nil { + x.allocs5066f33.(*cgoAllocMap).Free() + x.ref5066f33 = nil } } -// NewPipelineSampleLocationsStateCreateInfoRef 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 NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { +func NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(PipelineSampleLocationsStateCreateInfo) - obj.ref93a2968f = (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(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 *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { +func (x *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref93a2968f != nil { - return x.ref93a2968f, nil + } else if x.ref5066f33 != nil { + return x.ref5066f33, nil } - mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) - ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) - allocs93a2968f := new(cgoAllocMap) - allocs93a2968f.Add(mem93a2968f) + mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) + ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) + allocs5066f33 := new(cgoAllocMap) + allocs5066f33.Add(mem5066f33) var csType_allocs *cgoAllocMap - ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs93a2968f.Borrow(csType_allocs) + ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5066f33.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs93a2968f.Borrow(cpNext_allocs) - - var csampleLocationsEnable_allocs *cgoAllocMap - ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown - allocs93a2968f.Borrow(csampleLocationsEnable_allocs) + ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5066f33.Borrow(cpNext_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs93a2968f.Borrow(csampleLocationsInfo_allocs) + var chandleTypes_allocs *cgoAllocMap + ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs5066f33.Borrow(chandleTypes_allocs) - x.ref93a2968f = ref93a2968f - x.allocs93a2968f = allocs93a2968f - return ref93a2968f, allocs93a2968f + 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 PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { - if x.ref93a2968f != nil { - return *x.ref93a2968f, nil +func (x ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref5066f33 != nil { + return *x.ref5066f33, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -45982,107 +46113,94 @@ 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 *ExportMemoryAllocateInfoNV) Deref() { + if x.ref5066f33 == 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.ref5066f33.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5066f33.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref5066f33.handleTypes) } -// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT in C. +// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT 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 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 sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) +const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { +func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { if x == nil { return nil } - return x.refaf801323 + 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 *PhysicalDeviceSampleLocationsProperties) Free() { - if x != nil && x.allocsaf801323 != nil { - x.allocsaf801323.(*cgoAllocMap).Free() - x.refaf801323 = nil +func (x *ValidationFlags) Free() { + if x != nil && x.allocsffe080ad != nil { + x.allocsffe080ad.(*cgoAllocMap).Free() + x.refffe080ad = nil } } -// NewPhysicalDeviceSampleLocationsPropertiesRef 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 NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { +func NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { if ref == nil { return nil } - obj := new(PhysicalDeviceSampleLocationsProperties) - obj.refaf801323 = (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(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 *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { +func (x *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf801323 != nil { - return x.refaf801323, nil + } else if x.refffe080ad != nil { + return x.refffe080ad, nil } - memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) - refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) - allocsaf801323 := new(cgoAllocMap) - allocsaf801323.Add(memaf801323) + memffe080ad := allocValidationFlagsMemory(1) + refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) + allocsffe080ad := new(cgoAllocMap) + allocsffe080ad.Add(memffe080ad) var csType_allocs *cgoAllocMap - refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaf801323.Borrow(csType_allocs) + refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe080ad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsaf801323.Borrow(cpNext_allocs) - - var csampleLocationSampleCounts_allocs *cgoAllocMap - refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) - - 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) + refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe080ad.Borrow(cpNext_allocs) - var csampleLocationSubPixelBits_allocs *cgoAllocMap - refaf801323.sampleLocationSubPixelBits, csampleLocationSubPixelBits_allocs = (C.uint32_t)(x.SampleLocationSubPixelBits), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationSubPixelBits_allocs) + var cdisabledValidationCheckCount_allocs *cgoAllocMap + refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown + allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) - var cvariableSampleLocations_allocs *cgoAllocMap - refaf801323.variableSampleLocations, cvariableSampleLocations_allocs = (C.VkBool32)(x.VariableSampleLocations), cgoAllocsUnknown - allocsaf801323.Borrow(cvariableSampleLocations_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.refaf801323 = refaf801323 - x.allocsaf801323 = allocsaf801323 - return refaf801323, allocsaf801323 + 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 PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { - if x.refaf801323 != nil { - return *x.refaf801323, nil +func (x ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { + if x.refffe080ad != nil { + return *x.refffe080ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46090,94 +46208,95 @@ 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 *ValidationFlags) Deref() { + if x.refffe080ad == 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.refffe080ad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe080ad.pNext)) + x.DisabledValidationCheckCount = (uint32)(x.refffe080ad.disabledValidationCheckCount) + hxf9b1633 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)) + hxf9b1633.Data = unsafe.Pointer(x.refffe080ad.pDisabledValidationChecks) + hxf9b1633.Cap = 0x7fffffff + // hxf9b1633.Len = ? + } -// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT in C. +// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT 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 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 sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) +const sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { +func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { if x == nil { return nil } - return x.ref3e47f337 + 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 *MultisampleProperties) Free() { - if x != nil && x.allocs3e47f337 != nil { - x.allocs3e47f337.(*cgoAllocMap).Free() - x.ref3e47f337 = nil +func (x *ImageViewASTCDecodeMode) Free() { + if x != nil && x.allocs3a973fc0 != nil { + x.allocs3a973fc0.(*cgoAllocMap).Free() + x.ref3a973fc0 = nil } } -// NewMultisamplePropertiesRef 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 NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { +func NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { if ref == nil { return nil } - obj := new(MultisampleProperties) - obj.ref3e47f337 = (*C.VkMultisamplePropertiesEXT)(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 *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { +func (x *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e47f337 != nil { - return x.ref3e47f337, nil + } else if x.ref3a973fc0 != nil { + return x.ref3a973fc0, nil } - mem3e47f337 := allocMultisamplePropertiesMemory(1) - ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) - allocs3e47f337 := new(cgoAllocMap) - allocs3e47f337.Add(mem3e47f337) + mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) + ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) + allocs3a973fc0 := new(cgoAllocMap) + allocs3a973fc0.Add(mem3a973fc0) var csType_allocs *cgoAllocMap - ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e47f337.Borrow(csType_allocs) + ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3a973fc0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e47f337.Borrow(cpNext_allocs) + ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3a973fc0.Borrow(cpNext_allocs) - var cmaxSampleLocationGridSize_allocs *cgoAllocMap - ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() - allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) + var cdecodeMode_allocs *cgoAllocMap + ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown + allocs3a973fc0.Borrow(cdecodeMode_allocs) - x.ref3e47f337 = ref3e47f337 - x.allocs3e47f337 = allocs3e47f337 - return ref3e47f337, allocs3e47f337 + 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 MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { - if x.ref3e47f337 != nil { - return *x.ref3e47f337, nil +func (x ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { + if x.ref3a973fc0 != nil { + return *x.ref3a973fc0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46185,90 +46304,90 @@ 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 *ImageViewASTCDecodeMode) Deref() { + if x.ref3a973fc0 == 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.ref3a973fc0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3a973fc0.pNext)) + x.DecodeMode = (Format)(x.ref3a973fc0.decodeMode) } -// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT in C. +// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT 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 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 sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) +const sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { +func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { if x == nil { return nil } - return x.ref8514bc93 + 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 *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { - if x != nil && x.allocs8514bc93 != nil { - x.allocs8514bc93.(*cgoAllocMap).Free() - x.ref8514bc93 = nil +func (x *PhysicalDeviceASTCDecodeFeatures) Free() { + if x != nil && x.allocsd8af7d5a != nil { + x.allocsd8af7d5a.(*cgoAllocMap).Free() + x.refd8af7d5a = nil } } -// NewPhysicalDeviceBlendOperationAdvancedFeaturesRef 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 NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { +func NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedFeatures) - obj.ref8514bc93 = (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(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 *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8514bc93 != nil { - return x.ref8514bc93, nil + } else if x.refd8af7d5a != nil { + return x.refd8af7d5a, nil } - mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) - ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) - allocs8514bc93 := new(cgoAllocMap) - allocs8514bc93.Add(mem8514bc93) + memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) + refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) + allocsd8af7d5a := new(cgoAllocMap) + allocsd8af7d5a.Add(memd8af7d5a) var csType_allocs *cgoAllocMap - ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8514bc93.Borrow(csType_allocs) + refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8af7d5a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8514bc93.Borrow(cpNext_allocs) + refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cpNext_allocs) - var cadvancedBlendCoherentOperations_allocs *cgoAllocMap - ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown - allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) + var cdecodeModeSharedExponent_allocs *cgoAllocMap + refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) - x.ref8514bc93 = ref8514bc93 - x.allocs8514bc93 = allocs8514bc93 - return ref8514bc93, allocs8514bc93 + 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 PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { - if x.ref8514bc93 != nil { - return *x.ref8514bc93, nil +func (x PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { + if x.refd8af7d5a != nil { + return *x.refd8af7d5a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46276,110 +46395,90 @@ 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 *PhysicalDeviceASTCDecodeFeatures) Deref() { + if x.refd8af7d5a == 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.refd8af7d5a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) + x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) } -// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT in C. +// allocPhysicalDevicePipelineRobustnessFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineRobustnessFeaturesEXT 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 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 sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) +const sizeOfPhysicalDevicePipelineRobustnessFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineRobustnessFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { +func (x *PhysicalDevicePipelineRobustnessFeatures) Ref() *C.VkPhysicalDevicePipelineRobustnessFeaturesEXT { if x == nil { return nil } - return x.ref94cb3fa6 + 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 *PhysicalDeviceBlendOperationAdvancedProperties) Free() { - if x != nil && x.allocs94cb3fa6 != nil { - x.allocs94cb3fa6.(*cgoAllocMap).Free() - x.ref94cb3fa6 = nil +func (x *PhysicalDevicePipelineRobustnessFeatures) Free() { + if x != nil && x.allocsdffe5c47 != nil { + x.allocsdffe5c47.(*cgoAllocMap).Free() + x.refdffe5c47 = nil } } -// NewPhysicalDeviceBlendOperationAdvancedPropertiesRef 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 NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { +func NewPhysicalDevicePipelineRobustnessFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineRobustnessFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedProperties) - obj.ref94cb3fa6 = (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(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 *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDevicePipelineRobustnessFeatures) PassRef() (*C.VkPhysicalDevicePipelineRobustnessFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref94cb3fa6 != nil { - return x.ref94cb3fa6, nil + } else if x.refdffe5c47 != nil { + return x.refdffe5c47, nil } - mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) - ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) - allocs94cb3fa6 := new(cgoAllocMap) - allocs94cb3fa6.Add(mem94cb3fa6) + memdffe5c47 := allocPhysicalDevicePipelineRobustnessFeaturesMemory(1) + refdffe5c47 := (*C.VkPhysicalDevicePipelineRobustnessFeaturesEXT)(memdffe5c47) + allocsdffe5c47 := new(cgoAllocMap) + allocsdffe5c47.Add(memdffe5c47) var csType_allocs *cgoAllocMap - ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs94cb3fa6.Borrow(csType_allocs) + refdffe5c47.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdffe5c47.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) - - 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) + refdffe5c47.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdffe5c47.Borrow(cpNext_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) + var cpipelineRobustness_allocs *cgoAllocMap + refdffe5c47.pipelineRobustness, cpipelineRobustness_allocs = (C.VkBool32)(x.PipelineRobustness), cgoAllocsUnknown + allocsdffe5c47.Borrow(cpipelineRobustness_allocs) - x.ref94cb3fa6 = ref94cb3fa6 - x.allocs94cb3fa6 = allocs94cb3fa6 - return ref94cb3fa6, allocs94cb3fa6 + 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 PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { - if x.ref94cb3fa6 != nil { - return *x.ref94cb3fa6, nil +func (x PhysicalDevicePipelineRobustnessFeatures) PassValue() (C.VkPhysicalDevicePipelineRobustnessFeaturesEXT, *cgoAllocMap) { + if x.refdffe5c47 != nil { + return *x.refdffe5c47, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46387,103 +46486,102 @@ 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 *PhysicalDevicePipelineRobustnessFeatures) Deref() { + if x.refdffe5c47 == 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.refdffe5c47.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdffe5c47.pNext)) + x.PipelineRobustness = (Bool32)(x.refdffe5c47.pipelineRobustness) } -// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT in C. +// allocPhysicalDevicePipelineRobustnessPropertiesMemory allocates memory for type C.VkPhysicalDevicePipelineRobustnessPropertiesEXT 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 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 sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) +const sizeOfPhysicalDevicePipelineRobustnessPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineRobustnessPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { +func (x *PhysicalDevicePipelineRobustnessProperties) Ref() *C.VkPhysicalDevicePipelineRobustnessPropertiesEXT { if x == nil { return nil } - return x.refcd374989 + 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 *PipelineColorBlendAdvancedStateCreateInfo) Free() { - if x != nil && x.allocscd374989 != nil { - x.allocscd374989.(*cgoAllocMap).Free() - x.refcd374989 = nil +func (x *PhysicalDevicePipelineRobustnessProperties) Free() { + if x != nil && x.allocsd195872f != nil { + x.allocsd195872f.(*cgoAllocMap).Free() + x.refd195872f = nil } } -// NewPipelineColorBlendAdvancedStateCreateInfoRef 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 NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { +func NewPhysicalDevicePipelineRobustnessPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePipelineRobustnessProperties { if ref == nil { return nil } - obj := new(PipelineColorBlendAdvancedStateCreateInfo) - obj.refcd374989 = (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(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 *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDevicePipelineRobustnessProperties) PassRef() (*C.VkPhysicalDevicePipelineRobustnessPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd374989 != nil { - return x.refcd374989, nil + } else if x.refd195872f != nil { + return x.refd195872f, nil } - memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) - refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) - allocscd374989 := new(cgoAllocMap) - allocscd374989.Add(memcd374989) + memd195872f := allocPhysicalDevicePipelineRobustnessPropertiesMemory(1) + refd195872f := (*C.VkPhysicalDevicePipelineRobustnessPropertiesEXT)(memd195872f) + allocsd195872f := new(cgoAllocMap) + allocsd195872f.Add(memd195872f) var csType_allocs *cgoAllocMap - refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd374989.Borrow(csType_allocs) + refd195872f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd195872f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd374989.Borrow(cpNext_allocs) + refd195872f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd195872f.Borrow(cpNext_allocs) - var csrcPremultiplied_allocs *cgoAllocMap - refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(csrcPremultiplied_allocs) + var cdefaultRobustnessStorageBuffers_allocs *cgoAllocMap + refd195872f.defaultRobustnessStorageBuffers, cdefaultRobustnessStorageBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessStorageBuffers), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessStorageBuffers_allocs) - var cdstPremultiplied_allocs *cgoAllocMap - refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(cdstPremultiplied_allocs) + var cdefaultRobustnessUniformBuffers_allocs *cgoAllocMap + refd195872f.defaultRobustnessUniformBuffers, cdefaultRobustnessUniformBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessUniformBuffers), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessUniformBuffers_allocs) - var cblendOverlap_allocs *cgoAllocMap - refcd374989.blendOverlap, cblendOverlap_allocs = (C.VkBlendOverlapEXT)(x.BlendOverlap), cgoAllocsUnknown - allocscd374989.Borrow(cblendOverlap_allocs) + var cdefaultRobustnessVertexInputs_allocs *cgoAllocMap + refd195872f.defaultRobustnessVertexInputs, cdefaultRobustnessVertexInputs_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessVertexInputs), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessVertexInputs_allocs) - x.refcd374989 = refcd374989 - x.allocscd374989 = allocscd374989 - return refcd374989, allocscd374989 + 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 PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { - if x.refcd374989 != nil { - return *x.refcd374989, nil +func (x PhysicalDevicePipelineRobustnessProperties) PassValue() (C.VkPhysicalDevicePipelineRobustnessPropertiesEXT, *cgoAllocMap) { + if x.refd195872f != nil { + return *x.refd195872f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46491,100 +46589,105 @@ 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 *PhysicalDevicePipelineRobustnessProperties) Deref() { + if x.refd195872f == 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.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) } -// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV in C. +// allocPipelineRobustnessCreateInfoMemory allocates memory for type C.VkPipelineRobustnessCreateInfoEXT 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 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 sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) +const sizeOfPipelineRobustnessCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRobustnessCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { +func (x *PipelineRobustnessCreateInfo) Ref() *C.VkPipelineRobustnessCreateInfoEXT { if x == nil { return nil } - return x.refcc6b7b68 + 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 *PipelineCoverageToColorStateCreateInfoNV) Free() { - if x != nil && x.allocscc6b7b68 != nil { - x.allocscc6b7b68.(*cgoAllocMap).Free() - x.refcc6b7b68 = nil +func (x *PipelineRobustnessCreateInfo) Free() { + if x != nil && x.allocs1e4549a1 != nil { + x.allocs1e4549a1.(*cgoAllocMap).Free() + x.ref1e4549a1 = nil } } -// NewPipelineCoverageToColorStateCreateInfoNVRef 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 NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { +func NewPipelineRobustnessCreateInfoRef(ref unsafe.Pointer) *PipelineRobustnessCreateInfo { if ref == nil { return nil } - obj := new(PipelineCoverageToColorStateCreateInfoNV) - obj.refcc6b7b68 = (*C.VkPipelineCoverageToColorStateCreateInfoNV)(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 *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { +func (x *PipelineRobustnessCreateInfo) PassRef() (*C.VkPipelineRobustnessCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcc6b7b68 != nil { - return x.refcc6b7b68, nil + } else if x.ref1e4549a1 != nil { + return x.ref1e4549a1, nil } - memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) - refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) - allocscc6b7b68 := new(cgoAllocMap) - allocscc6b7b68.Add(memcc6b7b68) + mem1e4549a1 := allocPipelineRobustnessCreateInfoMemory(1) + ref1e4549a1 := (*C.VkPipelineRobustnessCreateInfoEXT)(mem1e4549a1) + allocs1e4549a1 := new(cgoAllocMap) + allocs1e4549a1.Add(mem1e4549a1) var csType_allocs *cgoAllocMap - refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscc6b7b68.Borrow(csType_allocs) + ref1e4549a1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1e4549a1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscc6b7b68.Borrow(cpNext_allocs) + ref1e4549a1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1e4549a1.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocscc6b7b68.Borrow(cflags_allocs) + var cstorageBuffers_allocs *cgoAllocMap + ref1e4549a1.storageBuffers, cstorageBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.StorageBuffers), cgoAllocsUnknown + allocs1e4549a1.Borrow(cstorageBuffers_allocs) - var ccoverageToColorEnable_allocs *cgoAllocMap - refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) + var cuniformBuffers_allocs *cgoAllocMap + ref1e4549a1.uniformBuffers, cuniformBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.UniformBuffers), cgoAllocsUnknown + allocs1e4549a1.Borrow(cuniformBuffers_allocs) - var ccoverageToColorLocation_allocs *cgoAllocMap - refcc6b7b68.coverageToColorLocation, ccoverageToColorLocation_allocs = (C.uint32_t)(x.CoverageToColorLocation), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorLocation_allocs) + var cvertexInputs_allocs *cgoAllocMap + ref1e4549a1.vertexInputs, cvertexInputs_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.VertexInputs), cgoAllocsUnknown + allocs1e4549a1.Borrow(cvertexInputs_allocs) - x.refcc6b7b68 = refcc6b7b68 - x.allocscc6b7b68 = allocscc6b7b68 - return refcc6b7b68, allocscc6b7b68 + 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 PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { - if x.refcc6b7b68 != nil { - return *x.refcc6b7b68, nil +func (x PipelineRobustnessCreateInfo) PassValue() (C.VkPipelineRobustnessCreateInfoEXT, *cgoAllocMap) { + if x.ref1e4549a1 != nil { + return *x.ref1e4549a1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46592,108 +46695,101 @@ 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 *PipelineRobustnessCreateInfo) Deref() { + if x.ref1e4549a1 == 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.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) } -// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV in C. +// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT 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 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 sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) +const sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { +func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { if x == nil { return nil } - return x.refa081b0ea + 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 *PipelineCoverageModulationStateCreateInfoNV) Free() { - if x != nil && x.allocsa081b0ea != nil { - x.allocsa081b0ea.(*cgoAllocMap).Free() - x.refa081b0ea = nil +func (x *ConditionalRenderingBeginInfo) Free() { + if x != nil && x.allocs82da87c9 != nil { + x.allocs82da87c9.(*cgoAllocMap).Free() + x.ref82da87c9 = nil } } -// NewPipelineCoverageModulationStateCreateInfoNVRef 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 NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { +func NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { if ref == nil { return nil } - obj := new(PipelineCoverageModulationStateCreateInfoNV) - obj.refa081b0ea = (*C.VkPipelineCoverageModulationStateCreateInfoNV)(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 *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { +func (x *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa081b0ea != nil { - return x.refa081b0ea, nil + } else if x.ref82da87c9 != nil { + return x.ref82da87c9, nil } - mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) - refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) - allocsa081b0ea := new(cgoAllocMap) - allocsa081b0ea.Add(mema081b0ea) + mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) + ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) + allocs82da87c9 := new(cgoAllocMap) + allocs82da87c9.Add(mem82da87c9) var csType_allocs *cgoAllocMap - refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa081b0ea.Borrow(csType_allocs) + ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82da87c9.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) + ref82da87c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82da87c9.Borrow(cpNext_allocs) - var ccoverageModulationTableEnable_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableEnable, ccoverageModulationTableEnable_allocs = (C.VkBool32)(x.CoverageModulationTableEnable), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableEnable_allocs) + var cbuffer_allocs *cgoAllocMap + ref82da87c9.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs82da87c9.Borrow(cbuffer_allocs) - var ccoverageModulationTableCount_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableCount, ccoverageModulationTableCount_allocs = (C.uint32_t)(x.CoverageModulationTableCount), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableCount_allocs) + var coffset_allocs *cgoAllocMap + ref82da87c9.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs82da87c9.Borrow(coffset_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 cflags_allocs *cgoAllocMap + ref82da87c9.flags, cflags_allocs = (C.VkConditionalRenderingFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs82da87c9.Borrow(cflags_allocs) - x.refa081b0ea = refa081b0ea - x.allocsa081b0ea = allocsa081b0ea - return refa081b0ea, allocsa081b0ea + 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 PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { - if x.refa081b0ea != nil { - return *x.refa081b0ea, nil +func (x ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { + if x.ref82da87c9 != nil { + return *x.ref82da87c9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46701,102 +46797,96 @@ 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 *ConditionalRenderingBeginInfo) Deref() { + if x.ref82da87c9 == 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) - hxf766ff8 := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) - hxf766ff8.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) - hxf766ff8.Cap = 0x7fffffff - // hxf766ff8.Len = ? - + 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) } -// allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV in C. +// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue)) +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 sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV{}) +const sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { +func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { if x == nil { return nil } - return x.refc083cf09 + 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 *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Free() { - if x != nil && x.allocsc083cf09 != nil { - x.allocsc083cf09.(*cgoAllocMap).Free() - x.refc083cf09 = nil +func (x *PhysicalDeviceConditionalRenderingFeatures) Free() { + if x != nil && x.allocs89d2a224 != nil { + x.allocs89d2a224.(*cgoAllocMap).Free() + x.ref89d2a224 = nil } } -// NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef 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 NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsPropertiesNV { +func NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderSMBuiltinsPropertiesNV) - obj.refc083cf09 = (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(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 *PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { +func (x *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc083cf09 != nil { - return x.refc083cf09, nil + } else if x.ref89d2a224 != nil { + return x.ref89d2a224, nil } - memc083cf09 := allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(1) - refc083cf09 := (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(memc083cf09) - allocsc083cf09 := new(cgoAllocMap) - allocsc083cf09.Add(memc083cf09) + mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) + ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) + allocs89d2a224 := new(cgoAllocMap) + allocs89d2a224.Add(mem89d2a224) var csType_allocs *cgoAllocMap - refc083cf09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc083cf09.Borrow(csType_allocs) + ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs89d2a224.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc083cf09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc083cf09.Borrow(cpNext_allocs) + ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs89d2a224.Borrow(cpNext_allocs) - var cshaderSMCount_allocs *cgoAllocMap - refc083cf09.shaderSMCount, cshaderSMCount_allocs = (C.uint32_t)(x.ShaderSMCount), cgoAllocsUnknown - allocsc083cf09.Borrow(cshaderSMCount_allocs) + var cconditionalRendering_allocs *cgoAllocMap + ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cconditionalRendering_allocs) - var cshaderWarpsPerSM_allocs *cgoAllocMap - refc083cf09.shaderWarpsPerSM, cshaderWarpsPerSM_allocs = (C.uint32_t)(x.ShaderWarpsPerSM), cgoAllocsUnknown - allocsc083cf09.Borrow(cshaderWarpsPerSM_allocs) + var cinheritedConditionalRendering_allocs *cgoAllocMap + ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) - x.refc083cf09 = refc083cf09 - x.allocsc083cf09 = allocsc083cf09 - return refc083cf09, allocsc083cf09 + 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 PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { - if x.refc083cf09 != nil { - return *x.refc083cf09, nil +func (x PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { + if x.ref89d2a224 != nil { + return *x.ref89d2a224, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46804,91 +46894,91 @@ func (x PhysicalDeviceShaderSMBuiltinsPropertiesNV) 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 *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Deref() { - if x.refc083cf09 == nil { +func (x *PhysicalDeviceConditionalRenderingFeatures) Deref() { + if x.ref89d2a224 == nil { return } - 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) + 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) } -// allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV in C. +// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue)) +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 sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV{}) +const sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { +func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { if x == nil { return nil } - return x.ref1965c1d + 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 *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Free() { - if x != nil && x.allocs1965c1d != nil { - x.allocs1965c1d.(*cgoAllocMap).Free() - x.ref1965c1d = nil +func (x *CommandBufferInheritanceConditionalRenderingInfo) Free() { + if x != nil && x.allocs7155f49c != nil { + x.allocs7155f49c.(*cgoAllocMap).Free() + x.ref7155f49c = nil } } -// NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef 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 NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsFeaturesNV { +func NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderSMBuiltinsFeaturesNV) - obj.ref1965c1d = (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(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 *PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { +func (x *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1965c1d != nil { - return x.ref1965c1d, nil + } else if x.ref7155f49c != nil { + return x.ref7155f49c, nil } - mem1965c1d := allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(1) - ref1965c1d := (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(mem1965c1d) - allocs1965c1d := new(cgoAllocMap) - allocs1965c1d.Add(mem1965c1d) + mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) + ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) + allocs7155f49c := new(cgoAllocMap) + allocs7155f49c.Add(mem7155f49c) var csType_allocs *cgoAllocMap - ref1965c1d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1965c1d.Borrow(csType_allocs) + ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7155f49c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1965c1d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1965c1d.Borrow(cpNext_allocs) + ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7155f49c.Borrow(cpNext_allocs) - var cshaderSMBuiltins_allocs *cgoAllocMap - ref1965c1d.shaderSMBuiltins, cshaderSMBuiltins_allocs = (C.VkBool32)(x.ShaderSMBuiltins), cgoAllocsUnknown - allocs1965c1d.Borrow(cshaderSMBuiltins_allocs) + var cconditionalRenderingEnable_allocs *cgoAllocMap + ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown + allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) - x.ref1965c1d = ref1965c1d - x.allocs1965c1d = allocs1965c1d - return ref1965c1d, allocs1965c1d + 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 PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { - if x.ref1965c1d != nil { - return *x.ref1965c1d, nil +func (x CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { + if x.ref7155f49c != nil { + return *x.ref7155f49c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46896,90 +46986,86 @@ func (x PhysicalDeviceShaderSMBuiltinsFeaturesNV) 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 *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Deref() { - if x.ref1965c1d == nil { +func (x *CommandBufferInheritanceConditionalRenderingInfo) Deref() { + if x.ref7155f49c == nil { return } - x.SType = (StructureType)(x.ref1965c1d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1965c1d.pNext)) - x.ShaderSMBuiltins = (Bool32)(x.ref1965c1d.shaderSMBuiltins) + x.SType = (StructureType)(x.ref7155f49c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7155f49c.pNext)) + x.ConditionalRenderingEnable = (Bool32)(x.ref7155f49c.conditionalRenderingEnable) } -// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT in C. +// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV 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 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 sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) +const sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { +func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { if x == nil { return nil } - return x.ref7dcb7f85 + 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 *DrmFormatModifierProperties) Free() { - if x != nil && x.allocs7dcb7f85 != nil { - x.allocs7dcb7f85.(*cgoAllocMap).Free() - x.ref7dcb7f85 = nil +func (x *ViewportWScalingNV) Free() { + if x != nil && x.allocs7ea4590f != nil { + x.allocs7ea4590f.(*cgoAllocMap).Free() + x.ref7ea4590f = nil } } -// NewDrmFormatModifierPropertiesRef 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 NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { +func NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { if ref == nil { return nil } - obj := new(DrmFormatModifierProperties) - obj.ref7dcb7f85 = (*C.VkDrmFormatModifierPropertiesEXT)(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 *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7dcb7f85 != nil { - return x.ref7dcb7f85, nil + } else if x.ref7ea4590f != nil { + return x.ref7ea4590f, nil } - mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) - ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) - allocs7dcb7f85 := new(cgoAllocMap) - allocs7dcb7f85.Add(mem7dcb7f85) - - var cdrmFormatModifier_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) + mem7ea4590f := allocViewportWScalingNVMemory(1) + ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) + allocs7ea4590f := new(cgoAllocMap) + allocs7ea4590f.Add(mem7ea4590f) - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) + var cxcoeff_allocs *cgoAllocMap + ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cxcoeff_allocs) - var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) + var cycoeff_allocs *cgoAllocMap + ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cycoeff_allocs) - x.ref7dcb7f85 = ref7dcb7f85 - x.allocs7dcb7f85 = allocs7dcb7f85 - return ref7dcb7f85, allocs7dcb7f85 + 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 DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref7dcb7f85 != nil { - return *x.ref7dcb7f85, nil +func (x ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { + if x.ref7ea4590f != nil { + return *x.ref7ea4590f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -46987,132 +47073,135 @@ 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 *ViewportWScalingNV) Deref() { + if x.ref7ea4590f == nil { return } - x.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) - x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) - x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) + x.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) + x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) } -// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT in C. +// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV 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 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 sizeOfDrmFormatModifierPropertiesListValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesListEXT{}) +const sizeOfPipelineViewportWScalingStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportWScalingStateCreateInfoNV{}) -// unpackSDrmFormatModifierProperties transforms a sliced Go data structure into plain C format. -func unpackSDrmFormatModifierProperties(x []DrmFormatModifierProperties) (unpacked *C.VkDrmFormatModifierPropertiesEXT, allocs *cgoAllocMap) { +// 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.VkDrmFormatModifierPropertiesEXT) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportWScalingNV) { go allocs.Free() }) len0 := len(x) - mem0 := allocDrmFormatModifierPropertiesMemory(len0) + mem0 := allocViewportWScalingNVMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(h0)) + 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.VkDrmFormatModifierPropertiesEXT)(h.Data) + unpacked = (*C.VkViewportWScalingNV)(h.Data) return } -// packSDrmFormatModifierProperties reads sliced Go data structure out from plain C format. -func packSDrmFormatModifierProperties(v []DrmFormatModifierProperties, ptr0 *C.VkDrmFormatModifierPropertiesEXT) { +// 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 / sizeOfDrmFormatModifierPropertiesValue]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDrmFormatModifierPropertiesRef(unsafe.Pointer(&ptr1)) + 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 *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { +func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { if x == nil { return nil } - return x.ref7e3ede2 + 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 *DrmFormatModifierPropertiesList) Free() { - if x != nil && x.allocs7e3ede2 != nil { - x.allocs7e3ede2.(*cgoAllocMap).Free() - x.ref7e3ede2 = nil +func (x *PipelineViewportWScalingStateCreateInfoNV) Free() { + if x != nil && x.allocs3e532c0b != nil { + x.allocs3e532c0b.(*cgoAllocMap).Free() + x.ref3e532c0b = nil } } -// NewDrmFormatModifierPropertiesListRef 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 NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { +func NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { if ref == nil { return nil } - obj := new(DrmFormatModifierPropertiesList) - obj.ref7e3ede2 = (*C.VkDrmFormatModifierPropertiesListEXT)(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 *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { +func (x *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7e3ede2 != nil { - return x.ref7e3ede2, nil + } else if x.ref3e532c0b != nil { + return x.ref3e532c0b, nil } - mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) - ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) - allocs7e3ede2 := new(cgoAllocMap) - allocs7e3ede2.Add(mem7e3ede2) + mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) + ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) + allocs3e532c0b := new(cgoAllocMap) + allocs3e532c0b.Add(mem3e532c0b) var csType_allocs *cgoAllocMap - ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7e3ede2.Borrow(csType_allocs) + ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e532c0b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7e3ede2.Borrow(cpNext_allocs) + ref3e532c0b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e532c0b.Borrow(cpNext_allocs) - var cdrmFormatModifierCount_allocs *cgoAllocMap - ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) + var cviewportWScalingEnable_allocs *cgoAllocMap + ref3e532c0b.viewportWScalingEnable, cviewportWScalingEnable_allocs = (C.VkBool32)(x.ViewportWScalingEnable), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportWScalingEnable_allocs) - var cpDrmFormatModifierProperties_allocs *cgoAllocMap - ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) - allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) + var cviewportCount_allocs *cgoAllocMap + ref3e532c0b.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportCount_allocs) - x.ref7e3ede2 = ref7e3ede2 - x.allocs7e3ede2 = allocs7e3ede2 - return ref7e3ede2, allocs7e3ede2 + 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 DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { - if x.ref7e3ede2 != nil { - return *x.ref7e3ede2, nil +func (x PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { + if x.ref3e532c0b != nil { + return *x.ref3e532c0b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47120,103 +47209,92 @@ 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 *PipelineViewportWScalingStateCreateInfoNV) Deref() { + if x.ref3e532c0b == 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) -} - -// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT in C. + 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) +} + +// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT 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 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 sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) +const sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { +func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { if x == nil { return nil } - return x.refd7abef44 + 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 *PhysicalDeviceImageDrmFormatModifierInfo) Free() { - if x != nil && x.allocsd7abef44 != nil { - x.allocsd7abef44.(*cgoAllocMap).Free() - x.refd7abef44 = nil +func (x *DisplayPowerInfo) Free() { + if x != nil && x.allocs80fed52f != nil { + x.allocs80fed52f.(*cgoAllocMap).Free() + x.ref80fed52f = nil } } -// NewPhysicalDeviceImageDrmFormatModifierInfoRef 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 NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { +func NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceImageDrmFormatModifierInfo) - obj.refd7abef44 = (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(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 *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { +func (x *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd7abef44 != nil { - return x.refd7abef44, nil + } else if x.ref80fed52f != nil { + return x.ref80fed52f, nil } - memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) - refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) - allocsd7abef44 := new(cgoAllocMap) - allocsd7abef44.Add(memd7abef44) + mem80fed52f := allocDisplayPowerInfoMemory(1) + ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) + allocs80fed52f := new(cgoAllocMap) + allocs80fed52f.Add(mem80fed52f) var csType_allocs *cgoAllocMap - refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd7abef44.Borrow(csType_allocs) + ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80fed52f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd7abef44.Borrow(cpNext_allocs) - - var cdrmFormatModifier_allocs *cgoAllocMap - refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocsd7abef44.Borrow(cdrmFormatModifier_allocs) - - var csharingMode_allocs *cgoAllocMap - refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsd7abef44.Borrow(csharingMode_allocs) - - var cqueueFamilyIndexCount_allocs *cgoAllocMap - refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) + ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80fed52f.Borrow(cpNext_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 cpowerState_allocs *cgoAllocMap + ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown + allocs80fed52f.Borrow(cpowerState_allocs) - x.refd7abef44 = refd7abef44 - x.allocsd7abef44 = allocsd7abef44 - return refd7abef44, allocsd7abef44 + 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 PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { - if x.refd7abef44 != nil { - return *x.refd7abef44, nil +func (x DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { + if x.ref80fed52f != nil { + return *x.ref80fed52f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47224,101 +47302,90 @@ 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 *DisplayPowerInfo) Deref() { + if x.ref80fed52f == 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) - hxf9b1633 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxf9b1633.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) - hxf9b1633.Cap = 0x7fffffff - // hxf9b1633.Len = ? - + x.SType = (StructureType)(x.ref80fed52f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) + x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) } -// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT in C. +// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT 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 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 sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) +const sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { +func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { if x == nil { return nil } - return x.ref544538ab + 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 *ImageDrmFormatModifierListCreateInfo) Free() { - if x != nil && x.allocs544538ab != nil { - x.allocs544538ab.(*cgoAllocMap).Free() - x.ref544538ab = nil +func (x *DeviceEventInfo) Free() { + if x != nil && x.allocs394b3fcb != nil { + x.allocs394b3fcb.(*cgoAllocMap).Free() + x.ref394b3fcb = nil } } -// NewImageDrmFormatModifierListCreateInfoRef 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 NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { +func NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierListCreateInfo) - obj.ref544538ab = (*C.VkImageDrmFormatModifierListCreateInfoEXT)(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 *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { +func (x *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref544538ab != nil { - return x.ref544538ab, nil + } else if x.ref394b3fcb != nil { + return x.ref394b3fcb, nil } - mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) - ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) - allocs544538ab := new(cgoAllocMap) - allocs544538ab.Add(mem544538ab) + mem394b3fcb := allocDeviceEventInfoMemory(1) + ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) + allocs394b3fcb := new(cgoAllocMap) + allocs394b3fcb.Add(mem394b3fcb) var csType_allocs *cgoAllocMap - ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs544538ab.Borrow(csType_allocs) + ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs394b3fcb.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) + ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs394b3fcb.Borrow(cpNext_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 cdeviceEvent_allocs *cgoAllocMap + ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown + allocs394b3fcb.Borrow(cdeviceEvent_allocs) - x.ref544538ab = ref544538ab - x.allocs544538ab = allocs544538ab - return ref544538ab, allocs544538ab + 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 ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { - if x.ref544538ab != nil { - return *x.ref544538ab, nil +func (x DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { + if x.ref394b3fcb != nil { + return *x.ref394b3fcb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47326,141 +47393,90 @@ 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 *DeviceEventInfo) Deref() { + if x.ref394b3fcb == nil { return } - 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 = ? - + x.SType = (StructureType)(x.ref394b3fcb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref394b3fcb.pNext)) + x.DeviceEvent = (DeviceEventType)(x.ref394b3fcb.deviceEvent) } -// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT in C. +// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT 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 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 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.VkSubresourceLayout) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSubresourceLayoutMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - 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.VkSubresourceLayout)(h.Data) - return -} - -// 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 / sizeOfSubresourceLayoutValue]C.VkSubresourceLayout)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubresourceLayoutRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { +func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { if x == nil { return nil } - return x.ref8fb45ca9 + 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 *ImageDrmFormatModifierExplicitCreateInfo) Free() { - if x != nil && x.allocs8fb45ca9 != nil { - x.allocs8fb45ca9.(*cgoAllocMap).Free() - x.ref8fb45ca9 = nil +func (x *DisplayEventInfo) Free() { + if x != nil && x.allocsa69f7302 != nil { + x.allocsa69f7302.(*cgoAllocMap).Free() + x.refa69f7302 = nil } } -// NewImageDrmFormatModifierExplicitCreateInfoRef 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 NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { +func NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierExplicitCreateInfo) - obj.ref8fb45ca9 = (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(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 *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { +func (x *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8fb45ca9 != nil { - return x.ref8fb45ca9, nil + } else if x.refa69f7302 != nil { + return x.refa69f7302, nil } - mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) - ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) - allocs8fb45ca9 := new(cgoAllocMap) - allocs8fb45ca9.Add(mem8fb45ca9) + mema69f7302 := allocDisplayEventInfoMemory(1) + refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) + allocsa69f7302 := new(cgoAllocMap) + allocsa69f7302.Add(mema69f7302) var csType_allocs *cgoAllocMap - ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8fb45ca9.Borrow(csType_allocs) + refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa69f7302.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cpNext_allocs) - - var cdrmFormatModifier_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) - - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) + refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa69f7302.Borrow(cpNext_allocs) - var cpPlaneLayouts_allocs *cgoAllocMap - ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) - allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) + var cdisplayEvent_allocs *cgoAllocMap + refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown + allocsa69f7302.Borrow(cdisplayEvent_allocs) - x.ref8fb45ca9 = ref8fb45ca9 - x.allocs8fb45ca9 = allocs8fb45ca9 - return ref8fb45ca9, allocs8fb45ca9 + 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 ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { - if x.ref8fb45ca9 != nil { - return *x.ref8fb45ca9, nil +func (x DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { + if x.refa69f7302 != nil { + return *x.refa69f7302, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47468,92 +47484,90 @@ 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 *DisplayEventInfo) Deref() { + if x.refa69f7302 == 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) + x.SType = (StructureType)(x.refa69f7302.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa69f7302.pNext)) + x.DisplayEvent = (DisplayEventType)(x.refa69f7302.displayEvent) } -// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT in C. +// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT 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 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 sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) +const sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { +func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { if x == nil { return nil } - return x.ref86a0f149 + 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 *ImageDrmFormatModifierProperties) Free() { - if x != nil && x.allocs86a0f149 != nil { - x.allocs86a0f149.(*cgoAllocMap).Free() - x.ref86a0f149 = nil +func (x *SwapchainCounterCreateInfo) Free() { + if x != nil && x.allocs9f21eca6 != nil { + x.allocs9f21eca6.(*cgoAllocMap).Free() + x.ref9f21eca6 = nil } } -// NewImageDrmFormatModifierPropertiesRef 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 NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { +func NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierProperties) - obj.ref86a0f149 = (*C.VkImageDrmFormatModifierPropertiesEXT)(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 *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86a0f149 != nil { - return x.ref86a0f149, nil + } else if x.ref9f21eca6 != nil { + return x.ref9f21eca6, nil } - mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) - ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) - allocs86a0f149 := new(cgoAllocMap) - allocs86a0f149.Add(mem86a0f149) + mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) + ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) + allocs9f21eca6 := new(cgoAllocMap) + allocs9f21eca6.Add(mem9f21eca6) var csType_allocs *cgoAllocMap - ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86a0f149.Borrow(csType_allocs) + ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9f21eca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86a0f149.Borrow(cpNext_allocs) + ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9f21eca6.Borrow(cpNext_allocs) - var cdrmFormatModifier_allocs *cgoAllocMap - ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs86a0f149.Borrow(cdrmFormatModifier_allocs) + var csurfaceCounters_allocs *cgoAllocMap + ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown + allocs9f21eca6.Borrow(csurfaceCounters_allocs) - x.ref86a0f149 = ref86a0f149 - x.allocs86a0f149 = allocs86a0f149 - return ref86a0f149, allocs86a0f149 + 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 ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref86a0f149 != nil { - return *x.ref86a0f149, nil +func (x SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { + if x.ref9f21eca6 != nil { + return *x.ref9f21eca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47561,90 +47575,82 @@ 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 *SwapchainCounterCreateInfo) Deref() { + if x.ref9f21eca6 == 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.ref9f21eca6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9f21eca6.pNext)) + x.SurfaceCounters = (SurfaceCounterFlags)(x.ref9f21eca6.surfaceCounters) } -// allocDrmFormatModifierProperties2Memory allocates memory for type C.VkDrmFormatModifierProperties2EXT in C. +// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrmFormatModifierProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierProperties2Value)) +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 sizeOfDrmFormatModifierProperties2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierProperties2EXT{}) +const sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierProperties2) Ref() *C.VkDrmFormatModifierProperties2EXT { +func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { if x == nil { return nil } - return x.ref6d0821ba + 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 *DrmFormatModifierProperties2) Free() { - if x != nil && x.allocs6d0821ba != nil { - x.allocs6d0821ba.(*cgoAllocMap).Free() - x.ref6d0821ba = nil +func (x *RefreshCycleDurationGOOGLE) Free() { + if x != nil && x.allocs969cb55b != nil { + x.allocs969cb55b.(*cgoAllocMap).Free() + x.ref969cb55b = nil } } -// NewDrmFormatModifierProperties2Ref 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 NewDrmFormatModifierProperties2Ref(ref unsafe.Pointer) *DrmFormatModifierProperties2 { +func NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { if ref == nil { return nil } - obj := new(DrmFormatModifierProperties2) - obj.ref6d0821ba = (*C.VkDrmFormatModifierProperties2EXT)(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 *DrmFormatModifierProperties2) PassRef() (*C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { +func (x *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6d0821ba != nil { - return x.ref6d0821ba, nil + } else if x.ref969cb55b != nil { + return x.ref969cb55b, nil } - mem6d0821ba := allocDrmFormatModifierProperties2Memory(1) - ref6d0821ba := (*C.VkDrmFormatModifierProperties2EXT)(mem6d0821ba) - allocs6d0821ba := new(cgoAllocMap) - allocs6d0821ba.Add(mem6d0821ba) - - var cdrmFormatModifier_allocs *cgoAllocMap - ref6d0821ba.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs6d0821ba.Borrow(cdrmFormatModifier_allocs) - - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref6d0821ba.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs6d0821ba.Borrow(cdrmFormatModifierPlaneCount_allocs) + mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) + ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) + allocs969cb55b := new(cgoAllocMap) + allocs969cb55b.Add(mem969cb55b) - var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap - ref6d0821ba.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown - allocs6d0821ba.Borrow(cdrmFormatModifierTilingFeatures_allocs) + var crefreshDuration_allocs *cgoAllocMap + ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown + allocs969cb55b.Borrow(crefreshDuration_allocs) - x.ref6d0821ba = ref6d0821ba - x.allocs6d0821ba = allocs6d0821ba - return ref6d0821ba, allocs6d0821ba + 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 DrmFormatModifierProperties2) PassValue() (C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { - if x.ref6d0821ba != nil { - return *x.ref6d0821ba, nil +func (x RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { + if x.ref969cb55b != nil { + return *x.ref969cb55b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47652,132 +47658,185 @@ func (x DrmFormatModifierProperties2) PassValue() (C.VkDrmFormatModifierProperti // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrmFormatModifierProperties2) Deref() { - if x.ref6d0821ba == nil { +func (x *RefreshCycleDurationGOOGLE) Deref() { + if x.ref969cb55b == nil { return } - x.DrmFormatModifier = (uint64)(x.ref6d0821ba.drmFormatModifier) - x.DrmFormatModifierPlaneCount = (uint32)(x.ref6d0821ba.drmFormatModifierPlaneCount) - x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags2)(x.ref6d0821ba.drmFormatModifierTilingFeatures) + x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) } -// allocDrmFormatModifierPropertiesList2Memory allocates memory for type C.VkDrmFormatModifierPropertiesList2EXT in C. +// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrmFormatModifierPropertiesList2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesList2Value)) +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 sizeOfDrmFormatModifierPropertiesList2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesList2EXT{}) +const sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) -// unpackSDrmFormatModifierProperties2 transforms a sliced Go data structure into plain C format. -func unpackSDrmFormatModifierProperties2(x []DrmFormatModifierProperties2) (unpacked *C.VkDrmFormatModifierProperties2EXT, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierProperties2EXT) { - go allocs.Free() - }) + return x.refac8cf1d8 +} - 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) +// Free invokes alloc map'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 } - 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)) +// 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 NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { + if ref == nil { + return nil + } + 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 *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refac8cf1d8 != nil { + return x.refac8cf1d8, 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) + + var cdesiredPresentTime_allocs *cgoAllocMap + refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) + + var cactualPresentTime_allocs *cgoAllocMap + refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cactualPresentTime_allocs) + + var cearliestPresentTime_allocs *cgoAllocMap + refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) + + var cpresentMargin_allocs *cgoAllocMap + refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cpresentMargin_allocs) + + 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 PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { + if x.refac8cf1d8 != nil { + return *x.refac8cf1d8, 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 *PastPresentationTimingGOOGLE) Deref() { + if x.refac8cf1d8 == 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) +} + +// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE 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)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierPropertiesList2) Ref() *C.VkDrmFormatModifierPropertiesList2EXT { +func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { if x == nil { return nil } - return x.refbea4fdd3 + 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 *DrmFormatModifierPropertiesList2) Free() { - if x != nil && x.allocsbea4fdd3 != nil { - x.allocsbea4fdd3.(*cgoAllocMap).Free() - x.refbea4fdd3 = nil +func (x *PresentTimeGOOGLE) Free() { + if x != nil && x.allocs9cd90ade != nil { + x.allocs9cd90ade.(*cgoAllocMap).Free() + x.ref9cd90ade = nil } } -// NewDrmFormatModifierPropertiesList2Ref 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 NewDrmFormatModifierPropertiesList2Ref(ref unsafe.Pointer) *DrmFormatModifierPropertiesList2 { +func NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { if ref == nil { return nil } - obj := new(DrmFormatModifierPropertiesList2) - obj.refbea4fdd3 = (*C.VkDrmFormatModifierPropertiesList2EXT)(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 *DrmFormatModifierPropertiesList2) PassRef() (*C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { +func (x *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbea4fdd3 != nil { - return x.refbea4fdd3, nil + } else if x.ref9cd90ade != nil { + return x.ref9cd90ade, nil } - membea4fdd3 := allocDrmFormatModifierPropertiesList2Memory(1) - refbea4fdd3 := (*C.VkDrmFormatModifierPropertiesList2EXT)(membea4fdd3) - allocsbea4fdd3 := new(cgoAllocMap) - allocsbea4fdd3.Add(membea4fdd3) - - var csType_allocs *cgoAllocMap - refbea4fdd3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbea4fdd3.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refbea4fdd3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbea4fdd3.Borrow(cpNext_allocs) + mem9cd90ade := allocPresentTimeGOOGLEMemory(1) + ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) + allocs9cd90ade := new(cgoAllocMap) + allocs9cd90ade.Add(mem9cd90ade) - var cdrmFormatModifierCount_allocs *cgoAllocMap - refbea4fdd3.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocsbea4fdd3.Borrow(cdrmFormatModifierCount_allocs) + var cpresentID_allocs *cgoAllocMap + ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown + allocs9cd90ade.Borrow(cpresentID_allocs) - var cpDrmFormatModifierProperties_allocs *cgoAllocMap - refbea4fdd3.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties2(x.PDrmFormatModifierProperties) - allocsbea4fdd3.Borrow(cpDrmFormatModifierProperties_allocs) + var cdesiredPresentTime_allocs *cgoAllocMap + ref9cd90ade.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocs9cd90ade.Borrow(cdesiredPresentTime_allocs) - x.refbea4fdd3 = refbea4fdd3 - x.allocsbea4fdd3 = allocsbea4fdd3 - return refbea4fdd3, allocsbea4fdd3 + 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 DrmFormatModifierPropertiesList2) PassValue() (C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { - if x.refbea4fdd3 != nil { - return *x.refbea4fdd3, nil +func (x PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { + if x.ref9cd90ade != nil { + return *x.ref9cd90ade, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47785,99 +47844,131 @@ func (x DrmFormatModifierPropertiesList2) PassValue() (C.VkDrmFormatModifierProp // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrmFormatModifierPropertiesList2) Deref() { - if x.refbea4fdd3 == nil { +func (x *PresentTimeGOOGLE) Deref() { + if x.ref9cd90ade == nil { return } - 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) + x.PresentID = (uint32)(x.ref9cd90ade.presentID) + x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) } -// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT in C. +// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE 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 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 sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) +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 *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { +func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { if x == nil { return nil } - return x.ref3d8ac8aa + 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 *ValidationCacheCreateInfo) Free() { - if x != nil && x.allocs3d8ac8aa != nil { - x.allocs3d8ac8aa.(*cgoAllocMap).Free() - x.ref3d8ac8aa = nil +func (x *PresentTimesInfoGOOGLE) Free() { + if x != nil && x.allocs70eb8ab3 != nil { + x.allocs70eb8ab3.(*cgoAllocMap).Free() + x.ref70eb8ab3 = nil } } -// NewValidationCacheCreateInfoRef 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 NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { +func NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { if ref == nil { return nil } - obj := new(ValidationCacheCreateInfo) - obj.ref3d8ac8aa = (*C.VkValidationCacheCreateInfoEXT)(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 *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3d8ac8aa != nil { - return x.ref3d8ac8aa, nil + } else if x.ref70eb8ab3 != nil { + return x.ref70eb8ab3, nil } - mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) - ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) - allocs3d8ac8aa := new(cgoAllocMap) - allocs3d8ac8aa.Add(mem3d8ac8aa) + mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) + ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) + allocs70eb8ab3 := new(cgoAllocMap) + allocs70eb8ab3.Add(mem70eb8ab3) var csType_allocs *cgoAllocMap - ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(csType_allocs) + ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70eb8ab3.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) + ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cpNext_allocs) - var cinitialDataSize_allocs *cgoAllocMap - ref3d8ac8aa.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cinitialDataSize_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cswapchainCount_allocs) - var cpInitialData_allocs *cgoAllocMap - ref3d8ac8aa.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cpInitialData_allocs) + var cpTimes_allocs *cgoAllocMap + ref70eb8ab3.pTimes, cpTimes_allocs = unpackSPresentTimeGOOGLE(x.PTimes) + allocs70eb8ab3.Borrow(cpTimes_allocs) - x.ref3d8ac8aa = ref3d8ac8aa - x.allocs3d8ac8aa = allocs3d8ac8aa - return ref3d8ac8aa, allocs3d8ac8aa + 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 ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref3d8ac8aa != nil { - return *x.ref3d8ac8aa, nil +func (x PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { + if x.ref70eb8ab3 != nil { + return *x.ref70eb8ab3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47885,92 +47976,91 @@ 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 *PresentTimesInfoGOOGLE) Deref() { + if x.ref70eb8ab3 == 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 = (uint64)(x.ref3d8ac8aa.initialDataSize) - x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pInitialData)) + 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) } -// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT in C. +// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX 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 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 sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) +const sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if x == nil { return nil } - return x.ref37065f24 + 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 *ShaderModuleValidationCacheCreateInfo) Free() { - if x != nil && x.allocs37065f24 != nil { - x.allocs37065f24.(*cgoAllocMap).Free() - x.ref37065f24 = nil +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { + if x != nil && x.allocsbaf399ad != nil { + x.allocsbaf399ad.(*cgoAllocMap).Free() + x.refbaf399ad = nil } } -// NewShaderModuleValidationCacheCreateInfoRef 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 NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { +func NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if ref == nil { return nil } - obj := new(ShaderModuleValidationCacheCreateInfo) - obj.ref37065f24 = (*C.VkShaderModuleValidationCacheCreateInfoEXT)(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 *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref37065f24 != nil { - return x.ref37065f24, nil + } else if x.refbaf399ad != nil { + return x.refbaf399ad, nil } - mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) - ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) - allocs37065f24 := new(cgoAllocMap) - allocs37065f24.Add(mem37065f24) + membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) + refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) + allocsbaf399ad := new(cgoAllocMap) + allocsbaf399ad.Add(membaf399ad) var csType_allocs *cgoAllocMap - ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs37065f24.Borrow(csType_allocs) + refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbaf399ad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs37065f24.Borrow(cpNext_allocs) + refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbaf399ad.Borrow(cpNext_allocs) - var cvalidationCache_allocs *cgoAllocMap - ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown - allocs37065f24.Borrow(cvalidationCache_allocs) + var cperViewPositionAllComponents_allocs *cgoAllocMap + refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown + allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) - x.ref37065f24 = ref37065f24 - x.allocs37065f24 = allocs37065f24 - return ref37065f24, allocs37065f24 + 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 ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref37065f24 != nil { - return *x.ref37065f24, nil +func (x PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { + if x.refbaf399ad != nil { + return *x.refbaf399ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -47978,86 +48068,94 @@ 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 *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Deref() { + if x.refbaf399ad == 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.refbaf399ad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbaf399ad.pNext)) + x.PerViewPositionAllComponents = (Bool32)(x.refbaf399ad.perViewPositionAllComponents) } -// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV in C. +// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV 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 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 sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) +const sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { +func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { if x == nil { return nil } - return x.refa5c4ae3a + 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 *ShadingRatePaletteNV) Free() { - if x != nil && x.allocsa5c4ae3a != nil { - x.allocsa5c4ae3a.(*cgoAllocMap).Free() - x.refa5c4ae3a = nil +func (x *ViewportSwizzleNV) Free() { + if x != nil && x.allocs74ff2887 != nil { + x.allocs74ff2887.(*cgoAllocMap).Free() + x.ref74ff2887 = nil } } -// NewShadingRatePaletteNVRef 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 NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { +func NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { if ref == nil { return nil } - obj := new(ShadingRatePaletteNV) - obj.refa5c4ae3a = (*C.VkShadingRatePaletteNV)(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 *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { +func (x *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5c4ae3a != nil { - return x.refa5c4ae3a, nil + } else if x.ref74ff2887 != nil { + return x.ref74ff2887, nil } - mema5c4ae3a := allocShadingRatePaletteNVMemory(1) - refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) - allocsa5c4ae3a := new(cgoAllocMap) - allocsa5c4ae3a.Add(mema5c4ae3a) + mem74ff2887 := allocViewportSwizzleNVMemory(1) + ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) + allocs74ff2887 := new(cgoAllocMap) + allocs74ff2887.Add(mem74ff2887) - var cshadingRatePaletteEntryCount_allocs *cgoAllocMap - refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown - allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) + var cx_allocs *cgoAllocMap + ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown + allocs74ff2887.Borrow(cx_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 cy_allocs *cgoAllocMap + ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown + allocs74ff2887.Borrow(cy_allocs) - x.refa5c4ae3a = refa5c4ae3a - x.allocsa5c4ae3a = allocsa5c4ae3a - return refa5c4ae3a, allocsa5c4ae3a + var cz_allocs *cgoAllocMap + ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown + allocs74ff2887.Borrow(cz_allocs) + + var cw_allocs *cgoAllocMap + ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown + allocs74ff2887.Borrow(cw_allocs) + + 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 ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { - if x.refa5c4ae3a != nil { - return *x.refa5c4ae3a, nil +func (x ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { + if x.ref74ff2887 != nil { + return *x.ref74ff2887, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48065,139 +48163,137 @@ 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 *ViewportSwizzleNV) Deref() { + if x.ref74ff2887 == nil { return } - x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) - hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) - hxf4a9453.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) - hxf4a9453.Cap = 0x7fffffff - // hxf4a9453.Len = ? - + x.X = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.x) + x.Y = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.y) + x.Z = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.z) + x.W = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.w) } -// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV in C. +// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV 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 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 sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportShadingRateImageStateCreateInfoNV{}) +const sizeOfPipelineViewportSwizzleStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportSwizzleStateCreateInfoNV{}) -// unpackSShadingRatePaletteNV transforms a sliced Go data structure into plain C format. -func unpackSShadingRatePaletteNV(x []ShadingRatePaletteNV) (unpacked *C.VkShadingRatePaletteNV, allocs *cgoAllocMap) { +// 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.VkShadingRatePaletteNV) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportSwizzleNV) { go allocs.Free() }) len0 := len(x) - mem0 := allocShadingRatePaletteNVMemory(len0) + mem0 := allocViewportSwizzleNVMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkShadingRatePaletteNV)(unsafe.Pointer(h0)) + 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.VkShadingRatePaletteNV)(h.Data) + unpacked = (*C.VkViewportSwizzleNV)(h.Data) return } -// packSShadingRatePaletteNV reads sliced Go data structure out from plain C format. -func packSShadingRatePaletteNV(v []ShadingRatePaletteNV, ptr0 *C.VkShadingRatePaletteNV) { +// 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 / sizeOfShadingRatePaletteNVValue]C.VkShadingRatePaletteNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewShadingRatePaletteNVRef(unsafe.Pointer(&ptr1)) + 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 *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { +func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { if x == nil { return nil } - return x.ref6f2ec732 + 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 *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { - if x != nil && x.allocs6f2ec732 != nil { - x.allocs6f2ec732.(*cgoAllocMap).Free() - x.ref6f2ec732 = nil +func (x *PipelineViewportSwizzleStateCreateInfoNV) Free() { + if x != nil && x.allocs5e90f24 != nil { + x.allocs5e90f24.(*cgoAllocMap).Free() + x.ref5e90f24 = nil } } -// NewPipelineViewportShadingRateImageStateCreateInfoNVRef 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 NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { +func NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { if ref == nil { return nil } - obj := new(PipelineViewportShadingRateImageStateCreateInfoNV) - obj.ref6f2ec732 = (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(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 *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { +func (x *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f2ec732 != nil { - return x.ref6f2ec732, nil + } else if x.ref5e90f24 != nil { + return x.ref5e90f24, nil } - mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) - ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) - allocs6f2ec732 := new(cgoAllocMap) - allocs6f2ec732.Add(mem6f2ec732) - + mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) + ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) + allocs5e90f24 := new(cgoAllocMap) + allocs5e90f24.Add(mem5e90f24) + var csType_allocs *cgoAllocMap - ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6f2ec732.Borrow(csType_allocs) + ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e90f24.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6f2ec732.Borrow(cpNext_allocs) + ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e90f24.Borrow(cpNext_allocs) - var cshadingRateImageEnable_allocs *cgoAllocMap - ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown - allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) + var cflags_allocs *cgoAllocMap + ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs5e90f24.Borrow(cflags_allocs) var cviewportCount_allocs *cgoAllocMap - ref6f2ec732.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs6f2ec732.Borrow(cviewportCount_allocs) + ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs5e90f24.Borrow(cviewportCount_allocs) - var cpShadingRatePalettes_allocs *cgoAllocMap - ref6f2ec732.pShadingRatePalettes, cpShadingRatePalettes_allocs = unpackSShadingRatePaletteNV(x.PShadingRatePalettes) - allocs6f2ec732.Borrow(cpShadingRatePalettes_allocs) + var cpViewportSwizzles_allocs *cgoAllocMap + ref5e90f24.pViewportSwizzles, cpViewportSwizzles_allocs = unpackSViewportSwizzleNV(x.PViewportSwizzles) + allocs5e90f24.Borrow(cpViewportSwizzles_allocs) - x.ref6f2ec732 = ref6f2ec732 - x.allocs6f2ec732 = allocs6f2ec732 - return ref6f2ec732, allocs6f2ec732 + 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 PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { - if x.ref6f2ec732 != nil { - return *x.ref6f2ec732, nil +func (x PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { + if x.ref5e90f24 != nil { + return *x.ref5e90f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48205,96 +48301,92 @@ 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 *PipelineViewportSwizzleStateCreateInfoNV) Deref() { + if x.ref5e90f24 == 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.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) } -// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV in C. +// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT 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 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 sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) +const sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { +func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { if x == nil { return nil } - return x.ref199a921b + 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 *PhysicalDeviceShadingRateImageFeaturesNV) Free() { - if x != nil && x.allocs199a921b != nil { - x.allocs199a921b.(*cgoAllocMap).Free() - x.ref199a921b = nil +func (x *PhysicalDeviceDiscardRectangleProperties) Free() { + if x != nil && x.allocsfe8591da != nil { + x.allocsfe8591da.(*cgoAllocMap).Free() + x.reffe8591da = nil } } -// NewPhysicalDeviceShadingRateImageFeaturesNVRef 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 NewPhysicalDeviceShadingRateImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImageFeaturesNV { +func NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImageFeaturesNV) - obj.ref199a921b = (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(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 *PhysicalDeviceShadingRateImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref199a921b != nil { - return x.ref199a921b, nil + } else if x.reffe8591da != nil { + return x.reffe8591da, nil } - mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) - ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) - allocs199a921b := new(cgoAllocMap) - allocs199a921b.Add(mem199a921b) + memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) + reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) + allocsfe8591da := new(cgoAllocMap) + allocsfe8591da.Add(memfe8591da) var csType_allocs *cgoAllocMap - ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs199a921b.Borrow(csType_allocs) + reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe8591da.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs199a921b.Borrow(cpNext_allocs) - - var cshadingRateImage_allocs *cgoAllocMap - ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateImage_allocs) + reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe8591da.Borrow(cpNext_allocs) - var cshadingRateCoarseSampleOrder_allocs *cgoAllocMap - ref199a921b.shadingRateCoarseSampleOrder, cshadingRateCoarseSampleOrder_allocs = (C.VkBool32)(x.ShadingRateCoarseSampleOrder), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateCoarseSampleOrder_allocs) + var cmaxDiscardRectangles_allocs *cgoAllocMap + reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown + allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) - x.ref199a921b = ref199a921b - x.allocs199a921b = allocs199a921b - return ref199a921b, allocs199a921b + 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 PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { - if x.ref199a921b != nil { - return *x.ref199a921b, nil +func (x PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { + if x.reffe8591da != nil { + return *x.reffe8591da, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48302,99 +48394,102 @@ 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 *PhysicalDeviceDiscardRectangleProperties) Deref() { + if x.reffe8591da == 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.reffe8591da.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe8591da.pNext)) + x.MaxDiscardRectangles = (uint32)(x.reffe8591da.maxDiscardRectangles) } -// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV in C. +// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT 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 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 sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) +const sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { +func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { if x == nil { return nil } - return x.refea059f34 + 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 *PhysicalDeviceShadingRateImagePropertiesNV) Free() { - if x != nil && x.allocsea059f34 != nil { - x.allocsea059f34.(*cgoAllocMap).Free() - x.refea059f34 = nil +func (x *PipelineDiscardRectangleStateCreateInfo) Free() { + if x != nil && x.allocscdbb125e != nil { + x.allocscdbb125e.(*cgoAllocMap).Free() + x.refcdbb125e = nil } } -// NewPhysicalDeviceShadingRateImagePropertiesNVRef 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 NewPhysicalDeviceShadingRateImagePropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImagePropertiesNV { +func NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImagePropertiesNV) - obj.refea059f34 = (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(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 *PhysicalDeviceShadingRateImagePropertiesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { +func (x *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea059f34 != nil { - return x.refea059f34, nil + } else if x.refcdbb125e != nil { + return x.refcdbb125e, nil } - memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) - refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) - allocsea059f34 := new(cgoAllocMap) - allocsea059f34.Add(memea059f34) + memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) + refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) + allocscdbb125e := new(cgoAllocMap) + allocscdbb125e.Add(memcdbb125e) var csType_allocs *cgoAllocMap - refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea059f34.Borrow(csType_allocs) + refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscdbb125e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea059f34.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea059f34.Borrow(cpNext_allocs) + refcdbb125e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscdbb125e.Borrow(cpNext_allocs) - var cshadingRateTexelSize_allocs *cgoAllocMap - refea059f34.shadingRateTexelSize, cshadingRateTexelSize_allocs = x.ShadingRateTexelSize.PassValue() - allocsea059f34.Borrow(cshadingRateTexelSize_allocs) + var cflags_allocs *cgoAllocMap + refcdbb125e.flags, cflags_allocs = (C.VkPipelineDiscardRectangleStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocscdbb125e.Borrow(cflags_allocs) - var cshadingRatePaletteSize_allocs *cgoAllocMap - refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) + var cdiscardRectangleMode_allocs *cgoAllocMap + refcdbb125e.discardRectangleMode, cdiscardRectangleMode_allocs = (C.VkDiscardRectangleModeEXT)(x.DiscardRectangleMode), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleMode_allocs) - var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap - refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) + var cdiscardRectangleCount_allocs *cgoAllocMap + refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) - x.refea059f34 = refea059f34 - x.allocsea059f34 = allocsea059f34 - return refea059f34, allocsea059f34 + var cpDiscardRectangles_allocs *cgoAllocMap + refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) + allocscdbb125e.Borrow(cpDiscardRectangles_allocs) + + 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 PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { - if x.refea059f34 != nil { - return *x.refea059f34, nil +func (x PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { + if x.refcdbb125e != nil { + return *x.refcdbb125e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48402,92 +48497,125 @@ 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 *PipelineDiscardRectangleStateCreateInfo) Deref() { + if x.refcdbb125e == 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.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) } -// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV in C. +// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT 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 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 sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) +const sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { +func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { if x == nil { return nil } - return x.ref2f447beb + 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 *CoarseSampleLocationNV) Free() { - if x != nil && x.allocs2f447beb != nil { - x.allocs2f447beb.(*cgoAllocMap).Free() - x.ref2f447beb = nil +func (x *PhysicalDeviceConservativeRasterizationProperties) Free() { + if x != nil && x.allocs878f819c != nil { + x.allocs878f819c.(*cgoAllocMap).Free() + x.ref878f819c = nil } } -// NewCoarseSampleLocationNVRef 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 NewCoarseSampleLocationNVRef(ref unsafe.Pointer) *CoarseSampleLocationNV { +func NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { if ref == nil { return nil } - obj := new(CoarseSampleLocationNV) - obj.ref2f447beb = (*C.VkCoarseSampleLocationNV)(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 *CoarseSampleLocationNV) PassRef() (*C.VkCoarseSampleLocationNV, *cgoAllocMap) { +func (x *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f447beb != nil { - return x.ref2f447beb, nil + } else if x.ref878f819c != nil { + return x.ref878f819c, nil } - mem2f447beb := allocCoarseSampleLocationNVMemory(1) - ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) - allocs2f447beb := new(cgoAllocMap) - allocs2f447beb.Add(mem2f447beb) + mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) + ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) + allocs878f819c := new(cgoAllocMap) + allocs878f819c.Add(mem878f819c) - var cpixelX_allocs *cgoAllocMap - ref2f447beb.pixelX, cpixelX_allocs = (C.uint32_t)(x.PixelX), cgoAllocsUnknown - allocs2f447beb.Borrow(cpixelX_allocs) + var csType_allocs *cgoAllocMap + ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs878f819c.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 + ref878f819c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs878f819c.Borrow(cpNext_allocs) - var csample_allocs *cgoAllocMap - ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown - allocs2f447beb.Borrow(csample_allocs) + var cprimitiveOverestimationSize_allocs *cgoAllocMap + ref878f819c.primitiveOverestimationSize, cprimitiveOverestimationSize_allocs = (C.float)(x.PrimitiveOverestimationSize), cgoAllocsUnknown + allocs878f819c.Borrow(cprimitiveOverestimationSize_allocs) - x.ref2f447beb = ref2f447beb - x.allocs2f447beb = allocs2f447beb - return ref2f447beb, allocs2f447beb + 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) + + 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 CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAllocMap) { - if x.ref2f447beb != nil { - return *x.ref2f447beb, nil +func (x PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { + if x.ref878f819c != nil { + return *x.ref878f819c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48495,132 +48623,106 @@ 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 *PhysicalDeviceConservativeRasterizationProperties) Deref() { + if x.ref878f819c == nil { return } - x.PixelX = (uint32)(x.ref2f447beb.pixelX) - x.PixelY = (uint32)(x.ref2f447beb.pixelY) - x.Sample = (uint32)(x.ref2f447beb.sample) + 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) } -// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV in C. +// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT 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 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 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 sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { +func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { if x == nil { return nil } - return x.ref4524fa09 + 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 *CoarseSampleOrderCustomNV) Free() { - if x != nil && x.allocs4524fa09 != nil { - x.allocs4524fa09.(*cgoAllocMap).Free() - x.ref4524fa09 = nil +func (x *PipelineRasterizationConservativeStateCreateInfo) Free() { + if x != nil && x.allocse3cd0046 != nil { + x.allocse3cd0046.(*cgoAllocMap).Free() + x.refe3cd0046 = nil } } -// NewCoarseSampleOrderCustomNVRef 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 NewCoarseSampleOrderCustomNVRef(ref unsafe.Pointer) *CoarseSampleOrderCustomNV { +func NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { if ref == nil { return nil } - obj := new(CoarseSampleOrderCustomNV) - obj.ref4524fa09 = (*C.VkCoarseSampleOrderCustomNV)(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 *CoarseSampleOrderCustomNV) PassRef() (*C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { +func (x *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4524fa09 != nil { - return x.ref4524fa09, nil + } else if x.refe3cd0046 != nil { + return x.refe3cd0046, nil } - mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) - ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) - allocs4524fa09 := new(cgoAllocMap) - allocs4524fa09.Add(mem4524fa09) + meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) + refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) + allocse3cd0046 := new(cgoAllocMap) + allocse3cd0046.Add(meme3cd0046) - var cshadingRate_allocs *cgoAllocMap - ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown - allocs4524fa09.Borrow(cshadingRate_allocs) + var csType_allocs *cgoAllocMap + refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3cd0046.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 + refe3cd0046.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3cd0046.Borrow(cpNext_allocs) - var csampleLocationCount_allocs *cgoAllocMap - ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown - allocs4524fa09.Borrow(csampleLocationCount_allocs) + var cflags_allocs *cgoAllocMap + refe3cd0046.flags, cflags_allocs = (C.VkPipelineRasterizationConservativeStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse3cd0046.Borrow(cflags_allocs) - var cpSampleLocations_allocs *cgoAllocMap - ref4524fa09.pSampleLocations, cpSampleLocations_allocs = unpackSCoarseSampleLocationNV(x.PSampleLocations) - allocs4524fa09.Borrow(cpSampleLocations_allocs) + var cconservativeRasterizationMode_allocs *cgoAllocMap + refe3cd0046.conservativeRasterizationMode, cconservativeRasterizationMode_allocs = (C.VkConservativeRasterizationModeEXT)(x.ConservativeRasterizationMode), cgoAllocsUnknown + allocse3cd0046.Borrow(cconservativeRasterizationMode_allocs) - x.ref4524fa09 = ref4524fa09 - x.allocs4524fa09 = allocs4524fa09 - return ref4524fa09, allocs4524fa09 + 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 CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { - if x.ref4524fa09 != nil { - return *x.ref4524fa09, nil +func (x PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { + if x.refe3cd0046 != nil { + return *x.refe3cd0046, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48628,137 +48730,92 @@ 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 *PipelineRasterizationConservativeStateCreateInfo) Deref() { + if x.refe3cd0046 == 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.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) } -// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV in C. +// allocPhysicalDeviceDepthClipEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipEnableFeaturesEXT 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 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 sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV{}) +const sizeOfPhysicalDeviceDepthClipEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipEnableFeaturesEXT{}) -// unpackSCoarseSampleOrderCustomNV transforms a sliced Go data structure into plain C format. -func unpackSCoarseSampleOrderCustomNV(x []CoarseSampleOrderCustomNV) (unpacked *C.VkCoarseSampleOrderCustomNV, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDepthClipEnableFeatures) Ref() *C.VkPhysicalDeviceDepthClipEnableFeaturesEXT { if x == nil { - return nil, nil + return 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 *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { - if x == nil { - return nil - } - return x.ref54de8ca6 -} + 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 *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Free() { - if x != nil && x.allocs54de8ca6 != nil { - x.allocs54de8ca6.(*cgoAllocMap).Free() - x.ref54de8ca6 = nil +func (x *PhysicalDeviceDepthClipEnableFeatures) Free() { + if x != nil && x.allocse0daf69c != nil { + x.allocse0daf69c.(*cgoAllocMap).Free() + x.refe0daf69c = nil } } -// NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef 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 NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportCoarseSampleOrderStateCreateInfoNV { +func NewPhysicalDeviceDepthClipEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipEnableFeatures { if ref == nil { return nil } - obj := new(PipelineViewportCoarseSampleOrderStateCreateInfoNV) - obj.ref54de8ca6 = (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(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 *PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassRef() (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceDepthClipEnableFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref54de8ca6 != nil { - return x.ref54de8ca6, nil + } else if x.refe0daf69c != nil { + return x.refe0daf69c, nil } - mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) - ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) - allocs54de8ca6 := new(cgoAllocMap) - allocs54de8ca6.Add(mem54de8ca6) + meme0daf69c := allocPhysicalDeviceDepthClipEnableFeaturesMemory(1) + refe0daf69c := (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(meme0daf69c) + allocse0daf69c := new(cgoAllocMap) + allocse0daf69c.Add(meme0daf69c) var csType_allocs *cgoAllocMap - ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs54de8ca6.Borrow(csType_allocs) + refe0daf69c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse0daf69c.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) + refe0daf69c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse0daf69c.Borrow(cpNext_allocs) - var cpCustomSampleOrders_allocs *cgoAllocMap - ref54de8ca6.pCustomSampleOrders, cpCustomSampleOrders_allocs = unpackSCoarseSampleOrderCustomNV(x.PCustomSampleOrders) - allocs54de8ca6.Borrow(cpCustomSampleOrders_allocs) + var cdepthClipEnable_allocs *cgoAllocMap + refe0daf69c.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocse0daf69c.Borrow(cdepthClipEnable_allocs) - x.ref54de8ca6 = ref54de8ca6 - x.allocs54de8ca6 = allocs54de8ca6 - return ref54de8ca6, allocs54de8ca6 + 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 PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { - if x.ref54de8ca6 != nil { - return *x.ref54de8ca6, nil +func (x PhysicalDeviceDepthClipEnableFeatures) PassValue() (C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { + if x.refe0daf69c != nil { + return *x.refe0daf69c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48766,92 +48823,94 @@ 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 *PhysicalDeviceDepthClipEnableFeatures) Deref() { + if x.refe0daf69c == 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.refe0daf69c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0daf69c.pNext)) + x.DepthClipEnable = (Bool32)(x.refe0daf69c.depthClipEnable) } -// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV in C. +// allocPipelineRasterizationDepthClipStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationDepthClipStateCreateInfoEXT 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 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 sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) +const sizeOfPipelineRasterizationDepthClipStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationDepthClipStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { +func (x *PipelineRasterizationDepthClipStateCreateInfo) Ref() *C.VkPipelineRasterizationDepthClipStateCreateInfoEXT { if x == nil { return nil } - return x.reff1f69e03 + 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 *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Free() { - if x != nil && x.allocsf1f69e03 != nil { - x.allocsf1f69e03.(*cgoAllocMap).Free() - x.reff1f69e03 = nil +func (x *PipelineRasterizationDepthClipStateCreateInfo) Free() { + if x != nil && x.allocs38a864b5 != nil { + x.allocs38a864b5.(*cgoAllocMap).Free() + x.ref38a864b5 = nil } } -// NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef 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 NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceRepresentativeFragmentTestFeaturesNV { +func NewPipelineRasterizationDepthClipStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationDepthClipStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceRepresentativeFragmentTestFeaturesNV) - obj.reff1f69e03 = (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(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 *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassRef() (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { +func (x *PipelineRasterizationDepthClipStateCreateInfo) PassRef() (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff1f69e03 != nil { - return x.reff1f69e03, nil + } else if x.ref38a864b5 != nil { + return x.ref38a864b5, nil } - memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) - reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) - allocsf1f69e03 := new(cgoAllocMap) - allocsf1f69e03.Add(memf1f69e03) + mem38a864b5 := allocPipelineRasterizationDepthClipStateCreateInfoMemory(1) + ref38a864b5 := (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(mem38a864b5) + allocs38a864b5 := new(cgoAllocMap) + allocs38a864b5.Add(mem38a864b5) var csType_allocs *cgoAllocMap - reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf1f69e03.Borrow(csType_allocs) + ref38a864b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs38a864b5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf1f69e03.Borrow(cpNext_allocs) + ref38a864b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs38a864b5.Borrow(cpNext_allocs) - var crepresentativeFragmentTest_allocs *cgoAllocMap - reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown - allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) + var cflags_allocs *cgoAllocMap + ref38a864b5.flags, cflags_allocs = (C.VkPipelineRasterizationDepthClipStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs38a864b5.Borrow(cflags_allocs) - x.reff1f69e03 = reff1f69e03 - x.allocsf1f69e03 = allocsf1f69e03 - return reff1f69e03, allocsf1f69e03 + var cdepthClipEnable_allocs *cgoAllocMap + ref38a864b5.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocs38a864b5.Borrow(cdepthClipEnable_allocs) + + 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 PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { - if x.reff1f69e03 != nil { - return *x.reff1f69e03, nil +func (x PipelineRasterizationDepthClipStateCreateInfo) PassValue() (C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { + if x.ref38a864b5 != nil { + return *x.ref38a864b5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48859,90 +48918,87 @@ 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 *PipelineRasterizationDepthClipStateCreateInfo) Deref() { + if x.ref38a864b5 == 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.ref38a864b5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref38a864b5.pNext)) + x.Flags = (PipelineRasterizationDepthClipStateCreateFlags)(x.ref38a864b5.flags) + x.DepthClipEnable = (Bool32)(x.ref38a864b5.depthClipEnable) } -// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV in C. +// allocXYColorMemory allocates memory for type C.VkXYColorEXT 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 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 sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) +const sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { +func (x *XYColor) Ref() *C.VkXYColorEXT { if x == nil { return nil } - return x.ref9c224e21 + 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 *PipelineRepresentativeFragmentTestStateCreateInfoNV) Free() { - if x != nil && x.allocs9c224e21 != nil { - x.allocs9c224e21.(*cgoAllocMap).Free() - x.ref9c224e21 = nil +func (x *XYColor) Free() { + if x != nil && x.allocsb8efaa5c != nil { + x.allocsb8efaa5c.(*cgoAllocMap).Free() + x.refb8efaa5c = nil } } -// NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef 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 NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineRepresentativeFragmentTestStateCreateInfoNV { +func NewXYColorRef(ref unsafe.Pointer) *XYColor { if ref == nil { return nil } - obj := new(PipelineRepresentativeFragmentTestStateCreateInfoNV) - obj.ref9c224e21 = (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(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 *PipelineRepresentativeFragmentTestStateCreateInfoNV) PassRef() (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { +func (x *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9c224e21 != nil { - return x.ref9c224e21, nil + } else if x.refb8efaa5c != nil { + return x.refb8efaa5c, nil } - mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) - ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) - allocs9c224e21 := new(cgoAllocMap) - allocs9c224e21.Add(mem9c224e21) - - var csType_allocs *cgoAllocMap - ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9c224e21.Borrow(csType_allocs) + memb8efaa5c := allocXYColorMemory(1) + refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) + allocsb8efaa5c := new(cgoAllocMap) + allocsb8efaa5c.Add(memb8efaa5c) - var cpNext_allocs *cgoAllocMap - ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9c224e21.Borrow(cpNext_allocs) + var cx_allocs *cgoAllocMap + refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cx_allocs) - var crepresentativeFragmentTestEnable_allocs *cgoAllocMap - ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown - allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) + var cy_allocs *cgoAllocMap + refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cy_allocs) - x.ref9c224e21 = ref9c224e21 - x.allocs9c224e21 = allocs9c224e21 - return ref9c224e21, allocs9c224e21 + 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 PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { - if x.ref9c224e21 != nil { - return *x.ref9c224e21, nil +func (x XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { + if x.refb8efaa5c != nil { + return *x.refb8efaa5c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -48950,90 +49006,117 @@ 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 *XYColor) Deref() { + if x.refb8efaa5c == nil { return } - x.SType = (StructureType)(x.ref9c224e21.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c224e21.pNext)) - x.RepresentativeFragmentTestEnable = (Bool32)(x.ref9c224e21.representativeFragmentTestEnable) + x.X = (float32)(x.refb8efaa5c.x) + x.Y = (float32)(x.refb8efaa5c.y) } -// allocPhysicalDeviceImageViewImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceImageViewImageFormatInfoEXT in C. +// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceImageViewImageFormatInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewImageFormatInfoValue)) +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 sizeOfPhysicalDeviceImageViewImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewImageFormatInfoEXT{}) +const sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageViewImageFormatInfo) Ref() *C.VkPhysicalDeviceImageViewImageFormatInfoEXT { +func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { if x == nil { return nil } - return x.ref99e4ab46 + 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 *PhysicalDeviceImageViewImageFormatInfo) Free() { - if x != nil && x.allocs99e4ab46 != nil { - x.allocs99e4ab46.(*cgoAllocMap).Free() - x.ref99e4ab46 = nil +func (x *HdrMetadata) Free() { + if x != nil && x.allocs5fd28976 != nil { + x.allocs5fd28976.(*cgoAllocMap).Free() + x.ref5fd28976 = nil } } -// NewPhysicalDeviceImageViewImageFormatInfoRef 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 NewPhysicalDeviceImageViewImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageViewImageFormatInfo { +func NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { if ref == nil { return nil } - obj := new(PhysicalDeviceImageViewImageFormatInfo) - obj.ref99e4ab46 = (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(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 *PhysicalDeviceImageViewImageFormatInfo) PassRef() (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { +func (x *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref99e4ab46 != nil { - return x.ref99e4ab46, nil + } else if x.ref5fd28976 != nil { + return x.ref5fd28976, nil } - mem99e4ab46 := allocPhysicalDeviceImageViewImageFormatInfoMemory(1) - ref99e4ab46 := (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(mem99e4ab46) - allocs99e4ab46 := new(cgoAllocMap) - allocs99e4ab46.Add(mem99e4ab46) + mem5fd28976 := allocHdrMetadataMemory(1) + ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) + allocs5fd28976 := new(cgoAllocMap) + allocs5fd28976.Add(mem5fd28976) var csType_allocs *cgoAllocMap - ref99e4ab46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs99e4ab46.Borrow(csType_allocs) + ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5fd28976.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref99e4ab46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs99e4ab46.Borrow(cpNext_allocs) + ref5fd28976.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5fd28976.Borrow(cpNext_allocs) - var cimageViewType_allocs *cgoAllocMap - ref99e4ab46.imageViewType, cimageViewType_allocs = (C.VkImageViewType)(x.ImageViewType), cgoAllocsUnknown - allocs99e4ab46.Borrow(cimageViewType_allocs) + var cdisplayPrimaryRed_allocs *cgoAllocMap + ref5fd28976.displayPrimaryRed, cdisplayPrimaryRed_allocs = x.DisplayPrimaryRed.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryRed_allocs) - x.ref99e4ab46 = ref99e4ab46 - x.allocs99e4ab46 = allocs99e4ab46 - return ref99e4ab46, allocs99e4ab46 + 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 PhysicalDeviceImageViewImageFormatInfo) PassValue() (C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { - if x.ref99e4ab46 != nil { - return *x.ref99e4ab46, nil +func (x HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { + if x.ref5fd28976 != nil { + return *x.ref5fd28976, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49041,94 +49124,101 @@ func (x PhysicalDeviceImageViewImageFormatInfo) PassValue() (C.VkPhysicalDeviceI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceImageViewImageFormatInfo) Deref() { - if x.ref99e4ab46 == nil { +func (x *HdrMetadata) Deref() { + if x.ref5fd28976 == nil { return } - x.SType = (StructureType)(x.ref99e4ab46.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref99e4ab46.pNext)) - x.ImageViewType = (ImageViewType)(x.ref99e4ab46.imageViewType) + 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) } -// allocFilterCubicImageViewImageFormatPropertiesMemory allocates memory for type C.VkFilterCubicImageViewImageFormatPropertiesEXT in C. +// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocFilterCubicImageViewImageFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFilterCubicImageViewImageFormatPropertiesValue)) +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 sizeOfFilterCubicImageViewImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkFilterCubicImageViewImageFormatPropertiesEXT{}) +const sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FilterCubicImageViewImageFormatProperties) Ref() *C.VkFilterCubicImageViewImageFormatPropertiesEXT { +func (x *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { if x == nil { return nil } - return x.refcf60927c + 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 *FilterCubicImageViewImageFormatProperties) Free() { - if x != nil && x.allocscf60927c != nil { - x.allocscf60927c.(*cgoAllocMap).Free() - x.refcf60927c = nil +func (x *DebugUtilsLabel) Free() { + if x != nil && x.allocs8faaf7b1 != nil { + x.allocs8faaf7b1.(*cgoAllocMap).Free() + x.ref8faaf7b1 = nil } } -// NewFilterCubicImageViewImageFormatPropertiesRef 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 NewFilterCubicImageViewImageFormatPropertiesRef(ref unsafe.Pointer) *FilterCubicImageViewImageFormatProperties { +func NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { if ref == nil { return nil } - obj := new(FilterCubicImageViewImageFormatProperties) - obj.refcf60927c = (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(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 *FilterCubicImageViewImageFormatProperties) PassRef() (*C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { +func (x *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcf60927c != nil { - return x.refcf60927c, nil + } else if x.ref8faaf7b1 != nil { + return x.ref8faaf7b1, nil } - memcf60927c := allocFilterCubicImageViewImageFormatPropertiesMemory(1) - refcf60927c := (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(memcf60927c) - allocscf60927c := new(cgoAllocMap) - allocscf60927c.Add(memcf60927c) + mem8faaf7b1 := allocDebugUtilsLabelMemory(1) + ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) + allocs8faaf7b1 := new(cgoAllocMap) + allocs8faaf7b1.Add(mem8faaf7b1) var csType_allocs *cgoAllocMap - refcf60927c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscf60927c.Borrow(csType_allocs) + ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8faaf7b1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcf60927c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscf60927c.Borrow(cpNext_allocs) + ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(cpNext_allocs) - var cfilterCubic_allocs *cgoAllocMap - refcf60927c.filterCubic, cfilterCubic_allocs = (C.VkBool32)(x.FilterCubic), cgoAllocsUnknown - allocscf60927c.Borrow(cfilterCubic_allocs) + var cpLabelName_allocs *cgoAllocMap + ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) + allocs8faaf7b1.Borrow(cpLabelName_allocs) - var cfilterCubicMinmax_allocs *cgoAllocMap - refcf60927c.filterCubicMinmax, cfilterCubicMinmax_allocs = (C.VkBool32)(x.FilterCubicMinmax), cgoAllocsUnknown - allocscf60927c.Borrow(cfilterCubicMinmax_allocs) + var ccolor_allocs *cgoAllocMap + ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(ccolor_allocs) - x.refcf60927c = refcf60927c - x.allocscf60927c = allocscf60927c - return refcf60927c, allocscf60927c + 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 FilterCubicImageViewImageFormatProperties) PassValue() (C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { - if x.refcf60927c != nil { - return *x.refcf60927c, nil +func (x DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { + if x.ref8faaf7b1 != nil { + return *x.ref8faaf7b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49136,95 +49226,99 @@ func (x FilterCubicImageViewImageFormatProperties) PassValue() (C.VkFilterCubicI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FilterCubicImageViewImageFormatProperties) Deref() { - if x.refcf60927c == nil { +func (x *DebugUtilsLabel) Deref() { + if x.ref8faaf7b1 == nil { return } - 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) + 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)) } -// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT in C. +// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT 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 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 sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) +const sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { +func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { if x == nil { return nil } - return x.reffe09253e + 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 *ImportMemoryHostPointerInfo) Free() { - if x != nil && x.allocsfe09253e != nil { - x.allocsfe09253e.(*cgoAllocMap).Free() - x.reffe09253e = nil +func (x *DebugUtilsObjectNameInfo) Free() { + if x != nil && x.allocs5e73c2db != nil { + x.allocs5e73c2db.(*cgoAllocMap).Free() + x.ref5e73c2db = nil } } -// NewImportMemoryHostPointerInfoRef 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 NewImportMemoryHostPointerInfoRef(ref unsafe.Pointer) *ImportMemoryHostPointerInfo { +func NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { if ref == nil { return nil } - obj := new(ImportMemoryHostPointerInfo) - obj.reffe09253e = (*C.VkImportMemoryHostPointerInfoEXT)(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 *ImportMemoryHostPointerInfo) PassRef() (*C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { +func (x *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe09253e != nil { - return x.reffe09253e, nil + } else if x.ref5e73c2db != nil { + return x.ref5e73c2db, nil } - memfe09253e := allocImportMemoryHostPointerInfoMemory(1) - reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) - allocsfe09253e := new(cgoAllocMap) - allocsfe09253e.Add(memfe09253e) - + mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) + ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) + allocs5e73c2db := new(cgoAllocMap) + allocs5e73c2db.Add(mem5e73c2db) + var csType_allocs *cgoAllocMap - reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe09253e.Borrow(csType_allocs) + ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e73c2db.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpNext_allocs) + ref5e73c2db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e73c2db.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsfe09253e.Borrow(chandleType_allocs) + var cobjectType_allocs *cgoAllocMap + ref5e73c2db.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectType_allocs) - var cpHostPointer_allocs *cgoAllocMap - reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpHostPointer_allocs) + var cobjectHandle_allocs *cgoAllocMap + ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectHandle_allocs) - x.reffe09253e = reffe09253e - x.allocsfe09253e = allocsfe09253e - return reffe09253e, allocsfe09253e + 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 ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { - if x.reffe09253e != nil { - return *x.reffe09253e, nil +func (x DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { + if x.ref5e73c2db != nil { + return *x.ref5e73c2db, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49232,91 +49326,108 @@ 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 *DebugUtilsObjectNameInfo) Deref() { + if x.ref5e73c2db == 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.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) } -// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT in C. +// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT 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 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 sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) +const sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { +func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { if x == nil { return nil } - return x.refebf46a84 + 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 *MemoryHostPointerProperties) Free() { - if x != nil && x.allocsebf46a84 != nil { - x.allocsebf46a84.(*cgoAllocMap).Free() - x.refebf46a84 = nil +func (x *DebugUtilsObjectTagInfo) Free() { + if x != nil && x.allocs9fd129cf != nil { + x.allocs9fd129cf.(*cgoAllocMap).Free() + x.ref9fd129cf = nil } } -// NewMemoryHostPointerPropertiesRef 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 NewMemoryHostPointerPropertiesRef(ref unsafe.Pointer) *MemoryHostPointerProperties { +func NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { if ref == nil { return nil } - obj := new(MemoryHostPointerProperties) - obj.refebf46a84 = (*C.VkMemoryHostPointerPropertiesEXT)(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 *MemoryHostPointerProperties) PassRef() (*C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { +func (x *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refebf46a84 != nil { - return x.refebf46a84, nil + } else if x.ref9fd129cf != nil { + return x.ref9fd129cf, nil } - memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) - refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) - allocsebf46a84 := new(cgoAllocMap) - allocsebf46a84.Add(memebf46a84) + mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) + ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) + allocs9fd129cf := new(cgoAllocMap) + allocs9fd129cf.Add(mem9fd129cf) var csType_allocs *cgoAllocMap - refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsebf46a84.Borrow(csType_allocs) + ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9fd129cf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsebf46a84.Borrow(cpNext_allocs) + ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9fd129cf.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocsebf46a84.Borrow(cmemoryTypeBits_allocs) + var cobjectType_allocs *cgoAllocMap + ref9fd129cf.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs9fd129cf.Borrow(cobjectType_allocs) - x.refebf46a84 = refebf46a84 - x.allocsebf46a84 = allocsebf46a84 - return refebf46a84, allocsebf46a84 + 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 MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { - if x.refebf46a84 != nil { - return *x.refebf46a84, nil +func (x DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { + if x.ref9fd129cf != nil { + return *x.ref9fd129cf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49324,90 +49435,90 @@ 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 *DebugUtilsObjectTagInfo) Deref() { + if x.ref9fd129cf == 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.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)) } -// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT in C. +// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT 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 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 sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) +const sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { +func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { if x == nil { return nil } - return x.ref7f697d15 + 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 *PhysicalDeviceExternalMemoryHostProperties) Free() { - if x != nil && x.allocs7f697d15 != nil { - x.allocs7f697d15.(*cgoAllocMap).Free() - x.ref7f697d15 = nil +func (x *SampleLocation) Free() { + if x != nil && x.allocse7a2e761 != nil { + x.allocse7a2e761.(*cgoAllocMap).Free() + x.refe7a2e761 = nil } } -// NewPhysicalDeviceExternalMemoryHostPropertiesRef 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 NewPhysicalDeviceExternalMemoryHostPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryHostProperties { +func NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalMemoryHostProperties) - obj.ref7f697d15 = (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(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 *PhysicalDeviceExternalMemoryHostProperties) PassRef() (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { +func (x *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7f697d15 != nil { - return x.ref7f697d15, nil + } else if x.refe7a2e761 != nil { + return x.refe7a2e761, nil } - mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) - ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) - allocs7f697d15 := new(cgoAllocMap) - allocs7f697d15.Add(mem7f697d15) - - var csType_allocs *cgoAllocMap - ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7f697d15.Borrow(csType_allocs) + meme7a2e761 := allocSampleLocationMemory(1) + refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) + allocse7a2e761 := new(cgoAllocMap) + allocse7a2e761.Add(meme7a2e761) - var cpNext_allocs *cgoAllocMap - ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7f697d15.Borrow(cpNext_allocs) + var cx_allocs *cgoAllocMap + refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocse7a2e761.Borrow(cx_allocs) - var cminImportedHostPointerAlignment_allocs *cgoAllocMap - ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown - allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) + var cy_allocs *cgoAllocMap + refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocse7a2e761.Borrow(cy_allocs) - x.ref7f697d15 = ref7f697d15 - x.allocs7f697d15 = allocs7f697d15 - return ref7f697d15, allocs7f697d15 + 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 PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { - if x.ref7f697d15 != nil { - return *x.ref7f697d15, nil +func (x SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { + if x.refe7a2e761 != nil { + return *x.refe7a2e761, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49415,90 +49526,139 @@ 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 *SampleLocation) Deref() { + if x.refe7a2e761 == nil { return } - x.SType = (StructureType)(x.ref7f697d15.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7f697d15.pNext)) - x.MinImportedHostPointerAlignment = (DeviceSize)(x.ref7f697d15.minImportedHostPointerAlignment) + x.X = (float32)(x.refe7a2e761.x) + x.Y = (float32)(x.refe7a2e761.y) } -// allocPipelineCompilerControlCreateInfoAMDMemory allocates memory for type C.VkPipelineCompilerControlCreateInfoAMD in C. +// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineCompilerControlCreateInfoAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCompilerControlCreateInfoAMDValue)) +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 sizeOfPipelineCompilerControlCreateInfoAMDValue = unsafe.Sizeof([1]C.VkPipelineCompilerControlCreateInfoAMD{}) +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 *PipelineCompilerControlCreateInfoAMD) Ref() *C.VkPipelineCompilerControlCreateInfoAMD { +func (x *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { if x == nil { return nil } - return x.ref46a09e46 + 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 *PipelineCompilerControlCreateInfoAMD) Free() { - if x != nil && x.allocs46a09e46 != nil { - x.allocs46a09e46.(*cgoAllocMap).Free() - x.ref46a09e46 = nil +func (x *SampleLocationsInfo) Free() { + if x != nil && x.allocsd8f3bd2d != nil { + x.allocsd8f3bd2d.(*cgoAllocMap).Free() + x.refd8f3bd2d = nil } } -// NewPipelineCompilerControlCreateInfoAMDRef 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 NewPipelineCompilerControlCreateInfoAMDRef(ref unsafe.Pointer) *PipelineCompilerControlCreateInfoAMD { +func NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { if ref == nil { return nil } - obj := new(PipelineCompilerControlCreateInfoAMD) - obj.ref46a09e46 = (*C.VkPipelineCompilerControlCreateInfoAMD)(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 *PipelineCompilerControlCreateInfoAMD) PassRef() (*C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { +func (x *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref46a09e46 != nil { - return x.ref46a09e46, nil + } else if x.refd8f3bd2d != nil { + return x.refd8f3bd2d, nil } - mem46a09e46 := allocPipelineCompilerControlCreateInfoAMDMemory(1) - ref46a09e46 := (*C.VkPipelineCompilerControlCreateInfoAMD)(mem46a09e46) - allocs46a09e46 := new(cgoAllocMap) - allocs46a09e46.Add(mem46a09e46) + memd8f3bd2d := allocSampleLocationsInfoMemory(1) + refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) + allocsd8f3bd2d := new(cgoAllocMap) + allocsd8f3bd2d.Add(memd8f3bd2d) var csType_allocs *cgoAllocMap - ref46a09e46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs46a09e46.Borrow(csType_allocs) + refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref46a09e46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs46a09e46.Borrow(cpNext_allocs) + refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(cpNext_allocs) - var ccompilerControlFlags_allocs *cgoAllocMap - ref46a09e46.compilerControlFlags, ccompilerControlFlags_allocs = (C.VkPipelineCompilerControlFlagsAMD)(x.CompilerControlFlags), cgoAllocsUnknown - allocs46a09e46.Borrow(ccompilerControlFlags_allocs) + var csampleLocationsPerPixel_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) - x.ref46a09e46 = ref46a09e46 - x.allocs46a09e46 = allocs46a09e46 - return ref46a09e46, allocs46a09e46 + var csampleLocationGridSize_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() + allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) + + var csampleLocationsCount_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) + + var cpSampleLocations_allocs *cgoAllocMap + refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) + allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) + + 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 PipelineCompilerControlCreateInfoAMD) PassValue() (C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { - if x.ref46a09e46 != nil { - return *x.ref46a09e46, nil +func (x SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { + if x.refd8f3bd2d != nil { + return *x.refd8f3bd2d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49506,90 +49666,89 @@ func (x PipelineCompilerControlCreateInfoAMD) PassValue() (C.VkPipelineCompilerC // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineCompilerControlCreateInfoAMD) Deref() { - if x.ref46a09e46 == nil { +func (x *SampleLocationsInfo) Deref() { + if x.refd8f3bd2d == nil { return } - x.SType = (StructureType)(x.ref46a09e46.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref46a09e46.pNext)) - x.CompilerControlFlags = (PipelineCompilerControlFlagsAMD)(x.ref46a09e46.compilerControlFlags) + 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) } -// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT in C. +// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT 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 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 sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) +const sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { +func (x *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { if x == nil { return nil } - return x.ref5f061d2a + 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 *CalibratedTimestampInfo) Free() { - if x != nil && x.allocs5f061d2a != nil { - x.allocs5f061d2a.(*cgoAllocMap).Free() - x.ref5f061d2a = nil +func (x *AttachmentSampleLocations) Free() { + if x != nil && x.allocs6a3dd41e != nil { + x.allocs6a3dd41e.(*cgoAllocMap).Free() + x.ref6a3dd41e = nil } } -// NewCalibratedTimestampInfoRef 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 NewCalibratedTimestampInfoRef(ref unsafe.Pointer) *CalibratedTimestampInfo { +func NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { if ref == nil { return nil } - obj := new(CalibratedTimestampInfo) - obj.ref5f061d2a = (*C.VkCalibratedTimestampInfoEXT)(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 *CalibratedTimestampInfo) PassRef() (*C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { +func (x *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5f061d2a != nil { - return x.ref5f061d2a, nil + } else if x.ref6a3dd41e != nil { + return x.ref6a3dd41e, nil } - mem5f061d2a := allocCalibratedTimestampInfoMemory(1) - ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) - allocs5f061d2a := new(cgoAllocMap) - allocs5f061d2a.Add(mem5f061d2a) - - var csType_allocs *cgoAllocMap - ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5f061d2a.Borrow(csType_allocs) + mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) + ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) + allocs6a3dd41e := new(cgoAllocMap) + allocs6a3dd41e.Add(mem6a3dd41e) - var cpNext_allocs *cgoAllocMap - ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5f061d2a.Borrow(cpNext_allocs) + var cattachmentIndex_allocs *cgoAllocMap + ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown + allocs6a3dd41e.Borrow(cattachmentIndex_allocs) - var ctimeDomain_allocs *cgoAllocMap - ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown - allocs5f061d2a.Borrow(ctimeDomain_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) - x.ref5f061d2a = ref5f061d2a - x.allocs5f061d2a = allocs5f061d2a - return ref5f061d2a, allocs5f061d2a + 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 CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { - if x.ref5f061d2a != nil { - return *x.ref5f061d2a, nil +func (x AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { + if x.ref6a3dd41e != nil { + return *x.ref6a3dd41e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49597,142 +49756,85 @@ 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 *AttachmentSampleLocations) Deref() { + if x.ref6a3dd41e == nil { return } - x.SType = (StructureType)(x.ref5f061d2a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5f061d2a.pNext)) - x.TimeDomain = (TimeDomain)(x.ref5f061d2a.timeDomain) + x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) } -// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD in C. +// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT 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 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 sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) +const sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { +func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { if x == nil { return nil } - return x.refde4b3b09 + 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 *PhysicalDeviceShaderCorePropertiesAMD) Free() { - if x != nil && x.allocsde4b3b09 != nil { - x.allocsde4b3b09.(*cgoAllocMap).Free() - x.refde4b3b09 = nil +func (x *SubpassSampleLocations) Free() { + if x != nil && x.allocs1f612812 != nil { + x.allocs1f612812.(*cgoAllocMap).Free() + x.ref1f612812 = nil } } -// NewPhysicalDeviceShaderCorePropertiesAMDRef 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 NewPhysicalDeviceShaderCorePropertiesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCorePropertiesAMD { +func NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderCorePropertiesAMD) - obj.refde4b3b09 = (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(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 *PhysicalDeviceShaderCorePropertiesAMD) PassRef() (*C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { +func (x *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refde4b3b09 != nil { - return x.refde4b3b09, nil + } else if x.ref1f612812 != nil { + return x.ref1f612812, nil } - memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) - refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) - allocsde4b3b09 := new(cgoAllocMap) - allocsde4b3b09.Add(memde4b3b09) - - var csType_allocs *cgoAllocMap - refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsde4b3b09.Borrow(csType_allocs) + mem1f612812 := allocSubpassSampleLocationsMemory(1) + ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) + allocs1f612812 := new(cgoAllocMap) + allocs1f612812.Add(mem1f612812) - var cpNext_allocs *cgoAllocMap - refde4b3b09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsde4b3b09.Borrow(cpNext_allocs) + var csubpassIndex_allocs *cgoAllocMap + ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown + allocs1f612812.Borrow(csubpassIndex_allocs) - var cshaderEngineCount_allocs *cgoAllocMap - refde4b3b09.shaderEngineCount, cshaderEngineCount_allocs = (C.uint32_t)(x.ShaderEngineCount), cgoAllocsUnknown - allocsde4b3b09.Borrow(cshaderEngineCount_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs1f612812.Borrow(csampleLocationsInfo_allocs) - var cshaderArraysPerEngineCount_allocs *cgoAllocMap - refde4b3b09.shaderArraysPerEngineCount, cshaderArraysPerEngineCount_allocs = (C.uint32_t)(x.ShaderArraysPerEngineCount), cgoAllocsUnknown - allocsde4b3b09.Borrow(cshaderArraysPerEngineCount_allocs) + x.ref1f612812 = ref1f612812 + x.allocs1f612812 = allocs1f612812 + return ref1f612812, allocs1f612812 - 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) - - 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 PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { - if x.refde4b3b09 != nil { - return *x.refde4b3b09, nil +func (x SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { + if x.ref1f612812 != nil { + return *x.ref1f612812, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49740,103 +49842,177 @@ 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 *SubpassSampleLocations) Deref() { + if x.ref1f612812 == 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.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) } -// allocDeviceMemoryOverallocationCreateInfoAMDMemory allocates memory for type C.VkDeviceMemoryOverallocationCreateInfoAMD in C. +// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceMemoryOverallocationCreateInfoAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOverallocationCreateInfoAMDValue)) +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 sizeOfDeviceMemoryOverallocationCreateInfoAMDValue = unsafe.Sizeof([1]C.VkDeviceMemoryOverallocationCreateInfoAMD{}) +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 *DeviceMemoryOverallocationCreateInfoAMD) Ref() *C.VkDeviceMemoryOverallocationCreateInfoAMD { +func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { if x == nil { return nil } - return x.ref5ccee475 + 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 *DeviceMemoryOverallocationCreateInfoAMD) Free() { - if x != nil && x.allocs5ccee475 != nil { - x.allocs5ccee475.(*cgoAllocMap).Free() - x.ref5ccee475 = nil +func (x *RenderPassSampleLocationsBeginInfo) Free() { + if x != nil && x.allocsb61b51d4 != nil { + x.allocsb61b51d4.(*cgoAllocMap).Free() + x.refb61b51d4 = nil } } -// NewDeviceMemoryOverallocationCreateInfoAMDRef 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 NewDeviceMemoryOverallocationCreateInfoAMDRef(ref unsafe.Pointer) *DeviceMemoryOverallocationCreateInfoAMD { +func NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { if ref == nil { return nil } - obj := new(DeviceMemoryOverallocationCreateInfoAMD) - obj.ref5ccee475 = (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(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 *DeviceMemoryOverallocationCreateInfoAMD) PassRef() (*C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { +func (x *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5ccee475 != nil { - return x.ref5ccee475, nil + } else if x.refb61b51d4 != nil { + return x.refb61b51d4, nil } - mem5ccee475 := allocDeviceMemoryOverallocationCreateInfoAMDMemory(1) - ref5ccee475 := (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(mem5ccee475) - allocs5ccee475 := new(cgoAllocMap) - allocs5ccee475.Add(mem5ccee475) + memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) + refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) + allocsb61b51d4 := new(cgoAllocMap) + allocsb61b51d4.Add(memb61b51d4) var csType_allocs *cgoAllocMap - ref5ccee475.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5ccee475.Borrow(csType_allocs) + refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb61b51d4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5ccee475.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5ccee475.Borrow(cpNext_allocs) + refb61b51d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpNext_allocs) - var coverallocationBehavior_allocs *cgoAllocMap - ref5ccee475.overallocationBehavior, coverallocationBehavior_allocs = (C.VkMemoryOverallocationBehaviorAMD)(x.OverallocationBehavior), cgoAllocsUnknown - allocs5ccee475.Borrow(coverallocationBehavior_allocs) + var cattachmentInitialSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.attachmentInitialSampleLocationsCount, cattachmentInitialSampleLocationsCount_allocs = (C.uint32_t)(x.AttachmentInitialSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cattachmentInitialSampleLocationsCount_allocs) - x.ref5ccee475 = ref5ccee475 - x.allocs5ccee475 = allocs5ccee475 - return ref5ccee475, allocs5ccee475 + var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap + refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) + allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) + + var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) + + 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 DeviceMemoryOverallocationCreateInfoAMD) PassValue() (C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { - if x.ref5ccee475 != nil { - return *x.ref5ccee475, nil +func (x RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { + if x.refb61b51d4 != nil { + return *x.refb61b51d4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49844,90 +50020,97 @@ func (x DeviceMemoryOverallocationCreateInfoAMD) PassValue() (C.VkDeviceMemoryOv // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceMemoryOverallocationCreateInfoAMD) Deref() { - if x.ref5ccee475 == nil { +func (x *RenderPassSampleLocationsBeginInfo) Deref() { + if x.refb61b51d4 == nil { return } - x.SType = (StructureType)(x.ref5ccee475.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ccee475.pNext)) - x.OverallocationBehavior = (MemoryOverallocationBehaviorAMD)(x.ref5ccee475.overallocationBehavior) + 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) } -// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT in C. +// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT 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 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 sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) +const sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { +func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { if x == nil { return nil } - return x.refbd6b5075 + 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 *PhysicalDeviceVertexAttributeDivisorProperties) Free() { - if x != nil && x.allocsbd6b5075 != nil { - x.allocsbd6b5075.(*cgoAllocMap).Free() - x.refbd6b5075 = nil +func (x *PipelineSampleLocationsStateCreateInfo) Free() { + if x != nil && x.allocs93a2968f != nil { + x.allocs93a2968f.(*cgoAllocMap).Free() + x.ref93a2968f = nil } } -// NewPhysicalDeviceVertexAttributeDivisorPropertiesRef 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 NewPhysicalDeviceVertexAttributeDivisorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorProperties { +func NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorProperties) - obj.refbd6b5075 = (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(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 *PhysicalDeviceVertexAttributeDivisorProperties) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { +func (x *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbd6b5075 != nil { - return x.refbd6b5075, nil + } else if x.ref93a2968f != nil { + return x.ref93a2968f, nil } - membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) - refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) - allocsbd6b5075 := new(cgoAllocMap) - allocsbd6b5075.Add(membd6b5075) + mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) + ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) + allocs93a2968f := new(cgoAllocMap) + allocs93a2968f.Add(mem93a2968f) var csType_allocs *cgoAllocMap - refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbd6b5075.Borrow(csType_allocs) + ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs93a2968f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbd6b5075.Borrow(cpNext_allocs) + ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs93a2968f.Borrow(cpNext_allocs) - var cmaxVertexAttribDivisor_allocs *cgoAllocMap - refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown - allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) + var csampleLocationsEnable_allocs *cgoAllocMap + ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown + allocs93a2968f.Borrow(csampleLocationsEnable_allocs) - x.refbd6b5075 = refbd6b5075 - x.allocsbd6b5075 = allocsbd6b5075 - return refbd6b5075, allocsbd6b5075 + var csampleLocationsInfo_allocs *cgoAllocMap + ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs93a2968f.Borrow(csampleLocationsInfo_allocs) + + 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 PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { - if x.refbd6b5075 != nil { - return *x.refbd6b5075, nil +func (x PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { + if x.ref93a2968f != nil { + return *x.ref93a2968f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -49935,86 +50118,107 @@ 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 *PipelineSampleLocationsStateCreateInfo) Deref() { + if x.ref93a2968f == 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.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)) } -// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT in C. +// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT 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 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 sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) +const sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { +func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { if x == nil { return nil } - return x.refd64d4396 + 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 *VertexInputBindingDivisorDescription) Free() { - if x != nil && x.allocsd64d4396 != nil { - x.allocsd64d4396.(*cgoAllocMap).Free() - x.refd64d4396 = nil +func (x *PhysicalDeviceSampleLocationsProperties) Free() { + if x != nil && x.allocsaf801323 != nil { + x.allocsaf801323.(*cgoAllocMap).Free() + x.refaf801323 = nil } } -// NewVertexInputBindingDivisorDescriptionRef 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 NewVertexInputBindingDivisorDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDivisorDescription { +func NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { if ref == nil { return nil } - obj := new(VertexInputBindingDivisorDescription) - obj.refd64d4396 = (*C.VkVertexInputBindingDivisorDescriptionEXT)(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 *VertexInputBindingDivisorDescription) PassRef() (*C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { +func (x *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd64d4396 != nil { - return x.refd64d4396, nil + } else if x.refaf801323 != nil { + return x.refaf801323, nil } - memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) - refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) - allocsd64d4396 := new(cgoAllocMap) - allocsd64d4396.Add(memd64d4396) + memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) + refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) + allocsaf801323 := new(cgoAllocMap) + allocsaf801323.Add(memaf801323) - var cbinding_allocs *cgoAllocMap - refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsd64d4396.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaf801323.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 + refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaf801323.Borrow(cpNext_allocs) - x.refd64d4396 = refd64d4396 - x.allocsd64d4396 = allocsd64d4396 - return refd64d4396, allocsd64d4396 + var csampleLocationSampleCounts_allocs *cgoAllocMap + refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown + allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) + + 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 VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { - if x.refd64d4396 != nil { - return *x.refd64d4396, nil +func (x PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { + if x.refaf801323 != nil { + return *x.refaf801323, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50022,131 +50226,94 @@ 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 *PhysicalDeviceSampleLocationsProperties) Deref() { + if x.refaf801323 == nil { return } - x.Binding = (uint32)(x.refd64d4396.binding) - x.Divisor = (uint32)(x.refd64d4396.divisor) + 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) } -// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT in C. +// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT 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 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 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 sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { +func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { if x == nil { return nil } - return x.ref86096bfd + 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 *PipelineVertexInputDivisorStateCreateInfo) Free() { - if x != nil && x.allocs86096bfd != nil { - x.allocs86096bfd.(*cgoAllocMap).Free() - x.ref86096bfd = nil +func (x *MultisampleProperties) Free() { + if x != nil && x.allocs3e47f337 != nil { + x.allocs3e47f337.(*cgoAllocMap).Free() + x.ref3e47f337 = nil } } -// NewPipelineVertexInputDivisorStateCreateInfoRef 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 NewPipelineVertexInputDivisorStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputDivisorStateCreateInfo { +func NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { if ref == nil { return nil } - obj := new(PipelineVertexInputDivisorStateCreateInfo) - obj.ref86096bfd = (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(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 *PipelineVertexInputDivisorStateCreateInfo) PassRef() (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { +func (x *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86096bfd != nil { - return x.ref86096bfd, nil + } else if x.ref3e47f337 != nil { + return x.ref3e47f337, nil } - mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) - ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) - allocs86096bfd := new(cgoAllocMap) - allocs86096bfd.Add(mem86096bfd) + mem3e47f337 := allocMultisamplePropertiesMemory(1) + ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) + allocs3e47f337 := new(cgoAllocMap) + allocs3e47f337.Add(mem3e47f337) var csType_allocs *cgoAllocMap - ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86096bfd.Borrow(csType_allocs) + ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e47f337.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) + ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e47f337.Borrow(cpNext_allocs) - var cpVertexBindingDivisors_allocs *cgoAllocMap - ref86096bfd.pVertexBindingDivisors, cpVertexBindingDivisors_allocs = unpackSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors) - allocs86096bfd.Borrow(cpVertexBindingDivisors_allocs) + var cmaxSampleLocationGridSize_allocs *cgoAllocMap + ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() + allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) - x.ref86096bfd = ref86096bfd - x.allocs86096bfd = allocs86096bfd - return ref86096bfd, allocs86096bfd + 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 PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { - if x.ref86096bfd != nil { - return *x.ref86096bfd, nil +func (x MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { + if x.ref3e47f337 != nil { + return *x.ref3e47f337, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50154,95 +50321,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 *MultisampleProperties) Deref() { + if x.ref3e47f337 == 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.ref3e47f337.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e47f337.pNext)) + x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.ref3e47f337.maxSampleLocationGridSize)) } -// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT in C. +// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT 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 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 sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { if x == nil { return nil } - return x.refffe7619a + 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 *PhysicalDeviceVertexAttributeDivisorFeatures) Free() { - if x != nil && x.allocsffe7619a != nil { - x.allocsffe7619a.(*cgoAllocMap).Free() - x.refffe7619a = nil +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { + if x != nil && x.allocs8514bc93 != nil { + x.allocs8514bc93.(*cgoAllocMap).Free() + x.ref8514bc93 = nil } } -// NewPhysicalDeviceVertexAttributeDivisorFeaturesRef 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 NewPhysicalDeviceVertexAttributeDivisorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorFeatures { +func NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorFeatures) - obj.refffe7619a = (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(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 *PhysicalDeviceVertexAttributeDivisorFeatures) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe7619a != nil { - return x.refffe7619a, nil + } else if x.ref8514bc93 != nil { + return x.ref8514bc93, nil } - memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) - refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) - allocsffe7619a := new(cgoAllocMap) - allocsffe7619a.Add(memffe7619a) + mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) + ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) + allocs8514bc93 := new(cgoAllocMap) + allocs8514bc93.Add(mem8514bc93) var csType_allocs *cgoAllocMap - refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe7619a.Borrow(csType_allocs) + ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8514bc93.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) + ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8514bc93.Borrow(cpNext_allocs) - var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap - refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown - allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) + var cadvancedBlendCoherentOperations_allocs *cgoAllocMap + ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown + allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) - x.refffe7619a = refffe7619a - x.allocsffe7619a = allocsffe7619a - return refffe7619a, allocsffe7619a + 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 PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { - if x.refffe7619a != nil { - return *x.refffe7619a, nil +func (x PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { + if x.ref8514bc93 != nil { + return *x.ref8514bc93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50250,95 +50412,110 @@ 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 *PhysicalDeviceBlendOperationAdvancedFeatures) Deref() { + if x.ref8514bc93 == 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.ref8514bc93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8514bc93.pNext)) + x.AdvancedBlendCoherentOperations = (Bool32)(x.ref8514bc93.advancedBlendCoherentOperations) } -// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV in C. +// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT 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)) +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 sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { if x == nil { return nil } - return x.reff31d599c + 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 *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Free() { - if x != nil && x.allocsf31d599c != nil { - x.allocsf31d599c.(*cgoAllocMap).Free() - x.reff31d599c = nil +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Free() { + if x != nil && x.allocs94cb3fa6 != nil { + x.allocs94cb3fa6.(*cgoAllocMap).Free() + x.ref94cb3fa6 = nil } } -// NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef 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 NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceComputeShaderDerivativesFeaturesNV { +func NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceComputeShaderDerivativesFeaturesNV) - obj.reff31d599c = (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(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 *PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassRef() (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff31d599c != nil { - return x.reff31d599c, nil + } else if x.ref94cb3fa6 != nil { + return x.ref94cb3fa6, nil } - memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) - reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) - allocsf31d599c := new(cgoAllocMap) - allocsf31d599c.Add(memf31d599c) + mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) + ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) + allocs94cb3fa6 := new(cgoAllocMap) + allocs94cb3fa6.Add(mem94cb3fa6) var csType_allocs *cgoAllocMap - reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf31d599c.Borrow(csType_allocs) + ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs94cb3fa6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf31d599c.Borrow(cpNext_allocs) + ref94cb3fa6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cpNext_allocs) - var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) + var cadvancedBlendMaxColorAttachments_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendMaxColorAttachments, cadvancedBlendMaxColorAttachments_allocs = (C.uint32_t)(x.AdvancedBlendMaxColorAttachments), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendMaxColorAttachments_allocs) - var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) + var cadvancedBlendIndependentBlend_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendIndependentBlend, cadvancedBlendIndependentBlend_allocs = (C.VkBool32)(x.AdvancedBlendIndependentBlend), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendIndependentBlend_allocs) - x.reff31d599c = reff31d599c - x.allocsf31d599c = allocsf31d599c - return reff31d599c, allocsf31d599c + 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 PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { - if x.reff31d599c != nil { - return *x.reff31d599c, nil +func (x PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { + if x.ref94cb3fa6 != nil { + return *x.ref94cb3fa6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50346,95 +50523,103 @@ 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 *PhysicalDeviceBlendOperationAdvancedProperties) Deref() { + if x.ref94cb3fa6 == 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.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) } -// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV in C. +// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT 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 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 sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) +const sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { +func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { if x == nil { return nil } - return x.ref802b98a + 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 *PhysicalDeviceMeshShaderFeaturesNV) Free() { - if x != nil && x.allocs802b98a != nil { - x.allocs802b98a.(*cgoAllocMap).Free() - x.ref802b98a = nil +func (x *PipelineColorBlendAdvancedStateCreateInfo) Free() { + if x != nil && x.allocscd374989 != nil { + x.allocscd374989.(*cgoAllocMap).Free() + x.refcd374989 = nil } } -// NewPhysicalDeviceMeshShaderFeaturesNVRef 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 NewPhysicalDeviceMeshShaderFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderFeaturesNV { +func NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderFeaturesNV) - obj.ref802b98a = (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(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 *PhysicalDeviceMeshShaderFeaturesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { +func (x *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref802b98a != nil { - return x.ref802b98a, nil + } else if x.refcd374989 != nil { + return x.refcd374989, nil } - mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) - ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) - allocs802b98a := new(cgoAllocMap) - allocs802b98a.Add(mem802b98a) + memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) + refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) + allocscd374989 := new(cgoAllocMap) + allocscd374989.Add(memcd374989) var csType_allocs *cgoAllocMap - ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs802b98a.Borrow(csType_allocs) + refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd374989.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs802b98a.Borrow(cpNext_allocs) + refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd374989.Borrow(cpNext_allocs) - var ctaskShader_allocs *cgoAllocMap - ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown - allocs802b98a.Borrow(ctaskShader_allocs) + var csrcPremultiplied_allocs *cgoAllocMap + refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(csrcPremultiplied_allocs) - var cmeshShader_allocs *cgoAllocMap - ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown - allocs802b98a.Borrow(cmeshShader_allocs) + var cdstPremultiplied_allocs *cgoAllocMap + refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(cdstPremultiplied_allocs) - x.ref802b98a = ref802b98a - x.allocs802b98a = allocs802b98a - return ref802b98a, allocs802b98a + 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 PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { - if x.ref802b98a != nil { - return *x.ref802b98a, nil +func (x PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { + if x.refcd374989 != nil { + return *x.refcd374989, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50442,139 +50627,100 @@ 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 *PipelineColorBlendAdvancedStateCreateInfo) Deref() { + if x.refcd374989 == 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.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) } -// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV in C. +// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV 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 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 sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) +const sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { +func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { if x == nil { return nil } - return x.ref2ee3ccb7 + 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 *PhysicalDeviceMeshShaderPropertiesNV) Free() { - if x != nil && x.allocs2ee3ccb7 != nil { - x.allocs2ee3ccb7.(*cgoAllocMap).Free() - x.ref2ee3ccb7 = nil +func (x *PipelineCoverageToColorStateCreateInfoNV) Free() { + if x != nil && x.allocscc6b7b68 != nil { + x.allocscc6b7b68.(*cgoAllocMap).Free() + x.refcc6b7b68 = nil } } -// NewPhysicalDeviceMeshShaderPropertiesNVRef 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 NewPhysicalDeviceMeshShaderPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderPropertiesNV { +func NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderPropertiesNV) - obj.ref2ee3ccb7 = (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(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 *PhysicalDeviceMeshShaderPropertiesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { +func (x *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2ee3ccb7 != nil { - return x.ref2ee3ccb7, nil + } else if x.refcc6b7b68 != nil { + return x.refcc6b7b68, nil } - mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) - ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) - allocs2ee3ccb7 := new(cgoAllocMap) - allocs2ee3ccb7.Add(mem2ee3ccb7) + memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) + refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) + allocscc6b7b68 := new(cgoAllocMap) + allocscc6b7b68.Add(memcc6b7b68) var csType_allocs *cgoAllocMap - ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(csType_allocs) + refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscc6b7b68.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) + refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscc6b7b68.Borrow(cpNext_allocs) - var cmaxMeshMultiviewViewCount_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshMultiviewViewCount, cmaxMeshMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMeshMultiviewViewCount), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshMultiviewViewCount_allocs) + var cflags_allocs *cgoAllocMap + refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocscc6b7b68.Borrow(cflags_allocs) - var cmeshOutputPerVertexGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerVertexGranularity, cmeshOutputPerVertexGranularity_allocs = (C.uint32_t)(x.MeshOutputPerVertexGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerVertexGranularity_allocs) + var ccoverageToColorEnable_allocs *cgoAllocMap + refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown + allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) - var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) + var ccoverageToColorLocation_allocs *cgoAllocMap + refcc6b7b68.coverageToColorLocation, ccoverageToColorLocation_allocs = (C.uint32_t)(x.CoverageToColorLocation), cgoAllocsUnknown + allocscc6b7b68.Borrow(ccoverageToColorLocation_allocs) - x.ref2ee3ccb7 = ref2ee3ccb7 - x.allocs2ee3ccb7 = allocs2ee3ccb7 - return ref2ee3ccb7, allocs2ee3ccb7 + 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 PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { - if x.ref2ee3ccb7 != nil { - return *x.ref2ee3ccb7, nil +func (x PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { + if x.refcc6b7b68 != nil { + return *x.refcc6b7b68, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50582,98 +50728,108 @@ 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 *PipelineCoverageToColorStateCreateInfoNV) Deref() { + if x.refcc6b7b68 == 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.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) } -// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV in C. +// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV 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 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 sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) +const sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { +func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { if x == nil { return nil } - return x.refda6c46ea + 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 *DrawMeshTasksIndirectCommandNV) Free() { - if x != nil && x.allocsda6c46ea != nil { - x.allocsda6c46ea.(*cgoAllocMap).Free() - x.refda6c46ea = nil +func (x *PipelineCoverageModulationStateCreateInfoNV) Free() { + if x != nil && x.allocsa081b0ea != nil { + x.allocsa081b0ea.(*cgoAllocMap).Free() + x.refa081b0ea = nil } } -// NewDrawMeshTasksIndirectCommandNVRef 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 NewDrawMeshTasksIndirectCommandNVRef(ref unsafe.Pointer) *DrawMeshTasksIndirectCommandNV { +func NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { if ref == nil { return nil } - obj := new(DrawMeshTasksIndirectCommandNV) - obj.refda6c46ea = (*C.VkDrawMeshTasksIndirectCommandNV)(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 *DrawMeshTasksIndirectCommandNV) PassRef() (*C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { +func (x *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refda6c46ea != nil { - return x.refda6c46ea, nil + } else if x.refa081b0ea != nil { + return x.refa081b0ea, nil } - memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) - refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) - allocsda6c46ea := new(cgoAllocMap) - allocsda6c46ea.Add(memda6c46ea) - - var ctaskCount_allocs *cgoAllocMap - refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown - allocsda6c46ea.Borrow(ctaskCount_allocs) + mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) + refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) + allocsa081b0ea := new(cgoAllocMap) + allocsa081b0ea.Add(mema081b0ea) - var cfirstTask_allocs *cgoAllocMap - refda6c46ea.firstTask, cfirstTask_allocs = (C.uint32_t)(x.FirstTask), cgoAllocsUnknown - allocsda6c46ea.Borrow(cfirstTask_allocs) + var csType_allocs *cgoAllocMap + refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa081b0ea.Borrow(csType_allocs) - x.refda6c46ea = refda6c46ea - x.allocsda6c46ea = allocsda6c46ea - return refda6c46ea, allocsda6c46ea + 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) + + 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 DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { - if x.refda6c46ea != nil { - return *x.refda6c46ea, nil +func (x PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { + if x.refa081b0ea != nil { + return *x.refa081b0ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50681,89 +50837,102 @@ 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 *PipelineCoverageModulationStateCreateInfoNV) Deref() { + if x.refa081b0ea == nil { return } - x.TaskCount = (uint32)(x.refda6c46ea.taskCount) - x.FirstTask = (uint32)(x.refda6c46ea.firstTask) + 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) + hxf502c9a := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) + hxf502c9a.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) + hxf502c9a.Cap = 0x7fffffff + // hxf502c9a.Len = ? + } -// allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV in C. +// allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV 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 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 sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV{}) +const sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { if x == nil { return nil } - return x.ref191b97c6 + 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 *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Free() { - if x != nil && x.allocs191b97c6 != nil { - x.allocs191b97c6.(*cgoAllocMap).Free() - x.ref191b97c6 = nil +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Free() { + if x != nil && x.allocsc083cf09 != nil { + x.allocsc083cf09.(*cgoAllocMap).Free() + x.refc083cf09 = nil } } -// NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef 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 NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeaturesNV { +func NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsPropertiesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShaderBarycentricFeaturesNV) - obj.ref191b97c6 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(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 *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref191b97c6 != nil { - return x.ref191b97c6, nil + } else if x.refc083cf09 != nil { + return x.refc083cf09, nil } - mem191b97c6 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(1) - ref191b97c6 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(mem191b97c6) - allocs191b97c6 := new(cgoAllocMap) - allocs191b97c6.Add(mem191b97c6) + memc083cf09 := allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(1) + refc083cf09 := (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(memc083cf09) + allocsc083cf09 := new(cgoAllocMap) + allocsc083cf09.Add(memc083cf09) var csType_allocs *cgoAllocMap - ref191b97c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs191b97c6.Borrow(csType_allocs) + refc083cf09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc083cf09.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref191b97c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs191b97c6.Borrow(cpNext_allocs) + refc083cf09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc083cf09.Borrow(cpNext_allocs) - var cfragmentShaderBarycentric_allocs *cgoAllocMap - ref191b97c6.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown - allocs191b97c6.Borrow(cfragmentShaderBarycentric_allocs) + var cshaderSMCount_allocs *cgoAllocMap + refc083cf09.shaderSMCount, cshaderSMCount_allocs = (C.uint32_t)(x.ShaderSMCount), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderSMCount_allocs) + + var cshaderWarpsPerSM_allocs *cgoAllocMap + refc083cf09.shaderWarpsPerSM, cshaderWarpsPerSM_allocs = (C.uint32_t)(x.ShaderWarpsPerSM), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderWarpsPerSM_allocs) - x.ref191b97c6 = ref191b97c6 - x.allocs191b97c6 = allocs191b97c6 - return ref191b97c6, allocs191b97c6 + 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 PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { - if x.ref191b97c6 != nil { - return *x.ref191b97c6, nil +func (x PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { + if x.refc083cf09 != nil { + return *x.refc083cf09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50771,90 +50940,91 @@ 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 *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Deref() { + if x.refc083cf09 == 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.refc083cf09.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc083cf09.pNext)) + x.ShaderSMCount = (uint32)(x.refc083cf09.shaderSMCount) + x.ShaderWarpsPerSM = (uint32)(x.refc083cf09.shaderWarpsPerSM) } -// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV in C. +// allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV 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 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 sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) +const sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { if x == nil { return nil } - return x.ref9d61e1b2 + 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 *PhysicalDeviceShaderImageFootprintFeaturesNV) Free() { - if x != nil && x.allocs9d61e1b2 != nil { - x.allocs9d61e1b2.(*cgoAllocMap).Free() - x.ref9d61e1b2 = nil +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Free() { + if x != nil && x.allocs1965c1d != nil { + x.allocs1965c1d.(*cgoAllocMap).Free() + x.ref1965c1d = nil } } -// NewPhysicalDeviceShaderImageFootprintFeaturesNVRef 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 NewPhysicalDeviceShaderImageFootprintFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageFootprintFeaturesNV { +func NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderImageFootprintFeaturesNV) - obj.ref9d61e1b2 = (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(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 *PhysicalDeviceShaderImageFootprintFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9d61e1b2 != nil { - return x.ref9d61e1b2, nil + } else if x.ref1965c1d != nil { + return x.ref1965c1d, nil } - mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) - ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) - allocs9d61e1b2 := new(cgoAllocMap) - allocs9d61e1b2.Add(mem9d61e1b2) + mem1965c1d := allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(1) + ref1965c1d := (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(mem1965c1d) + allocs1965c1d := new(cgoAllocMap) + allocs1965c1d.Add(mem1965c1d) var csType_allocs *cgoAllocMap - ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9d61e1b2.Borrow(csType_allocs) + ref1965c1d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1965c1d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cpNext_allocs) + ref1965c1d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1965c1d.Borrow(cpNext_allocs) - var cimageFootprint_allocs *cgoAllocMap - ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cimageFootprint_allocs) + var cshaderSMBuiltins_allocs *cgoAllocMap + ref1965c1d.shaderSMBuiltins, cshaderSMBuiltins_allocs = (C.VkBool32)(x.ShaderSMBuiltins), cgoAllocsUnknown + allocs1965c1d.Borrow(cshaderSMBuiltins_allocs) - x.ref9d61e1b2 = ref9d61e1b2 - x.allocs9d61e1b2 = allocs9d61e1b2 - return ref9d61e1b2, allocs9d61e1b2 + 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 PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { - if x.ref9d61e1b2 != nil { - return *x.ref9d61e1b2, nil +func (x PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { + if x.ref1965c1d != nil { + return *x.ref1965c1d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50862,94 +51032,90 @@ 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 *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Deref() { + if x.ref1965c1d == 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.ref1965c1d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1965c1d.pNext)) + x.ShaderSMBuiltins = (Bool32)(x.ref1965c1d.shaderSMBuiltins) } -// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV in C. +// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT 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 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 sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) +const sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { +func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.refa8715ba6 + 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 *PipelineViewportExclusiveScissorStateCreateInfoNV) Free() { - if x != nil && x.allocsa8715ba6 != nil { - x.allocsa8715ba6.(*cgoAllocMap).Free() - x.refa8715ba6 = nil +func (x *DrmFormatModifierProperties) Free() { + if x != nil && x.allocs7dcb7f85 != nil { + x.allocs7dcb7f85.(*cgoAllocMap).Free() + x.ref7dcb7f85 = nil } } -// NewPipelineViewportExclusiveScissorStateCreateInfoNVRef 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 NewPipelineViewportExclusiveScissorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportExclusiveScissorStateCreateInfoNV { +func NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { if ref == nil { return nil } - obj := new(PipelineViewportExclusiveScissorStateCreateInfoNV) - obj.refa8715ba6 = (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(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 *PipelineViewportExclusiveScissorStateCreateInfoNV) PassRef() (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { +func (x *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8715ba6 != nil { - return x.refa8715ba6, nil + } else if x.ref7dcb7f85 != nil { + return x.ref7dcb7f85, nil } - mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) - refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) - allocsa8715ba6 := new(cgoAllocMap) - allocsa8715ba6.Add(mema8715ba6) - - var csType_allocs *cgoAllocMap - refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa8715ba6.Borrow(csType_allocs) + mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) + ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) + allocs7dcb7f85 := new(cgoAllocMap) + allocs7dcb7f85.Add(mem7dcb7f85) - var cpNext_allocs *cgoAllocMap - refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa8715ba6.Borrow(cpNext_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) - var cexclusiveScissorCount_allocs *cgoAllocMap - refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown - allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) - var cpExclusiveScissors_allocs *cgoAllocMap - refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) - allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refa8715ba6 = refa8715ba6 - x.allocsa8715ba6 = allocsa8715ba6 - return refa8715ba6, allocsa8715ba6 + 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 PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { - if x.refa8715ba6 != nil { - return *x.refa8715ba6, nil +func (x DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref7dcb7f85 != nil { + return *x.ref7dcb7f85, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -50957,91 +51123,132 @@ 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 *DrmFormatModifierProperties) Deref() { + if x.ref7dcb7f85 == 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.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) } -// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV in C. +// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT 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 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 sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) +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)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { +func (x *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { if x == nil { return nil } - return x.ref52c9fcfc + 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 *PhysicalDeviceExclusiveScissorFeaturesNV) Free() { - if x != nil && x.allocs52c9fcfc != nil { - x.allocs52c9fcfc.(*cgoAllocMap).Free() - x.ref52c9fcfc = nil +func (x *DrmFormatModifierPropertiesList) Free() { + if x != nil && x.allocs7e3ede2 != nil { + x.allocs7e3ede2.(*cgoAllocMap).Free() + x.ref7e3ede2 = nil } } -// NewPhysicalDeviceExclusiveScissorFeaturesNVRef 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 NewPhysicalDeviceExclusiveScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExclusiveScissorFeaturesNV { +func NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { if ref == nil { return nil } - obj := new(PhysicalDeviceExclusiveScissorFeaturesNV) - obj.ref52c9fcfc = (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(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 *PhysicalDeviceExclusiveScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref52c9fcfc != nil { - return x.ref52c9fcfc, nil + } else if x.ref7e3ede2 != nil { + return x.ref7e3ede2, nil } - mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) - ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) - allocs52c9fcfc := new(cgoAllocMap) - allocs52c9fcfc.Add(mem52c9fcfc) + mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) + ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) + allocs7e3ede2 := new(cgoAllocMap) + allocs7e3ede2.Add(mem7e3ede2) var csType_allocs *cgoAllocMap - ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs52c9fcfc.Borrow(csType_allocs) + ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7e3ede2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cpNext_allocs) + ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7e3ede2.Borrow(cpNext_allocs) - var cexclusiveScissor_allocs *cgoAllocMap - ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) - x.ref52c9fcfc = ref52c9fcfc - x.allocs52c9fcfc = allocs52c9fcfc - return ref52c9fcfc, allocs52c9fcfc + var cpDrmFormatModifierProperties_allocs *cgoAllocMap + ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) + allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) + + 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 PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { - if x.ref52c9fcfc != nil { - return *x.ref52c9fcfc, nil +func (x DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { + if x.ref7e3ede2 != nil { + return *x.ref7e3ede2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51049,90 +51256,103 @@ 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 *DrmFormatModifierPropertiesList) Deref() { + if x.ref7e3ede2 == 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.ref7e3ede2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7e3ede2.pNext)) + x.DrmFormatModifierCount = (uint32)(x.ref7e3ede2.drmFormatModifierCount) + packSDrmFormatModifierProperties(x.PDrmFormatModifierProperties, x.ref7e3ede2.pDrmFormatModifierProperties) } -// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV in C. +// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT 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 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 sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) +const sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { if x == nil { return nil } - return x.ref351f58c6 + 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 *QueueFamilyCheckpointPropertiesNV) Free() { - if x != nil && x.allocs351f58c6 != nil { - x.allocs351f58c6.(*cgoAllocMap).Free() - x.ref351f58c6 = nil +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Free() { + if x != nil && x.allocsd7abef44 != nil { + x.allocsd7abef44.(*cgoAllocMap).Free() + x.refd7abef44 = nil } } -// NewQueueFamilyCheckpointPropertiesNVRef 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 NewQueueFamilyCheckpointPropertiesNVRef(ref unsafe.Pointer) *QueueFamilyCheckpointPropertiesNV { +func NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { if ref == nil { return nil } - obj := new(QueueFamilyCheckpointPropertiesNV) - obj.ref351f58c6 = (*C.VkQueueFamilyCheckpointPropertiesNV)(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 *QueueFamilyCheckpointPropertiesNV) PassRef() (*C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref351f58c6 != nil { - return x.ref351f58c6, nil + } else if x.refd7abef44 != nil { + return x.refd7abef44, nil } - mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) - ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) - allocs351f58c6 := new(cgoAllocMap) - allocs351f58c6.Add(mem351f58c6) + memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) + refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) + allocsd7abef44 := new(cgoAllocMap) + allocsd7abef44.Add(memd7abef44) var csType_allocs *cgoAllocMap - ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs351f58c6.Borrow(csType_allocs) + refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd7abef44.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs351f58c6.Borrow(cpNext_allocs) + refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd7abef44.Borrow(cpNext_allocs) - var ccheckpointExecutionStageMask_allocs *cgoAllocMap - ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown - allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocsd7abef44.Borrow(cdrmFormatModifier_allocs) - x.ref351f58c6 = ref351f58c6 - x.allocs351f58c6 = allocs351f58c6 - return ref351f58c6, allocs351f58c6 + var csharingMode_allocs *cgoAllocMap + refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown + allocsd7abef44.Borrow(csharingMode_allocs) + + var cqueueFamilyIndexCount_allocs *cgoAllocMap + refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsd7abef44.Borrow(cqueueFamilyIndexCount_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.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 QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { - if x.ref351f58c6 != nil { - return *x.ref351f58c6, nil +func (x PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { + if x.refd7abef44 != nil { + return *x.refd7abef44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51140,94 +51360,101 @@ 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 *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { + if x.refd7abef44 == 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.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) + hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf4a9453.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) + hxf4a9453.Cap = 0x7fffffff + // hxf4a9453.Len = ? + } -// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV in C. +// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT 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 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 sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) +const sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { +func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { if x == nil { return nil } - return x.refd1c9224b + return x.ref544538ab } // Free invokes alloc map'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 *ImageDrmFormatModifierListCreateInfo) Free() { + if x != nil && x.allocs544538ab != nil { + x.allocs544538ab.(*cgoAllocMap).Free() + x.ref544538ab = nil } } -// NewCheckpointDataNVRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewCheckpointDataNVRef(ref unsafe.Pointer) *CheckpointDataNV { +func NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { if ref == nil { return nil } - obj := new(CheckpointDataNV) - obj.refd1c9224b = (*C.VkCheckpointDataNV)(unsafe.Pointer(ref)) + 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 *CheckpointDataNV) PassRef() (*C.VkCheckpointDataNV, *cgoAllocMap) { +func (x *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd1c9224b != nil { - return x.refd1c9224b, nil + } else if x.ref544538ab != nil { + return x.ref544538ab, nil } - memd1c9224b := allocCheckpointDataNVMemory(1) - refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) - allocsd1c9224b := new(cgoAllocMap) - allocsd1c9224b.Add(memd1c9224b) + mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) + ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) + allocs544538ab := new(cgoAllocMap) + allocs544538ab.Add(mem544538ab) var csType_allocs *cgoAllocMap - refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd1c9224b.Borrow(csType_allocs) + ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs544538ab.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpNext_allocs) + ref544538ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs544538ab.Borrow(cpNext_allocs) - var cstage_allocs *cgoAllocMap - refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown - allocsd1c9224b.Borrow(cstage_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + ref544538ab.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocs544538ab.Borrow(cdrmFormatModifierCount_allocs) - var cpCheckpointMarker_allocs *cgoAllocMap - refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpCheckpointMarker_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.refd1c9224b = refd1c9224b - x.allocsd1c9224b = allocsd1c9224b - return refd1c9224b, allocsd1c9224b + x.ref544538ab = ref544538ab + x.allocs544538ab = allocs544538ab + return ref544538ab, allocs544538ab } // 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 ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { + if x.ref544538ab != nil { + return *x.ref544538ab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51235,91 +51462,141 @@ 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 *ImageDrmFormatModifierListCreateInfo) Deref() { + if x.ref544538ab == 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)) + x.SType = (StructureType)(x.ref544538ab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref544538ab.pNext)) + x.DrmFormatModifierCount = (uint32)(x.ref544538ab.drmFormatModifierCount) + hxf1a1416 := (*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)) + hxf1a1416.Data = unsafe.Pointer(x.ref544538ab.pDrmFormatModifiers) + hxf1a1416.Cap = 0x7fffffff + // hxf1a1416.Len = ? + } -// allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL in C. +// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue)) +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()) } return mem } -const sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{}) +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.VkSubresourceLayout) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubresourceLayoutMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkSubresourceLayout)(h.Data) + return +} + +// 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 / 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 *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Ref() *C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { +func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { if x == nil { return nil } - return x.refff2cd6c + 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 *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Free() { - if x != nil && x.allocsff2cd6c != nil { - x.allocsff2cd6c.(*cgoAllocMap).Free() - x.refff2cd6c = nil +func (x *ImageDrmFormatModifierExplicitCreateInfo) Free() { + if x != nil && x.allocs8fb45ca9 != nil { + x.allocs8fb45ca9.(*cgoAllocMap).Free() + x.ref8fb45ca9 = nil } } -// NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef 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 NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { +func NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) - obj.refff2cd6c = (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(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 *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassRef() (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { +func (x *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refff2cd6c != nil { - return x.refff2cd6c, nil + } else if x.ref8fb45ca9 != nil { + return x.ref8fb45ca9, nil } - memff2cd6c := allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(1) - refff2cd6c := (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(memff2cd6c) - allocsff2cd6c := new(cgoAllocMap) - allocsff2cd6c.Add(memff2cd6c) + mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) + ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) + allocs8fb45ca9 := new(cgoAllocMap) + allocs8fb45ca9.Add(mem8fb45ca9) var csType_allocs *cgoAllocMap - refff2cd6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsff2cd6c.Borrow(csType_allocs) + ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8fb45ca9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refff2cd6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsff2cd6c.Borrow(cpNext_allocs) + ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cpNext_allocs) - var cshaderIntegerFunctions2_allocs *cgoAllocMap - refff2cd6c.shaderIntegerFunctions2, cshaderIntegerFunctions2_allocs = (C.VkBool32)(x.ShaderIntegerFunctions2), cgoAllocsUnknown - allocsff2cd6c.Borrow(cshaderIntegerFunctions2_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) - x.refff2cd6c = refff2cd6c - x.allocsff2cd6c = allocsff2cd6c - return refff2cd6c, allocsff2cd6c + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) + + var cpPlaneLayouts_allocs *cgoAllocMap + ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) + allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) + + 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 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassValue() (C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { - if x.refff2cd6c != nil { - return *x.refff2cd6c, nil +func (x ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { + if x.ref8fb45ca9 != nil { + return *x.ref8fb45ca9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51327,86 +51604,92 @@ func (x PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) 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 *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Deref() { - if x.refff2cd6c == nil { +func (x *ImageDrmFormatModifierExplicitCreateInfo) Deref() { + if x.ref8fb45ca9 == nil { return } - x.SType = (StructureType)(x.refff2cd6c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff2cd6c.pNext)) - x.ShaderIntegerFunctions2 = (Bool32)(x.refff2cd6c.shaderIntegerFunctions2) + 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) } -// allocPerformanceValueINTELMemory allocates memory for type C.VkPerformanceValueINTEL in C. +// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceValueINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceValueINTELValue)) +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 sizeOfPerformanceValueINTELValue = unsafe.Sizeof([1]C.VkPerformanceValueINTEL{}) +const sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceValueINTEL) Ref() *C.VkPerformanceValueINTEL { +func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.refe6a134ae + 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 *PerformanceValueINTEL) Free() { - if x != nil && x.allocse6a134ae != nil { - x.allocse6a134ae.(*cgoAllocMap).Free() - x.refe6a134ae = nil +func (x *ImageDrmFormatModifierProperties) Free() { + if x != nil && x.allocs86a0f149 != nil { + x.allocs86a0f149.(*cgoAllocMap).Free() + x.ref86a0f149 = nil } } -// NewPerformanceValueINTELRef 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 NewPerformanceValueINTELRef(ref unsafe.Pointer) *PerformanceValueINTEL { +func NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { if ref == nil { return nil } - obj := new(PerformanceValueINTEL) - obj.refe6a134ae = (*C.VkPerformanceValueINTEL)(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 *PerformanceValueINTEL) PassRef() (*C.VkPerformanceValueINTEL, *cgoAllocMap) { +func (x *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe6a134ae != nil { - return x.refe6a134ae, nil + } else if x.ref86a0f149 != nil { + return x.ref86a0f149, nil } - meme6a134ae := allocPerformanceValueINTELMemory(1) - refe6a134ae := (*C.VkPerformanceValueINTEL)(meme6a134ae) - allocse6a134ae := new(cgoAllocMap) - allocse6a134ae.Add(meme6a134ae) + mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) + ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) + allocs86a0f149 := new(cgoAllocMap) + allocs86a0f149.Add(mem86a0f149) - var c_type_allocs *cgoAllocMap - refe6a134ae._type, c_type_allocs = (C.VkPerformanceValueTypeINTEL)(x.Type), cgoAllocsUnknown - allocse6a134ae.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86a0f149.Borrow(csType_allocs) - var cdata_allocs *cgoAllocMap - refe6a134ae.data, cdata_allocs = *(*C.VkPerformanceValueDataINTEL)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown - allocse6a134ae.Borrow(cdata_allocs) + var cpNext_allocs *cgoAllocMap + ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86a0f149.Borrow(cpNext_allocs) - x.refe6a134ae = refe6a134ae - x.allocse6a134ae = allocse6a134ae - return refe6a134ae, allocse6a134ae + var cdrmFormatModifier_allocs *cgoAllocMap + ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs86a0f149.Borrow(cdrmFormatModifier_allocs) + + 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 PerformanceValueINTEL) PassValue() (C.VkPerformanceValueINTEL, *cgoAllocMap) { - if x.refe6a134ae != nil { - return *x.refe6a134ae, nil +func (x ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref86a0f149 != nil { + return *x.ref86a0f149, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51414,89 +51697,90 @@ func (x PerformanceValueINTEL) PassValue() (C.VkPerformanceValueINTEL, *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 *PerformanceValueINTEL) Deref() { - if x.refe6a134ae == nil { +func (x *ImageDrmFormatModifierProperties) Deref() { + if x.ref86a0f149 == nil { return } - x.Type = (PerformanceValueTypeINTEL)(x.refe6a134ae._type) - x.Data = *(*PerformanceValueDataINTEL)(unsafe.Pointer(&x.refe6a134ae.data)) + x.SType = (StructureType)(x.ref86a0f149.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86a0f149.pNext)) + x.DrmFormatModifier = (uint64)(x.ref86a0f149.drmFormatModifier) } -// allocInitializePerformanceApiInfoINTELMemory allocates memory for type C.VkInitializePerformanceApiInfoINTEL in C. +// allocDrmFormatModifierProperties2Memory allocates memory for type C.VkDrmFormatModifierProperties2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocInitializePerformanceApiInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInitializePerformanceApiInfoINTELValue)) +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 sizeOfInitializePerformanceApiInfoINTELValue = unsafe.Sizeof([1]C.VkInitializePerformanceApiInfoINTEL{}) +const sizeOfDrmFormatModifierProperties2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierProperties2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *InitializePerformanceApiInfoINTEL) Ref() *C.VkInitializePerformanceApiInfoINTEL { +func (x *DrmFormatModifierProperties2) Ref() *C.VkDrmFormatModifierProperties2EXT { if x == nil { return nil } - return x.refb72b1cf3 + 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 *InitializePerformanceApiInfoINTEL) Free() { - if x != nil && x.allocsb72b1cf3 != nil { - x.allocsb72b1cf3.(*cgoAllocMap).Free() - x.refb72b1cf3 = nil +func (x *DrmFormatModifierProperties2) Free() { + if x != nil && x.allocs6d0821ba != nil { + x.allocs6d0821ba.(*cgoAllocMap).Free() + x.ref6d0821ba = nil } } -// NewInitializePerformanceApiInfoINTELRef 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 NewInitializePerformanceApiInfoINTELRef(ref unsafe.Pointer) *InitializePerformanceApiInfoINTEL { +func NewDrmFormatModifierProperties2Ref(ref unsafe.Pointer) *DrmFormatModifierProperties2 { if ref == nil { return nil } - obj := new(InitializePerformanceApiInfoINTEL) - obj.refb72b1cf3 = (*C.VkInitializePerformanceApiInfoINTEL)(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 *InitializePerformanceApiInfoINTEL) PassRef() (*C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { +func (x *DrmFormatModifierProperties2) PassRef() (*C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb72b1cf3 != nil { - return x.refb72b1cf3, nil + } else if x.ref6d0821ba != nil { + return x.ref6d0821ba, nil } - memb72b1cf3 := allocInitializePerformanceApiInfoINTELMemory(1) - refb72b1cf3 := (*C.VkInitializePerformanceApiInfoINTEL)(memb72b1cf3) - allocsb72b1cf3 := new(cgoAllocMap) - allocsb72b1cf3.Add(memb72b1cf3) + mem6d0821ba := allocDrmFormatModifierProperties2Memory(1) + ref6d0821ba := (*C.VkDrmFormatModifierProperties2EXT)(mem6d0821ba) + allocs6d0821ba := new(cgoAllocMap) + allocs6d0821ba.Add(mem6d0821ba) - var csType_allocs *cgoAllocMap - refb72b1cf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb72b1cf3.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 - refb72b1cf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb72b1cf3.Borrow(cpNext_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierPlaneCount_allocs) - var cpUserData_allocs *cgoAllocMap - refb72b1cf3.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown - allocsb72b1cf3.Borrow(cpUserData_allocs) + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refb72b1cf3 = refb72b1cf3 - x.allocsb72b1cf3 = allocsb72b1cf3 - return refb72b1cf3, allocsb72b1cf3 + 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 InitializePerformanceApiInfoINTEL) PassValue() (C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { - if x.refb72b1cf3 != nil { - return *x.refb72b1cf3, nil +func (x DrmFormatModifierProperties2) PassValue() (C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { + if x.ref6d0821ba != nil { + return *x.ref6d0821ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51504,90 +51788,132 @@ func (x InitializePerformanceApiInfoINTEL) PassValue() (C.VkInitializePerformanc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *InitializePerformanceApiInfoINTEL) Deref() { - if x.refb72b1cf3 == nil { +func (x *DrmFormatModifierProperties2) Deref() { + if x.ref6d0821ba == nil { return } - x.SType = (StructureType)(x.refb72b1cf3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pNext)) - x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pUserData)) + x.DrmFormatModifier = (uint64)(x.ref6d0821ba.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref6d0821ba.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags2)(x.ref6d0821ba.drmFormatModifierTilingFeatures) } -// allocQueryPoolPerformanceQueryCreateInfoINTELMemory allocates memory for type C.VkQueryPoolPerformanceQueryCreateInfoINTEL in C. +// allocDrmFormatModifierPropertiesList2Memory allocates memory for type C.VkDrmFormatModifierPropertiesList2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueryPoolPerformanceQueryCreateInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue)) +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 sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceQueryCreateInfoINTEL{}) +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 *QueryPoolPerformanceQueryCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { +func (x *DrmFormatModifierPropertiesList2) Ref() *C.VkDrmFormatModifierPropertiesList2EXT { if x == nil { return nil } - return x.refb8883992 + 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 *QueryPoolPerformanceQueryCreateInfoINTEL) Free() { - if x != nil && x.allocsb8883992 != nil { - x.allocsb8883992.(*cgoAllocMap).Free() - x.refb8883992 = nil +func (x *DrmFormatModifierPropertiesList2) Free() { + if x != nil && x.allocsbea4fdd3 != nil { + x.allocsbea4fdd3.(*cgoAllocMap).Free() + x.refbea4fdd3 = nil } } -// NewQueryPoolPerformanceQueryCreateInfoINTELRef 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 NewQueryPoolPerformanceQueryCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolPerformanceQueryCreateInfoINTEL { +func NewDrmFormatModifierPropertiesList2Ref(ref unsafe.Pointer) *DrmFormatModifierPropertiesList2 { if ref == nil { return nil } - obj := new(QueryPoolPerformanceQueryCreateInfoINTEL) - obj.refb8883992 = (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(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 *QueryPoolPerformanceQueryCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList2) PassRef() (*C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8883992 != nil { - return x.refb8883992, nil + } else if x.refbea4fdd3 != nil { + return x.refbea4fdd3, nil } - memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) - refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) - allocsb8883992 := new(cgoAllocMap) - allocsb8883992.Add(memb8883992) + membea4fdd3 := allocDrmFormatModifierPropertiesList2Memory(1) + refbea4fdd3 := (*C.VkDrmFormatModifierPropertiesList2EXT)(membea4fdd3) + allocsbea4fdd3 := new(cgoAllocMap) + allocsbea4fdd3.Add(membea4fdd3) var csType_allocs *cgoAllocMap - refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8883992.Borrow(csType_allocs) + refbea4fdd3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbea4fdd3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8883992.Borrow(cpNext_allocs) + refbea4fdd3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbea4fdd3.Borrow(cpNext_allocs) - var cperformanceCountersSampling_allocs *cgoAllocMap - refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown - allocsb8883992.Borrow(cperformanceCountersSampling_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + refbea4fdd3.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocsbea4fdd3.Borrow(cdrmFormatModifierCount_allocs) - x.refb8883992 = refb8883992 - x.allocsb8883992 = allocsb8883992 - return refb8883992, allocsb8883992 + 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 QueryPoolPerformanceQueryCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { - if x.refb8883992 != nil { - return *x.refb8883992, nil +func (x DrmFormatModifierPropertiesList2) PassValue() (C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { + if x.refbea4fdd3 != nil { + return *x.refbea4fdd3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51595,78 +51921,99 @@ func (x QueryPoolPerformanceQueryCreateInfoINTEL) PassValue() (C.VkQueryPoolPerf // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Deref() { - if x.refb8883992 == nil { +func (x *DrmFormatModifierPropertiesList2) Deref() { + if x.refbea4fdd3 == nil { return } - x.SType = (StructureType)(x.refb8883992.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) - x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) + 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) +} + +// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT 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)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem } +const sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueryPoolCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { +func (x *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.refb8883992 + 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 *QueryPoolCreateInfoINTEL) Free() { - if x != nil && x.allocsb8883992 != nil { - x.allocsb8883992.(*cgoAllocMap).Free() - x.refb8883992 = nil +func (x *ValidationCacheCreateInfo) Free() { + if x != nil && x.allocs3d8ac8aa != nil { + x.allocs3d8ac8aa.(*cgoAllocMap).Free() + x.ref3d8ac8aa = nil } } -// NewQueryPoolCreateInfoINTELRef 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 NewQueryPoolCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolCreateInfoINTEL { +func NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(QueryPoolCreateInfoINTEL) - obj.refb8883992 = (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(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 *QueryPoolCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { +func (x *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8883992 != nil { - return x.refb8883992, nil + } else if x.ref3d8ac8aa != nil { + return x.ref3d8ac8aa, nil } - memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) - refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) - allocsb8883992 := new(cgoAllocMap) - allocsb8883992.Add(memb8883992) + mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) + ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) + allocs3d8ac8aa := new(cgoAllocMap) + allocs3d8ac8aa.Add(mem3d8ac8aa) var csType_allocs *cgoAllocMap - refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8883992.Borrow(csType_allocs) + ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8883992.Borrow(cpNext_allocs) + ref3d8ac8aa.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cpNext_allocs) - var cperformanceCountersSampling_allocs *cgoAllocMap - refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown - allocsb8883992.Borrow(cperformanceCountersSampling_allocs) + var cflags_allocs *cgoAllocMap + ref3d8ac8aa.flags, cflags_allocs = (C.VkValidationCacheCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cflags_allocs) - x.refb8883992 = refb8883992 - x.allocsb8883992 = allocsb8883992 - return refb8883992, allocsb8883992 + 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) + + 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 QueryPoolCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { - if x.refb8883992 != nil { - return *x.refb8883992, nil +func (x ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref3d8ac8aa != nil { + return *x.ref3d8ac8aa, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51674,90 +52021,92 @@ func (x QueryPoolCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCrea // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueryPoolCreateInfoINTEL) Deref() { - if x.refb8883992 == nil { +func (x *ValidationCacheCreateInfo) Deref() { + if x.ref3d8ac8aa == nil { return } - x.SType = (StructureType)(x.refb8883992.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) - x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) + 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)) } -// allocPerformanceMarkerInfoINTELMemory allocates memory for type C.VkPerformanceMarkerInfoINTEL in C. +// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceMarkerInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceMarkerInfoINTELValue)) +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 sizeOfPerformanceMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceMarkerInfoINTEL{}) +const sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceMarkerInfoINTEL) Ref() *C.VkPerformanceMarkerInfoINTEL { +func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.refbf575d93 + 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 *PerformanceMarkerInfoINTEL) Free() { - if x != nil && x.allocsbf575d93 != nil { - x.allocsbf575d93.(*cgoAllocMap).Free() - x.refbf575d93 = nil +func (x *ShaderModuleValidationCacheCreateInfo) Free() { + if x != nil && x.allocs37065f24 != nil { + x.allocs37065f24.(*cgoAllocMap).Free() + x.ref37065f24 = nil } } -// NewPerformanceMarkerInfoINTELRef 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 NewPerformanceMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceMarkerInfoINTEL { +func NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(PerformanceMarkerInfoINTEL) - obj.refbf575d93 = (*C.VkPerformanceMarkerInfoINTEL)(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 *PerformanceMarkerInfoINTEL) PassRef() (*C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { +func (x *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbf575d93 != nil { - return x.refbf575d93, nil + } else if x.ref37065f24 != nil { + return x.ref37065f24, nil } - membf575d93 := allocPerformanceMarkerInfoINTELMemory(1) - refbf575d93 := (*C.VkPerformanceMarkerInfoINTEL)(membf575d93) - allocsbf575d93 := new(cgoAllocMap) - allocsbf575d93.Add(membf575d93) + mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) + ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) + allocs37065f24 := new(cgoAllocMap) + allocs37065f24.Add(mem37065f24) var csType_allocs *cgoAllocMap - refbf575d93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbf575d93.Borrow(csType_allocs) + ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs37065f24.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbf575d93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbf575d93.Borrow(cpNext_allocs) + ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs37065f24.Borrow(cpNext_allocs) - var cmarker_allocs *cgoAllocMap - refbf575d93.marker, cmarker_allocs = (C.uint64_t)(x.Marker), cgoAllocsUnknown - allocsbf575d93.Borrow(cmarker_allocs) + var cvalidationCache_allocs *cgoAllocMap + ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown + allocs37065f24.Borrow(cvalidationCache_allocs) - x.refbf575d93 = refbf575d93 - x.allocsbf575d93 = allocsbf575d93 - return refbf575d93, allocsbf575d93 + 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 PerformanceMarkerInfoINTEL) PassValue() (C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { - if x.refbf575d93 != nil { - return *x.refbf575d93, nil +func (x ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref37065f24 != nil { + return *x.ref37065f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51765,90 +52114,86 @@ func (x PerformanceMarkerInfoINTEL) PassValue() (C.VkPerformanceMarkerInfoINTEL, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceMarkerInfoINTEL) Deref() { - if x.refbf575d93 == nil { +func (x *ShaderModuleValidationCacheCreateInfo) Deref() { + if x.ref37065f24 == nil { return } - x.SType = (StructureType)(x.refbf575d93.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbf575d93.pNext)) - x.Marker = (uint64)(x.refbf575d93.marker) + x.SType = (StructureType)(x.ref37065f24.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref37065f24.pNext)) + x.ValidationCache = *(*ValidationCache)(unsafe.Pointer(&x.ref37065f24.validationCache)) } -// allocPerformanceStreamMarkerInfoINTELMemory allocates memory for type C.VkPerformanceStreamMarkerInfoINTEL in C. +// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceStreamMarkerInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceStreamMarkerInfoINTELValue)) +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 sizeOfPerformanceStreamMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceStreamMarkerInfoINTEL{}) +const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceStreamMarkerInfoINTEL) Ref() *C.VkPerformanceStreamMarkerInfoINTEL { +func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { if x == nil { return nil } - return x.refaaf8355c + 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 *PerformanceStreamMarkerInfoINTEL) Free() { - if x != nil && x.allocsaaf8355c != nil { - x.allocsaaf8355c.(*cgoAllocMap).Free() - x.refaaf8355c = nil +func (x *ShadingRatePaletteNV) Free() { + if x != nil && x.allocsa5c4ae3a != nil { + x.allocsa5c4ae3a.(*cgoAllocMap).Free() + x.refa5c4ae3a = nil } } -// NewPerformanceStreamMarkerInfoINTELRef 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 NewPerformanceStreamMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceStreamMarkerInfoINTEL { +func NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { if ref == nil { return nil } - obj := new(PerformanceStreamMarkerInfoINTEL) - obj.refaaf8355c = (*C.VkPerformanceStreamMarkerInfoINTEL)(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 *PerformanceStreamMarkerInfoINTEL) PassRef() (*C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { +func (x *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaaf8355c != nil { - return x.refaaf8355c, nil + } else if x.refa5c4ae3a != nil { + return x.refa5c4ae3a, nil } - memaaf8355c := allocPerformanceStreamMarkerInfoINTELMemory(1) - refaaf8355c := (*C.VkPerformanceStreamMarkerInfoINTEL)(memaaf8355c) - allocsaaf8355c := new(cgoAllocMap) - allocsaaf8355c.Add(memaaf8355c) - - var csType_allocs *cgoAllocMap - refaaf8355c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaaf8355c.Borrow(csType_allocs) + mema5c4ae3a := allocShadingRatePaletteNVMemory(1) + refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) + allocsa5c4ae3a := new(cgoAllocMap) + allocsa5c4ae3a.Add(mema5c4ae3a) - var cpNext_allocs *cgoAllocMap - refaaf8355c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsaaf8355c.Borrow(cpNext_allocs) + var cshadingRatePaletteEntryCount_allocs *cgoAllocMap + refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown + allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) - var cmarker_allocs *cgoAllocMap - refaaf8355c.marker, cmarker_allocs = (C.uint32_t)(x.Marker), cgoAllocsUnknown - allocsaaf8355c.Borrow(cmarker_allocs) + var cpShadingRatePaletteEntries_allocs *cgoAllocMap + refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = (*C.VkShadingRatePaletteEntryNV)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)).Data)), cgoAllocsUnknown + allocsa5c4ae3a.Borrow(cpShadingRatePaletteEntries_allocs) - x.refaaf8355c = refaaf8355c - x.allocsaaf8355c = allocsaaf8355c - return refaaf8355c, allocsaaf8355c + 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 PerformanceStreamMarkerInfoINTEL) PassValue() (C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { - if x.refaaf8355c != nil { - return *x.refaaf8355c, nil +func (x ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { + if x.refa5c4ae3a != nil { + return *x.refa5c4ae3a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51856,98 +52201,139 @@ func (x PerformanceStreamMarkerInfoINTEL) PassValue() (C.VkPerformanceStreamMark // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceStreamMarkerInfoINTEL) Deref() { - if x.refaaf8355c == nil { +func (x *ShadingRatePaletteNV) Deref() { + if x.refa5c4ae3a == nil { return } - x.SType = (StructureType)(x.refaaf8355c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaaf8355c.pNext)) - x.Marker = (uint32)(x.refaaf8355c.marker) + x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) + hxf92be66 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) + hxf92be66.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) + hxf92be66.Cap = 0x7fffffff + // hxf92be66.Len = ? + } -// allocPerformanceOverrideInfoINTELMemory allocates memory for type C.VkPerformanceOverrideInfoINTEL in C. +// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceOverrideInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceOverrideInfoINTELValue)) +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 sizeOfPerformanceOverrideInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceOverrideInfoINTEL{}) +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 *PerformanceOverrideInfoINTEL) Ref() *C.VkPerformanceOverrideInfoINTEL { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { if x == nil { return nil } - return x.ref1cdbce31 + 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 *PerformanceOverrideInfoINTEL) Free() { - if x != nil && x.allocs1cdbce31 != nil { - x.allocs1cdbce31.(*cgoAllocMap).Free() - x.ref1cdbce31 = nil +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { + if x != nil && x.allocs6f2ec732 != nil { + x.allocs6f2ec732.(*cgoAllocMap).Free() + x.ref6f2ec732 = nil } } -// NewPerformanceOverrideInfoINTELRef 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 NewPerformanceOverrideInfoINTELRef(ref unsafe.Pointer) *PerformanceOverrideInfoINTEL { +func NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { if ref == nil { return nil } - obj := new(PerformanceOverrideInfoINTEL) - obj.ref1cdbce31 = (*C.VkPerformanceOverrideInfoINTEL)(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 *PerformanceOverrideInfoINTEL) PassRef() (*C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1cdbce31 != nil { - return x.ref1cdbce31, nil + } else if x.ref6f2ec732 != nil { + return x.ref6f2ec732, nil } - mem1cdbce31 := allocPerformanceOverrideInfoINTELMemory(1) - ref1cdbce31 := (*C.VkPerformanceOverrideInfoINTEL)(mem1cdbce31) - allocs1cdbce31 := new(cgoAllocMap) - allocs1cdbce31.Add(mem1cdbce31) + mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) + ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) + allocs6f2ec732 := new(cgoAllocMap) + allocs6f2ec732.Add(mem6f2ec732) var csType_allocs *cgoAllocMap - ref1cdbce31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1cdbce31.Borrow(csType_allocs) + ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6f2ec732.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1cdbce31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1cdbce31.Borrow(cpNext_allocs) + ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6f2ec732.Borrow(cpNext_allocs) - var c_type_allocs *cgoAllocMap - ref1cdbce31._type, c_type_allocs = (C.VkPerformanceOverrideTypeINTEL)(x.Type), cgoAllocsUnknown - allocs1cdbce31.Borrow(c_type_allocs) + var cshadingRateImageEnable_allocs *cgoAllocMap + ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown + allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) - var cenable_allocs *cgoAllocMap - ref1cdbce31.enable, cenable_allocs = (C.VkBool32)(x.Enable), cgoAllocsUnknown - allocs1cdbce31.Borrow(cenable_allocs) + var cviewportCount_allocs *cgoAllocMap + ref6f2ec732.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs6f2ec732.Borrow(cviewportCount_allocs) - var cparameter_allocs *cgoAllocMap - ref1cdbce31.parameter, cparameter_allocs = (C.uint64_t)(x.Parameter), cgoAllocsUnknown - allocs1cdbce31.Borrow(cparameter_allocs) + var cpShadingRatePalettes_allocs *cgoAllocMap + ref6f2ec732.pShadingRatePalettes, cpShadingRatePalettes_allocs = unpackSShadingRatePaletteNV(x.PShadingRatePalettes) + allocs6f2ec732.Borrow(cpShadingRatePalettes_allocs) - x.ref1cdbce31 = ref1cdbce31 - x.allocs1cdbce31 = allocs1cdbce31 - return ref1cdbce31, allocs1cdbce31 + 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 PerformanceOverrideInfoINTEL) PassValue() (C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { - if x.ref1cdbce31 != nil { - return *x.ref1cdbce31, nil +func (x PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { + if x.ref6f2ec732 != nil { + return *x.ref6f2ec732, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -51955,92 +52341,96 @@ func (x PerformanceOverrideInfoINTEL) PassValue() (C.VkPerformanceOverrideInfoIN // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceOverrideInfoINTEL) Deref() { - if x.ref1cdbce31 == nil { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Deref() { + if x.ref6f2ec732 == nil { return } - 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) + 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) } -// allocPerformanceConfigurationAcquireInfoINTELMemory allocates memory for type C.VkPerformanceConfigurationAcquireInfoINTEL in C. +// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPerformanceConfigurationAcquireInfoINTELMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceConfigurationAcquireInfoINTELValue)) +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 sizeOfPerformanceConfigurationAcquireInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceConfigurationAcquireInfoINTEL{}) +const sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PerformanceConfigurationAcquireInfoINTEL) Ref() *C.VkPerformanceConfigurationAcquireInfoINTEL { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { if x == nil { return nil } - return x.ref16c1d105 + 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 *PerformanceConfigurationAcquireInfoINTEL) Free() { - if x != nil && x.allocs16c1d105 != nil { - x.allocs16c1d105.(*cgoAllocMap).Free() - x.ref16c1d105 = nil +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Free() { + if x != nil && x.allocs199a921b != nil { + x.allocs199a921b.(*cgoAllocMap).Free() + x.ref199a921b = nil } } -// NewPerformanceConfigurationAcquireInfoINTELRef 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 NewPerformanceConfigurationAcquireInfoINTELRef(ref unsafe.Pointer) *PerformanceConfigurationAcquireInfoINTEL { +func NewPhysicalDeviceShadingRateImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImageFeaturesNV { if ref == nil { return nil } - obj := new(PerformanceConfigurationAcquireInfoINTEL) - obj.ref16c1d105 = (*C.VkPerformanceConfigurationAcquireInfoINTEL)(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 *PerformanceConfigurationAcquireInfoINTEL) PassRef() (*C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref16c1d105 != nil { - return x.ref16c1d105, nil + } else if x.ref199a921b != nil { + return x.ref199a921b, nil } - mem16c1d105 := allocPerformanceConfigurationAcquireInfoINTELMemory(1) - ref16c1d105 := (*C.VkPerformanceConfigurationAcquireInfoINTEL)(mem16c1d105) - allocs16c1d105 := new(cgoAllocMap) - allocs16c1d105.Add(mem16c1d105) + mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) + ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) + allocs199a921b := new(cgoAllocMap) + allocs199a921b.Add(mem199a921b) var csType_allocs *cgoAllocMap - ref16c1d105.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs16c1d105.Borrow(csType_allocs) + ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs199a921b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref16c1d105.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs16c1d105.Borrow(cpNext_allocs) + ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs199a921b.Borrow(cpNext_allocs) - var c_type_allocs *cgoAllocMap - ref16c1d105._type, c_type_allocs = (C.VkPerformanceConfigurationTypeINTEL)(x.Type), cgoAllocsUnknown - allocs16c1d105.Borrow(c_type_allocs) + var cshadingRateImage_allocs *cgoAllocMap + ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown + allocs199a921b.Borrow(cshadingRateImage_allocs) - x.ref16c1d105 = ref16c1d105 - x.allocs16c1d105 = allocs16c1d105 - return ref16c1d105, allocs16c1d105 + 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 PerformanceConfigurationAcquireInfoINTEL) PassValue() (C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { - if x.ref16c1d105 != nil { - return *x.ref16c1d105, nil +func (x PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { + if x.ref199a921b != nil { + return *x.ref199a921b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52048,102 +52438,99 @@ func (x PerformanceConfigurationAcquireInfoINTEL) PassValue() (C.VkPerformanceCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PerformanceConfigurationAcquireInfoINTEL) Deref() { - if x.ref16c1d105 == nil { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Deref() { + if x.ref199a921b == nil { return } - x.SType = (StructureType)(x.ref16c1d105.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref16c1d105.pNext)) - x.Type = (PerformanceConfigurationTypeINTEL)(x.ref16c1d105._type) + 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) } -// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT in C. +// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV 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 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 sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) +const sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { if x == nil { return nil } - return x.refdd9947ff + 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 *PhysicalDevicePCIBusInfoProperties) Free() { - if x != nil && x.allocsdd9947ff != nil { - x.allocsdd9947ff.(*cgoAllocMap).Free() - x.refdd9947ff = nil +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Free() { + if x != nil && x.allocsea059f34 != nil { + x.allocsea059f34.(*cgoAllocMap).Free() + x.refea059f34 = nil } } -// NewPhysicalDevicePCIBusInfoPropertiesRef 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 NewPhysicalDevicePCIBusInfoPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePCIBusInfoProperties { +func NewPhysicalDeviceShadingRateImagePropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImagePropertiesNV { if ref == nil { return nil } - obj := new(PhysicalDevicePCIBusInfoProperties) - obj.refdd9947ff = (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(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 *PhysicalDevicePCIBusInfoProperties) PassRef() (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdd9947ff != nil { - return x.refdd9947ff, nil + } else if x.refea059f34 != nil { + return x.refea059f34, nil } - memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) - refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) - allocsdd9947ff := new(cgoAllocMap) - allocsdd9947ff.Add(memdd9947ff) + memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) + refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) + allocsea059f34 := new(cgoAllocMap) + allocsea059f34.Add(memea059f34) var csType_allocs *cgoAllocMap - refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdd9947ff.Borrow(csType_allocs) + refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea059f34.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.uint32_t)(x.PciDomain), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciDomain_allocs) + refea059f34.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea059f34.Borrow(cpNext_allocs) - var cpciBus_allocs *cgoAllocMap - refdd9947ff.pciBus, cpciBus_allocs = (C.uint32_t)(x.PciBus), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciBus_allocs) + var cshadingRateTexelSize_allocs *cgoAllocMap + refea059f34.shadingRateTexelSize, cshadingRateTexelSize_allocs = x.ShadingRateTexelSize.PassValue() + allocsea059f34.Borrow(cshadingRateTexelSize_allocs) - var cpciDevice_allocs *cgoAllocMap - refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint32_t)(x.PciDevice), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciDevice_allocs) + var cshadingRatePaletteSize_allocs *cgoAllocMap + refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) - var cpciFunction_allocs *cgoAllocMap - refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint32_t)(x.PciFunction), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciFunction_allocs) + var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap + refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) - x.refdd9947ff = refdd9947ff - x.allocsdd9947ff = allocsdd9947ff - return refdd9947ff, allocsdd9947ff + 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 PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { - if x.refdd9947ff != nil { - return *x.refdd9947ff, nil +func (x PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { + if x.refea059f34 != nil { + return *x.refea059f34, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52151,93 +52538,92 @@ 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 *PhysicalDeviceShadingRateImagePropertiesNV) Deref() { + if x.refea059f34 == nil { return } - 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) + 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) } -// allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory allocates memory for type C.VkDisplayNativeHdrSurfaceCapabilitiesAMD in C. +// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue)) +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 sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue = unsafe.Sizeof([1]C.VkDisplayNativeHdrSurfaceCapabilitiesAMD{}) +const sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Ref() *C.VkDisplayNativeHdrSurfaceCapabilitiesAMD { +func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { if x == nil { return nil } - return x.ref2521293a + 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 *DisplayNativeHdrSurfaceCapabilitiesAMD) Free() { - if x != nil && x.allocs2521293a != nil { - x.allocs2521293a.(*cgoAllocMap).Free() - x.ref2521293a = nil +func (x *CoarseSampleLocationNV) Free() { + if x != nil && x.allocs2f447beb != nil { + x.allocs2f447beb.(*cgoAllocMap).Free() + x.ref2f447beb = nil } } -// NewDisplayNativeHdrSurfaceCapabilitiesAMDRef 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 NewDisplayNativeHdrSurfaceCapabilitiesAMDRef(ref unsafe.Pointer) *DisplayNativeHdrSurfaceCapabilitiesAMD { +func NewCoarseSampleLocationNVRef(ref unsafe.Pointer) *CoarseSampleLocationNV { if ref == nil { return nil } - obj := new(DisplayNativeHdrSurfaceCapabilitiesAMD) - obj.ref2521293a = (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(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 *DisplayNativeHdrSurfaceCapabilitiesAMD) PassRef() (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { +func (x *CoarseSampleLocationNV) PassRef() (*C.VkCoarseSampleLocationNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2521293a != nil { - return x.ref2521293a, nil + } else if x.ref2f447beb != nil { + return x.ref2f447beb, nil } - mem2521293a := allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(1) - ref2521293a := (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(mem2521293a) - allocs2521293a := new(cgoAllocMap) - allocs2521293a.Add(mem2521293a) + mem2f447beb := allocCoarseSampleLocationNVMemory(1) + ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) + allocs2f447beb := new(cgoAllocMap) + allocs2f447beb.Add(mem2f447beb) - var csType_allocs *cgoAllocMap - ref2521293a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2521293a.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 - ref2521293a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2521293a.Borrow(cpNext_allocs) + var cpixelY_allocs *cgoAllocMap + ref2f447beb.pixelY, cpixelY_allocs = (C.uint32_t)(x.PixelY), cgoAllocsUnknown + allocs2f447beb.Borrow(cpixelY_allocs) - var clocalDimmingSupport_allocs *cgoAllocMap - ref2521293a.localDimmingSupport, clocalDimmingSupport_allocs = (C.VkBool32)(x.LocalDimmingSupport), cgoAllocsUnknown - allocs2521293a.Borrow(clocalDimmingSupport_allocs) + var csample_allocs *cgoAllocMap + ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown + allocs2f447beb.Borrow(csample_allocs) - x.ref2521293a = ref2521293a - x.allocs2521293a = allocs2521293a - return ref2521293a, allocs2521293a + 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 DisplayNativeHdrSurfaceCapabilitiesAMD) PassValue() (C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { - if x.ref2521293a != nil { - return *x.ref2521293a, nil +func (x CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAllocMap) { + if x.ref2f447beb != nil { + return *x.ref2f447beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52245,90 +52631,132 @@ func (x DisplayNativeHdrSurfaceCapabilitiesAMD) PassValue() (C.VkDisplayNativeHd // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Deref() { - if x.ref2521293a == nil { +func (x *CoarseSampleLocationNV) Deref() { + if x.ref2f447beb == nil { return } - x.SType = (StructureType)(x.ref2521293a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2521293a.pNext)) - x.LocalDimmingSupport = (Bool32)(x.ref2521293a.localDimmingSupport) + x.PixelX = (uint32)(x.ref2f447beb.pixelX) + x.PixelY = (uint32)(x.ref2f447beb.pixelY) + x.Sample = (uint32)(x.ref2f447beb.sample) } -// allocSwapchainDisplayNativeHdrCreateInfoAMDMemory allocates memory for type C.VkSwapchainDisplayNativeHdrCreateInfoAMD in C. +// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue)) +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 sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue = unsafe.Sizeof([1]C.VkSwapchainDisplayNativeHdrCreateInfoAMD{}) +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 *SwapchainDisplayNativeHdrCreateInfoAMD) Ref() *C.VkSwapchainDisplayNativeHdrCreateInfoAMD { +func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { if x == nil { return nil } - return x.refffbe2634 + 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 *SwapchainDisplayNativeHdrCreateInfoAMD) Free() { - if x != nil && x.allocsffbe2634 != nil { - x.allocsffbe2634.(*cgoAllocMap).Free() - x.refffbe2634 = nil +func (x *CoarseSampleOrderCustomNV) Free() { + if x != nil && x.allocs4524fa09 != nil { + x.allocs4524fa09.(*cgoAllocMap).Free() + x.ref4524fa09 = nil } } -// NewSwapchainDisplayNativeHdrCreateInfoAMDRef 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 NewSwapchainDisplayNativeHdrCreateInfoAMDRef(ref unsafe.Pointer) *SwapchainDisplayNativeHdrCreateInfoAMD { +func NewCoarseSampleOrderCustomNVRef(ref unsafe.Pointer) *CoarseSampleOrderCustomNV { if ref == nil { return nil } - obj := new(SwapchainDisplayNativeHdrCreateInfoAMD) - obj.refffbe2634 = (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(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 *SwapchainDisplayNativeHdrCreateInfoAMD) PassRef() (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { +func (x *CoarseSampleOrderCustomNV) PassRef() (*C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffbe2634 != nil { - return x.refffbe2634, nil + } else if x.ref4524fa09 != nil { + return x.ref4524fa09, nil } - memffbe2634 := allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(1) - refffbe2634 := (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(memffbe2634) - allocsffbe2634 := new(cgoAllocMap) - allocsffbe2634.Add(memffbe2634) + mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) + ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) + allocs4524fa09 := new(cgoAllocMap) + allocs4524fa09.Add(mem4524fa09) - var csType_allocs *cgoAllocMap - refffbe2634.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffbe2634.Borrow(csType_allocs) + var cshadingRate_allocs *cgoAllocMap + ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown + allocs4524fa09.Borrow(cshadingRate_allocs) - var cpNext_allocs *cgoAllocMap - refffbe2634.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffbe2634.Borrow(cpNext_allocs) + var csampleCount_allocs *cgoAllocMap + ref4524fa09.sampleCount, csampleCount_allocs = (C.uint32_t)(x.SampleCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleCount_allocs) - var clocalDimmingEnable_allocs *cgoAllocMap - refffbe2634.localDimmingEnable, clocalDimmingEnable_allocs = (C.VkBool32)(x.LocalDimmingEnable), cgoAllocsUnknown - allocsffbe2634.Borrow(clocalDimmingEnable_allocs) + var csampleLocationCount_allocs *cgoAllocMap + ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleLocationCount_allocs) - x.refffbe2634 = refffbe2634 - x.allocsffbe2634 = allocsffbe2634 - return refffbe2634, allocsffbe2634 + 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 SwapchainDisplayNativeHdrCreateInfoAMD) PassValue() (C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { - if x.refffbe2634 != nil { - return *x.refffbe2634, nil +func (x CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { + if x.ref4524fa09 != nil { + return *x.ref4524fa09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52336,98 +52764,137 @@ func (x SwapchainDisplayNativeHdrCreateInfoAMD) PassValue() (C.VkSwapchainDispla // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Deref() { - if x.refffbe2634 == nil { +func (x *CoarseSampleOrderCustomNV) Deref() { + if x.ref4524fa09 == nil { return } - x.SType = (StructureType)(x.refffbe2634.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffbe2634.pNext)) - x.LocalDimmingEnable = (Bool32)(x.refffbe2634.localDimmingEnable) + x.ShadingRate = (ShadingRatePaletteEntryNV)(x.ref4524fa09.shadingRate) + x.SampleCount = (uint32)(x.ref4524fa09.sampleCount) + x.SampleLocationCount = (uint32)(x.ref4524fa09.sampleLocationCount) + packSCoarseSampleLocationNV(x.PSampleLocations, x.ref4524fa09.pSampleLocations) } -// allocPhysicalDeviceFragmentDensityMapFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT in C. +// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentDensityMapFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue)) +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 sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT{}) +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 *PhysicalDeviceFragmentDensityMapFeatures) Ref() *C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { if x == nil { return nil } - return x.reffa0bb2d9 + 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 *PhysicalDeviceFragmentDensityMapFeatures) Free() { - if x != nil && x.allocsfa0bb2d9 != nil { - x.allocsfa0bb2d9.(*cgoAllocMap).Free() - x.reffa0bb2d9 = nil +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Free() { + if x != nil && x.allocs54de8ca6 != nil { + x.allocs54de8ca6.(*cgoAllocMap).Free() + x.ref54de8ca6 = nil } } -// NewPhysicalDeviceFragmentDensityMapFeaturesRef 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 NewPhysicalDeviceFragmentDensityMapFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapFeatures { +func NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportCoarseSampleOrderStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentDensityMapFeatures) - obj.reffa0bb2d9 = (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(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 *PhysicalDeviceFragmentDensityMapFeatures) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassRef() (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffa0bb2d9 != nil { - return x.reffa0bb2d9, nil + } else if x.ref54de8ca6 != nil { + return x.ref54de8ca6, nil } - memfa0bb2d9 := allocPhysicalDeviceFragmentDensityMapFeaturesMemory(1) - reffa0bb2d9 := (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(memfa0bb2d9) - allocsfa0bb2d9 := new(cgoAllocMap) - allocsfa0bb2d9.Add(memfa0bb2d9) + mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) + ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) + allocs54de8ca6 := new(cgoAllocMap) + allocs54de8ca6.Add(mem54de8ca6) var csType_allocs *cgoAllocMap - reffa0bb2d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfa0bb2d9.Borrow(csType_allocs) + ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffa0bb2d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfa0bb2d9.Borrow(cpNext_allocs) + ref54de8ca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs54de8ca6.Borrow(cpNext_allocs) - var cfragmentDensityMap_allocs *cgoAllocMap - reffa0bb2d9.fragmentDensityMap, cfragmentDensityMap_allocs = (C.VkBool32)(x.FragmentDensityMap), cgoAllocsUnknown - allocsfa0bb2d9.Borrow(cfragmentDensityMap_allocs) + var csampleOrderType_allocs *cgoAllocMap + ref54de8ca6.sampleOrderType, csampleOrderType_allocs = (C.VkCoarseSampleOrderTypeNV)(x.SampleOrderType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csampleOrderType_allocs) - var cfragmentDensityMapDynamic_allocs *cgoAllocMap - reffa0bb2d9.fragmentDensityMapDynamic, cfragmentDensityMapDynamic_allocs = (C.VkBool32)(x.FragmentDensityMapDynamic), cgoAllocsUnknown - allocsfa0bb2d9.Borrow(cfragmentDensityMapDynamic_allocs) + var ccustomSampleOrderCount_allocs *cgoAllocMap + ref54de8ca6.customSampleOrderCount, ccustomSampleOrderCount_allocs = (C.uint32_t)(x.CustomSampleOrderCount), cgoAllocsUnknown + allocs54de8ca6.Borrow(ccustomSampleOrderCount_allocs) - var cfragmentDensityMapNonSubsampledImages_allocs *cgoAllocMap - reffa0bb2d9.fragmentDensityMapNonSubsampledImages, cfragmentDensityMapNonSubsampledImages_allocs = (C.VkBool32)(x.FragmentDensityMapNonSubsampledImages), cgoAllocsUnknown - allocsfa0bb2d9.Borrow(cfragmentDensityMapNonSubsampledImages_allocs) + var cpCustomSampleOrders_allocs *cgoAllocMap + ref54de8ca6.pCustomSampleOrders, cpCustomSampleOrders_allocs = unpackSCoarseSampleOrderCustomNV(x.PCustomSampleOrders) + allocs54de8ca6.Borrow(cpCustomSampleOrders_allocs) - x.reffa0bb2d9 = reffa0bb2d9 - x.allocsfa0bb2d9 = allocsfa0bb2d9 - return reffa0bb2d9, allocsfa0bb2d9 + 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 PhysicalDeviceFragmentDensityMapFeatures) PassValue() (C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { - if x.reffa0bb2d9 != nil { - return *x.reffa0bb2d9, nil +func (x PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { + if x.ref54de8ca6 != nil { + return *x.ref54de8ca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52435,100 +52902,92 @@ func (x PhysicalDeviceFragmentDensityMapFeatures) 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 *PhysicalDeviceFragmentDensityMapFeatures) Deref() { - if x.reffa0bb2d9 == nil { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Deref() { + if x.ref54de8ca6 == nil { return } - 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) + 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) } -// allocPhysicalDeviceFragmentDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT in C. +// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentDensityMapPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue)) +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 sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT{}) +const sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentDensityMapProperties) Ref() *C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { if x == nil { return nil } - return x.ref79e5ca31 + 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 *PhysicalDeviceFragmentDensityMapProperties) Free() { - if x != nil && x.allocs79e5ca31 != nil { - x.allocs79e5ca31.(*cgoAllocMap).Free() - x.ref79e5ca31 = nil +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Free() { + if x != nil && x.allocsf1f69e03 != nil { + x.allocsf1f69e03.(*cgoAllocMap).Free() + x.reff1f69e03 = nil } } -// NewPhysicalDeviceFragmentDensityMapPropertiesRef 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 NewPhysicalDeviceFragmentDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapProperties { +func NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceRepresentativeFragmentTestFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentDensityMapProperties) - obj.ref79e5ca31 = (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(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 *PhysicalDeviceFragmentDensityMapProperties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassRef() (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref79e5ca31 != nil { - return x.ref79e5ca31, nil + } else if x.reff1f69e03 != nil { + return x.reff1f69e03, nil } - mem79e5ca31 := allocPhysicalDeviceFragmentDensityMapPropertiesMemory(1) - ref79e5ca31 := (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(mem79e5ca31) - allocs79e5ca31 := new(cgoAllocMap) - allocs79e5ca31.Add(mem79e5ca31) + memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) + reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) + allocsf1f69e03 := new(cgoAllocMap) + allocsf1f69e03.Add(memf1f69e03) var csType_allocs *cgoAllocMap - ref79e5ca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs79e5ca31.Borrow(csType_allocs) + reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf1f69e03.Borrow(csType_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) + reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf1f69e03.Borrow(cpNext_allocs) - var cfragmentDensityInvocations_allocs *cgoAllocMap - ref79e5ca31.fragmentDensityInvocations, cfragmentDensityInvocations_allocs = (C.VkBool32)(x.FragmentDensityInvocations), cgoAllocsUnknown - allocs79e5ca31.Borrow(cfragmentDensityInvocations_allocs) + var crepresentativeFragmentTest_allocs *cgoAllocMap + reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown + allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) - x.ref79e5ca31 = ref79e5ca31 - x.allocs79e5ca31 = allocs79e5ca31 - return ref79e5ca31, allocs79e5ca31 + 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 PhysicalDeviceFragmentDensityMapProperties) PassValue() (C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { - if x.ref79e5ca31 != nil { - return *x.ref79e5ca31, nil +func (x PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { + if x.reff1f69e03 != nil { + return *x.reff1f69e03, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52536,92 +52995,90 @@ func (x PhysicalDeviceFragmentDensityMapProperties) 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 *PhysicalDeviceFragmentDensityMapProperties) Deref() { - if x.ref79e5ca31 == nil { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Deref() { + if x.reff1f69e03 == nil { return } - 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) + x.SType = (StructureType)(x.reff1f69e03.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1f69e03.pNext)) + x.RepresentativeFragmentTest = (Bool32)(x.reff1f69e03.representativeFragmentTest) } -// allocRenderPassFragmentDensityMapCreateInfoMemory allocates memory for type C.VkRenderPassFragmentDensityMapCreateInfoEXT in C. +// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassFragmentDensityMapCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassFragmentDensityMapCreateInfoValue)) +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 sizeOfRenderPassFragmentDensityMapCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassFragmentDensityMapCreateInfoEXT{}) +const sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassFragmentDensityMapCreateInfo) Ref() *C.VkRenderPassFragmentDensityMapCreateInfoEXT { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { if x == nil { return nil } - return x.ref76b25671 + 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 *RenderPassFragmentDensityMapCreateInfo) Free() { - if x != nil && x.allocs76b25671 != nil { - x.allocs76b25671.(*cgoAllocMap).Free() - x.ref76b25671 = nil +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Free() { + if x != nil && x.allocs9c224e21 != nil { + x.allocs9c224e21.(*cgoAllocMap).Free() + x.ref9c224e21 = nil } } -// NewRenderPassFragmentDensityMapCreateInfoRef 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 NewRenderPassFragmentDensityMapCreateInfoRef(ref unsafe.Pointer) *RenderPassFragmentDensityMapCreateInfo { +func NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineRepresentativeFragmentTestStateCreateInfoNV { if ref == nil { return nil } - obj := new(RenderPassFragmentDensityMapCreateInfo) - obj.ref76b25671 = (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(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 *RenderPassFragmentDensityMapCreateInfo) PassRef() (*C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) PassRef() (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref76b25671 != nil { - return x.ref76b25671, nil + } else if x.ref9c224e21 != nil { + return x.ref9c224e21, nil } - mem76b25671 := allocRenderPassFragmentDensityMapCreateInfoMemory(1) - ref76b25671 := (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(mem76b25671) - allocs76b25671 := new(cgoAllocMap) - allocs76b25671.Add(mem76b25671) + mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) + ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) + allocs9c224e21 := new(cgoAllocMap) + allocs9c224e21.Add(mem9c224e21) var csType_allocs *cgoAllocMap - ref76b25671.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs76b25671.Borrow(csType_allocs) + ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9c224e21.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref76b25671.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs76b25671.Borrow(cpNext_allocs) + ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9c224e21.Borrow(cpNext_allocs) - var cfragmentDensityMapAttachment_allocs *cgoAllocMap - ref76b25671.fragmentDensityMapAttachment, cfragmentDensityMapAttachment_allocs = x.FragmentDensityMapAttachment.PassValue() - allocs76b25671.Borrow(cfragmentDensityMapAttachment_allocs) + var crepresentativeFragmentTestEnable_allocs *cgoAllocMap + ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown + allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) - x.ref76b25671 = ref76b25671 - x.allocs76b25671 = allocs76b25671 - return ref76b25671, allocs76b25671 + 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 RenderPassFragmentDensityMapCreateInfo) PassValue() (C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { - if x.ref76b25671 != nil { - return *x.ref76b25671, nil +func (x PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { + if x.ref9c224e21 != nil { + return *x.ref9c224e21, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52629,94 +53086,90 @@ func (x RenderPassFragmentDensityMapCreateInfo) PassValue() (C.VkRenderPassFragm // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassFragmentDensityMapCreateInfo) Deref() { - if x.ref76b25671 == nil { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Deref() { + if x.ref9c224e21 == nil { return } - x.SType = (StructureType)(x.ref76b25671.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76b25671.pNext)) - x.FragmentDensityMapAttachment = *NewAttachmentReferenceRef(unsafe.Pointer(&x.ref76b25671.fragmentDensityMapAttachment)) + x.SType = (StructureType)(x.ref9c224e21.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c224e21.pNext)) + x.RepresentativeFragmentTestEnable = (Bool32)(x.ref9c224e21.representativeFragmentTestEnable) } -// allocPhysicalDeviceShaderCoreProperties2AMDMemory allocates memory for type C.VkPhysicalDeviceShaderCoreProperties2AMD in C. +// allocPhysicalDeviceImageViewImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceImageViewImageFormatInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderCoreProperties2AMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCoreProperties2AMDValue)) +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 sizeOfPhysicalDeviceShaderCoreProperties2AMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCoreProperties2AMD{}) +const sizeOfPhysicalDeviceImageViewImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewImageFormatInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderCoreProperties2AMD) Ref() *C.VkPhysicalDeviceShaderCoreProperties2AMD { +func (x *PhysicalDeviceImageViewImageFormatInfo) Ref() *C.VkPhysicalDeviceImageViewImageFormatInfoEXT { if x == nil { return nil } - return x.ref7be3d4c4 + 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 *PhysicalDeviceShaderCoreProperties2AMD) Free() { - if x != nil && x.allocs7be3d4c4 != nil { - x.allocs7be3d4c4.(*cgoAllocMap).Free() - x.ref7be3d4c4 = nil +func (x *PhysicalDeviceImageViewImageFormatInfo) Free() { + if x != nil && x.allocs99e4ab46 != nil { + x.allocs99e4ab46.(*cgoAllocMap).Free() + x.ref99e4ab46 = nil } } -// NewPhysicalDeviceShaderCoreProperties2AMDRef 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 NewPhysicalDeviceShaderCoreProperties2AMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCoreProperties2AMD { +func NewPhysicalDeviceImageViewImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageViewImageFormatInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderCoreProperties2AMD) - obj.ref7be3d4c4 = (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(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 *PhysicalDeviceShaderCoreProperties2AMD) PassRef() (*C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { +func (x *PhysicalDeviceImageViewImageFormatInfo) PassRef() (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7be3d4c4 != nil { - return x.ref7be3d4c4, nil + } else if x.ref99e4ab46 != nil { + return x.ref99e4ab46, nil } - mem7be3d4c4 := allocPhysicalDeviceShaderCoreProperties2AMDMemory(1) - ref7be3d4c4 := (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(mem7be3d4c4) - allocs7be3d4c4 := new(cgoAllocMap) - allocs7be3d4c4.Add(mem7be3d4c4) + mem99e4ab46 := allocPhysicalDeviceImageViewImageFormatInfoMemory(1) + ref99e4ab46 := (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(mem99e4ab46) + allocs99e4ab46 := new(cgoAllocMap) + allocs99e4ab46.Add(mem99e4ab46) var csType_allocs *cgoAllocMap - ref7be3d4c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7be3d4c4.Borrow(csType_allocs) + ref99e4ab46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs99e4ab46.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7be3d4c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7be3d4c4.Borrow(cpNext_allocs) - - var cshaderCoreFeatures_allocs *cgoAllocMap - ref7be3d4c4.shaderCoreFeatures, cshaderCoreFeatures_allocs = (C.VkShaderCorePropertiesFlagsAMD)(x.ShaderCoreFeatures), cgoAllocsUnknown - allocs7be3d4c4.Borrow(cshaderCoreFeatures_allocs) + ref99e4ab46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs99e4ab46.Borrow(cpNext_allocs) - var cactiveComputeUnitCount_allocs *cgoAllocMap - ref7be3d4c4.activeComputeUnitCount, cactiveComputeUnitCount_allocs = (C.uint32_t)(x.ActiveComputeUnitCount), cgoAllocsUnknown - allocs7be3d4c4.Borrow(cactiveComputeUnitCount_allocs) + var cimageViewType_allocs *cgoAllocMap + ref99e4ab46.imageViewType, cimageViewType_allocs = (C.VkImageViewType)(x.ImageViewType), cgoAllocsUnknown + allocs99e4ab46.Borrow(cimageViewType_allocs) - x.ref7be3d4c4 = ref7be3d4c4 - x.allocs7be3d4c4 = allocs7be3d4c4 - return ref7be3d4c4, allocs7be3d4c4 + 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 PhysicalDeviceShaderCoreProperties2AMD) PassValue() (C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { - if x.ref7be3d4c4 != nil { - return *x.ref7be3d4c4, nil +func (x PhysicalDeviceImageViewImageFormatInfo) PassValue() (C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { + if x.ref99e4ab46 != nil { + return *x.ref99e4ab46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52724,91 +53177,94 @@ func (x PhysicalDeviceShaderCoreProperties2AMD) PassValue() (C.VkPhysicalDeviceS // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderCoreProperties2AMD) Deref() { - if x.ref7be3d4c4 == nil { +func (x *PhysicalDeviceImageViewImageFormatInfo) Deref() { + if x.ref99e4ab46 == nil { return } - 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) + x.SType = (StructureType)(x.ref99e4ab46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref99e4ab46.pNext)) + x.ImageViewType = (ImageViewType)(x.ref99e4ab46.imageViewType) } -// allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceCoherentMemoryFeaturesAMD in C. +// allocFilterCubicImageViewImageFormatPropertiesMemory allocates memory for type C.VkFilterCubicImageViewImageFormatPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue)) +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 sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoherentMemoryFeaturesAMD{}) +const sizeOfFilterCubicImageViewImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkFilterCubicImageViewImageFormatPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Ref() *C.VkPhysicalDeviceCoherentMemoryFeaturesAMD { +func (x *FilterCubicImageViewImageFormatProperties) Ref() *C.VkFilterCubicImageViewImageFormatPropertiesEXT { if x == nil { return nil } - return x.ref34cb87b4 + 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) Free() { - if x != nil && x.allocs34cb87b4 != nil { - x.allocs34cb87b4.(*cgoAllocMap).Free() - x.ref34cb87b4 = nil +func (x *FilterCubicImageViewImageFormatProperties) Free() { + if x != nil && x.allocscf60927c != nil { + x.allocscf60927c.(*cgoAllocMap).Free() + x.refcf60927c = nil } } -// NewPhysicalDeviceCoherentMemoryFeaturesAMDRef 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 NewPhysicalDeviceCoherentMemoryFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceCoherentMemoryFeaturesAMD { +func NewFilterCubicImageViewImageFormatPropertiesRef(ref unsafe.Pointer) *FilterCubicImageViewImageFormatProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceCoherentMemoryFeaturesAMD) - obj.ref34cb87b4 = (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(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 *PhysicalDeviceCoherentMemoryFeaturesAMD) PassRef() (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { +func (x *FilterCubicImageViewImageFormatProperties) PassRef() (*C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref34cb87b4 != nil { - return x.ref34cb87b4, nil + } else if x.refcf60927c != nil { + return x.refcf60927c, nil } - mem34cb87b4 := allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(1) - ref34cb87b4 := (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(mem34cb87b4) - allocs34cb87b4 := new(cgoAllocMap) - allocs34cb87b4.Add(mem34cb87b4) + memcf60927c := allocFilterCubicImageViewImageFormatPropertiesMemory(1) + refcf60927c := (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(memcf60927c) + allocscf60927c := new(cgoAllocMap) + allocscf60927c.Add(memcf60927c) var csType_allocs *cgoAllocMap - ref34cb87b4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs34cb87b4.Borrow(csType_allocs) + refcf60927c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscf60927c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref34cb87b4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs34cb87b4.Borrow(cpNext_allocs) + refcf60927c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscf60927c.Borrow(cpNext_allocs) - var cdeviceCoherentMemory_allocs *cgoAllocMap - ref34cb87b4.deviceCoherentMemory, cdeviceCoherentMemory_allocs = (C.VkBool32)(x.DeviceCoherentMemory), cgoAllocsUnknown - allocs34cb87b4.Borrow(cdeviceCoherentMemory_allocs) + var cfilterCubic_allocs *cgoAllocMap + refcf60927c.filterCubic, cfilterCubic_allocs = (C.VkBool32)(x.FilterCubic), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubic_allocs) - x.ref34cb87b4 = ref34cb87b4 - x.allocs34cb87b4 = allocs34cb87b4 - return ref34cb87b4, allocs34cb87b4 + var cfilterCubicMinmax_allocs *cgoAllocMap + refcf60927c.filterCubicMinmax, cfilterCubicMinmax_allocs = (C.VkBool32)(x.FilterCubicMinmax), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubicMinmax_allocs) + + 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 PhysicalDeviceCoherentMemoryFeaturesAMD) PassValue() (C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { - if x.ref34cb87b4 != nil { - return *x.ref34cb87b4, nil +func (x FilterCubicImageViewImageFormatProperties) PassValue() (C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { + if x.refcf60927c != nil { + return *x.refcf60927c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52816,94 +53272,95 @@ func (x PhysicalDeviceCoherentMemoryFeaturesAMD) 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) Deref() { - if x.ref34cb87b4 == nil { +func (x *FilterCubicImageViewImageFormatProperties) Deref() { + if x.refcf60927c == nil { return } - x.SType = (StructureType)(x.ref34cb87b4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34cb87b4.pNext)) - x.DeviceCoherentMemory = (Bool32)(x.ref34cb87b4.deviceCoherentMemory) + 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) } -// allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT in C. +// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue)) +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 sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT{}) +const sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderImageAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { +func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { if x == nil { return nil } - return x.ref1b0fbd + 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 *PhysicalDeviceShaderImageAtomicInt64Features) Free() { - if x != nil && x.allocs1b0fbd != nil { - x.allocs1b0fbd.(*cgoAllocMap).Free() - x.ref1b0fbd = nil +func (x *ImportMemoryHostPointerInfo) Free() { + if x != nil && x.allocsfe09253e != nil { + x.allocsfe09253e.(*cgoAllocMap).Free() + x.reffe09253e = nil } } -// NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef 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 NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageAtomicInt64Features { +func NewImportMemoryHostPointerInfoRef(ref unsafe.Pointer) *ImportMemoryHostPointerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderImageAtomicInt64Features) - obj.ref1b0fbd = (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(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 *PhysicalDeviceShaderImageAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { +func (x *ImportMemoryHostPointerInfo) PassRef() (*C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1b0fbd != nil { - return x.ref1b0fbd, nil + } else if x.reffe09253e != nil { + return x.reffe09253e, nil } - mem1b0fbd := allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(1) - ref1b0fbd := (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(mem1b0fbd) - allocs1b0fbd := new(cgoAllocMap) - allocs1b0fbd.Add(mem1b0fbd) + memfe09253e := allocImportMemoryHostPointerInfoMemory(1) + reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) + allocsfe09253e := new(cgoAllocMap) + allocsfe09253e.Add(memfe09253e) var csType_allocs *cgoAllocMap - ref1b0fbd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1b0fbd.Borrow(csType_allocs) + reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe09253e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1b0fbd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1b0fbd.Borrow(cpNext_allocs) + reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpNext_allocs) - var cshaderImageInt64Atomics_allocs *cgoAllocMap - ref1b0fbd.shaderImageInt64Atomics, cshaderImageInt64Atomics_allocs = (C.VkBool32)(x.ShaderImageInt64Atomics), cgoAllocsUnknown - allocs1b0fbd.Borrow(cshaderImageInt64Atomics_allocs) + var chandleType_allocs *cgoAllocMap + reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsfe09253e.Borrow(chandleType_allocs) - var csparseImageInt64Atomics_allocs *cgoAllocMap - ref1b0fbd.sparseImageInt64Atomics, csparseImageInt64Atomics_allocs = (C.VkBool32)(x.SparseImageInt64Atomics), cgoAllocsUnknown - allocs1b0fbd.Borrow(csparseImageInt64Atomics_allocs) + var cpHostPointer_allocs *cgoAllocMap + reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpHostPointer_allocs) - x.ref1b0fbd = ref1b0fbd - x.allocs1b0fbd = allocs1b0fbd - return ref1b0fbd, allocs1b0fbd + 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 PhysicalDeviceShaderImageAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { - if x.ref1b0fbd != nil { - return *x.ref1b0fbd, nil +func (x ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { + if x.reffe09253e != nil { + return *x.reffe09253e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -52911,95 +53368,91 @@ func (x PhysicalDeviceShaderImageAtomicInt64Features) 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 *PhysicalDeviceShaderImageAtomicInt64Features) Deref() { - if x.ref1b0fbd == nil { +func (x *ImportMemoryHostPointerInfo) Deref() { + if x.reffe09253e == nil { return } - 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) + 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)) } -// allocPhysicalDeviceMemoryBudgetPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryBudgetPropertiesEXT in C. +// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMemoryBudgetPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryBudgetPropertiesValue)) +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 sizeOfPhysicalDeviceMemoryBudgetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryBudgetPropertiesEXT{}) +const sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMemoryBudgetProperties) Ref() *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT { +func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { if x == nil { return nil } - return x.refa7406c48 + 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 *PhysicalDeviceMemoryBudgetProperties) Free() { - if x != nil && x.allocsa7406c48 != nil { - x.allocsa7406c48.(*cgoAllocMap).Free() - x.refa7406c48 = nil +func (x *MemoryHostPointerProperties) Free() { + if x != nil && x.allocsebf46a84 != nil { + x.allocsebf46a84.(*cgoAllocMap).Free() + x.refebf46a84 = nil } } -// NewPhysicalDeviceMemoryBudgetPropertiesRef 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 NewPhysicalDeviceMemoryBudgetPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryBudgetProperties { +func NewMemoryHostPointerPropertiesRef(ref unsafe.Pointer) *MemoryHostPointerProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryBudgetProperties) - obj.refa7406c48 = (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(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 *PhysicalDeviceMemoryBudgetProperties) PassRef() (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { +func (x *MemoryHostPointerProperties) PassRef() (*C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa7406c48 != nil { - return x.refa7406c48, nil + } else if x.refebf46a84 != nil { + return x.refebf46a84, nil } - mema7406c48 := allocPhysicalDeviceMemoryBudgetPropertiesMemory(1) - refa7406c48 := (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(mema7406c48) - allocsa7406c48 := new(cgoAllocMap) - allocsa7406c48.Add(mema7406c48) + memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) + refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) + allocsebf46a84 := new(cgoAllocMap) + allocsebf46a84.Add(memebf46a84) var csType_allocs *cgoAllocMap - refa7406c48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa7406c48.Borrow(csType_allocs) + refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsebf46a84.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa7406c48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa7406c48.Borrow(cpNext_allocs) - - var cheapBudget_allocs *cgoAllocMap - refa7406c48.heapBudget, cheapBudget_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapBudget)), cgoAllocsUnknown - allocsa7406c48.Borrow(cheapBudget_allocs) + refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsebf46a84.Borrow(cpNext_allocs) - var cheapUsage_allocs *cgoAllocMap - refa7406c48.heapUsage, cheapUsage_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapUsage)), cgoAllocsUnknown - allocsa7406c48.Borrow(cheapUsage_allocs) + var cmemoryTypeBits_allocs *cgoAllocMap + refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocsebf46a84.Borrow(cmemoryTypeBits_allocs) - x.refa7406c48 = refa7406c48 - x.allocsa7406c48 = allocsa7406c48 - return refa7406c48, allocsa7406c48 + 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 PhysicalDeviceMemoryBudgetProperties) PassValue() (C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { - if x.refa7406c48 != nil { - return *x.refa7406c48, nil +func (x MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { + if x.refebf46a84 != nil { + return *x.refebf46a84, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53007,91 +53460,90 @@ func (x PhysicalDeviceMemoryBudgetProperties) PassValue() (C.VkPhysicalDeviceMem // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMemoryBudgetProperties) Deref() { - if x.refa7406c48 == nil { +func (x *MemoryHostPointerProperties) Deref() { + if x.refebf46a84 == nil { return } - 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)) + x.SType = (StructureType)(x.refebf46a84.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refebf46a84.pNext)) + x.MemoryTypeBits = (uint32)(x.refebf46a84.memoryTypeBits) } -// allocPhysicalDeviceMemoryPriorityFeaturesMemory allocates memory for type C.VkPhysicalDeviceMemoryPriorityFeaturesEXT in C. +// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMemoryPriorityFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPriorityFeaturesValue)) +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 sizeOfPhysicalDeviceMemoryPriorityFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryPriorityFeaturesEXT{}) +const sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMemoryPriorityFeatures) Ref() *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT { +func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { if x == nil { return nil } - return x.ref24f8641c + 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 *PhysicalDeviceMemoryPriorityFeatures) Free() { - if x != nil && x.allocs24f8641c != nil { - x.allocs24f8641c.(*cgoAllocMap).Free() - x.ref24f8641c = nil +func (x *PhysicalDeviceExternalMemoryHostProperties) Free() { + if x != nil && x.allocs7f697d15 != nil { + x.allocs7f697d15.(*cgoAllocMap).Free() + x.ref7f697d15 = nil } } -// NewPhysicalDeviceMemoryPriorityFeaturesRef 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 NewPhysicalDeviceMemoryPriorityFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryPriorityFeatures { +func NewPhysicalDeviceExternalMemoryHostPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryHostProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryPriorityFeatures) - obj.ref24f8641c = (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(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 *PhysicalDeviceMemoryPriorityFeatures) PassRef() (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceExternalMemoryHostProperties) PassRef() (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref24f8641c != nil { - return x.ref24f8641c, nil + } else if x.ref7f697d15 != nil { + return x.ref7f697d15, nil } - mem24f8641c := allocPhysicalDeviceMemoryPriorityFeaturesMemory(1) - ref24f8641c := (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(mem24f8641c) - allocs24f8641c := new(cgoAllocMap) - allocs24f8641c.Add(mem24f8641c) + mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) + ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) + allocs7f697d15 := new(cgoAllocMap) + allocs7f697d15.Add(mem7f697d15) var csType_allocs *cgoAllocMap - ref24f8641c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs24f8641c.Borrow(csType_allocs) + ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7f697d15.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref24f8641c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs24f8641c.Borrow(cpNext_allocs) + ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7f697d15.Borrow(cpNext_allocs) - var cmemoryPriority_allocs *cgoAllocMap - ref24f8641c.memoryPriority, cmemoryPriority_allocs = (C.VkBool32)(x.MemoryPriority), cgoAllocsUnknown - allocs24f8641c.Borrow(cmemoryPriority_allocs) + var cminImportedHostPointerAlignment_allocs *cgoAllocMap + ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown + allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) - x.ref24f8641c = ref24f8641c - x.allocs24f8641c = allocs24f8641c - return ref24f8641c, allocs24f8641c + 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 PhysicalDeviceMemoryPriorityFeatures) PassValue() (C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { - if x.ref24f8641c != nil { - return *x.ref24f8641c, nil +func (x PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { + if x.ref7f697d15 != nil { + return *x.ref7f697d15, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53099,90 +53551,90 @@ func (x PhysicalDeviceMemoryPriorityFeatures) PassValue() (C.VkPhysicalDeviceMem // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMemoryPriorityFeatures) Deref() { - if x.ref24f8641c == nil { +func (x *PhysicalDeviceExternalMemoryHostProperties) Deref() { + if x.ref7f697d15 == nil { return } - x.SType = (StructureType)(x.ref24f8641c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f8641c.pNext)) - x.MemoryPriority = (Bool32)(x.ref24f8641c.memoryPriority) + x.SType = (StructureType)(x.ref7f697d15.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7f697d15.pNext)) + x.MinImportedHostPointerAlignment = (DeviceSize)(x.ref7f697d15.minImportedHostPointerAlignment) } -// allocMemoryPriorityAllocateInfoMemory allocates memory for type C.VkMemoryPriorityAllocateInfoEXT in C. +// allocPipelineCompilerControlCreateInfoAMDMemory allocates memory for type C.VkPipelineCompilerControlCreateInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryPriorityAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryPriorityAllocateInfoValue)) +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 sizeOfMemoryPriorityAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryPriorityAllocateInfoEXT{}) +const sizeOfPipelineCompilerControlCreateInfoAMDValue = unsafe.Sizeof([1]C.VkPipelineCompilerControlCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryPriorityAllocateInfo) Ref() *C.VkMemoryPriorityAllocateInfoEXT { +func (x *PipelineCompilerControlCreateInfoAMD) Ref() *C.VkPipelineCompilerControlCreateInfoAMD { if x == nil { return nil } - return x.refd3540846 + 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 *MemoryPriorityAllocateInfo) Free() { - if x != nil && x.allocsd3540846 != nil { - x.allocsd3540846.(*cgoAllocMap).Free() - x.refd3540846 = nil +func (x *PipelineCompilerControlCreateInfoAMD) Free() { + if x != nil && x.allocs46a09e46 != nil { + x.allocs46a09e46.(*cgoAllocMap).Free() + x.ref46a09e46 = nil } } -// NewMemoryPriorityAllocateInfoRef 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 NewMemoryPriorityAllocateInfoRef(ref unsafe.Pointer) *MemoryPriorityAllocateInfo { +func NewPipelineCompilerControlCreateInfoAMDRef(ref unsafe.Pointer) *PipelineCompilerControlCreateInfoAMD { if ref == nil { return nil } - obj := new(MemoryPriorityAllocateInfo) - obj.refd3540846 = (*C.VkMemoryPriorityAllocateInfoEXT)(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 *MemoryPriorityAllocateInfo) PassRef() (*C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { +func (x *PipelineCompilerControlCreateInfoAMD) PassRef() (*C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd3540846 != nil { - return x.refd3540846, nil + } else if x.ref46a09e46 != nil { + return x.ref46a09e46, nil } - memd3540846 := allocMemoryPriorityAllocateInfoMemory(1) - refd3540846 := (*C.VkMemoryPriorityAllocateInfoEXT)(memd3540846) - allocsd3540846 := new(cgoAllocMap) - allocsd3540846.Add(memd3540846) + mem46a09e46 := allocPipelineCompilerControlCreateInfoAMDMemory(1) + ref46a09e46 := (*C.VkPipelineCompilerControlCreateInfoAMD)(mem46a09e46) + allocs46a09e46 := new(cgoAllocMap) + allocs46a09e46.Add(mem46a09e46) var csType_allocs *cgoAllocMap - refd3540846.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd3540846.Borrow(csType_allocs) + ref46a09e46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs46a09e46.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd3540846.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd3540846.Borrow(cpNext_allocs) + ref46a09e46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs46a09e46.Borrow(cpNext_allocs) - var cpriority_allocs *cgoAllocMap - refd3540846.priority, cpriority_allocs = (C.float)(x.Priority), cgoAllocsUnknown - allocsd3540846.Borrow(cpriority_allocs) + var ccompilerControlFlags_allocs *cgoAllocMap + ref46a09e46.compilerControlFlags, ccompilerControlFlags_allocs = (C.VkPipelineCompilerControlFlagsAMD)(x.CompilerControlFlags), cgoAllocsUnknown + allocs46a09e46.Borrow(ccompilerControlFlags_allocs) - x.refd3540846 = refd3540846 - x.allocsd3540846 = allocsd3540846 - return refd3540846, allocsd3540846 + 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 MemoryPriorityAllocateInfo) PassValue() (C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { - if x.refd3540846 != nil { - return *x.refd3540846, nil +func (x PipelineCompilerControlCreateInfoAMD) PassValue() (C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { + if x.ref46a09e46 != nil { + return *x.ref46a09e46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53190,90 +53642,90 @@ func (x MemoryPriorityAllocateInfo) PassValue() (C.VkMemoryPriorityAllocateInfoE // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryPriorityAllocateInfo) Deref() { - if x.refd3540846 == nil { +func (x *PipelineCompilerControlCreateInfoAMD) Deref() { + if x.ref46a09e46 == nil { return } - x.SType = (StructureType)(x.refd3540846.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd3540846.pNext)) - x.Priority = (float32)(x.refd3540846.priority) + x.SType = (StructureType)(x.ref46a09e46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref46a09e46.pNext)) + x.CompilerControlFlags = (PipelineCompilerControlFlagsAMD)(x.ref46a09e46.compilerControlFlags) } -// allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV in C. +// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue)) +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 sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV{}) +const sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Ref() *C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { +func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { if x == nil { return nil } - return x.refade17227 + 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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Free() { - if x != nil && x.allocsade17227 != nil { - x.allocsade17227.(*cgoAllocMap).Free() - x.refade17227 = nil +func (x *CalibratedTimestampInfo) Free() { + if x != nil && x.allocs5f061d2a != nil { + x.allocs5f061d2a.(*cgoAllocMap).Free() + x.ref5f061d2a = nil } } -// NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef 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 NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { +func NewCalibratedTimestampInfoRef(ref unsafe.Pointer) *CalibratedTimestampInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) - obj.refade17227 = (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassRef() (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { +func (x *CalibratedTimestampInfo) PassRef() (*C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refade17227 != nil { - return x.refade17227, nil + } else if x.ref5f061d2a != nil { + return x.ref5f061d2a, nil } - memade17227 := allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(1) - refade17227 := (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(memade17227) - allocsade17227 := new(cgoAllocMap) - allocsade17227.Add(memade17227) + mem5f061d2a := allocCalibratedTimestampInfoMemory(1) + ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) + allocs5f061d2a := new(cgoAllocMap) + allocs5f061d2a.Add(mem5f061d2a) var csType_allocs *cgoAllocMap - refade17227.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsade17227.Borrow(csType_allocs) + ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5f061d2a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refade17227.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsade17227.Borrow(cpNext_allocs) + ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5f061d2a.Borrow(cpNext_allocs) - var cdedicatedAllocationImageAliasing_allocs *cgoAllocMap - refade17227.dedicatedAllocationImageAliasing, cdedicatedAllocationImageAliasing_allocs = (C.VkBool32)(x.DedicatedAllocationImageAliasing), cgoAllocsUnknown - allocsade17227.Borrow(cdedicatedAllocationImageAliasing_allocs) + var ctimeDomain_allocs *cgoAllocMap + ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown + allocs5f061d2a.Borrow(ctimeDomain_allocs) - x.refade17227 = refade17227 - x.allocsade17227 = allocsade17227 - return refade17227, allocsade17227 + 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 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassValue() (C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { - if x.refade17227 != nil { - return *x.refade17227, nil +func (x CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { + if x.ref5f061d2a != nil { + return *x.ref5f061d2a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53281,86 +53733,142 @@ func (x PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassValue() (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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Deref() { - if x.refade17227 == nil { +func (x *CalibratedTimestampInfo) Deref() { + if x.ref5f061d2a == nil { return } - x.SType = (StructureType)(x.refade17227.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refade17227.pNext)) - x.DedicatedAllocationImageAliasing = (Bool32)(x.refade17227.dedicatedAllocationImageAliasing) + x.SType = (StructureType)(x.ref5f061d2a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5f061d2a.pNext)) + x.TimeDomain = (TimeDomain)(x.ref5f061d2a.timeDomain) +} + +// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD 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)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem } +const sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBufferAddressFeatures) Ref() *C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { +func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { if x == nil { return nil } - return x.refe3bd03a5 + 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 *PhysicalDeviceBufferAddressFeatures) Free() { - if x != nil && x.allocse3bd03a5 != nil { - x.allocse3bd03a5.(*cgoAllocMap).Free() - x.refe3bd03a5 = nil +func (x *PhysicalDeviceShaderCorePropertiesAMD) Free() { + if x != nil && x.allocsde4b3b09 != nil { + x.allocsde4b3b09.(*cgoAllocMap).Free() + x.refde4b3b09 = nil } } -// NewPhysicalDeviceBufferAddressFeaturesRef 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 NewPhysicalDeviceBufferAddressFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBufferAddressFeatures { +func NewPhysicalDeviceShaderCorePropertiesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCorePropertiesAMD { if ref == nil { return nil } - obj := new(PhysicalDeviceBufferAddressFeatures) - obj.refe3bd03a5 = (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(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 *PhysicalDeviceBufferAddressFeatures) PassRef() (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderCorePropertiesAMD) PassRef() (*C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe3bd03a5 != nil { - return x.refe3bd03a5, nil + } else if x.refde4b3b09 != nil { + return x.refde4b3b09, nil } - meme3bd03a5 := allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(1) - refe3bd03a5 := (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(meme3bd03a5) - allocse3bd03a5 := new(cgoAllocMap) - allocse3bd03a5.Add(meme3bd03a5) + memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) + refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) + allocsde4b3b09 := new(cgoAllocMap) + allocsde4b3b09.Add(memde4b3b09) var csType_allocs *cgoAllocMap - refe3bd03a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse3bd03a5.Borrow(csType_allocs) + refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsde4b3b09.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe3bd03a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse3bd03a5.Borrow(cpNext_allocs) + refde4b3b09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsde4b3b09.Borrow(cpNext_allocs) - var cbufferDeviceAddress_allocs *cgoAllocMap - refe3bd03a5.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown - allocse3bd03a5.Borrow(cbufferDeviceAddress_allocs) + var cshaderEngineCount_allocs *cgoAllocMap + refde4b3b09.shaderEngineCount, cshaderEngineCount_allocs = (C.uint32_t)(x.ShaderEngineCount), cgoAllocsUnknown + allocsde4b3b09.Borrow(cshaderEngineCount_allocs) - var cbufferDeviceAddressCaptureReplay_allocs *cgoAllocMap - refe3bd03a5.bufferDeviceAddressCaptureReplay, cbufferDeviceAddressCaptureReplay_allocs = (C.VkBool32)(x.BufferDeviceAddressCaptureReplay), cgoAllocsUnknown - allocse3bd03a5.Borrow(cbufferDeviceAddressCaptureReplay_allocs) + var cshaderArraysPerEngineCount_allocs *cgoAllocMap + refde4b3b09.shaderArraysPerEngineCount, cshaderArraysPerEngineCount_allocs = (C.uint32_t)(x.ShaderArraysPerEngineCount), cgoAllocsUnknown + allocsde4b3b09.Borrow(cshaderArraysPerEngineCount_allocs) - var cbufferDeviceAddressMultiDevice_allocs *cgoAllocMap - refe3bd03a5.bufferDeviceAddressMultiDevice, cbufferDeviceAddressMultiDevice_allocs = (C.VkBool32)(x.BufferDeviceAddressMultiDevice), cgoAllocsUnknown - allocse3bd03a5.Borrow(cbufferDeviceAddressMultiDevice_allocs) + var ccomputeUnitsPerShaderArray_allocs *cgoAllocMap + refde4b3b09.computeUnitsPerShaderArray, ccomputeUnitsPerShaderArray_allocs = (C.uint32_t)(x.ComputeUnitsPerShaderArray), cgoAllocsUnknown + allocsde4b3b09.Borrow(ccomputeUnitsPerShaderArray_allocs) - x.refe3bd03a5 = refe3bd03a5 - x.allocse3bd03a5 = allocse3bd03a5 - return refe3bd03a5, allocse3bd03a5 + 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 PhysicalDeviceBufferAddressFeatures) PassValue() (C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { - if x.refe3bd03a5 != nil { - return *x.refe3bd03a5, nil +func (x PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { + if x.refde4b3b09 != nil { + return *x.refde4b3b09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53368,92 +53876,103 @@ func (x PhysicalDeviceBufferAddressFeatures) PassValue() (C.VkPhysicalDeviceBuff // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceBufferAddressFeatures) Deref() { - if x.refe3bd03a5 == nil { +func (x *PhysicalDeviceShaderCorePropertiesAMD) Deref() { + if x.refde4b3b09 == nil { return } - 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) + 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) } -// allocBufferDeviceAddressCreateInfoMemory allocates memory for type C.VkBufferDeviceAddressCreateInfoEXT in C. +// allocDeviceMemoryOverallocationCreateInfoAMDMemory allocates memory for type C.VkDeviceMemoryOverallocationCreateInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferDeviceAddressCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferDeviceAddressCreateInfoValue)) +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 sizeOfBufferDeviceAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressCreateInfoEXT{}) +const sizeOfDeviceMemoryOverallocationCreateInfoAMDValue = unsafe.Sizeof([1]C.VkDeviceMemoryOverallocationCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferDeviceAddressCreateInfo) Ref() *C.VkBufferDeviceAddressCreateInfoEXT { +func (x *DeviceMemoryOverallocationCreateInfoAMD) Ref() *C.VkDeviceMemoryOverallocationCreateInfoAMD { if x == nil { return nil } - return x.ref4c6937a9 + 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 *BufferDeviceAddressCreateInfo) Free() { - if x != nil && x.allocs4c6937a9 != nil { - x.allocs4c6937a9.(*cgoAllocMap).Free() - x.ref4c6937a9 = nil +func (x *DeviceMemoryOverallocationCreateInfoAMD) Free() { + if x != nil && x.allocs5ccee475 != nil { + x.allocs5ccee475.(*cgoAllocMap).Free() + x.ref5ccee475 = nil } } -// NewBufferDeviceAddressCreateInfoRef 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 NewBufferDeviceAddressCreateInfoRef(ref unsafe.Pointer) *BufferDeviceAddressCreateInfo { +func NewDeviceMemoryOverallocationCreateInfoAMDRef(ref unsafe.Pointer) *DeviceMemoryOverallocationCreateInfoAMD { if ref == nil { return nil } - obj := new(BufferDeviceAddressCreateInfo) - obj.ref4c6937a9 = (*C.VkBufferDeviceAddressCreateInfoEXT)(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 *BufferDeviceAddressCreateInfo) PassRef() (*C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { +func (x *DeviceMemoryOverallocationCreateInfoAMD) PassRef() (*C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4c6937a9 != nil { - return x.ref4c6937a9, nil + } else if x.ref5ccee475 != nil { + return x.ref5ccee475, nil } - mem4c6937a9 := allocBufferDeviceAddressCreateInfoMemory(1) - ref4c6937a9 := (*C.VkBufferDeviceAddressCreateInfoEXT)(mem4c6937a9) - allocs4c6937a9 := new(cgoAllocMap) - allocs4c6937a9.Add(mem4c6937a9) + mem5ccee475 := allocDeviceMemoryOverallocationCreateInfoAMDMemory(1) + ref5ccee475 := (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(mem5ccee475) + allocs5ccee475 := new(cgoAllocMap) + allocs5ccee475.Add(mem5ccee475) var csType_allocs *cgoAllocMap - ref4c6937a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4c6937a9.Borrow(csType_allocs) + ref5ccee475.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5ccee475.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4c6937a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4c6937a9.Borrow(cpNext_allocs) + ref5ccee475.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5ccee475.Borrow(cpNext_allocs) - var cdeviceAddress_allocs *cgoAllocMap - ref4c6937a9.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown - allocs4c6937a9.Borrow(cdeviceAddress_allocs) + var coverallocationBehavior_allocs *cgoAllocMap + ref5ccee475.overallocationBehavior, coverallocationBehavior_allocs = (C.VkMemoryOverallocationBehaviorAMD)(x.OverallocationBehavior), cgoAllocsUnknown + allocs5ccee475.Borrow(coverallocationBehavior_allocs) - x.ref4c6937a9 = ref4c6937a9 - x.allocs4c6937a9 = allocs4c6937a9 - return ref4c6937a9, allocs4c6937a9 + 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 BufferDeviceAddressCreateInfo) PassValue() (C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { - if x.ref4c6937a9 != nil { - return *x.ref4c6937a9, nil +func (x DeviceMemoryOverallocationCreateInfoAMD) PassValue() (C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { + if x.ref5ccee475 != nil { + return *x.ref5ccee475, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53461,102 +53980,90 @@ func (x BufferDeviceAddressCreateInfo) PassValue() (C.VkBufferDeviceAddressCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferDeviceAddressCreateInfo) Deref() { - if x.ref4c6937a9 == nil { +func (x *DeviceMemoryOverallocationCreateInfoAMD) Deref() { + if x.ref5ccee475 == nil { return } - x.SType = (StructureType)(x.ref4c6937a9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4c6937a9.pNext)) - x.DeviceAddress = (DeviceAddress)(x.ref4c6937a9.deviceAddress) + x.SType = (StructureType)(x.ref5ccee475.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ccee475.pNext)) + x.OverallocationBehavior = (MemoryOverallocationBehaviorAMD)(x.ref5ccee475.overallocationBehavior) } -// allocValidationFeaturesMemory allocates memory for type C.VkValidationFeaturesEXT in C. +// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocValidationFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeaturesValue)) +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 sizeOfValidationFeaturesValue = unsafe.Sizeof([1]C.VkValidationFeaturesEXT{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationFeatures) Ref() *C.VkValidationFeaturesEXT { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { if x == nil { return nil } - return x.refcd8794ea + 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 *ValidationFeatures) Free() { - if x != nil && x.allocscd8794ea != nil { - x.allocscd8794ea.(*cgoAllocMap).Free() - x.refcd8794ea = nil +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Free() { + if x != nil && x.allocsbd6b5075 != nil { + x.allocsbd6b5075.(*cgoAllocMap).Free() + x.refbd6b5075 = nil } } -// NewValidationFeaturesRef 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 NewValidationFeaturesRef(ref unsafe.Pointer) *ValidationFeatures { +func NewPhysicalDeviceVertexAttributeDivisorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorProperties { if ref == nil { return nil } - obj := new(ValidationFeatures) - obj.refcd8794ea = (*C.VkValidationFeaturesEXT)(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 *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd8794ea != nil { - return x.refcd8794ea, nil + } else if x.refbd6b5075 != nil { + return x.refbd6b5075, nil } - memcd8794ea := allocValidationFeaturesMemory(1) - refcd8794ea := (*C.VkValidationFeaturesEXT)(memcd8794ea) - allocscd8794ea := new(cgoAllocMap) - allocscd8794ea.Add(memcd8794ea) + membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) + refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) + allocsbd6b5075 := new(cgoAllocMap) + allocsbd6b5075.Add(membd6b5075) var csType_allocs *cgoAllocMap - refcd8794ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd8794ea.Borrow(csType_allocs) + refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbd6b5075.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd8794ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd8794ea.Borrow(cpNext_allocs) - - var cenabledValidationFeatureCount_allocs *cgoAllocMap - refcd8794ea.enabledValidationFeatureCount, cenabledValidationFeatureCount_allocs = (C.uint32_t)(x.EnabledValidationFeatureCount), cgoAllocsUnknown - allocscd8794ea.Borrow(cenabledValidationFeatureCount_allocs) - - 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) + refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbd6b5075.Borrow(cpNext_allocs) - var cpDisabledValidationFeatures_allocs *cgoAllocMap - refcd8794ea.pDisabledValidationFeatures, cpDisabledValidationFeatures_allocs = (*C.VkValidationFeatureDisableEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)).Data)), cgoAllocsUnknown - allocscd8794ea.Borrow(cpDisabledValidationFeatures_allocs) + var cmaxVertexAttribDivisor_allocs *cgoAllocMap + refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown + allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) - x.refcd8794ea = refcd8794ea - x.allocscd8794ea = allocscd8794ea - return refcd8794ea, allocscd8794ea + 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 ValidationFeatures) PassValue() (C.VkValidationFeaturesEXT, *cgoAllocMap) { - if x.refcd8794ea != nil { - return *x.refcd8794ea, nil +func (x PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { + if x.refbd6b5075 != nil { + return *x.refbd6b5075, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53564,129 +54071,86 @@ func (x ValidationFeatures) PassValue() (C.VkValidationFeaturesEXT, *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 *ValidationFeatures) Deref() { - if x.refcd8794ea == nil { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Deref() { + if x.refbd6b5075 == nil { return } - 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 = ? - + x.SType = (StructureType)(x.refbd6b5075.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd6b5075.pNext)) + x.MaxVertexAttribDivisor = (uint32)(x.refbd6b5075.maxVertexAttribDivisor) } -// allocCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkCooperativeMatrixPropertiesNV in C. +// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCooperativeMatrixPropertiesNVValue)) +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 sizeOfCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkCooperativeMatrixPropertiesNV{}) +const sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CooperativeMatrixPropertiesNV) Ref() *C.VkCooperativeMatrixPropertiesNV { +func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { if x == nil { return nil } - return x.ref4302be60 + 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 *CooperativeMatrixPropertiesNV) Free() { - if x != nil && x.allocs4302be60 != nil { - x.allocs4302be60.(*cgoAllocMap).Free() - x.ref4302be60 = nil +func (x *VertexInputBindingDivisorDescription) Free() { + if x != nil && x.allocsd64d4396 != nil { + x.allocsd64d4396.(*cgoAllocMap).Free() + x.refd64d4396 = nil } } -// NewCooperativeMatrixPropertiesNVRef 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 NewCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *CooperativeMatrixPropertiesNV { +func NewVertexInputBindingDivisorDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDivisorDescription { if ref == nil { return nil } - obj := new(CooperativeMatrixPropertiesNV) - obj.ref4302be60 = (*C.VkCooperativeMatrixPropertiesNV)(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 *CooperativeMatrixPropertiesNV) PassRef() (*C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { +func (x *VertexInputBindingDivisorDescription) PassRef() (*C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4302be60 != nil { - return x.ref4302be60, nil + } else if x.refd64d4396 != nil { + return x.refd64d4396, nil } - mem4302be60 := allocCooperativeMatrixPropertiesNVMemory(1) - ref4302be60 := (*C.VkCooperativeMatrixPropertiesNV)(mem4302be60) - allocs4302be60 := new(cgoAllocMap) - allocs4302be60.Add(mem4302be60) - - var csType_allocs *cgoAllocMap - ref4302be60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4302be60.Borrow(csType_allocs) - - 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) + memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) + refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) + allocsd64d4396 := new(cgoAllocMap) + allocsd64d4396.Add(memd64d4396) - var cDType_allocs *cgoAllocMap - ref4302be60.DType, cDType_allocs = (C.VkComponentTypeNV)(x.DType), cgoAllocsUnknown - allocs4302be60.Borrow(cDType_allocs) + var cbinding_allocs *cgoAllocMap + refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsd64d4396.Borrow(cbinding_allocs) - var cscope_allocs *cgoAllocMap - ref4302be60.scope, cscope_allocs = (C.VkScopeNV)(x.Scope), cgoAllocsUnknown - allocs4302be60.Borrow(cscope_allocs) + var cdivisor_allocs *cgoAllocMap + refd64d4396.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown + allocsd64d4396.Borrow(cdivisor_allocs) - x.ref4302be60 = ref4302be60 - x.allocs4302be60 = allocs4302be60 - return ref4302be60, allocs4302be60 + 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 CooperativeMatrixPropertiesNV) PassValue() (C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { - if x.ref4302be60 != nil { - return *x.ref4302be60, nil +func (x VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { + if x.refd64d4396 != nil { + return *x.refd64d4396, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53694,101 +54158,131 @@ func (x CooperativeMatrixPropertiesNV) PassValue() (C.VkCooperativeMatrixPropert // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CooperativeMatrixPropertiesNV) Deref() { - if x.ref4302be60 == nil { +func (x *VertexInputBindingDivisorDescription) Deref() { + if x.refd64d4396 == nil { return } - 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) + x.Binding = (uint32)(x.refd64d4396.binding) + x.Divisor = (uint32)(x.refd64d4396.divisor) } -// allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixFeaturesNV in C. +// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue)) +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 sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixFeaturesNV{}) +const sizeOfPipelineVertexInputDivisorStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineVertexInputDivisorStateCreateInfoEXT{}) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixFeaturesNV { +// 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 + 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)) } - return x.refff45ea3f +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) Free() { - if x != nil && x.allocsff45ea3f != nil { - x.allocsff45ea3f.(*cgoAllocMap).Free() - x.refff45ea3f = nil +func (x *PipelineVertexInputDivisorStateCreateInfo) Free() { + if x != nil && x.allocs86096bfd != nil { + x.allocs86096bfd.(*cgoAllocMap).Free() + x.ref86096bfd = nil } } -// NewPhysicalDeviceCooperativeMatrixFeaturesNVRef 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 NewPhysicalDeviceCooperativeMatrixFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixFeaturesNV { +func NewPipelineVertexInputDivisorStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputDivisorStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceCooperativeMatrixFeaturesNV) - obj.refff45ea3f = (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(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 *PhysicalDeviceCooperativeMatrixFeaturesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { +func (x *PipelineVertexInputDivisorStateCreateInfo) PassRef() (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refff45ea3f != nil { - return x.refff45ea3f, nil + } else if x.ref86096bfd != nil { + return x.ref86096bfd, nil } - memff45ea3f := allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(1) - refff45ea3f := (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(memff45ea3f) - allocsff45ea3f := new(cgoAllocMap) - allocsff45ea3f.Add(memff45ea3f) + mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) + ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) + allocs86096bfd := new(cgoAllocMap) + allocs86096bfd.Add(mem86096bfd) var csType_allocs *cgoAllocMap - refff45ea3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsff45ea3f.Borrow(csType_allocs) + ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86096bfd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refff45ea3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsff45ea3f.Borrow(cpNext_allocs) + ref86096bfd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86096bfd.Borrow(cpNext_allocs) - var ccooperativeMatrix_allocs *cgoAllocMap - refff45ea3f.cooperativeMatrix, ccooperativeMatrix_allocs = (C.VkBool32)(x.CooperativeMatrix), cgoAllocsUnknown - allocsff45ea3f.Borrow(ccooperativeMatrix_allocs) + var cvertexBindingDivisorCount_allocs *cgoAllocMap + ref86096bfd.vertexBindingDivisorCount, cvertexBindingDivisorCount_allocs = (C.uint32_t)(x.VertexBindingDivisorCount), cgoAllocsUnknown + allocs86096bfd.Borrow(cvertexBindingDivisorCount_allocs) - var ccooperativeMatrixRobustBufferAccess_allocs *cgoAllocMap - refff45ea3f.cooperativeMatrixRobustBufferAccess, ccooperativeMatrixRobustBufferAccess_allocs = (C.VkBool32)(x.CooperativeMatrixRobustBufferAccess), cgoAllocsUnknown - allocsff45ea3f.Borrow(ccooperativeMatrixRobustBufferAccess_allocs) + var cpVertexBindingDivisors_allocs *cgoAllocMap + ref86096bfd.pVertexBindingDivisors, cpVertexBindingDivisors_allocs = unpackSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors) + allocs86096bfd.Borrow(cpVertexBindingDivisors_allocs) - x.refff45ea3f = refff45ea3f - x.allocsff45ea3f = allocsff45ea3f - return refff45ea3f, allocsff45ea3f + 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 PhysicalDeviceCooperativeMatrixFeaturesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { - if x.refff45ea3f != nil { - return *x.refff45ea3f, nil +func (x PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { + if x.ref86096bfd != nil { + return *x.ref86096bfd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53796,91 +54290,95 @@ func (x PhysicalDeviceCooperativeMatrixFeaturesNV) 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) Deref() { - if x.refff45ea3f == nil { +func (x *PipelineVertexInputDivisorStateCreateInfo) Deref() { + if x.ref86096bfd == nil { return } - 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) + 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) } -// allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixPropertiesNV in C. +// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue)) +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 sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixPropertiesNV{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixPropertiesNV { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { if x == nil { return nil } - return x.ref45336143 + 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) Free() { - if x != nil && x.allocs45336143 != nil { - x.allocs45336143.(*cgoAllocMap).Free() - x.ref45336143 = nil +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Free() { + if x != nil && x.allocsffe7619a != nil { + x.allocsffe7619a.(*cgoAllocMap).Free() + x.refffe7619a = nil } } -// NewPhysicalDeviceCooperativeMatrixPropertiesNVRef 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 NewPhysicalDeviceCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixPropertiesNV { +func NewPhysicalDeviceVertexAttributeDivisorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceCooperativeMatrixPropertiesNV) - obj.ref45336143 = (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(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 *PhysicalDeviceCooperativeMatrixPropertiesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref45336143 != nil { - return x.ref45336143, nil + } else if x.refffe7619a != nil { + return x.refffe7619a, nil } - mem45336143 := allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(1) - ref45336143 := (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(mem45336143) - allocs45336143 := new(cgoAllocMap) - allocs45336143.Add(mem45336143) + memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) + refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) + allocsffe7619a := new(cgoAllocMap) + allocsffe7619a.Add(memffe7619a) var csType_allocs *cgoAllocMap - ref45336143.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs45336143.Borrow(csType_allocs) + refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe7619a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref45336143.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs45336143.Borrow(cpNext_allocs) + refffe7619a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe7619a.Borrow(cpNext_allocs) - var ccooperativeMatrixSupportedStages_allocs *cgoAllocMap - ref45336143.cooperativeMatrixSupportedStages, ccooperativeMatrixSupportedStages_allocs = (C.VkShaderStageFlags)(x.CooperativeMatrixSupportedStages), cgoAllocsUnknown - allocs45336143.Borrow(ccooperativeMatrixSupportedStages_allocs) + var cvertexAttributeInstanceRateDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateDivisor, cvertexAttributeInstanceRateDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateDivisor_allocs) - x.ref45336143 = ref45336143 - x.allocs45336143 = allocs45336143 - return ref45336143, allocs45336143 + var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) + + 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 PhysicalDeviceCooperativeMatrixPropertiesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { - if x.ref45336143 != nil { - return *x.ref45336143, nil +func (x PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { + if x.refffe7619a != nil { + return *x.refffe7619a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53888,90 +54386,95 @@ func (x PhysicalDeviceCooperativeMatrixPropertiesNV) 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) Deref() { - if x.ref45336143 == nil { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Deref() { + if x.refffe7619a == nil { return } - x.SType = (StructureType)(x.ref45336143.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref45336143.pNext)) - x.CooperativeMatrixSupportedStages = (ShaderStageFlags)(x.ref45336143.cooperativeMatrixSupportedStages) + 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) } -// allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCoverageReductionModeFeaturesNV in C. +// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue)) +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 sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoverageReductionModeFeaturesNV{}) +const sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Ref() *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { if x == nil { return nil } - return x.ref1066c79 + 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 *PhysicalDeviceCoverageReductionModeFeaturesNV) Free() { - if x != nil && x.allocs1066c79 != nil { - x.allocs1066c79.(*cgoAllocMap).Free() - x.ref1066c79 = nil +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Free() { + if x != nil && x.allocsf31d599c != nil { + x.allocsf31d599c.(*cgoAllocMap).Free() + x.reff31d599c = nil } } -// NewPhysicalDeviceCoverageReductionModeFeaturesNVRef 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 NewPhysicalDeviceCoverageReductionModeFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCoverageReductionModeFeaturesNV { +func NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceComputeShaderDerivativesFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceCoverageReductionModeFeaturesNV) - obj.ref1066c79 = (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(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 *PhysicalDeviceCoverageReductionModeFeaturesNV) PassRef() (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassRef() (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1066c79 != nil { - return x.ref1066c79, nil + } else if x.reff31d599c != nil { + return x.reff31d599c, nil } - mem1066c79 := allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(1) - ref1066c79 := (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(mem1066c79) - allocs1066c79 := new(cgoAllocMap) - allocs1066c79.Add(mem1066c79) + memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) + reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) + allocsf31d599c := new(cgoAllocMap) + allocsf31d599c.Add(memf31d599c) var csType_allocs *cgoAllocMap - ref1066c79.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1066c79.Borrow(csType_allocs) + reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf31d599c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1066c79.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1066c79.Borrow(cpNext_allocs) + reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf31d599c.Borrow(cpNext_allocs) - var ccoverageReductionMode_allocs *cgoAllocMap - ref1066c79.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkBool32)(x.CoverageReductionMode), cgoAllocsUnknown - allocs1066c79.Borrow(ccoverageReductionMode_allocs) + var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) - x.ref1066c79 = ref1066c79 - x.allocs1066c79 = allocs1066c79 - return ref1066c79, allocs1066c79 + var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) + + 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 PhysicalDeviceCoverageReductionModeFeaturesNV) PassValue() (C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { - if x.ref1066c79 != nil { - return *x.ref1066c79, nil +func (x PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { + if x.reff31d599c != nil { + return *x.reff31d599c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -53979,94 +54482,95 @@ func (x PhysicalDeviceCoverageReductionModeFeaturesNV) PassValue() (C.VkPhysical // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Deref() { - if x.ref1066c79 == nil { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Deref() { + if x.reff31d599c == nil { return } - x.SType = (StructureType)(x.ref1066c79.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1066c79.pNext)) - x.CoverageReductionMode = (Bool32)(x.ref1066c79.coverageReductionMode) + 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) } -// allocPipelineCoverageReductionStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageReductionStateCreateInfoNV in C. +// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineCoverageReductionStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageReductionStateCreateInfoNVValue)) +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 sizeOfPipelineCoverageReductionStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageReductionStateCreateInfoNV{}) +const sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageReductionStateCreateInfoNV) Ref() *C.VkPipelineCoverageReductionStateCreateInfoNV { +func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { if x == nil { return nil } - return x.ref39db618c + 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 *PipelineCoverageReductionStateCreateInfoNV) Free() { - if x != nil && x.allocs39db618c != nil { - x.allocs39db618c.(*cgoAllocMap).Free() - x.ref39db618c = nil +func (x *PhysicalDeviceMeshShaderFeaturesNV) Free() { + if x != nil && x.allocs802b98a != nil { + x.allocs802b98a.(*cgoAllocMap).Free() + x.ref802b98a = nil } } -// NewPipelineCoverageReductionStateCreateInfoNVRef 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 NewPipelineCoverageReductionStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageReductionStateCreateInfoNV { +func NewPhysicalDeviceMeshShaderFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderFeaturesNV { if ref == nil { return nil } - obj := new(PipelineCoverageReductionStateCreateInfoNV) - obj.ref39db618c = (*C.VkPipelineCoverageReductionStateCreateInfoNV)(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 *PipelineCoverageReductionStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderFeaturesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref39db618c != nil { - return x.ref39db618c, nil + } else if x.ref802b98a != nil { + return x.ref802b98a, nil } - mem39db618c := allocPipelineCoverageReductionStateCreateInfoNVMemory(1) - ref39db618c := (*C.VkPipelineCoverageReductionStateCreateInfoNV)(mem39db618c) - allocs39db618c := new(cgoAllocMap) - allocs39db618c.Add(mem39db618c) + mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) + ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) + allocs802b98a := new(cgoAllocMap) + allocs802b98a.Add(mem802b98a) var csType_allocs *cgoAllocMap - ref39db618c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs39db618c.Borrow(csType_allocs) + ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs802b98a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref39db618c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs39db618c.Borrow(cpNext_allocs) + ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs802b98a.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref39db618c.flags, cflags_allocs = (C.VkPipelineCoverageReductionStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocs39db618c.Borrow(cflags_allocs) + var ctaskShader_allocs *cgoAllocMap + ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown + allocs802b98a.Borrow(ctaskShader_allocs) - var ccoverageReductionMode_allocs *cgoAllocMap - ref39db618c.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown - allocs39db618c.Borrow(ccoverageReductionMode_allocs) + var cmeshShader_allocs *cgoAllocMap + ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown + allocs802b98a.Borrow(cmeshShader_allocs) - x.ref39db618c = ref39db618c - x.allocs39db618c = allocs39db618c - return ref39db618c, allocs39db618c + 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 PipelineCoverageReductionStateCreateInfoNV) PassValue() (C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { - if x.ref39db618c != nil { - return *x.ref39db618c, nil +func (x PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { + if x.ref802b98a != nil { + return *x.ref802b98a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54074,103 +54578,139 @@ func (x PipelineCoverageReductionStateCreateInfoNV) PassValue() (C.VkPipelineCov // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineCoverageReductionStateCreateInfoNV) Deref() { - if x.ref39db618c == nil { +func (x *PhysicalDeviceMeshShaderFeaturesNV) Deref() { + if x.ref802b98a == nil { return } - 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) + 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) } -// allocFramebufferMixedSamplesCombinationNVMemory allocates memory for type C.VkFramebufferMixedSamplesCombinationNV in C. +// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocFramebufferMixedSamplesCombinationNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferMixedSamplesCombinationNVValue)) +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 sizeOfFramebufferMixedSamplesCombinationNVValue = unsafe.Sizeof([1]C.VkFramebufferMixedSamplesCombinationNV{}) +const sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FramebufferMixedSamplesCombinationNV) Ref() *C.VkFramebufferMixedSamplesCombinationNV { +func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { if x == nil { return nil } - return x.ref75affbab + 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 *FramebufferMixedSamplesCombinationNV) Free() { - if x != nil && x.allocs75affbab != nil { - x.allocs75affbab.(*cgoAllocMap).Free() - x.ref75affbab = nil +func (x *PhysicalDeviceMeshShaderPropertiesNV) Free() { + if x != nil && x.allocs2ee3ccb7 != nil { + x.allocs2ee3ccb7.(*cgoAllocMap).Free() + x.ref2ee3ccb7 = nil } } -// NewFramebufferMixedSamplesCombinationNVRef 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 NewFramebufferMixedSamplesCombinationNVRef(ref unsafe.Pointer) *FramebufferMixedSamplesCombinationNV { +func NewPhysicalDeviceMeshShaderPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderPropertiesNV { if ref == nil { return nil } - obj := new(FramebufferMixedSamplesCombinationNV) - obj.ref75affbab = (*C.VkFramebufferMixedSamplesCombinationNV)(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 *FramebufferMixedSamplesCombinationNV) PassRef() (*C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderPropertiesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75affbab != nil { - return x.ref75affbab, nil + } else if x.ref2ee3ccb7 != nil { + return x.ref2ee3ccb7, nil } - mem75affbab := allocFramebufferMixedSamplesCombinationNVMemory(1) - ref75affbab := (*C.VkFramebufferMixedSamplesCombinationNV)(mem75affbab) - allocs75affbab := new(cgoAllocMap) - allocs75affbab.Add(mem75affbab) + mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) + ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) + allocs2ee3ccb7 := new(cgoAllocMap) + allocs2ee3ccb7.Add(mem2ee3ccb7) var csType_allocs *cgoAllocMap - ref75affbab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75affbab.Borrow(csType_allocs) + ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75affbab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75affbab.Borrow(cpNext_allocs) + ref2ee3ccb7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cpNext_allocs) - var ccoverageReductionMode_allocs *cgoAllocMap - ref75affbab.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown - allocs75affbab.Borrow(ccoverageReductionMode_allocs) + var cmaxDrawMeshTasksCount_allocs *cgoAllocMap + ref2ee3ccb7.maxDrawMeshTasksCount, cmaxDrawMeshTasksCount_allocs = (C.uint32_t)(x.MaxDrawMeshTasksCount), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxDrawMeshTasksCount_allocs) - var crasterizationSamples_allocs *cgoAllocMap - ref75affbab.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown - allocs75affbab.Borrow(crasterizationSamples_allocs) + var cmaxTaskWorkGroupInvocations_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskWorkGroupInvocations, cmaxTaskWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxTaskWorkGroupInvocations), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupInvocations_allocs) - var cdepthStencilSamples_allocs *cgoAllocMap - ref75affbab.depthStencilSamples, cdepthStencilSamples_allocs = (C.VkSampleCountFlags)(x.DepthStencilSamples), cgoAllocsUnknown - allocs75affbab.Borrow(cdepthStencilSamples_allocs) + var cmaxTaskWorkGroupSize_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskWorkGroupSize, cmaxTaskWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxTaskWorkGroupSize)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupSize_allocs) - var ccolorSamples_allocs *cgoAllocMap - ref75affbab.colorSamples, ccolorSamples_allocs = (C.VkSampleCountFlags)(x.ColorSamples), cgoAllocsUnknown - allocs75affbab.Borrow(ccolorSamples_allocs) + var cmaxTaskTotalMemorySize_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskTotalMemorySize, cmaxTaskTotalMemorySize_allocs = (C.uint32_t)(x.MaxTaskTotalMemorySize), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskTotalMemorySize_allocs) - x.ref75affbab = ref75affbab - x.allocs75affbab = allocs75affbab - return ref75affbab, allocs75affbab + 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) + + var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap + ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) + + 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 FramebufferMixedSamplesCombinationNV) PassValue() (C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { - if x.ref75affbab != nil { - return *x.ref75affbab, nil +func (x PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { + if x.ref2ee3ccb7 != nil { + return *x.ref2ee3ccb7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54178,101 +54718,98 @@ func (x FramebufferMixedSamplesCombinationNV) PassValue() (C.VkFramebufferMixedS // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FramebufferMixedSamplesCombinationNV) Deref() { - if x.ref75affbab == nil { +func (x *PhysicalDeviceMeshShaderPropertiesNV) Deref() { + if x.ref2ee3ccb7 == nil { return } - 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) -} - -// allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -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 sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT{}) - + 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) +} + +// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV 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)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { +func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { if x == nil { return nil } - return x.ref1ed4955d + 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 *PhysicalDeviceFragmentShaderInterlockFeatures) Free() { - if x != nil && x.allocs1ed4955d != nil { - x.allocs1ed4955d.(*cgoAllocMap).Free() - x.ref1ed4955d = nil +func (x *DrawMeshTasksIndirectCommandNV) Free() { + if x != nil && x.allocsda6c46ea != nil { + x.allocsda6c46ea.(*cgoAllocMap).Free() + x.refda6c46ea = nil } } -// NewPhysicalDeviceFragmentShaderInterlockFeaturesRef 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 NewPhysicalDeviceFragmentShaderInterlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderInterlockFeatures { +func NewDrawMeshTasksIndirectCommandNVRef(ref unsafe.Pointer) *DrawMeshTasksIndirectCommandNV { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShaderInterlockFeatures) - obj.ref1ed4955d = (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(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 *PhysicalDeviceFragmentShaderInterlockFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { +func (x *DrawMeshTasksIndirectCommandNV) PassRef() (*C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1ed4955d != nil { - return x.ref1ed4955d, nil + } else if x.refda6c46ea != nil { + return x.refda6c46ea, nil } - mem1ed4955d := allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(1) - ref1ed4955d := (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(mem1ed4955d) - allocs1ed4955d := new(cgoAllocMap) - allocs1ed4955d.Add(mem1ed4955d) - - var csType_allocs *cgoAllocMap - ref1ed4955d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1ed4955d.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref1ed4955d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1ed4955d.Borrow(cpNext_allocs) - - var cfragmentShaderSampleInterlock_allocs *cgoAllocMap - ref1ed4955d.fragmentShaderSampleInterlock, cfragmentShaderSampleInterlock_allocs = (C.VkBool32)(x.FragmentShaderSampleInterlock), cgoAllocsUnknown - allocs1ed4955d.Borrow(cfragmentShaderSampleInterlock_allocs) + memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) + refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) + allocsda6c46ea := new(cgoAllocMap) + allocsda6c46ea.Add(memda6c46ea) - var cfragmentShaderPixelInterlock_allocs *cgoAllocMap - ref1ed4955d.fragmentShaderPixelInterlock, cfragmentShaderPixelInterlock_allocs = (C.VkBool32)(x.FragmentShaderPixelInterlock), cgoAllocsUnknown - allocs1ed4955d.Borrow(cfragmentShaderPixelInterlock_allocs) + var ctaskCount_allocs *cgoAllocMap + refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown + allocsda6c46ea.Borrow(ctaskCount_allocs) - var cfragmentShaderShadingRateInterlock_allocs *cgoAllocMap - ref1ed4955d.fragmentShaderShadingRateInterlock, cfragmentShaderShadingRateInterlock_allocs = (C.VkBool32)(x.FragmentShaderShadingRateInterlock), cgoAllocsUnknown - allocs1ed4955d.Borrow(cfragmentShaderShadingRateInterlock_allocs) + var cfirstTask_allocs *cgoAllocMap + refda6c46ea.firstTask, cfirstTask_allocs = (C.uint32_t)(x.FirstTask), cgoAllocsUnknown + allocsda6c46ea.Borrow(cfirstTask_allocs) - x.ref1ed4955d = ref1ed4955d - x.allocs1ed4955d = allocs1ed4955d - return ref1ed4955d, allocs1ed4955d + 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 PhysicalDeviceFragmentShaderInterlockFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { - if x.ref1ed4955d != nil { - return *x.ref1ed4955d, nil +func (x DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { + if x.refda6c46ea != nil { + return *x.refda6c46ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54280,92 +54817,77 @@ func (x PhysicalDeviceFragmentShaderInterlockFeatures) PassValue() (C.VkPhysical // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Deref() { - if x.ref1ed4955d == nil { +func (x *DrawMeshTasksIndirectCommandNV) Deref() { + if x.refda6c46ea == nil { return } - 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) -} - -// allocPhysicalDeviceYcbcrImageArraysFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -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 + x.TaskCount = (uint32)(x.refda6c46ea.taskCount) + x.FirstTask = (uint32)(x.refda6c46ea.firstTask) } -const sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceYcbcrImageArraysFeatures) Ref() *C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { if x == nil { return nil } - return x.ref3198007 + 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 *PhysicalDeviceYcbcrImageArraysFeatures) Free() { - if x != nil && x.allocs3198007 != nil { - x.allocs3198007.(*cgoAllocMap).Free() - x.ref3198007 = nil +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Free() { + if x != nil && x.allocsf7f35e73 != nil { + x.allocsf7f35e73.(*cgoAllocMap).Free() + x.reff7f35e73 = nil } } -// NewPhysicalDeviceYcbcrImageArraysFeaturesRef 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 NewPhysicalDeviceYcbcrImageArraysFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcrImageArraysFeatures { +func NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceYcbcrImageArraysFeatures) - obj.ref3198007 = (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(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 *PhysicalDeviceYcbcrImageArraysFeatures) PassRef() (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3198007 != nil { - return x.ref3198007, nil + } else if x.reff7f35e73 != nil { + return x.reff7f35e73, nil } - mem3198007 := allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(1) - ref3198007 := (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(mem3198007) - allocs3198007 := new(cgoAllocMap) - allocs3198007.Add(mem3198007) + memf7f35e73 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory(1) + reff7f35e73 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(memf7f35e73) + allocsf7f35e73 := new(cgoAllocMap) + allocsf7f35e73.Add(memf7f35e73) var csType_allocs *cgoAllocMap - ref3198007.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3198007.Borrow(csType_allocs) + reff7f35e73.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7f35e73.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3198007.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3198007.Borrow(cpNext_allocs) + reff7f35e73.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7f35e73.Borrow(cpNext_allocs) - var cycbcrImageArrays_allocs *cgoAllocMap - ref3198007.ycbcrImageArrays, cycbcrImageArrays_allocs = (C.VkBool32)(x.YcbcrImageArrays), cgoAllocsUnknown - allocs3198007.Borrow(cycbcrImageArrays_allocs) + var cfragmentShaderBarycentric_allocs *cgoAllocMap + reff7f35e73.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown + allocsf7f35e73.Borrow(cfragmentShaderBarycentric_allocs) - x.ref3198007 = ref3198007 - x.allocs3198007 = allocs3198007 - return ref3198007, allocs3198007 + 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 PhysicalDeviceYcbcrImageArraysFeatures) PassValue() (C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { - if x.ref3198007 != nil { - return *x.ref3198007, nil +func (x PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { + if x.reff7f35e73 != nil { + return *x.reff7f35e73, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54373,94 +54895,90 @@ func (x PhysicalDeviceYcbcrImageArraysFeatures) PassValue() (C.VkPhysicalDeviceY // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceYcbcrImageArraysFeatures) Deref() { - if x.ref3198007 == nil { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Deref() { + if x.reff7f35e73 == nil { return } - x.SType = (StructureType)(x.ref3198007.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3198007.pNext)) - x.YcbcrImageArrays = (Bool32)(x.ref3198007.ycbcrImageArrays) + x.SType = (StructureType)(x.reff7f35e73.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7f35e73.pNext)) + x.FragmentShaderBarycentric = (Bool32)(x.reff7f35e73.fragmentShaderBarycentric) } -// allocPhysicalDeviceProvokingVertexFeaturesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexFeaturesEXT in C. +// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceProvokingVertexFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexFeaturesValue)) +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 sizeOfPhysicalDeviceProvokingVertexFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexFeaturesEXT{}) +const sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProvokingVertexFeatures) Ref() *C.VkPhysicalDeviceProvokingVertexFeaturesEXT { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { if x == nil { return nil } - return x.ref3e34d575 + 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 *PhysicalDeviceProvokingVertexFeatures) Free() { - if x != nil && x.allocs3e34d575 != nil { - x.allocs3e34d575.(*cgoAllocMap).Free() - x.ref3e34d575 = nil +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Free() { + if x != nil && x.allocs9d61e1b2 != nil { + x.allocs9d61e1b2.(*cgoAllocMap).Free() + x.ref9d61e1b2 = nil } } -// NewPhysicalDeviceProvokingVertexFeaturesRef 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 NewPhysicalDeviceProvokingVertexFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexFeatures { +func NewPhysicalDeviceShaderImageFootprintFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageFootprintFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceProvokingVertexFeatures) - obj.ref3e34d575 = (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(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 *PhysicalDeviceProvokingVertexFeatures) PassRef() (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e34d575 != nil { - return x.ref3e34d575, nil + } else if x.ref9d61e1b2 != nil { + return x.ref9d61e1b2, nil } - mem3e34d575 := allocPhysicalDeviceProvokingVertexFeaturesMemory(1) - ref3e34d575 := (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(mem3e34d575) - allocs3e34d575 := new(cgoAllocMap) - allocs3e34d575.Add(mem3e34d575) + mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) + ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) + allocs9d61e1b2 := new(cgoAllocMap) + allocs9d61e1b2.Add(mem9d61e1b2) var csType_allocs *cgoAllocMap - ref3e34d575.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e34d575.Borrow(csType_allocs) + ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9d61e1b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e34d575.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e34d575.Borrow(cpNext_allocs) - - var cprovokingVertexLast_allocs *cgoAllocMap - ref3e34d575.provokingVertexLast, cprovokingVertexLast_allocs = (C.VkBool32)(x.ProvokingVertexLast), cgoAllocsUnknown - allocs3e34d575.Borrow(cprovokingVertexLast_allocs) + ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cpNext_allocs) - var ctransformFeedbackPreservesProvokingVertex_allocs *cgoAllocMap - ref3e34d575.transformFeedbackPreservesProvokingVertex, ctransformFeedbackPreservesProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesProvokingVertex), cgoAllocsUnknown - allocs3e34d575.Borrow(ctransformFeedbackPreservesProvokingVertex_allocs) + var cimageFootprint_allocs *cgoAllocMap + ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cimageFootprint_allocs) - x.ref3e34d575 = ref3e34d575 - x.allocs3e34d575 = allocs3e34d575 - return ref3e34d575, allocs3e34d575 + 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 PhysicalDeviceProvokingVertexFeatures) PassValue() (C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { - if x.ref3e34d575 != nil { - return *x.ref3e34d575, nil +func (x PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { + if x.ref9d61e1b2 != nil { + return *x.ref9d61e1b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54468,95 +54986,94 @@ func (x PhysicalDeviceProvokingVertexFeatures) 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 *PhysicalDeviceProvokingVertexFeatures) Deref() { - if x.ref3e34d575 == nil { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Deref() { + if x.ref9d61e1b2 == nil { return } - 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) + x.SType = (StructureType)(x.ref9d61e1b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9d61e1b2.pNext)) + x.ImageFootprint = (Bool32)(x.ref9d61e1b2.imageFootprint) } -// allocPhysicalDeviceProvokingVertexPropertiesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexPropertiesEXT in C. +// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceProvokingVertexPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexPropertiesValue)) +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 sizeOfPhysicalDeviceProvokingVertexPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexPropertiesEXT{}) +const sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProvokingVertexProperties) Ref() *C.VkPhysicalDeviceProvokingVertexPropertiesEXT { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { if x == nil { return nil } - return x.refa8810910 + 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 *PhysicalDeviceProvokingVertexProperties) Free() { - if x != nil && x.allocsa8810910 != nil { - x.allocsa8810910.(*cgoAllocMap).Free() - x.refa8810910 = nil +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Free() { + if x != nil && x.allocsa8715ba6 != nil { + x.allocsa8715ba6.(*cgoAllocMap).Free() + x.refa8715ba6 = nil } } -// NewPhysicalDeviceProvokingVertexPropertiesRef 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 NewPhysicalDeviceProvokingVertexPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexProperties { +func NewPipelineViewportExclusiveScissorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportExclusiveScissorStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceProvokingVertexProperties) - obj.refa8810910 = (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(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 *PhysicalDeviceProvokingVertexProperties) PassRef() (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) PassRef() (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8810910 != nil { - return x.refa8810910, nil + } else if x.refa8715ba6 != nil { + return x.refa8715ba6, nil } - mema8810910 := allocPhysicalDeviceProvokingVertexPropertiesMemory(1) - refa8810910 := (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(mema8810910) - allocsa8810910 := new(cgoAllocMap) - allocsa8810910.Add(mema8810910) + mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) + refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) + allocsa8715ba6 := new(cgoAllocMap) + allocsa8715ba6.Add(mema8715ba6) var csType_allocs *cgoAllocMap - refa8810910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa8810910.Borrow(csType_allocs) + refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8715ba6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa8810910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa8810910.Borrow(cpNext_allocs) + refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8715ba6.Borrow(cpNext_allocs) - var cprovokingVertexModePerPipeline_allocs *cgoAllocMap - refa8810910.provokingVertexModePerPipeline, cprovokingVertexModePerPipeline_allocs = (C.VkBool32)(x.ProvokingVertexModePerPipeline), cgoAllocsUnknown - allocsa8810910.Borrow(cprovokingVertexModePerPipeline_allocs) + var cexclusiveScissorCount_allocs *cgoAllocMap + refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown + allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) - var ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs *cgoAllocMap - refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex, ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesTriangleFanProvokingVertex), cgoAllocsUnknown - allocsa8810910.Borrow(ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs) + var cpExclusiveScissors_allocs *cgoAllocMap + refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) + allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) - x.refa8810910 = refa8810910 - x.allocsa8810910 = allocsa8810910 - return refa8810910, allocsa8810910 + 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 PhysicalDeviceProvokingVertexProperties) PassValue() (C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { - if x.refa8810910 != nil { - return *x.refa8810910, nil +func (x PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { + if x.refa8715ba6 != nil { + return *x.refa8715ba6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54564,91 +55081,91 @@ func (x PhysicalDeviceProvokingVertexProperties) 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 *PhysicalDeviceProvokingVertexProperties) Deref() { - if x.refa8810910 == nil { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Deref() { + if x.refa8715ba6 == nil { return } - 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) + 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) } -// allocPipelineRasterizationProvokingVertexStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT in C. +// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue)) +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 sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT{}) +const sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Ref() *C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { if x == nil { return nil } - return x.ref367b4d68 + 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 *PipelineRasterizationProvokingVertexStateCreateInfo) Free() { - if x != nil && x.allocs367b4d68 != nil { - x.allocs367b4d68.(*cgoAllocMap).Free() - x.ref367b4d68 = nil +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Free() { + if x != nil && x.allocs52c9fcfc != nil { + x.allocs52c9fcfc.(*cgoAllocMap).Free() + x.ref52c9fcfc = nil } } -// NewPipelineRasterizationProvokingVertexStateCreateInfoRef 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 NewPipelineRasterizationProvokingVertexStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationProvokingVertexStateCreateInfo { +func NewPhysicalDeviceExclusiveScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExclusiveScissorFeaturesNV { if ref == nil { return nil } - obj := new(PipelineRasterizationProvokingVertexStateCreateInfo) - obj.ref367b4d68 = (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(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 *PipelineRasterizationProvokingVertexStateCreateInfo) PassRef() (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref367b4d68 != nil { - return x.ref367b4d68, nil + } else if x.ref52c9fcfc != nil { + return x.ref52c9fcfc, nil } - mem367b4d68 := allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(1) - ref367b4d68 := (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(mem367b4d68) - allocs367b4d68 := new(cgoAllocMap) - allocs367b4d68.Add(mem367b4d68) + mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) + ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) + allocs52c9fcfc := new(cgoAllocMap) + allocs52c9fcfc.Add(mem52c9fcfc) var csType_allocs *cgoAllocMap - ref367b4d68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs367b4d68.Borrow(csType_allocs) + ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs52c9fcfc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref367b4d68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs367b4d68.Borrow(cpNext_allocs) + ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cpNext_allocs) - var cprovokingVertexMode_allocs *cgoAllocMap - ref367b4d68.provokingVertexMode, cprovokingVertexMode_allocs = (C.VkProvokingVertexModeEXT)(x.ProvokingVertexMode), cgoAllocsUnknown - allocs367b4d68.Borrow(cprovokingVertexMode_allocs) + var cexclusiveScissor_allocs *cgoAllocMap + ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) - x.ref367b4d68 = ref367b4d68 - x.allocs367b4d68 = allocs367b4d68 - return ref367b4d68, allocs367b4d68 + 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 PipelineRasterizationProvokingVertexStateCreateInfo) PassValue() (C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { - if x.ref367b4d68 != nil { - return *x.ref367b4d68, nil +func (x PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { + if x.ref52c9fcfc != nil { + return *x.ref52c9fcfc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54656,90 +55173,90 @@ func (x PipelineRasterizationProvokingVertexStateCreateInfo) 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 *PipelineRasterizationProvokingVertexStateCreateInfo) Deref() { - if x.ref367b4d68 == nil { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Deref() { + if x.ref52c9fcfc == nil { return } - x.SType = (StructureType)(x.ref367b4d68.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref367b4d68.pNext)) - x.ProvokingVertexMode = (ProvokingVertexMode)(x.ref367b4d68.provokingVertexMode) + x.SType = (StructureType)(x.ref52c9fcfc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref52c9fcfc.pNext)) + x.ExclusiveScissor = (Bool32)(x.ref52c9fcfc.exclusiveScissor) } -// allocHeadlessSurfaceCreateInfoMemory allocates memory for type C.VkHeadlessSurfaceCreateInfoEXT in C. +// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocHeadlessSurfaceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHeadlessSurfaceCreateInfoValue)) +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 sizeOfHeadlessSurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkHeadlessSurfaceCreateInfoEXT{}) +const sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *HeadlessSurfaceCreateInfo) Ref() *C.VkHeadlessSurfaceCreateInfoEXT { +func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { if x == nil { return nil } - return x.refed88b258 + 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 *HeadlessSurfaceCreateInfo) Free() { - if x != nil && x.allocsed88b258 != nil { - x.allocsed88b258.(*cgoAllocMap).Free() - x.refed88b258 = nil +func (x *QueueFamilyCheckpointPropertiesNV) Free() { + if x != nil && x.allocs351f58c6 != nil { + x.allocs351f58c6.(*cgoAllocMap).Free() + x.ref351f58c6 = nil } } -// NewHeadlessSurfaceCreateInfoRef 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 NewHeadlessSurfaceCreateInfoRef(ref unsafe.Pointer) *HeadlessSurfaceCreateInfo { +func NewQueueFamilyCheckpointPropertiesNVRef(ref unsafe.Pointer) *QueueFamilyCheckpointPropertiesNV { if ref == nil { return nil } - obj := new(HeadlessSurfaceCreateInfo) - obj.refed88b258 = (*C.VkHeadlessSurfaceCreateInfoEXT)(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 *HeadlessSurfaceCreateInfo) PassRef() (*C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { +func (x *QueueFamilyCheckpointPropertiesNV) PassRef() (*C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refed88b258 != nil { - return x.refed88b258, nil + } else if x.ref351f58c6 != nil { + return x.ref351f58c6, nil } - memed88b258 := allocHeadlessSurfaceCreateInfoMemory(1) - refed88b258 := (*C.VkHeadlessSurfaceCreateInfoEXT)(memed88b258) - allocsed88b258 := new(cgoAllocMap) - allocsed88b258.Add(memed88b258) + mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) + ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) + allocs351f58c6 := new(cgoAllocMap) + allocs351f58c6.Add(mem351f58c6) var csType_allocs *cgoAllocMap - refed88b258.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsed88b258.Borrow(csType_allocs) + ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs351f58c6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refed88b258.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsed88b258.Borrow(cpNext_allocs) + ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs351f58c6.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refed88b258.flags, cflags_allocs = (C.VkHeadlessSurfaceCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocsed88b258.Borrow(cflags_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) - x.refed88b258 = refed88b258 - x.allocsed88b258 = allocsed88b258 - return refed88b258, allocsed88b258 + 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 HeadlessSurfaceCreateInfo) PassValue() (C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { - if x.refed88b258 != nil { - return *x.refed88b258, nil +func (x QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { + if x.ref351f58c6 != nil { + return *x.ref351f58c6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54747,110 +55264,94 @@ func (x HeadlessSurfaceCreateInfo) PassValue() (C.VkHeadlessSurfaceCreateInfoEXT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *HeadlessSurfaceCreateInfo) Deref() { - if x.refed88b258 == nil { +func (x *QueueFamilyCheckpointPropertiesNV) Deref() { + if x.ref351f58c6 == nil { return } - x.SType = (StructureType)(x.refed88b258.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed88b258.pNext)) - x.Flags = (HeadlessSurfaceCreateFlags)(x.refed88b258.flags) + x.SType = (StructureType)(x.ref351f58c6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref351f58c6.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags)(x.ref351f58c6.checkpointExecutionStageMask) } -// allocPhysicalDeviceLineRasterizationFeaturesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationFeaturesEXT in C. +// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceLineRasterizationFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationFeaturesValue)) +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 sizeOfPhysicalDeviceLineRasterizationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationFeaturesEXT{}) +const sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceLineRasterizationFeatures) Ref() *C.VkPhysicalDeviceLineRasterizationFeaturesEXT { +func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { if x == nil { return nil } - return x.refdb9049a7 + 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 *PhysicalDeviceLineRasterizationFeatures) Free() { - if x != nil && x.allocsdb9049a7 != nil { - x.allocsdb9049a7.(*cgoAllocMap).Free() - x.refdb9049a7 = nil +func (x *CheckpointDataNV) Free() { + if x != nil && x.allocsd1c9224b != nil { + x.allocsd1c9224b.(*cgoAllocMap).Free() + x.refd1c9224b = nil } } -// NewPhysicalDeviceLineRasterizationFeaturesRef 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 NewPhysicalDeviceLineRasterizationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationFeatures { +func NewCheckpointDataNVRef(ref unsafe.Pointer) *CheckpointDataNV { if ref == nil { return nil } - obj := new(PhysicalDeviceLineRasterizationFeatures) - obj.refdb9049a7 = (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(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 *PhysicalDeviceLineRasterizationFeatures) PassRef() (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { +func (x *CheckpointDataNV) PassRef() (*C.VkCheckpointDataNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdb9049a7 != nil { - return x.refdb9049a7, nil + } else if x.refd1c9224b != nil { + return x.refd1c9224b, nil } - memdb9049a7 := allocPhysicalDeviceLineRasterizationFeaturesMemory(1) - refdb9049a7 := (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(memdb9049a7) - allocsdb9049a7 := new(cgoAllocMap) - allocsdb9049a7.Add(memdb9049a7) + memd1c9224b := allocCheckpointDataNVMemory(1) + refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) + allocsd1c9224b := new(cgoAllocMap) + allocsd1c9224b.Add(memd1c9224b) var csType_allocs *cgoAllocMap - refdb9049a7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdb9049a7.Borrow(csType_allocs) + refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd1c9224b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdb9049a7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdb9049a7.Borrow(cpNext_allocs) - - var crectangularLines_allocs *cgoAllocMap - refdb9049a7.rectangularLines, crectangularLines_allocs = (C.VkBool32)(x.RectangularLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(crectangularLines_allocs) - - var cbresenhamLines_allocs *cgoAllocMap - refdb9049a7.bresenhamLines, cbresenhamLines_allocs = (C.VkBool32)(x.BresenhamLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(cbresenhamLines_allocs) - - var csmoothLines_allocs *cgoAllocMap - refdb9049a7.smoothLines, csmoothLines_allocs = (C.VkBool32)(x.SmoothLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(csmoothLines_allocs) - - var cstippledRectangularLines_allocs *cgoAllocMap - refdb9049a7.stippledRectangularLines, cstippledRectangularLines_allocs = (C.VkBool32)(x.StippledRectangularLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(cstippledRectangularLines_allocs) + refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpNext_allocs) - var cstippledBresenhamLines_allocs *cgoAllocMap - refdb9049a7.stippledBresenhamLines, cstippledBresenhamLines_allocs = (C.VkBool32)(x.StippledBresenhamLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(cstippledBresenhamLines_allocs) + var cstage_allocs *cgoAllocMap + refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown + allocsd1c9224b.Borrow(cstage_allocs) - var cstippledSmoothLines_allocs *cgoAllocMap - refdb9049a7.stippledSmoothLines, cstippledSmoothLines_allocs = (C.VkBool32)(x.StippledSmoothLines), cgoAllocsUnknown - allocsdb9049a7.Borrow(cstippledSmoothLines_allocs) + var cpCheckpointMarker_allocs *cgoAllocMap + refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpCheckpointMarker_allocs) - x.refdb9049a7 = refdb9049a7 - x.allocsdb9049a7 = allocsdb9049a7 - return refdb9049a7, allocsdb9049a7 + 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 PhysicalDeviceLineRasterizationFeatures) PassValue() (C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { - if x.refdb9049a7 != nil { - return *x.refdb9049a7, nil +func (x CheckpointDataNV) PassValue() (C.VkCheckpointDataNV, *cgoAllocMap) { + if x.refd1c9224b != nil { + return *x.refd1c9224b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54858,95 +55359,91 @@ func (x PhysicalDeviceLineRasterizationFeatures) 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 *PhysicalDeviceLineRasterizationFeatures) Deref() { - if x.refdb9049a7 == nil { +func (x *CheckpointDataNV) Deref() { + if x.refd1c9224b == nil { return } - 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) + 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)) } -// allocPhysicalDeviceLineRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationPropertiesEXT in C. +// allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceLineRasterizationPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationPropertiesValue)) +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 sizeOfPhysicalDeviceLineRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationPropertiesEXT{}) +const sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceLineRasterizationProperties) Ref() *C.VkPhysicalDeviceLineRasterizationPropertiesEXT { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Ref() *C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if x == nil { return nil } - return x.refe2369446 + 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 *PhysicalDeviceLineRasterizationProperties) Free() { - if x != nil && x.allocse2369446 != nil { - x.allocse2369446.(*cgoAllocMap).Free() - x.refe2369446 = nil +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Free() { + if x != nil && x.allocsff2cd6c != nil { + x.allocsff2cd6c.(*cgoAllocMap).Free() + x.refff2cd6c = nil } } -// NewPhysicalDeviceLineRasterizationPropertiesRef 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 NewPhysicalDeviceLineRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationProperties { +func NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceLineRasterizationProperties) - obj.refe2369446 = (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(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 *PhysicalDeviceLineRasterizationProperties) PassRef() (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassRef() (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe2369446 != nil { - return x.refe2369446, nil + } else if x.refff2cd6c != nil { + return x.refff2cd6c, nil } - meme2369446 := allocPhysicalDeviceLineRasterizationPropertiesMemory(1) - refe2369446 := (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(meme2369446) - allocse2369446 := new(cgoAllocMap) - allocse2369446.Add(meme2369446) + memff2cd6c := allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(1) + refff2cd6c := (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(memff2cd6c) + allocsff2cd6c := new(cgoAllocMap) + allocsff2cd6c.Add(memff2cd6c) var csType_allocs *cgoAllocMap - refe2369446.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse2369446.Borrow(csType_allocs) + refff2cd6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff2cd6c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe2369446.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse2369446.Borrow(cpNext_allocs) + refff2cd6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff2cd6c.Borrow(cpNext_allocs) - var clineSubPixelPrecisionBits_allocs *cgoAllocMap - refe2369446.lineSubPixelPrecisionBits, clineSubPixelPrecisionBits_allocs = (C.uint32_t)(x.LineSubPixelPrecisionBits), cgoAllocsUnknown - allocse2369446.Borrow(clineSubPixelPrecisionBits_allocs) + var cshaderIntegerFunctions2_allocs *cgoAllocMap + refff2cd6c.shaderIntegerFunctions2, cshaderIntegerFunctions2_allocs = (C.VkBool32)(x.ShaderIntegerFunctions2), cgoAllocsUnknown + allocsff2cd6c.Borrow(cshaderIntegerFunctions2_allocs) - x.refe2369446 = refe2369446 - x.allocse2369446 = allocse2369446 - return refe2369446, allocse2369446 + 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 PhysicalDeviceLineRasterizationProperties) PassValue() (C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { - if x.refe2369446 != nil { - return *x.refe2369446, nil +func (x PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassValue() (C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { + if x.refff2cd6c != nil { + return *x.refff2cd6c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -54954,102 +55451,86 @@ func (x PhysicalDeviceLineRasterizationProperties) 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 *PhysicalDeviceLineRasterizationProperties) Deref() { - if x.refe2369446 == nil { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Deref() { + if x.refff2cd6c == nil { return } - x.SType = (StructureType)(x.refe2369446.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2369446.pNext)) - x.LineSubPixelPrecisionBits = (uint32)(x.refe2369446.lineSubPixelPrecisionBits) + x.SType = (StructureType)(x.refff2cd6c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff2cd6c.pNext)) + x.ShaderIntegerFunctions2 = (Bool32)(x.refff2cd6c.shaderIntegerFunctions2) } -// allocPipelineRasterizationLineStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationLineStateCreateInfoEXT in C. +// allocPerformanceValueINTELMemory allocates memory for type C.VkPerformanceValueINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationLineStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationLineStateCreateInfoValue)) +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 sizeOfPipelineRasterizationLineStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationLineStateCreateInfoEXT{}) +const sizeOfPerformanceValueINTELValue = unsafe.Sizeof([1]C.VkPerformanceValueINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationLineStateCreateInfo) Ref() *C.VkPipelineRasterizationLineStateCreateInfoEXT { +func (x *PerformanceValueINTEL) Ref() *C.VkPerformanceValueINTEL { if x == nil { return nil } - return x.ref649f4226 + 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 *PipelineRasterizationLineStateCreateInfo) Free() { - if x != nil && x.allocs649f4226 != nil { - x.allocs649f4226.(*cgoAllocMap).Free() - x.ref649f4226 = nil +func (x *PerformanceValueINTEL) Free() { + if x != nil && x.allocse6a134ae != nil { + x.allocse6a134ae.(*cgoAllocMap).Free() + x.refe6a134ae = nil } } -// NewPipelineRasterizationLineStateCreateInfoRef 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 NewPipelineRasterizationLineStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationLineStateCreateInfo { +func NewPerformanceValueINTELRef(ref unsafe.Pointer) *PerformanceValueINTEL { if ref == nil { return nil } - obj := new(PipelineRasterizationLineStateCreateInfo) - obj.ref649f4226 = (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(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 *PipelineRasterizationLineStateCreateInfo) PassRef() (*C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { +func (x *PerformanceValueINTEL) PassRef() (*C.VkPerformanceValueINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref649f4226 != nil { - return x.ref649f4226, nil + } else if x.refe6a134ae != nil { + return x.refe6a134ae, nil } - mem649f4226 := allocPipelineRasterizationLineStateCreateInfoMemory(1) - ref649f4226 := (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(mem649f4226) - allocs649f4226 := new(cgoAllocMap) - allocs649f4226.Add(mem649f4226) - - var csType_allocs *cgoAllocMap - ref649f4226.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs649f4226.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref649f4226.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs649f4226.Borrow(cpNext_allocs) - - var clineRasterizationMode_allocs *cgoAllocMap - ref649f4226.lineRasterizationMode, clineRasterizationMode_allocs = (C.VkLineRasterizationModeEXT)(x.LineRasterizationMode), cgoAllocsUnknown - allocs649f4226.Borrow(clineRasterizationMode_allocs) - - var cstippledLineEnable_allocs *cgoAllocMap - ref649f4226.stippledLineEnable, cstippledLineEnable_allocs = (C.VkBool32)(x.StippledLineEnable), cgoAllocsUnknown - allocs649f4226.Borrow(cstippledLineEnable_allocs) + meme6a134ae := allocPerformanceValueINTELMemory(1) + refe6a134ae := (*C.VkPerformanceValueINTEL)(meme6a134ae) + allocse6a134ae := new(cgoAllocMap) + allocse6a134ae.Add(meme6a134ae) - var clineStippleFactor_allocs *cgoAllocMap - ref649f4226.lineStippleFactor, clineStippleFactor_allocs = (C.uint32_t)(x.LineStippleFactor), cgoAllocsUnknown - allocs649f4226.Borrow(clineStippleFactor_allocs) + var c_type_allocs *cgoAllocMap + refe6a134ae._type, c_type_allocs = (C.VkPerformanceValueTypeINTEL)(x.Type), cgoAllocsUnknown + allocse6a134ae.Borrow(c_type_allocs) - var clineStipplePattern_allocs *cgoAllocMap - ref649f4226.lineStipplePattern, clineStipplePattern_allocs = (C.uint16_t)(x.LineStipplePattern), cgoAllocsUnknown - allocs649f4226.Borrow(clineStipplePattern_allocs) + var cdata_allocs *cgoAllocMap + refe6a134ae.data, cdata_allocs = *(*C.VkPerformanceValueDataINTEL)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown + allocse6a134ae.Borrow(cdata_allocs) - x.ref649f4226 = ref649f4226 - x.allocs649f4226 = allocs649f4226 - return ref649f4226, allocs649f4226 + 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 PipelineRasterizationLineStateCreateInfo) PassValue() (C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { - if x.ref649f4226 != nil { - return *x.ref649f4226, nil +func (x PerformanceValueINTEL) PassValue() (C.VkPerformanceValueINTEL, *cgoAllocMap) { + if x.refe6a134ae != nil { + return *x.refe6a134ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55057,137 +55538,89 @@ func (x PipelineRasterizationLineStateCreateInfo) PassValue() (C.VkPipelineRaste // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationLineStateCreateInfo) Deref() { - if x.ref649f4226 == nil { +func (x *PerformanceValueINTEL) Deref() { + if x.refe6a134ae == nil { return } - 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) + x.Type = (PerformanceValueTypeINTEL)(x.refe6a134ae._type) + x.Data = *(*PerformanceValueDataINTEL)(unsafe.Pointer(&x.refe6a134ae.data)) } -// allocPhysicalDeviceShaderAtomicFloatFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT in C. +// allocInitializePerformanceApiInfoINTELMemory allocates memory for type C.VkInitializePerformanceApiInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue)) +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 sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT{}) +const sizeOfInitializePerformanceApiInfoINTELValue = unsafe.Sizeof([1]C.VkInitializePerformanceApiInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderAtomicFloatFeatures) Ref() *C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { +func (x *InitializePerformanceApiInfoINTEL) Ref() *C.VkInitializePerformanceApiInfoINTEL { if x == nil { return nil } - return x.refb387c45b + 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 *PhysicalDeviceShaderAtomicFloatFeatures) Free() { - if x != nil && x.allocsb387c45b != nil { - x.allocsb387c45b.(*cgoAllocMap).Free() - x.refb387c45b = nil +func (x *InitializePerformanceApiInfoINTEL) Free() { + if x != nil && x.allocsb72b1cf3 != nil { + x.allocsb72b1cf3.(*cgoAllocMap).Free() + x.refb72b1cf3 = nil } } -// NewPhysicalDeviceShaderAtomicFloatFeaturesRef 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 NewPhysicalDeviceShaderAtomicFloatFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloatFeatures { +func NewInitializePerformanceApiInfoINTELRef(ref unsafe.Pointer) *InitializePerformanceApiInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderAtomicFloatFeatures) - obj.refb387c45b = (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(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 *PhysicalDeviceShaderAtomicFloatFeatures) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { +func (x *InitializePerformanceApiInfoINTEL) PassRef() (*C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb387c45b != nil { - return x.refb387c45b, nil + } else if x.refb72b1cf3 != nil { + return x.refb72b1cf3, nil } - memb387c45b := allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(1) - refb387c45b := (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(memb387c45b) - allocsb387c45b := new(cgoAllocMap) - allocsb387c45b.Add(memb387c45b) + memb72b1cf3 := allocInitializePerformanceApiInfoINTELMemory(1) + refb72b1cf3 := (*C.VkInitializePerformanceApiInfoINTEL)(memb72b1cf3) + allocsb72b1cf3 := new(cgoAllocMap) + allocsb72b1cf3.Add(memb72b1cf3) var csType_allocs *cgoAllocMap - refb387c45b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb387c45b.Borrow(csType_allocs) + refb72b1cf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb72b1cf3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb387c45b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb387c45b.Borrow(cpNext_allocs) - - var cshaderBufferFloat32Atomics_allocs *cgoAllocMap - refb387c45b.shaderBufferFloat32Atomics, cshaderBufferFloat32Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat32Atomics), cgoAllocsUnknown - allocsb387c45b.Borrow(cshaderBufferFloat32Atomics_allocs) - - var cshaderBufferFloat32AtomicAdd_allocs *cgoAllocMap - refb387c45b.shaderBufferFloat32AtomicAdd, cshaderBufferFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicAdd), cgoAllocsUnknown - allocsb387c45b.Borrow(cshaderBufferFloat32AtomicAdd_allocs) - - 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) + refb72b1cf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpNext_allocs) - var csparseImageFloat32AtomicAdd_allocs *cgoAllocMap - refb387c45b.sparseImageFloat32AtomicAdd, csparseImageFloat32AtomicAdd_allocs = (C.VkBool32)(x.SparseImageFloat32AtomicAdd), cgoAllocsUnknown - allocsb387c45b.Borrow(csparseImageFloat32AtomicAdd_allocs) + var cpUserData_allocs *cgoAllocMap + refb72b1cf3.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpUserData_allocs) - x.refb387c45b = refb387c45b - x.allocsb387c45b = allocsb387c45b - return refb387c45b, allocsb387c45b + 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 PhysicalDeviceShaderAtomicFloatFeatures) PassValue() (C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { - if x.refb387c45b != nil { - return *x.refb387c45b, nil +func (x InitializePerformanceApiInfoINTEL) PassValue() (C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { + if x.refb72b1cf3 != nil { + return *x.refb72b1cf3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55195,101 +55628,90 @@ func (x PhysicalDeviceShaderAtomicFloatFeatures) 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 *PhysicalDeviceShaderAtomicFloatFeatures) Deref() { - if x.refb387c45b == nil { +func (x *InitializePerformanceApiInfoINTEL) Deref() { + if x.refb72b1cf3 == nil { return } - 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) + x.SType = (StructureType)(x.refb72b1cf3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pNext)) + x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pUserData)) } -// allocPhysicalDeviceIndexTypeUint8FeaturesMemory allocates memory for type C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT in C. +// allocQueryPoolPerformanceQueryCreateInfoINTELMemory allocates memory for type C.VkQueryPoolPerformanceQueryCreateInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceIndexTypeUint8FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue)) +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 sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT{}) +const sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceQueryCreateInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceIndexTypeUint8Features) Ref() *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.refd29dc94 + 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 *PhysicalDeviceIndexTypeUint8Features) Free() { - if x != nil && x.allocsd29dc94 != nil { - x.allocsd29dc94.(*cgoAllocMap).Free() - x.refd29dc94 = nil +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewPhysicalDeviceIndexTypeUint8FeaturesRef 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 NewPhysicalDeviceIndexTypeUint8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceIndexTypeUint8Features { +func NewQueryPoolPerformanceQueryCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolPerformanceQueryCreateInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceIndexTypeUint8Features) - obj.refd29dc94 = (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(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 *PhysicalDeviceIndexTypeUint8Features) PassRef() (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd29dc94 != nil { - return x.refd29dc94, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - memd29dc94 := allocPhysicalDeviceIndexTypeUint8FeaturesMemory(1) - refd29dc94 := (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(memd29dc94) - allocsd29dc94 := new(cgoAllocMap) - allocsd29dc94.Add(memd29dc94) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - refd29dc94.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd29dc94.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd29dc94.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd29dc94.Borrow(cpNext_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var cindexTypeUint8_allocs *cgoAllocMap - refd29dc94.indexTypeUint8, cindexTypeUint8_allocs = (C.VkBool32)(x.IndexTypeUint8), cgoAllocsUnknown - allocsd29dc94.Borrow(cindexTypeUint8_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.refd29dc94 = refd29dc94 - x.allocsd29dc94 = allocsd29dc94 - return refd29dc94, allocsd29dc94 + 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 PhysicalDeviceIndexTypeUint8Features) PassValue() (C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { - if x.refd29dc94 != nil { - return *x.refd29dc94, nil +func (x QueryPoolPerformanceQueryCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55297,90 +55719,78 @@ func (x PhysicalDeviceIndexTypeUint8Features) PassValue() (C.VkPhysicalDeviceInd // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceIndexTypeUint8Features) Deref() { - if x.refd29dc94 == nil { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Deref() { + if x.refb8883992 == nil { return } - x.SType = (StructureType)(x.refd29dc94.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd29dc94.pNext)) - x.IndexTypeUint8 = (Bool32)(x.refd29dc94.indexTypeUint8) -} - -// allocPhysicalDeviceExtendedDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -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 + x.SType = (StructureType)(x.refb8883992.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) + x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) } -const sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExtendedDynamicStateFeatures) Ref() *C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { +func (x *QueryPoolCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.reff7bd87ab + 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 *PhysicalDeviceExtendedDynamicStateFeatures) Free() { - if x != nil && x.allocsf7bd87ab != nil { - x.allocsf7bd87ab.(*cgoAllocMap).Free() - x.reff7bd87ab = nil +func (x *QueryPoolCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewPhysicalDeviceExtendedDynamicStateFeaturesRef 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 NewPhysicalDeviceExtendedDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicStateFeatures { +func NewQueryPoolCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolCreateInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceExtendedDynamicStateFeatures) - obj.reff7bd87ab = (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(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 *PhysicalDeviceExtendedDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { +func (x *QueryPoolCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff7bd87ab != nil { - return x.reff7bd87ab, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - memf7bd87ab := allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(1) - reff7bd87ab := (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(memf7bd87ab) - allocsf7bd87ab := new(cgoAllocMap) - allocsf7bd87ab.Add(memf7bd87ab) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - reff7bd87ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf7bd87ab.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff7bd87ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf7bd87ab.Borrow(cpNext_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var cextendedDynamicState_allocs *cgoAllocMap - reff7bd87ab.extendedDynamicState, cextendedDynamicState_allocs = (C.VkBool32)(x.ExtendedDynamicState), cgoAllocsUnknown - allocsf7bd87ab.Borrow(cextendedDynamicState_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.reff7bd87ab = reff7bd87ab - x.allocsf7bd87ab = allocsf7bd87ab - return reff7bd87ab, allocsf7bd87ab + 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 PhysicalDeviceExtendedDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { - if x.reff7bd87ab != nil { - return *x.reff7bd87ab, nil +func (x QueryPoolCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55388,134 +55798,90 @@ func (x PhysicalDeviceExtendedDynamicStateFeatures) 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 *PhysicalDeviceExtendedDynamicStateFeatures) Deref() { - if x.reff7bd87ab == nil { +func (x *QueryPoolCreateInfoINTEL) Deref() { + if x.refb8883992 == nil { return } - x.SType = (StructureType)(x.reff7bd87ab.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7bd87ab.pNext)) - x.ExtendedDynamicState = (Bool32)(x.reff7bd87ab.extendedDynamicState) + x.SType = (StructureType)(x.refb8883992.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) + x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) } -// allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT in C. +// allocPerformanceMarkerInfoINTELMemory allocates memory for type C.VkPerformanceMarkerInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue)) +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 sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT{}) +const sizeOfPerformanceMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderAtomicFloat2Features) Ref() *C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { +func (x *PerformanceMarkerInfoINTEL) Ref() *C.VkPerformanceMarkerInfoINTEL { if x == nil { return nil } - return x.reff53782 + 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 *PhysicalDeviceShaderAtomicFloat2Features) Free() { - if x != nil && x.allocsf53782 != nil { - x.allocsf53782.(*cgoAllocMap).Free() - x.reff53782 = nil +func (x *PerformanceMarkerInfoINTEL) Free() { + if x != nil && x.allocsbf575d93 != nil { + x.allocsbf575d93.(*cgoAllocMap).Free() + x.refbf575d93 = nil } } -// NewPhysicalDeviceShaderAtomicFloat2FeaturesRef 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 NewPhysicalDeviceShaderAtomicFloat2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloat2Features { +func NewPerformanceMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceMarkerInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderAtomicFloat2Features) - obj.reff53782 = (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)(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 *PhysicalDeviceShaderAtomicFloat2Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { +func (x *PerformanceMarkerInfoINTEL) PassRef() (*C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff53782 != nil { - return x.reff53782, nil + } else if x.refbf575d93 != nil { + return x.refbf575d93, nil } - memf53782 := allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(1) - reff53782 := (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)(memf53782) - allocsf53782 := new(cgoAllocMap) - allocsf53782.Add(memf53782) + membf575d93 := allocPerformanceMarkerInfoINTELMemory(1) + refbf575d93 := (*C.VkPerformanceMarkerInfoINTEL)(membf575d93) + allocsbf575d93 := new(cgoAllocMap) + allocsbf575d93.Add(membf575d93) var csType_allocs *cgoAllocMap - reff53782.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf53782.Borrow(csType_allocs) + refbf575d93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbf575d93.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 cshaderSharedFloat16AtomicMinMax_allocs *cgoAllocMap - reff53782.shaderSharedFloat16AtomicMinMax, cshaderSharedFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicMinMax), cgoAllocsUnknown - allocsf53782.Borrow(cshaderSharedFloat16AtomicMinMax_allocs) - - var cshaderSharedFloat32AtomicMinMax_allocs *cgoAllocMap - reff53782.shaderSharedFloat32AtomicMinMax, cshaderSharedFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicMinMax), cgoAllocsUnknown - allocsf53782.Borrow(cshaderSharedFloat32AtomicMinMax_allocs) - - var cshaderSharedFloat64AtomicMinMax_allocs *cgoAllocMap - reff53782.shaderSharedFloat64AtomicMinMax, cshaderSharedFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicMinMax), cgoAllocsUnknown - allocsf53782.Borrow(cshaderSharedFloat64AtomicMinMax_allocs) - - var cshaderImageFloat32AtomicMinMax_allocs *cgoAllocMap - reff53782.shaderImageFloat32AtomicMinMax, cshaderImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderImageFloat32AtomicMinMax), cgoAllocsUnknown - allocsf53782.Borrow(cshaderImageFloat32AtomicMinMax_allocs) + refbf575d93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbf575d93.Borrow(cpNext_allocs) - var csparseImageFloat32AtomicMinMax_allocs *cgoAllocMap - reff53782.sparseImageFloat32AtomicMinMax, csparseImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.SparseImageFloat32AtomicMinMax), cgoAllocsUnknown - allocsf53782.Borrow(csparseImageFloat32AtomicMinMax_allocs) + var cmarker_allocs *cgoAllocMap + refbf575d93.marker, cmarker_allocs = (C.uint64_t)(x.Marker), cgoAllocsUnknown + allocsbf575d93.Borrow(cmarker_allocs) - x.reff53782 = reff53782 - x.allocsf53782 = allocsf53782 - return reff53782, allocsf53782 + 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 PhysicalDeviceShaderAtomicFloat2Features) PassValue() (C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { - if x.reff53782 != nil { - return *x.reff53782, nil +func (x PerformanceMarkerInfoINTEL) PassValue() (C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { + if x.refbf575d93 != nil { + return *x.refbf575d93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55523,133 +55889,90 @@ func (x PhysicalDeviceShaderAtomicFloat2Features) 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 *PhysicalDeviceShaderAtomicFloat2Features) Deref() { - if x.reff53782 == nil { +func (x *PerformanceMarkerInfoINTEL) Deref() { + if x.refbf575d93 == nil { return } - 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) + x.SType = (StructureType)(x.refbf575d93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbf575d93.pNext)) + x.Marker = (uint64)(x.refbf575d93.marker) } -// allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV in C. +// allocPerformanceStreamMarkerInfoINTELMemory allocates memory for type C.VkPerformanceStreamMarkerInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue)) +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 sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV{}) +const sizeOfPerformanceStreamMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceStreamMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { +func (x *PerformanceStreamMarkerInfoINTEL) Ref() *C.VkPerformanceStreamMarkerInfoINTEL { if x == nil { return nil } - return x.ref569def06 + 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Free() { - if x != nil && x.allocs569def06 != nil { - x.allocs569def06.(*cgoAllocMap).Free() - x.ref569def06 = nil +func (x *PerformanceStreamMarkerInfoINTEL) Free() { + if x != nil && x.allocsaaf8355c != nil { + x.allocsaaf8355c.(*cgoAllocMap).Free() + x.refaaf8355c = nil } } -// NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef 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 NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV { +func NewPerformanceStreamMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceStreamMarkerInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) - obj.ref569def06 = (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { +func (x *PerformanceStreamMarkerInfoINTEL) PassRef() (*C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref569def06 != nil { - return x.ref569def06, nil + } else if x.refaaf8355c != nil { + return x.refaaf8355c, nil } - mem569def06 := allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(1) - ref569def06 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(mem569def06) - allocs569def06 := new(cgoAllocMap) - allocs569def06.Add(mem569def06) + memaaf8355c := allocPerformanceStreamMarkerInfoINTELMemory(1) + refaaf8355c := (*C.VkPerformanceStreamMarkerInfoINTEL)(memaaf8355c) + allocsaaf8355c := new(cgoAllocMap) + allocsaaf8355c.Add(memaaf8355c) var csType_allocs *cgoAllocMap - ref569def06.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs569def06.Borrow(csType_allocs) + refaaf8355c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaaf8355c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref569def06.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs569def06.Borrow(cpNext_allocs) - - var cmaxGraphicsShaderGroupCount_allocs *cgoAllocMap - ref569def06.maxGraphicsShaderGroupCount, cmaxGraphicsShaderGroupCount_allocs = (C.uint32_t)(x.MaxGraphicsShaderGroupCount), cgoAllocsUnknown - allocs569def06.Borrow(cmaxGraphicsShaderGroupCount_allocs) - - var cmaxIndirectSequenceCount_allocs *cgoAllocMap - ref569def06.maxIndirectSequenceCount, cmaxIndirectSequenceCount_allocs = (C.uint32_t)(x.MaxIndirectSequenceCount), cgoAllocsUnknown - allocs569def06.Borrow(cmaxIndirectSequenceCount_allocs) - - var cmaxIndirectCommandsTokenCount_allocs *cgoAllocMap - ref569def06.maxIndirectCommandsTokenCount, cmaxIndirectCommandsTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenCount), cgoAllocsUnknown - allocs569def06.Borrow(cmaxIndirectCommandsTokenCount_allocs) - - var cmaxIndirectCommandsStreamCount_allocs *cgoAllocMap - ref569def06.maxIndirectCommandsStreamCount, cmaxIndirectCommandsStreamCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsStreamCount), cgoAllocsUnknown - allocs569def06.Borrow(cmaxIndirectCommandsStreamCount_allocs) - - var cmaxIndirectCommandsTokenOffset_allocs *cgoAllocMap - ref569def06.maxIndirectCommandsTokenOffset, cmaxIndirectCommandsTokenOffset_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenOffset), cgoAllocsUnknown - allocs569def06.Borrow(cmaxIndirectCommandsTokenOffset_allocs) - - 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) + refaaf8355c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaaf8355c.Borrow(cpNext_allocs) - var cminIndirectCommandsBufferOffsetAlignment_allocs *cgoAllocMap - ref569def06.minIndirectCommandsBufferOffsetAlignment, cminIndirectCommandsBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinIndirectCommandsBufferOffsetAlignment), cgoAllocsUnknown - allocs569def06.Borrow(cminIndirectCommandsBufferOffsetAlignment_allocs) + var cmarker_allocs *cgoAllocMap + refaaf8355c.marker, cmarker_allocs = (C.uint32_t)(x.Marker), cgoAllocsUnknown + allocsaaf8355c.Borrow(cmarker_allocs) - x.ref569def06 = ref569def06 - x.allocs569def06 = allocs569def06 - return ref569def06, allocs569def06 + 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 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { - if x.ref569def06 != nil { - return *x.ref569def06, nil +func (x PerformanceStreamMarkerInfoINTEL) PassValue() (C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { + if x.refaaf8355c != nil { + return *x.refaaf8355c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55657,98 +55980,98 @@ func (x PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Deref() { - if x.ref569def06 == nil { +func (x *PerformanceStreamMarkerInfoINTEL) Deref() { + if x.refaaf8355c == nil { return } - 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) + x.SType = (StructureType)(x.refaaf8355c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaaf8355c.pNext)) + x.Marker = (uint32)(x.refaaf8355c.marker) } -// allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV in C. +// allocPerformanceOverrideInfoINTELMemory allocates memory for type C.VkPerformanceOverrideInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue)) +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 sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{}) +const sizeOfPerformanceOverrideInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceOverrideInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { +func (x *PerformanceOverrideInfoINTEL) Ref() *C.VkPerformanceOverrideInfoINTEL { if x == nil { return nil } - return x.ref3ea95583 + 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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Free() { - if x != nil && x.allocs3ea95583 != nil { - x.allocs3ea95583.(*cgoAllocMap).Free() - x.ref3ea95583 = nil +func (x *PerformanceOverrideInfoINTEL) Free() { + if x != nil && x.allocs1cdbce31 != nil { + x.allocs1cdbce31.(*cgoAllocMap).Free() + x.ref1cdbce31 = nil } } -// NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef 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 NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV { +func NewPerformanceOverrideInfoINTELRef(ref unsafe.Pointer) *PerformanceOverrideInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) - obj.ref3ea95583 = (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { +func (x *PerformanceOverrideInfoINTEL) PassRef() (*C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3ea95583 != nil { - return x.ref3ea95583, nil + } else if x.ref1cdbce31 != nil { + return x.ref1cdbce31, nil } - mem3ea95583 := allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(1) - ref3ea95583 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(mem3ea95583) - allocs3ea95583 := new(cgoAllocMap) - allocs3ea95583.Add(mem3ea95583) + mem1cdbce31 := allocPerformanceOverrideInfoINTELMemory(1) + ref1cdbce31 := (*C.VkPerformanceOverrideInfoINTEL)(mem1cdbce31) + allocs1cdbce31 := new(cgoAllocMap) + allocs1cdbce31.Add(mem1cdbce31) var csType_allocs *cgoAllocMap - ref3ea95583.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3ea95583.Borrow(csType_allocs) + ref1cdbce31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cdbce31.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3ea95583.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3ea95583.Borrow(cpNext_allocs) + ref1cdbce31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cdbce31.Borrow(cpNext_allocs) - var cdeviceGeneratedCommands_allocs *cgoAllocMap - ref3ea95583.deviceGeneratedCommands, cdeviceGeneratedCommands_allocs = (C.VkBool32)(x.DeviceGeneratedCommands), cgoAllocsUnknown - allocs3ea95583.Borrow(cdeviceGeneratedCommands_allocs) + var c_type_allocs *cgoAllocMap + ref1cdbce31._type, c_type_allocs = (C.VkPerformanceOverrideTypeINTEL)(x.Type), cgoAllocsUnknown + allocs1cdbce31.Borrow(c_type_allocs) - x.ref3ea95583 = ref3ea95583 - x.allocs3ea95583 = allocs3ea95583 - return ref3ea95583, allocs3ea95583 + var cenable_allocs *cgoAllocMap + ref1cdbce31.enable, cenable_allocs = (C.VkBool32)(x.Enable), cgoAllocsUnknown + allocs1cdbce31.Borrow(cenable_allocs) + + 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 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { - if x.ref3ea95583 != nil { - return *x.ref3ea95583, nil +func (x PerformanceOverrideInfoINTEL) PassValue() (C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { + if x.ref1cdbce31 != nil { + return *x.ref1cdbce31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55756,178 +56079,6068 @@ func (x PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassValue() (C.VkPhysic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Deref() { - if x.ref3ea95583 == nil { +func (x *PerformanceOverrideInfoINTEL) Deref() { + if x.ref1cdbce31 == nil { return } - x.SType = (StructureType)(x.ref3ea95583.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ea95583.pNext)) - x.DeviceGeneratedCommands = (Bool32)(x.ref3ea95583.deviceGeneratedCommands) + 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) } -// allocGraphicsShaderGroupCreateInfoNVMemory allocates memory for type C.VkGraphicsShaderGroupCreateInfoNV in C. +// allocPerformanceConfigurationAcquireInfoINTELMemory allocates memory for type C.VkPerformanceConfigurationAcquireInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocGraphicsShaderGroupCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsShaderGroupCreateInfoNVValue)) +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 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)) - } -} +const sizeOfPerformanceConfigurationAcquireInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceConfigurationAcquireInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GraphicsShaderGroupCreateInfoNV) Ref() *C.VkGraphicsShaderGroupCreateInfoNV { +func (x *PerformanceConfigurationAcquireInfoINTEL) Ref() *C.VkPerformanceConfigurationAcquireInfoINTEL { if x == nil { return nil } - return x.refa9d954e5 + 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 *GraphicsShaderGroupCreateInfoNV) Free() { - if x != nil && x.allocsa9d954e5 != nil { - x.allocsa9d954e5.(*cgoAllocMap).Free() - x.refa9d954e5 = nil +func (x *PerformanceConfigurationAcquireInfoINTEL) Free() { + if x != nil && x.allocs16c1d105 != nil { + x.allocs16c1d105.(*cgoAllocMap).Free() + x.ref16c1d105 = nil } } -// NewGraphicsShaderGroupCreateInfoNVRef 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 NewGraphicsShaderGroupCreateInfoNVRef(ref unsafe.Pointer) *GraphicsShaderGroupCreateInfoNV { +func NewPerformanceConfigurationAcquireInfoINTELRef(ref unsafe.Pointer) *PerformanceConfigurationAcquireInfoINTEL { if ref == nil { return nil } - obj := new(GraphicsShaderGroupCreateInfoNV) - obj.refa9d954e5 = (*C.VkGraphicsShaderGroupCreateInfoNV)(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 *GraphicsShaderGroupCreateInfoNV) PassRef() (*C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { +func (x *PerformanceConfigurationAcquireInfoINTEL) PassRef() (*C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa9d954e5 != nil { - return x.refa9d954e5, nil + } else if x.ref16c1d105 != nil { + return x.ref16c1d105, nil } - mema9d954e5 := allocGraphicsShaderGroupCreateInfoNVMemory(1) - refa9d954e5 := (*C.VkGraphicsShaderGroupCreateInfoNV)(mema9d954e5) - allocsa9d954e5 := new(cgoAllocMap) - allocsa9d954e5.Add(mema9d954e5) + mem16c1d105 := allocPerformanceConfigurationAcquireInfoINTELMemory(1) + ref16c1d105 := (*C.VkPerformanceConfigurationAcquireInfoINTEL)(mem16c1d105) + allocs16c1d105 := new(cgoAllocMap) + allocs16c1d105.Add(mem16c1d105) var csType_allocs *cgoAllocMap - refa9d954e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa9d954e5.Borrow(csType_allocs) + ref16c1d105.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs16c1d105.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa9d954e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa9d954e5.Borrow(cpNext_allocs) + ref16c1d105.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs16c1d105.Borrow(cpNext_allocs) - var cstageCount_allocs *cgoAllocMap - refa9d954e5.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown - allocsa9d954e5.Borrow(cstageCount_allocs) + var c_type_allocs *cgoAllocMap + ref16c1d105._type, c_type_allocs = (C.VkPerformanceConfigurationTypeINTEL)(x.Type), cgoAllocsUnknown + allocs16c1d105.Borrow(c_type_allocs) - var cpStages_allocs *cgoAllocMap - refa9d954e5.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) - allocsa9d954e5.Borrow(cpStages_allocs) + 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 PerformanceConfigurationAcquireInfoINTEL) PassValue() (C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { + if x.ref16c1d105 != nil { + return *x.ref16c1d105, 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 *PerformanceConfigurationAcquireInfoINTEL) Deref() { + if x.ref16c1d105 == nil { + return + } + x.SType = (StructureType)(x.ref16c1d105.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref16c1d105.pNext)) + x.Type = (PerformanceConfigurationTypeINTEL)(x.ref16c1d105._type) +} + +// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT 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)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { + if x == nil { + return nil + } + 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 *PhysicalDevicePCIBusInfoProperties) Free() { + if x != nil && x.allocsdd9947ff != nil { + x.allocsdd9947ff.(*cgoAllocMap).Free() + x.refdd9947ff = nil + } +} + +// 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 NewPhysicalDevicePCIBusInfoPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePCIBusInfoProperties { + if ref == nil { + return nil + } + 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 *PhysicalDevicePCIBusInfoProperties) PassRef() (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refdd9947ff != nil { + return x.refdd9947ff, nil + } + memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) + refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) + allocsdd9947ff := new(cgoAllocMap) + allocsdd9947ff.Add(memdd9947ff) + + var csType_allocs *cgoAllocMap + refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdd9947ff.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.uint32_t)(x.PciDomain), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDomain_allocs) + + var cpciBus_allocs *cgoAllocMap + refdd9947ff.pciBus, cpciBus_allocs = (C.uint32_t)(x.PciBus), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciBus_allocs) + + var cpciDevice_allocs *cgoAllocMap + refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint32_t)(x.PciDevice), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDevice_allocs) + + var cpciFunction_allocs *cgoAllocMap + refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint32_t)(x.PciFunction), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciFunction_allocs) + + 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 PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { + if x.refdd9947ff != nil { + return *x.refdd9947ff, 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 *PhysicalDevicePCIBusInfoProperties) Deref() { + if x.refdd9947ff == nil { + return + } + 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) +} + +// allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory allocates memory for type C.VkDisplayNativeHdrSurfaceCapabilitiesAMD in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue = unsafe.Sizeof([1]C.VkDisplayNativeHdrSurfaceCapabilitiesAMD{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Ref() *C.VkDisplayNativeHdrSurfaceCapabilitiesAMD { + if x == nil { + return nil + } + 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 *DisplayNativeHdrSurfaceCapabilitiesAMD) Free() { + if x != nil && x.allocs2521293a != nil { + x.allocs2521293a.(*cgoAllocMap).Free() + x.ref2521293a = nil + } +} + +// 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 NewDisplayNativeHdrSurfaceCapabilitiesAMDRef(ref unsafe.Pointer) *DisplayNativeHdrSurfaceCapabilitiesAMD { + if ref == nil { + return nil + } + 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 *DisplayNativeHdrSurfaceCapabilitiesAMD) PassRef() (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2521293a != nil { + return x.ref2521293a, nil + } + mem2521293a := allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(1) + ref2521293a := (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(mem2521293a) + allocs2521293a := new(cgoAllocMap) + allocs2521293a.Add(mem2521293a) + + var csType_allocs *cgoAllocMap + ref2521293a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2521293a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2521293a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2521293a.Borrow(cpNext_allocs) + + var clocalDimmingSupport_allocs *cgoAllocMap + ref2521293a.localDimmingSupport, clocalDimmingSupport_allocs = (C.VkBool32)(x.LocalDimmingSupport), cgoAllocsUnknown + allocs2521293a.Borrow(clocalDimmingSupport_allocs) + + 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 DisplayNativeHdrSurfaceCapabilitiesAMD) PassValue() (C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { + if x.ref2521293a != nil { + return *x.ref2521293a, 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 *DisplayNativeHdrSurfaceCapabilitiesAMD) Deref() { + if x.ref2521293a == nil { + return + } + x.SType = (StructureType)(x.ref2521293a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2521293a.pNext)) + x.LocalDimmingSupport = (Bool32)(x.ref2521293a.localDimmingSupport) +} + +// allocSwapchainDisplayNativeHdrCreateInfoAMDMemory allocates memory for type C.VkSwapchainDisplayNativeHdrCreateInfoAMD in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue = unsafe.Sizeof([1]C.VkSwapchainDisplayNativeHdrCreateInfoAMD{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Ref() *C.VkSwapchainDisplayNativeHdrCreateInfoAMD { + if x == nil { + return nil + } + 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 *SwapchainDisplayNativeHdrCreateInfoAMD) Free() { + if x != nil && x.allocsffbe2634 != nil { + x.allocsffbe2634.(*cgoAllocMap).Free() + x.refffbe2634 = nil + } +} + +// 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 NewSwapchainDisplayNativeHdrCreateInfoAMDRef(ref unsafe.Pointer) *SwapchainDisplayNativeHdrCreateInfoAMD { + if ref == nil { + return nil + } + 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 *SwapchainDisplayNativeHdrCreateInfoAMD) PassRef() (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refffbe2634 != nil { + return x.refffbe2634, nil + } + memffbe2634 := allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(1) + refffbe2634 := (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(memffbe2634) + allocsffbe2634 := new(cgoAllocMap) + allocsffbe2634.Add(memffbe2634) + + var csType_allocs *cgoAllocMap + refffbe2634.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffbe2634.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refffbe2634.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffbe2634.Borrow(cpNext_allocs) + + var clocalDimmingEnable_allocs *cgoAllocMap + refffbe2634.localDimmingEnable, clocalDimmingEnable_allocs = (C.VkBool32)(x.LocalDimmingEnable), cgoAllocsUnknown + allocsffbe2634.Borrow(clocalDimmingEnable_allocs) + + 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 SwapchainDisplayNativeHdrCreateInfoAMD) PassValue() (C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { + if x.refffbe2634 != nil { + return *x.refffbe2634, 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 *SwapchainDisplayNativeHdrCreateInfoAMD) Deref() { + if x.refffbe2634 == nil { + return + } + x.SType = (StructureType)(x.refffbe2634.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffbe2634.pNext)) + x.LocalDimmingEnable = (Bool32)(x.refffbe2634.localDimmingEnable) +} + +// allocPhysicalDeviceFragmentDensityMapFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFragmentDensityMapFeatures) Ref() *C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceFragmentDensityMapFeatures) Free() { + if x != nil && x.allocsfa0bb2d9 != nil { + x.allocsfa0bb2d9.(*cgoAllocMap).Free() + x.reffa0bb2d9 = nil + } +} + +// 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 NewPhysicalDeviceFragmentDensityMapFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceFragmentDensityMapFeatures) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffa0bb2d9 != nil { + return x.reffa0bb2d9, nil + } + memfa0bb2d9 := allocPhysicalDeviceFragmentDensityMapFeaturesMemory(1) + reffa0bb2d9 := (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(memfa0bb2d9) + allocsfa0bb2d9 := new(cgoAllocMap) + allocsfa0bb2d9.Add(memfa0bb2d9) + + var csType_allocs *cgoAllocMap + reffa0bb2d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffa0bb2d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cpNext_allocs) + + var cfragmentDensityMap_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMap, cfragmentDensityMap_allocs = (C.VkBool32)(x.FragmentDensityMap), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMap_allocs) + + var cfragmentDensityMapDynamic_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapDynamic, cfragmentDensityMapDynamic_allocs = (C.VkBool32)(x.FragmentDensityMapDynamic), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapDynamic_allocs) + + var cfragmentDensityMapNonSubsampledImages_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapNonSubsampledImages, cfragmentDensityMapNonSubsampledImages_allocs = (C.VkBool32)(x.FragmentDensityMapNonSubsampledImages), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapNonSubsampledImages_allocs) + + 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 PhysicalDeviceFragmentDensityMapFeatures) PassValue() (C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { + if x.reffa0bb2d9 != nil { + return *x.reffa0bb2d9, 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 *PhysicalDeviceFragmentDensityMapFeatures) Deref() { + if x.reffa0bb2d9 == nil { + return + } + 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) +} + +// allocPhysicalDeviceFragmentDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFragmentDensityMapProperties) Ref() *C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceFragmentDensityMapProperties) Free() { + if x != nil && x.allocs79e5ca31 != nil { + x.allocs79e5ca31.(*cgoAllocMap).Free() + x.ref79e5ca31 = nil + } +} + +// 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 NewPhysicalDeviceFragmentDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapProperties { + if ref == nil { + return nil + } + 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 *PhysicalDeviceFragmentDensityMapProperties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref79e5ca31 != nil { + return x.ref79e5ca31, nil + } + mem79e5ca31 := allocPhysicalDeviceFragmentDensityMapPropertiesMemory(1) + ref79e5ca31 := (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(mem79e5ca31) + allocs79e5ca31 := new(cgoAllocMap) + allocs79e5ca31.Add(mem79e5ca31) + + var csType_allocs *cgoAllocMap + ref79e5ca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs79e5ca31.Borrow(csType_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.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 PhysicalDeviceFragmentDensityMapProperties) PassValue() (C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { + if x.ref79e5ca31 != nil { + return *x.ref79e5ca31, 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 *PhysicalDeviceFragmentDensityMapProperties) Deref() { + if x.ref79e5ca31 == nil { + return + } + 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) +} + +// allocRenderPassFragmentDensityMapCreateInfoMemory allocates memory for type C.VkRenderPassFragmentDensityMapCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfRenderPassFragmentDensityMapCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassFragmentDensityMapCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassFragmentDensityMapCreateInfo) Ref() *C.VkRenderPassFragmentDensityMapCreateInfoEXT { + if x == nil { + return nil + } + 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 *RenderPassFragmentDensityMapCreateInfo) Free() { + if x != nil && x.allocs76b25671 != nil { + x.allocs76b25671.(*cgoAllocMap).Free() + x.ref76b25671 = nil + } +} + +// 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 NewRenderPassFragmentDensityMapCreateInfoRef(ref unsafe.Pointer) *RenderPassFragmentDensityMapCreateInfo { + if ref == nil { + return nil + } + 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 *RenderPassFragmentDensityMapCreateInfo) PassRef() (*C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref76b25671 != nil { + return x.ref76b25671, nil + } + mem76b25671 := allocRenderPassFragmentDensityMapCreateInfoMemory(1) + ref76b25671 := (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(mem76b25671) + allocs76b25671 := new(cgoAllocMap) + allocs76b25671.Add(mem76b25671) + + var csType_allocs *cgoAllocMap + ref76b25671.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs76b25671.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref76b25671.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs76b25671.Borrow(cpNext_allocs) + + var cfragmentDensityMapAttachment_allocs *cgoAllocMap + ref76b25671.fragmentDensityMapAttachment, cfragmentDensityMapAttachment_allocs = x.FragmentDensityMapAttachment.PassValue() + allocs76b25671.Borrow(cfragmentDensityMapAttachment_allocs) + + 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 RenderPassFragmentDensityMapCreateInfo) PassValue() (C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { + if x.ref76b25671 != nil { + return *x.ref76b25671, 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 *RenderPassFragmentDensityMapCreateInfo) Deref() { + if x.ref76b25671 == nil { + return + } + x.SType = (StructureType)(x.ref76b25671.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76b25671.pNext)) + x.FragmentDensityMapAttachment = *NewAttachmentReferenceRef(unsafe.Pointer(&x.ref76b25671.fragmentDensityMapAttachment)) +} + +// allocPhysicalDeviceShaderCoreProperties2AMDMemory allocates memory for type C.VkPhysicalDeviceShaderCoreProperties2AMD in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceShaderCoreProperties2AMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCoreProperties2AMD{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderCoreProperties2AMD) Ref() *C.VkPhysicalDeviceShaderCoreProperties2AMD { + if x == nil { + return nil + } + 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 *PhysicalDeviceShaderCoreProperties2AMD) Free() { + if x != nil && x.allocs7be3d4c4 != nil { + x.allocs7be3d4c4.(*cgoAllocMap).Free() + x.ref7be3d4c4 = nil + } +} + +// 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 NewPhysicalDeviceShaderCoreProperties2AMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCoreProperties2AMD { + if ref == nil { + return nil + } + 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 *PhysicalDeviceShaderCoreProperties2AMD) PassRef() (*C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7be3d4c4 != nil { + return x.ref7be3d4c4, nil + } + mem7be3d4c4 := allocPhysicalDeviceShaderCoreProperties2AMDMemory(1) + ref7be3d4c4 := (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(mem7be3d4c4) + allocs7be3d4c4 := new(cgoAllocMap) + allocs7be3d4c4.Add(mem7be3d4c4) + + var csType_allocs *cgoAllocMap + ref7be3d4c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7be3d4c4.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7be3d4c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cpNext_allocs) + + var cshaderCoreFeatures_allocs *cgoAllocMap + ref7be3d4c4.shaderCoreFeatures, cshaderCoreFeatures_allocs = (C.VkShaderCorePropertiesFlagsAMD)(x.ShaderCoreFeatures), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cshaderCoreFeatures_allocs) + + var cactiveComputeUnitCount_allocs *cgoAllocMap + ref7be3d4c4.activeComputeUnitCount, cactiveComputeUnitCount_allocs = (C.uint32_t)(x.ActiveComputeUnitCount), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cactiveComputeUnitCount_allocs) + + 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 PhysicalDeviceShaderCoreProperties2AMD) PassValue() (C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { + if x.ref7be3d4c4 != nil { + return *x.ref7be3d4c4, 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 *PhysicalDeviceShaderCoreProperties2AMD) Deref() { + if x.ref7be3d4c4 == nil { + return + } + 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) +} + +// allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceCoherentMemoryFeaturesAMD in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoherentMemoryFeaturesAMD{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Ref() *C.VkPhysicalDeviceCoherentMemoryFeaturesAMD { + if x == nil { + return nil + } + 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) Free() { + if x != nil && x.allocs34cb87b4 != nil { + x.allocs34cb87b4.(*cgoAllocMap).Free() + x.ref34cb87b4 = nil + } +} + +// 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 NewPhysicalDeviceCoherentMemoryFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceCoherentMemoryFeaturesAMD { + if ref == nil { + return nil + } + 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) PassRef() (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref34cb87b4 != nil { + return x.ref34cb87b4, nil + } + mem34cb87b4 := allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(1) + ref34cb87b4 := (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(mem34cb87b4) + allocs34cb87b4 := new(cgoAllocMap) + allocs34cb87b4.Add(mem34cb87b4) + + var csType_allocs *cgoAllocMap + ref34cb87b4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34cb87b4.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref34cb87b4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34cb87b4.Borrow(cpNext_allocs) + + var cdeviceCoherentMemory_allocs *cgoAllocMap + ref34cb87b4.deviceCoherentMemory, cdeviceCoherentMemory_allocs = (C.VkBool32)(x.DeviceCoherentMemory), cgoAllocsUnknown + allocs34cb87b4.Borrow(cdeviceCoherentMemory_allocs) + + 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 PhysicalDeviceCoherentMemoryFeaturesAMD) PassValue() (C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { + if x.ref34cb87b4 != nil { + return *x.ref34cb87b4, 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 *PhysicalDeviceCoherentMemoryFeaturesAMD) Deref() { + if x.ref34cb87b4 == nil { + return + } + x.SType = (StructureType)(x.ref34cb87b4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34cb87b4.pNext)) + x.DeviceCoherentMemory = (Bool32)(x.ref34cb87b4.deviceCoherentMemory) +} + +// allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceShaderImageAtomicInt64Features) Free() { + if x != nil && x.allocs1b0fbd != nil { + x.allocs1b0fbd.(*cgoAllocMap).Free() + x.ref1b0fbd = nil + } +} + +// 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 NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageAtomicInt64Features { + if ref == nil { + return nil + } + 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 *PhysicalDeviceShaderImageAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1b0fbd != nil { + return x.ref1b0fbd, nil + } + mem1b0fbd := allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(1) + ref1b0fbd := (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(mem1b0fbd) + allocs1b0fbd := new(cgoAllocMap) + allocs1b0fbd.Add(mem1b0fbd) + + var csType_allocs *cgoAllocMap + ref1b0fbd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1b0fbd.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref1b0fbd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1b0fbd.Borrow(cpNext_allocs) + + var cshaderImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.shaderImageInt64Atomics, cshaderImageInt64Atomics_allocs = (C.VkBool32)(x.ShaderImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(cshaderImageInt64Atomics_allocs) + + var csparseImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.sparseImageInt64Atomics, csparseImageInt64Atomics_allocs = (C.VkBool32)(x.SparseImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(csparseImageInt64Atomics_allocs) + + 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 PhysicalDeviceShaderImageAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { + if x.ref1b0fbd != nil { + return *x.ref1b0fbd, 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 *PhysicalDeviceShaderImageAtomicInt64Features) Deref() { + if x.ref1b0fbd == nil { + return + } + 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) +} + +// allocPhysicalDeviceMemoryBudgetPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryBudgetPropertiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceMemoryBudgetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryBudgetPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMemoryBudgetProperties) Ref() *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceMemoryBudgetProperties) Free() { + if x != nil && x.allocsa7406c48 != nil { + x.allocsa7406c48.(*cgoAllocMap).Free() + x.refa7406c48 = nil + } +} + +// 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 NewPhysicalDeviceMemoryBudgetPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryBudgetProperties { + if ref == nil { + return nil + } + 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 *PhysicalDeviceMemoryBudgetProperties) PassRef() (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa7406c48 != nil { + return x.refa7406c48, nil + } + mema7406c48 := allocPhysicalDeviceMemoryBudgetPropertiesMemory(1) + refa7406c48 := (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(mema7406c48) + allocsa7406c48 := new(cgoAllocMap) + allocsa7406c48.Add(mema7406c48) + + var csType_allocs *cgoAllocMap + refa7406c48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa7406c48.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa7406c48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa7406c48.Borrow(cpNext_allocs) + + var cheapBudget_allocs *cgoAllocMap + refa7406c48.heapBudget, cheapBudget_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapBudget)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapBudget_allocs) + + var cheapUsage_allocs *cgoAllocMap + refa7406c48.heapUsage, cheapUsage_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapUsage)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapUsage_allocs) + + 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 PhysicalDeviceMemoryBudgetProperties) PassValue() (C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { + if x.refa7406c48 != nil { + return *x.refa7406c48, 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 *PhysicalDeviceMemoryBudgetProperties) Deref() { + if x.refa7406c48 == nil { + return + } + 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)) +} + +// allocPhysicalDeviceMemoryPriorityFeaturesMemory allocates memory for type C.VkPhysicalDeviceMemoryPriorityFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceMemoryPriorityFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryPriorityFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMemoryPriorityFeatures) Ref() *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceMemoryPriorityFeatures) Free() { + if x != nil && x.allocs24f8641c != nil { + x.allocs24f8641c.(*cgoAllocMap).Free() + x.ref24f8641c = nil + } +} + +// 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 NewPhysicalDeviceMemoryPriorityFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryPriorityFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceMemoryPriorityFeatures) PassRef() (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref24f8641c != nil { + return x.ref24f8641c, nil + } + mem24f8641c := allocPhysicalDeviceMemoryPriorityFeaturesMemory(1) + ref24f8641c := (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(mem24f8641c) + allocs24f8641c := new(cgoAllocMap) + allocs24f8641c.Add(mem24f8641c) + + var csType_allocs *cgoAllocMap + ref24f8641c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs24f8641c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref24f8641c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs24f8641c.Borrow(cpNext_allocs) + + 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 PhysicalDeviceMemoryPriorityFeatures) PassValue() (C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { + if x.ref24f8641c != nil { + return *x.ref24f8641c, 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 *PhysicalDeviceMemoryPriorityFeatures) Deref() { + if x.ref24f8641c == nil { + return + } + x.SType = (StructureType)(x.ref24f8641c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f8641c.pNext)) + x.MemoryPriority = (Bool32)(x.ref24f8641c.memoryPriority) +} + +// allocMemoryPriorityAllocateInfoMemory allocates memory for type C.VkMemoryPriorityAllocateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfMemoryPriorityAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryPriorityAllocateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryPriorityAllocateInfo) Ref() *C.VkMemoryPriorityAllocateInfoEXT { + if x == nil { + return nil + } + 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 *MemoryPriorityAllocateInfo) Free() { + if x != nil && x.allocsd3540846 != nil { + x.allocsd3540846.(*cgoAllocMap).Free() + x.refd3540846 = nil + } +} + +// 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 NewMemoryPriorityAllocateInfoRef(ref unsafe.Pointer) *MemoryPriorityAllocateInfo { + if ref == nil { + return nil + } + 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 *MemoryPriorityAllocateInfo) PassRef() (*C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd3540846 != nil { + return x.refd3540846, nil + } + memd3540846 := allocMemoryPriorityAllocateInfoMemory(1) + refd3540846 := (*C.VkMemoryPriorityAllocateInfoEXT)(memd3540846) + allocsd3540846 := new(cgoAllocMap) + allocsd3540846.Add(memd3540846) + + var csType_allocs *cgoAllocMap + refd3540846.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd3540846.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd3540846.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd3540846.Borrow(cpNext_allocs) + + var cpriority_allocs *cgoAllocMap + refd3540846.priority, cpriority_allocs = (C.float)(x.Priority), cgoAllocsUnknown + allocsd3540846.Borrow(cpriority_allocs) + + 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 MemoryPriorityAllocateInfo) PassValue() (C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { + if x.refd3540846 != nil { + return *x.refd3540846, 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 *MemoryPriorityAllocateInfo) Deref() { + if x.refd3540846 == nil { + return + } + x.SType = (StructureType)(x.refd3540846.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd3540846.pNext)) + x.Priority = (float32)(x.refd3540846.priority) +} + +// allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Ref() *C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Free() { + if x != nil && x.allocsade17227 != nil { + x.allocsade17227.(*cgoAllocMap).Free() + x.refade17227 = nil + } +} + +// 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 NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassRef() (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refade17227 != nil { + return x.refade17227, nil + } + memade17227 := allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(1) + refade17227 := (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(memade17227) + allocsade17227 := new(cgoAllocMap) + allocsade17227.Add(memade17227) + + var csType_allocs *cgoAllocMap + refade17227.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsade17227.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refade17227.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsade17227.Borrow(cpNext_allocs) + + var cdedicatedAllocationImageAliasing_allocs *cgoAllocMap + refade17227.dedicatedAllocationImageAliasing, cdedicatedAllocationImageAliasing_allocs = (C.VkBool32)(x.DedicatedAllocationImageAliasing), cgoAllocsUnknown + allocsade17227.Borrow(cdedicatedAllocationImageAliasing_allocs) + + 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 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassValue() (C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { + if x.refade17227 != nil { + return *x.refade17227, 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 *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Deref() { + if x.refade17227 == nil { + return + } + x.SType = (StructureType)(x.refade17227.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refade17227.pNext)) + x.DedicatedAllocationImageAliasing = (Bool32)(x.refade17227.dedicatedAllocationImageAliasing) +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceBufferAddressFeatures) Ref() *C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceBufferAddressFeatures) Free() { + if x != nil && x.allocse3bd03a5 != nil { + x.allocse3bd03a5.(*cgoAllocMap).Free() + x.refe3bd03a5 = nil + } +} + +// 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 NewPhysicalDeviceBufferAddressFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBufferAddressFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceBufferAddressFeatures) PassRef() (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe3bd03a5 != nil { + return x.refe3bd03a5, nil + } + meme3bd03a5 := allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(1) + refe3bd03a5 := (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(meme3bd03a5) + allocse3bd03a5 := new(cgoAllocMap) + allocse3bd03a5.Add(meme3bd03a5) + + var csType_allocs *cgoAllocMap + refe3bd03a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3bd03a5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe3bd03a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3bd03a5.Borrow(cpNext_allocs) + + var cbufferDeviceAddress_allocs *cgoAllocMap + refe3bd03a5.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocse3bd03a5.Borrow(cbufferDeviceAddress_allocs) + + 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 PhysicalDeviceBufferAddressFeatures) PassValue() (C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { + if x.refe3bd03a5 != nil { + return *x.refe3bd03a5, 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 *PhysicalDeviceBufferAddressFeatures) Deref() { + if x.refe3bd03a5 == nil { + return + } + 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) +} + +// allocBufferDeviceAddressCreateInfoMemory allocates memory for type C.VkBufferDeviceAddressCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfBufferDeviceAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferDeviceAddressCreateInfo) Ref() *C.VkBufferDeviceAddressCreateInfoEXT { + if x == nil { + return nil + } + 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 *BufferDeviceAddressCreateInfo) Free() { + if x != nil && x.allocs4c6937a9 != nil { + x.allocs4c6937a9.(*cgoAllocMap).Free() + x.ref4c6937a9 = nil + } +} + +// 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 NewBufferDeviceAddressCreateInfoRef(ref unsafe.Pointer) *BufferDeviceAddressCreateInfo { + if ref == nil { + return nil + } + 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 *BufferDeviceAddressCreateInfo) PassRef() (*C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4c6937a9 != nil { + return x.ref4c6937a9, nil + } + mem4c6937a9 := allocBufferDeviceAddressCreateInfoMemory(1) + ref4c6937a9 := (*C.VkBufferDeviceAddressCreateInfoEXT)(mem4c6937a9) + allocs4c6937a9 := new(cgoAllocMap) + allocs4c6937a9.Add(mem4c6937a9) + + var csType_allocs *cgoAllocMap + ref4c6937a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4c6937a9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4c6937a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4c6937a9.Borrow(cpNext_allocs) + + var cdeviceAddress_allocs *cgoAllocMap + ref4c6937a9.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocs4c6937a9.Borrow(cdeviceAddress_allocs) + + 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 BufferDeviceAddressCreateInfo) PassValue() (C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { + if x.ref4c6937a9 != nil { + return *x.ref4c6937a9, 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 *BufferDeviceAddressCreateInfo) Deref() { + if x.ref4c6937a9 == nil { + return + } + x.SType = (StructureType)(x.ref4c6937a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4c6937a9.pNext)) + x.DeviceAddress = (DeviceAddress)(x.ref4c6937a9.deviceAddress) +} + +// allocValidationFeaturesMemory allocates memory for type C.VkValidationFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfValidationFeaturesValue = unsafe.Sizeof([1]C.VkValidationFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ValidationFeatures) Ref() *C.VkValidationFeaturesEXT { + if x == nil { + return nil + } + 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 *ValidationFeatures) Free() { + if x != nil && x.allocscd8794ea != nil { + x.allocscd8794ea.(*cgoAllocMap).Free() + x.refcd8794ea = nil + } +} + +// 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 NewValidationFeaturesRef(ref unsafe.Pointer) *ValidationFeatures { + if ref == nil { + return nil + } + 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 *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refcd8794ea != nil { + return x.refcd8794ea, nil + } + memcd8794ea := allocValidationFeaturesMemory(1) + refcd8794ea := (*C.VkValidationFeaturesEXT)(memcd8794ea) + allocscd8794ea := new(cgoAllocMap) + allocscd8794ea.Add(memcd8794ea) + + var csType_allocs *cgoAllocMap + refcd8794ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd8794ea.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refcd8794ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd8794ea.Borrow(cpNext_allocs) + + var cenabledValidationFeatureCount_allocs *cgoAllocMap + refcd8794ea.enabledValidationFeatureCount, cenabledValidationFeatureCount_allocs = (C.uint32_t)(x.EnabledValidationFeatureCount), cgoAllocsUnknown + allocscd8794ea.Borrow(cenabledValidationFeatureCount_allocs) + + 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 ValidationFeatures) PassValue() (C.VkValidationFeaturesEXT, *cgoAllocMap) { + if x.refcd8794ea != nil { + return *x.refcd8794ea, 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 *ValidationFeatures) Deref() { + if x.refcd8794ea == nil { + return + } + x.SType = (StructureType)(x.refcd8794ea.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd8794ea.pNext)) + x.EnabledValidationFeatureCount = (uint32)(x.refcd8794ea.enabledValidationFeatureCount) + hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)) + hxf4b5187.Data = unsafe.Pointer(x.refcd8794ea.pEnabledValidationFeatures) + hxf4b5187.Cap = 0x7fffffff + // hxf4b5187.Len = ? + + x.DisabledValidationFeatureCount = (uint32)(x.refcd8794ea.disabledValidationFeatureCount) + hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)) + hxf177f79.Data = unsafe.Pointer(x.refcd8794ea.pDisabledValidationFeatures) + hxf177f79.Cap = 0x7fffffff + // hxf177f79.Len = ? + +} + +// allocCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkCooperativeMatrixPropertiesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkCooperativeMatrixPropertiesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CooperativeMatrixPropertiesNV) Ref() *C.VkCooperativeMatrixPropertiesNV { + if x == nil { + return nil + } + 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 *CooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs4302be60 != nil { + x.allocs4302be60.(*cgoAllocMap).Free() + x.ref4302be60 = nil + } +} + +// 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 NewCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *CooperativeMatrixPropertiesNV { + if ref == nil { + return nil + } + 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 *CooperativeMatrixPropertiesNV) PassRef() (*C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4302be60 != nil { + return x.ref4302be60, nil + } + mem4302be60 := allocCooperativeMatrixPropertiesNVMemory(1) + ref4302be60 := (*C.VkCooperativeMatrixPropertiesNV)(mem4302be60) + allocs4302be60 := new(cgoAllocMap) + allocs4302be60.Add(mem4302be60) + + var csType_allocs *cgoAllocMap + ref4302be60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4302be60.Borrow(csType_allocs) + + 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 CooperativeMatrixPropertiesNV) PassValue() (C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref4302be60 != nil { + return *x.ref4302be60, 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 *CooperativeMatrixPropertiesNV) Deref() { + if x.ref4302be60 == nil { + return + } + 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) +} + +// allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixFeaturesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixFeaturesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixFeaturesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) Free() { + if x != nil && x.allocsff45ea3f != nil { + x.allocsff45ea3f.(*cgoAllocMap).Free() + x.refff45ea3f = nil + } +} + +// 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 NewPhysicalDeviceCooperativeMatrixFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixFeaturesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refff45ea3f != nil { + return x.refff45ea3f, nil + } + memff45ea3f := allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(1) + refff45ea3f := (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(memff45ea3f) + allocsff45ea3f := new(cgoAllocMap) + allocsff45ea3f.Add(memff45ea3f) + + var csType_allocs *cgoAllocMap + refff45ea3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff45ea3f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refff45ea3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff45ea3f.Borrow(cpNext_allocs) + + var ccooperativeMatrix_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrix, ccooperativeMatrix_allocs = (C.VkBool32)(x.CooperativeMatrix), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrix_allocs) + + var ccooperativeMatrixRobustBufferAccess_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrixRobustBufferAccess, ccooperativeMatrixRobustBufferAccess_allocs = (C.VkBool32)(x.CooperativeMatrixRobustBufferAccess), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrixRobustBufferAccess_allocs) + + 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 PhysicalDeviceCooperativeMatrixFeaturesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { + if x.refff45ea3f != nil { + return *x.refff45ea3f, 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 *PhysicalDeviceCooperativeMatrixFeaturesNV) Deref() { + if x.refff45ea3f == nil { + return + } + 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) +} + +// allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixPropertiesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixPropertiesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixPropertiesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs45336143 != nil { + x.allocs45336143.(*cgoAllocMap).Free() + x.ref45336143 = nil + } +} + +// 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 NewPhysicalDeviceCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixPropertiesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref45336143 != nil { + return x.ref45336143, nil + } + mem45336143 := allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(1) + ref45336143 := (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(mem45336143) + allocs45336143 := new(cgoAllocMap) + allocs45336143.Add(mem45336143) + + var csType_allocs *cgoAllocMap + ref45336143.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs45336143.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref45336143.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs45336143.Borrow(cpNext_allocs) + + 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 PhysicalDeviceCooperativeMatrixPropertiesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref45336143 != nil { + return *x.ref45336143, 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 *PhysicalDeviceCooperativeMatrixPropertiesNV) Deref() { + if x.ref45336143 == nil { + return + } + x.SType = (StructureType)(x.ref45336143.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref45336143.pNext)) + x.CooperativeMatrixSupportedStages = (ShaderStageFlags)(x.ref45336143.cooperativeMatrixSupportedStages) +} + +// allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCoverageReductionModeFeaturesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoverageReductionModeFeaturesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Ref() *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceCoverageReductionModeFeaturesNV) Free() { + if x != nil && x.allocs1066c79 != nil { + x.allocs1066c79.(*cgoAllocMap).Free() + x.ref1066c79 = nil + } +} + +// 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 NewPhysicalDeviceCoverageReductionModeFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCoverageReductionModeFeaturesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceCoverageReductionModeFeaturesNV) PassRef() (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1066c79 != nil { + return x.ref1066c79, nil + } + mem1066c79 := allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(1) + ref1066c79 := (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(mem1066c79) + allocs1066c79 := new(cgoAllocMap) + allocs1066c79.Add(mem1066c79) + + var csType_allocs *cgoAllocMap + ref1066c79.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1066c79.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref1066c79.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1066c79.Borrow(cpNext_allocs) + + var ccoverageReductionMode_allocs *cgoAllocMap + ref1066c79.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkBool32)(x.CoverageReductionMode), cgoAllocsUnknown + allocs1066c79.Borrow(ccoverageReductionMode_allocs) + + 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 PhysicalDeviceCoverageReductionModeFeaturesNV) PassValue() (C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { + if x.ref1066c79 != nil { + return *x.ref1066c79, 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 *PhysicalDeviceCoverageReductionModeFeaturesNV) Deref() { + if x.ref1066c79 == nil { + return + } + x.SType = (StructureType)(x.ref1066c79.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1066c79.pNext)) + x.CoverageReductionMode = (Bool32)(x.ref1066c79.coverageReductionMode) +} + +// allocPipelineCoverageReductionStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageReductionStateCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPipelineCoverageReductionStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageReductionStateCreateInfoNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineCoverageReductionStateCreateInfoNV) Ref() *C.VkPipelineCoverageReductionStateCreateInfoNV { + if x == nil { + return nil + } + 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 *PipelineCoverageReductionStateCreateInfoNV) Free() { + if x != nil && x.allocs39db618c != nil { + x.allocs39db618c.(*cgoAllocMap).Free() + x.ref39db618c = nil + } +} + +// 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 NewPipelineCoverageReductionStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageReductionStateCreateInfoNV { + if ref == nil { + return nil + } + 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 *PipelineCoverageReductionStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref39db618c != nil { + return x.ref39db618c, nil + } + mem39db618c := allocPipelineCoverageReductionStateCreateInfoNVMemory(1) + ref39db618c := (*C.VkPipelineCoverageReductionStateCreateInfoNV)(mem39db618c) + allocs39db618c := new(cgoAllocMap) + allocs39db618c.Add(mem39db618c) + + var csType_allocs *cgoAllocMap + ref39db618c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs39db618c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref39db618c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs39db618c.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref39db618c.flags, cflags_allocs = (C.VkPipelineCoverageReductionStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs39db618c.Borrow(cflags_allocs) + + 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 PipelineCoverageReductionStateCreateInfoNV) PassValue() (C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { + if x.ref39db618c != nil { + return *x.ref39db618c, 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 *PipelineCoverageReductionStateCreateInfoNV) Deref() { + if x.ref39db618c == nil { + return + } + 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) +} + +// allocFramebufferMixedSamplesCombinationNVMemory allocates memory for type C.VkFramebufferMixedSamplesCombinationNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfFramebufferMixedSamplesCombinationNVValue = unsafe.Sizeof([1]C.VkFramebufferMixedSamplesCombinationNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FramebufferMixedSamplesCombinationNV) Ref() *C.VkFramebufferMixedSamplesCombinationNV { + if x == nil { + return nil + } + 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 *FramebufferMixedSamplesCombinationNV) Free() { + if x != nil && x.allocs75affbab != nil { + x.allocs75affbab.(*cgoAllocMap).Free() + x.ref75affbab = nil + } +} + +// 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 NewFramebufferMixedSamplesCombinationNVRef(ref unsafe.Pointer) *FramebufferMixedSamplesCombinationNV { + if ref == nil { + return nil + } + 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 *FramebufferMixedSamplesCombinationNV) PassRef() (*C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref75affbab != nil { + return x.ref75affbab, nil + } + mem75affbab := allocFramebufferMixedSamplesCombinationNVMemory(1) + ref75affbab := (*C.VkFramebufferMixedSamplesCombinationNV)(mem75affbab) + allocs75affbab := new(cgoAllocMap) + allocs75affbab.Add(mem75affbab) + + var csType_allocs *cgoAllocMap + ref75affbab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75affbab.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref75affbab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75affbab.Borrow(cpNext_allocs) + + var ccoverageReductionMode_allocs *cgoAllocMap + ref75affbab.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown + allocs75affbab.Borrow(ccoverageReductionMode_allocs) + + var crasterizationSamples_allocs *cgoAllocMap + ref75affbab.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocs75affbab.Borrow(crasterizationSamples_allocs) + + 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 FramebufferMixedSamplesCombinationNV) PassValue() (C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { + if x.ref75affbab != nil { + return *x.ref75affbab, 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 *FramebufferMixedSamplesCombinationNV) Deref() { + if x.ref75affbab == nil { + return + } + 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) +} + +// allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceFragmentShaderInterlockFeatures) Free() { + if x != nil && x.allocs1ed4955d != nil { + x.allocs1ed4955d.(*cgoAllocMap).Free() + x.ref1ed4955d = nil + } +} + +// 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 NewPhysicalDeviceFragmentShaderInterlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderInterlockFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceFragmentShaderInterlockFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1ed4955d != nil { + return x.ref1ed4955d, nil + } + mem1ed4955d := allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(1) + ref1ed4955d := (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(mem1ed4955d) + allocs1ed4955d := new(cgoAllocMap) + allocs1ed4955d.Add(mem1ed4955d) + + var csType_allocs *cgoAllocMap + ref1ed4955d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1ed4955d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref1ed4955d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1ed4955d.Borrow(cpNext_allocs) + + var cfragmentShaderSampleInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderSampleInterlock, cfragmentShaderSampleInterlock_allocs = (C.VkBool32)(x.FragmentShaderSampleInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderSampleInterlock_allocs) + + var cfragmentShaderPixelInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderPixelInterlock, cfragmentShaderPixelInterlock_allocs = (C.VkBool32)(x.FragmentShaderPixelInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderPixelInterlock_allocs) + + var cfragmentShaderShadingRateInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderShadingRateInterlock, cfragmentShaderShadingRateInterlock_allocs = (C.VkBool32)(x.FragmentShaderShadingRateInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderShadingRateInterlock_allocs) + + 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 PhysicalDeviceFragmentShaderInterlockFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { + if x.ref1ed4955d != nil { + return *x.ref1ed4955d, 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 *PhysicalDeviceFragmentShaderInterlockFeatures) Deref() { + if x.ref1ed4955d == nil { + return + } + 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) +} + +// allocPhysicalDeviceYcbcrImageArraysFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Ref() *C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceYcbcrImageArraysFeatures) Free() { + if x != nil && x.allocs3198007 != nil { + x.allocs3198007.(*cgoAllocMap).Free() + x.ref3198007 = nil + } +} + +// 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 NewPhysicalDeviceYcbcrImageArraysFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcrImageArraysFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceYcbcrImageArraysFeatures) PassRef() (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3198007 != nil { + return x.ref3198007, nil + } + mem3198007 := allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(1) + ref3198007 := (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(mem3198007) + allocs3198007 := new(cgoAllocMap) + allocs3198007.Add(mem3198007) + + var csType_allocs *cgoAllocMap + ref3198007.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3198007.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3198007.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3198007.Borrow(cpNext_allocs) + + var cycbcrImageArrays_allocs *cgoAllocMap + ref3198007.ycbcrImageArrays, cycbcrImageArrays_allocs = (C.VkBool32)(x.YcbcrImageArrays), cgoAllocsUnknown + allocs3198007.Borrow(cycbcrImageArrays_allocs) + + 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 PhysicalDeviceYcbcrImageArraysFeatures) PassValue() (C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { + if x.ref3198007 != nil { + return *x.ref3198007, 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 *PhysicalDeviceYcbcrImageArraysFeatures) Deref() { + if x.ref3198007 == nil { + return + } + x.SType = (StructureType)(x.ref3198007.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3198007.pNext)) + x.YcbcrImageArrays = (Bool32)(x.ref3198007.ycbcrImageArrays) +} + +// allocPhysicalDeviceProvokingVertexFeaturesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceProvokingVertexFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProvokingVertexFeatures) Ref() *C.VkPhysicalDeviceProvokingVertexFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceProvokingVertexFeatures) Free() { + if x != nil && x.allocs3e34d575 != nil { + x.allocs3e34d575.(*cgoAllocMap).Free() + x.ref3e34d575 = nil + } +} + +// 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 NewPhysicalDeviceProvokingVertexFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceProvokingVertexFeatures) PassRef() (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3e34d575 != nil { + return x.ref3e34d575, nil + } + mem3e34d575 := allocPhysicalDeviceProvokingVertexFeaturesMemory(1) + ref3e34d575 := (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(mem3e34d575) + allocs3e34d575 := new(cgoAllocMap) + allocs3e34d575.Add(mem3e34d575) + + var csType_allocs *cgoAllocMap + ref3e34d575.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e34d575.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3e34d575.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e34d575.Borrow(cpNext_allocs) + + var cprovokingVertexLast_allocs *cgoAllocMap + ref3e34d575.provokingVertexLast, cprovokingVertexLast_allocs = (C.VkBool32)(x.ProvokingVertexLast), cgoAllocsUnknown + allocs3e34d575.Borrow(cprovokingVertexLast_allocs) + + var ctransformFeedbackPreservesProvokingVertex_allocs *cgoAllocMap + ref3e34d575.transformFeedbackPreservesProvokingVertex, ctransformFeedbackPreservesProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesProvokingVertex), cgoAllocsUnknown + allocs3e34d575.Borrow(ctransformFeedbackPreservesProvokingVertex_allocs) + + 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 PhysicalDeviceProvokingVertexFeatures) PassValue() (C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { + if x.ref3e34d575 != nil { + return *x.ref3e34d575, 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 *PhysicalDeviceProvokingVertexFeatures) Deref() { + if x.ref3e34d575 == nil { + return + } + 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) +} + +// allocPhysicalDeviceProvokingVertexPropertiesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexPropertiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceProvokingVertexPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProvokingVertexProperties) Ref() *C.VkPhysicalDeviceProvokingVertexPropertiesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceProvokingVertexProperties) Free() { + if x != nil && x.allocsa8810910 != nil { + x.allocsa8810910.(*cgoAllocMap).Free() + x.refa8810910 = nil + } +} + +// 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 NewPhysicalDeviceProvokingVertexPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexProperties { + if ref == nil { + return nil + } + 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 *PhysicalDeviceProvokingVertexProperties) PassRef() (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa8810910 != nil { + return x.refa8810910, nil + } + mema8810910 := allocPhysicalDeviceProvokingVertexPropertiesMemory(1) + refa8810910 := (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(mema8810910) + allocsa8810910 := new(cgoAllocMap) + allocsa8810910.Add(mema8810910) + + var csType_allocs *cgoAllocMap + refa8810910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8810910.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa8810910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8810910.Borrow(cpNext_allocs) + + var cprovokingVertexModePerPipeline_allocs *cgoAllocMap + refa8810910.provokingVertexModePerPipeline, cprovokingVertexModePerPipeline_allocs = (C.VkBool32)(x.ProvokingVertexModePerPipeline), cgoAllocsUnknown + allocsa8810910.Borrow(cprovokingVertexModePerPipeline_allocs) + + var ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs *cgoAllocMap + refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex, ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesTriangleFanProvokingVertex), cgoAllocsUnknown + allocsa8810910.Borrow(ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs) + + 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 PhysicalDeviceProvokingVertexProperties) PassValue() (C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { + if x.refa8810910 != nil { + return *x.refa8810910, 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 *PhysicalDeviceProvokingVertexProperties) Deref() { + if x.refa8810910 == nil { + return + } + 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) +} + +// allocPipelineRasterizationProvokingVertexStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Ref() *C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { + if x == nil { + return nil + } + 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 *PipelineRasterizationProvokingVertexStateCreateInfo) Free() { + if x != nil && x.allocs367b4d68 != nil { + x.allocs367b4d68.(*cgoAllocMap).Free() + x.ref367b4d68 = nil + } +} + +// 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 NewPipelineRasterizationProvokingVertexStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationProvokingVertexStateCreateInfo { + if ref == nil { + return nil + } + 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 *PipelineRasterizationProvokingVertexStateCreateInfo) PassRef() (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref367b4d68 != nil { + return x.ref367b4d68, nil + } + mem367b4d68 := allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(1) + ref367b4d68 := (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(mem367b4d68) + allocs367b4d68 := new(cgoAllocMap) + allocs367b4d68.Add(mem367b4d68) + + var csType_allocs *cgoAllocMap + ref367b4d68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs367b4d68.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref367b4d68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs367b4d68.Borrow(cpNext_allocs) + + var cprovokingVertexMode_allocs *cgoAllocMap + ref367b4d68.provokingVertexMode, cprovokingVertexMode_allocs = (C.VkProvokingVertexModeEXT)(x.ProvokingVertexMode), cgoAllocsUnknown + allocs367b4d68.Borrow(cprovokingVertexMode_allocs) + + 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 PipelineRasterizationProvokingVertexStateCreateInfo) PassValue() (C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { + if x.ref367b4d68 != nil { + return *x.ref367b4d68, 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 *PipelineRasterizationProvokingVertexStateCreateInfo) Deref() { + if x.ref367b4d68 == nil { + return + } + x.SType = (StructureType)(x.ref367b4d68.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref367b4d68.pNext)) + x.ProvokingVertexMode = (ProvokingVertexMode)(x.ref367b4d68.provokingVertexMode) +} + +// allocHeadlessSurfaceCreateInfoMemory allocates memory for type C.VkHeadlessSurfaceCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfHeadlessSurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkHeadlessSurfaceCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *HeadlessSurfaceCreateInfo) Ref() *C.VkHeadlessSurfaceCreateInfoEXT { + if x == nil { + return nil + } + 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 *HeadlessSurfaceCreateInfo) Free() { + if x != nil && x.allocsed88b258 != nil { + x.allocsed88b258.(*cgoAllocMap).Free() + x.refed88b258 = nil + } +} + +// 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 NewHeadlessSurfaceCreateInfoRef(ref unsafe.Pointer) *HeadlessSurfaceCreateInfo { + if ref == nil { + return nil + } + 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 *HeadlessSurfaceCreateInfo) PassRef() (*C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refed88b258 != nil { + return x.refed88b258, nil + } + memed88b258 := allocHeadlessSurfaceCreateInfoMemory(1) + refed88b258 := (*C.VkHeadlessSurfaceCreateInfoEXT)(memed88b258) + allocsed88b258 := new(cgoAllocMap) + allocsed88b258.Add(memed88b258) + + var csType_allocs *cgoAllocMap + refed88b258.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed88b258.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refed88b258.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed88b258.Borrow(cpNext_allocs) + + 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 HeadlessSurfaceCreateInfo) PassValue() (C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { + if x.refed88b258 != nil { + return *x.refed88b258, 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 *HeadlessSurfaceCreateInfo) Deref() { + if x.refed88b258 == nil { + return + } + x.SType = (StructureType)(x.refed88b258.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed88b258.pNext)) + x.Flags = (HeadlessSurfaceCreateFlags)(x.refed88b258.flags) +} + +// allocPhysicalDeviceLineRasterizationFeaturesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceLineRasterizationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceLineRasterizationFeatures) Ref() *C.VkPhysicalDeviceLineRasterizationFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceLineRasterizationFeatures) Free() { + if x != nil && x.allocsdb9049a7 != nil { + x.allocsdb9049a7.(*cgoAllocMap).Free() + x.refdb9049a7 = nil + } +} + +// 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 NewPhysicalDeviceLineRasterizationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceLineRasterizationFeatures) PassRef() (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refdb9049a7 != nil { + return x.refdb9049a7, nil + } + memdb9049a7 := allocPhysicalDeviceLineRasterizationFeaturesMemory(1) + refdb9049a7 := (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(memdb9049a7) + allocsdb9049a7 := new(cgoAllocMap) + allocsdb9049a7.Add(memdb9049a7) + + var csType_allocs *cgoAllocMap + refdb9049a7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdb9049a7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refdb9049a7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdb9049a7.Borrow(cpNext_allocs) + + var crectangularLines_allocs *cgoAllocMap + refdb9049a7.rectangularLines, crectangularLines_allocs = (C.VkBool32)(x.RectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(crectangularLines_allocs) + + var cbresenhamLines_allocs *cgoAllocMap + refdb9049a7.bresenhamLines, cbresenhamLines_allocs = (C.VkBool32)(x.BresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cbresenhamLines_allocs) + + var csmoothLines_allocs *cgoAllocMap + refdb9049a7.smoothLines, csmoothLines_allocs = (C.VkBool32)(x.SmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(csmoothLines_allocs) + + var cstippledRectangularLines_allocs *cgoAllocMap + refdb9049a7.stippledRectangularLines, cstippledRectangularLines_allocs = (C.VkBool32)(x.StippledRectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledRectangularLines_allocs) + + var cstippledBresenhamLines_allocs *cgoAllocMap + refdb9049a7.stippledBresenhamLines, cstippledBresenhamLines_allocs = (C.VkBool32)(x.StippledBresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledBresenhamLines_allocs) + + var cstippledSmoothLines_allocs *cgoAllocMap + refdb9049a7.stippledSmoothLines, cstippledSmoothLines_allocs = (C.VkBool32)(x.StippledSmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledSmoothLines_allocs) + + 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 PhysicalDeviceLineRasterizationFeatures) PassValue() (C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { + if x.refdb9049a7 != nil { + return *x.refdb9049a7, 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 *PhysicalDeviceLineRasterizationFeatures) Deref() { + if x.refdb9049a7 == nil { + return + } + 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) +} + +// allocPhysicalDeviceLineRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationPropertiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceLineRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceLineRasterizationProperties) Ref() *C.VkPhysicalDeviceLineRasterizationPropertiesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceLineRasterizationProperties) Free() { + if x != nil && x.allocse2369446 != nil { + x.allocse2369446.(*cgoAllocMap).Free() + x.refe2369446 = nil + } +} + +// 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 NewPhysicalDeviceLineRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationProperties { + if ref == nil { + return nil + } + 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 *PhysicalDeviceLineRasterizationProperties) PassRef() (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe2369446 != nil { + return x.refe2369446, nil + } + meme2369446 := allocPhysicalDeviceLineRasterizationPropertiesMemory(1) + refe2369446 := (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(meme2369446) + allocse2369446 := new(cgoAllocMap) + allocse2369446.Add(meme2369446) + + var csType_allocs *cgoAllocMap + refe2369446.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse2369446.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe2369446.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse2369446.Borrow(cpNext_allocs) + + var clineSubPixelPrecisionBits_allocs *cgoAllocMap + refe2369446.lineSubPixelPrecisionBits, clineSubPixelPrecisionBits_allocs = (C.uint32_t)(x.LineSubPixelPrecisionBits), cgoAllocsUnknown + allocse2369446.Borrow(clineSubPixelPrecisionBits_allocs) + + 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 PhysicalDeviceLineRasterizationProperties) PassValue() (C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { + if x.refe2369446 != nil { + return *x.refe2369446, 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 *PhysicalDeviceLineRasterizationProperties) Deref() { + if x.refe2369446 == nil { + return + } + x.SType = (StructureType)(x.refe2369446.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2369446.pNext)) + x.LineSubPixelPrecisionBits = (uint32)(x.refe2369446.lineSubPixelPrecisionBits) +} + +// allocPipelineRasterizationLineStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationLineStateCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPipelineRasterizationLineStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationLineStateCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineRasterizationLineStateCreateInfo) Ref() *C.VkPipelineRasterizationLineStateCreateInfoEXT { + if x == nil { + return nil + } + 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 *PipelineRasterizationLineStateCreateInfo) Free() { + if x != nil && x.allocs649f4226 != nil { + x.allocs649f4226.(*cgoAllocMap).Free() + x.ref649f4226 = nil + } +} + +// 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 NewPipelineRasterizationLineStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationLineStateCreateInfo { + if ref == nil { + return nil + } + 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 *PipelineRasterizationLineStateCreateInfo) PassRef() (*C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref649f4226 != nil { + return x.ref649f4226, nil + } + mem649f4226 := allocPipelineRasterizationLineStateCreateInfoMemory(1) + ref649f4226 := (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(mem649f4226) + allocs649f4226 := new(cgoAllocMap) + allocs649f4226.Add(mem649f4226) + + var csType_allocs *cgoAllocMap + ref649f4226.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs649f4226.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref649f4226.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs649f4226.Borrow(cpNext_allocs) + + var clineRasterizationMode_allocs *cgoAllocMap + ref649f4226.lineRasterizationMode, clineRasterizationMode_allocs = (C.VkLineRasterizationModeEXT)(x.LineRasterizationMode), cgoAllocsUnknown + allocs649f4226.Borrow(clineRasterizationMode_allocs) + + var cstippledLineEnable_allocs *cgoAllocMap + ref649f4226.stippledLineEnable, cstippledLineEnable_allocs = (C.VkBool32)(x.StippledLineEnable), cgoAllocsUnknown + allocs649f4226.Borrow(cstippledLineEnable_allocs) + + var clineStippleFactor_allocs *cgoAllocMap + ref649f4226.lineStippleFactor, clineStippleFactor_allocs = (C.uint32_t)(x.LineStippleFactor), cgoAllocsUnknown + allocs649f4226.Borrow(clineStippleFactor_allocs) + + var clineStipplePattern_allocs *cgoAllocMap + ref649f4226.lineStipplePattern, clineStipplePattern_allocs = (C.uint16_t)(x.LineStipplePattern), cgoAllocsUnknown + allocs649f4226.Borrow(clineStipplePattern_allocs) + + 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 PipelineRasterizationLineStateCreateInfo) PassValue() (C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { + if x.ref649f4226 != nil { + return *x.ref649f4226, 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 *PipelineRasterizationLineStateCreateInfo) Deref() { + if x.ref649f4226 == nil { + return + } + 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) +} + +// allocPhysicalDeviceShaderAtomicFloatFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Ref() *C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceShaderAtomicFloatFeatures) Free() { + if x != nil && x.allocsb387c45b != nil { + x.allocsb387c45b.(*cgoAllocMap).Free() + x.refb387c45b = nil + } +} + +// 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 NewPhysicalDeviceShaderAtomicFloatFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloatFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceShaderAtomicFloatFeatures) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb387c45b != nil { + return x.refb387c45b, nil + } + memb387c45b := allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(1) + refb387c45b := (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(memb387c45b) + allocsb387c45b := new(cgoAllocMap) + allocsb387c45b.Add(memb387c45b) + + var csType_allocs *cgoAllocMap + refb387c45b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb387c45b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb387c45b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb387c45b.Borrow(cpNext_allocs) + + var cshaderBufferFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32Atomics, cshaderBufferFloat32Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32Atomics_allocs) + + var cshaderBufferFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32AtomicAdd, cshaderBufferFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32AtomicAdd_allocs) + + 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 PhysicalDeviceShaderAtomicFloatFeatures) PassValue() (C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { + if x.refb387c45b != nil { + return *x.refb387c45b, 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 *PhysicalDeviceShaderAtomicFloatFeatures) Deref() { + if x.refb387c45b == nil { + return + } + 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 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 sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceIndexTypeUint8Features) Ref() *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceIndexTypeUint8Features) Free() { + if x != nil && x.allocsd29dc94 != nil { + x.allocsd29dc94.(*cgoAllocMap).Free() + x.refd29dc94 = nil + } +} + +// 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 NewPhysicalDeviceIndexTypeUint8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceIndexTypeUint8Features { + if ref == nil { + return nil + } + 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 *PhysicalDeviceIndexTypeUint8Features) PassRef() (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd29dc94 != nil { + return x.refd29dc94, nil + } + memd29dc94 := allocPhysicalDeviceIndexTypeUint8FeaturesMemory(1) + refd29dc94 := (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(memd29dc94) + allocsd29dc94 := new(cgoAllocMap) + allocsd29dc94.Add(memd29dc94) + + var csType_allocs *cgoAllocMap + refd29dc94.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd29dc94.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd29dc94.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd29dc94.Borrow(cpNext_allocs) + + var cindexTypeUint8_allocs *cgoAllocMap + refd29dc94.indexTypeUint8, cindexTypeUint8_allocs = (C.VkBool32)(x.IndexTypeUint8), cgoAllocsUnknown + allocsd29dc94.Borrow(cindexTypeUint8_allocs) + + 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 PhysicalDeviceIndexTypeUint8Features) PassValue() (C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { + if x.refd29dc94 != nil { + return *x.refd29dc94, 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 *PhysicalDeviceIndexTypeUint8Features) Deref() { + if x.refd29dc94 == nil { + return + } + x.SType = (StructureType)(x.refd29dc94.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd29dc94.pNext)) + x.IndexTypeUint8 = (Bool32)(x.refd29dc94.indexTypeUint8) +} + +// allocPhysicalDeviceExtendedDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Ref() *C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceExtendedDynamicStateFeatures) Free() { + if x != nil && x.allocsf7bd87ab != nil { + x.allocsf7bd87ab.(*cgoAllocMap).Free() + x.reff7bd87ab = nil + } +} + +// 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 NewPhysicalDeviceExtendedDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicStateFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceExtendedDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff7bd87ab != nil { + return x.reff7bd87ab, nil + } + memf7bd87ab := allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(1) + reff7bd87ab := (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(memf7bd87ab) + allocsf7bd87ab := new(cgoAllocMap) + allocsf7bd87ab.Add(memf7bd87ab) + + var csType_allocs *cgoAllocMap + reff7bd87ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7bd87ab.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff7bd87ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cpNext_allocs) + + var cextendedDynamicState_allocs *cgoAllocMap + reff7bd87ab.extendedDynamicState, cextendedDynamicState_allocs = (C.VkBool32)(x.ExtendedDynamicState), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cextendedDynamicState_allocs) + + 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 PhysicalDeviceExtendedDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { + if x.reff7bd87ab != nil { + return *x.reff7bd87ab, 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 *PhysicalDeviceExtendedDynamicStateFeatures) Deref() { + if x.reff7bd87ab == nil { + return + } + x.SType = (StructureType)(x.reff7bd87ab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7bd87ab.pNext)) + x.ExtendedDynamicState = (Bool32)(x.reff7bd87ab.extendedDynamicState) +} + +// allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderAtomicFloat2Features) Ref() *C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceShaderAtomicFloat2Features) Free() { + if x != nil && x.allocsf53782 != nil { + x.allocsf53782.(*cgoAllocMap).Free() + x.reff53782 = nil + } +} + +// 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 NewPhysicalDeviceShaderAtomicFloat2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloat2Features { + if ref == nil { + return nil + } + 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 *PhysicalDeviceShaderAtomicFloat2Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff53782 != nil { + return x.reff53782, nil + } + 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 cshaderSharedFloat16AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat16AtomicMinMax, cshaderSharedFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16AtomicMinMax_allocs) + + var cshaderSharedFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat32AtomicMinMax, cshaderSharedFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat32AtomicMinMax_allocs) + + var cshaderSharedFloat64AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat64AtomicMinMax, cshaderSharedFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat64AtomicMinMax_allocs) + + var cshaderImageFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderImageFloat32AtomicMinMax, cshaderImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderImageFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderImageFloat32AtomicMinMax_allocs) + + 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 PhysicalDeviceShaderAtomicFloat2Features) PassValue() (C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { + if x.reff53782 != nil { + return *x.reff53782, 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 *PhysicalDeviceShaderAtomicFloat2Features) Deref() { + if x.reff53782 == nil { + return + } + 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 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 sizeOfSurfacePresentModeValue = unsafe.Sizeof([1]C.VkSurfacePresentModeEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SurfacePresentMode) Ref() *C.VkSurfacePresentModeEXT { + if x == nil { + return nil + } + 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 *SurfacePresentMode) Free() { + if x != nil && x.allocs7c337d5d != nil { + x.allocs7c337d5d.(*cgoAllocMap).Free() + x.ref7c337d5d = nil + } +} + +// 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 NewSurfacePresentModeRef(ref unsafe.Pointer) *SurfacePresentMode { + if ref == nil { + return nil + } + 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 *SurfacePresentMode) PassRef() (*C.VkSurfacePresentModeEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7c337d5d != nil { + return x.ref7c337d5d, nil + } + mem7c337d5d := allocSurfacePresentModeMemory(1) + ref7c337d5d := (*C.VkSurfacePresentModeEXT)(mem7c337d5d) + allocs7c337d5d := new(cgoAllocMap) + allocs7c337d5d.Add(mem7c337d5d) + + var csType_allocs *cgoAllocMap + ref7c337d5d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7c337d5d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7c337d5d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7c337d5d.Borrow(cpNext_allocs) + + var cpresentMode_allocs *cgoAllocMap + ref7c337d5d.presentMode, cpresentMode_allocs = (C.VkPresentModeKHR)(x.PresentMode), cgoAllocsUnknown + allocs7c337d5d.Borrow(cpresentMode_allocs) + + 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 SurfacePresentMode) PassValue() (C.VkSurfacePresentModeEXT, *cgoAllocMap) { + if x.ref7c337d5d != nil { + return *x.ref7c337d5d, 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 *SurfacePresentMode) Deref() { + if x.ref7c337d5d == nil { + return + } + x.SType = (StructureType)(x.ref7c337d5d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7c337d5d.pNext)) + x.PresentMode = (PresentMode)(x.ref7c337d5d.presentMode) +} + +// allocSurfacePresentScalingCapabilitiesMemory allocates memory for type C.VkSurfacePresentScalingCapabilitiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSurfacePresentScalingCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfacePresentScalingCapabilitiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SurfacePresentScalingCapabilities) Ref() *C.VkSurfacePresentScalingCapabilitiesEXT { + if x == nil { + return nil + } + 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 *SurfacePresentScalingCapabilities) Free() { + if x != nil && x.allocs2053fb9d != nil { + x.allocs2053fb9d.(*cgoAllocMap).Free() + x.ref2053fb9d = nil + } +} + +// 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 NewSurfacePresentScalingCapabilitiesRef(ref unsafe.Pointer) *SurfacePresentScalingCapabilities { + if ref == nil { + return nil + } + 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 *SurfacePresentScalingCapabilities) PassRef() (*C.VkSurfacePresentScalingCapabilitiesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2053fb9d != nil { + return x.ref2053fb9d, nil + } + mem2053fb9d := allocSurfacePresentScalingCapabilitiesMemory(1) + ref2053fb9d := (*C.VkSurfacePresentScalingCapabilitiesEXT)(mem2053fb9d) + allocs2053fb9d := new(cgoAllocMap) + allocs2053fb9d.Add(mem2053fb9d) + + var csType_allocs *cgoAllocMap + ref2053fb9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2053fb9d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2053fb9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2053fb9d.Borrow(cpNext_allocs) + + var csupportedPresentScaling_allocs *cgoAllocMap + ref2053fb9d.supportedPresentScaling, csupportedPresentScaling_allocs = (C.VkPresentScalingFlagsEXT)(x.SupportedPresentScaling), cgoAllocsUnknown + allocs2053fb9d.Borrow(csupportedPresentScaling_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.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 SurfacePresentScalingCapabilities) PassValue() (C.VkSurfacePresentScalingCapabilitiesEXT, *cgoAllocMap) { + if x.ref2053fb9d != nil { + return *x.ref2053fb9d, 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 *SurfacePresentScalingCapabilities) Deref() { + if x.ref2053fb9d == nil { + return + } + 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)) +} + +// allocSurfacePresentModeCompatibilityMemory allocates memory for type C.VkSurfacePresentModeCompatibilityEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSurfacePresentModeCompatibilityValue = unsafe.Sizeof([1]C.VkSurfacePresentModeCompatibilityEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SurfacePresentModeCompatibility) Ref() *C.VkSurfacePresentModeCompatibilityEXT { + if x == nil { + return nil + } + 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 *SurfacePresentModeCompatibility) Free() { + if x != nil && x.allocs61fb395d != nil { + x.allocs61fb395d.(*cgoAllocMap).Free() + x.ref61fb395d = nil + } +} + +// 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 NewSurfacePresentModeCompatibilityRef(ref unsafe.Pointer) *SurfacePresentModeCompatibility { + if ref == nil { + return nil + } + 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 *SurfacePresentModeCompatibility) PassRef() (*C.VkSurfacePresentModeCompatibilityEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref61fb395d != nil { + return x.ref61fb395d, nil + } + mem61fb395d := allocSurfacePresentModeCompatibilityMemory(1) + ref61fb395d := (*C.VkSurfacePresentModeCompatibilityEXT)(mem61fb395d) + allocs61fb395d := new(cgoAllocMap) + allocs61fb395d.Add(mem61fb395d) + + var csType_allocs *cgoAllocMap + ref61fb395d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs61fb395d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref61fb395d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs61fb395d.Borrow(cpNext_allocs) + + var cpresentModeCount_allocs *cgoAllocMap + ref61fb395d.presentModeCount, cpresentModeCount_allocs = (C.uint32_t)(x.PresentModeCount), cgoAllocsUnknown + allocs61fb395d.Borrow(cpresentModeCount_allocs) + + 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 SurfacePresentModeCompatibility) PassValue() (C.VkSurfacePresentModeCompatibilityEXT, *cgoAllocMap) { + if x.ref61fb395d != nil { + return *x.ref61fb395d, 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 *SurfacePresentModeCompatibility) Deref() { + if x.ref61fb395d == nil { + return + } + x.SType = (StructureType)(x.ref61fb395d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref61fb395d.pNext)) + x.PresentModeCount = (uint32)(x.ref61fb395d.presentModeCount) + hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfaa359c.Data = unsafe.Pointer(x.ref61fb395d.pPresentModes) + hxfaa359c.Cap = 0x7fffffff + // hxfaa359c.Len = ? + +} + +// allocPhysicalDeviceSwapchainMaintenance1FeaturesMemory allocates memory for type C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceSwapchainMaintenance1FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSwapchainMaintenance1Features) Ref() *C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceSwapchainMaintenance1Features) Free() { + if x != nil && x.allocs553fbea0 != nil { + x.allocs553fbea0.(*cgoAllocMap).Free() + x.ref553fbea0 = nil + } +} + +// 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 NewPhysicalDeviceSwapchainMaintenance1FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSwapchainMaintenance1Features { + if ref == nil { + return nil + } + 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 *PhysicalDeviceSwapchainMaintenance1Features) PassRef() (*C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref553fbea0 != nil { + return x.ref553fbea0, nil + } + mem553fbea0 := allocPhysicalDeviceSwapchainMaintenance1FeaturesMemory(1) + ref553fbea0 := (*C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT)(mem553fbea0) + allocs553fbea0 := new(cgoAllocMap) + allocs553fbea0.Add(mem553fbea0) + + var csType_allocs *cgoAllocMap + ref553fbea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs553fbea0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref553fbea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs553fbea0.Borrow(cpNext_allocs) + + 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 PhysicalDeviceSwapchainMaintenance1Features) PassValue() (C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, *cgoAllocMap) { + if x.ref553fbea0 != nil { + return *x.ref553fbea0, 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 *PhysicalDeviceSwapchainMaintenance1Features) Deref() { + if x.ref553fbea0 == nil { + return + } + x.SType = (StructureType)(x.ref553fbea0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref553fbea0.pNext)) + x.SwapchainMaintenance1 = (Bool32)(x.ref553fbea0.swapchainMaintenance1) +} + +// allocSwapchainPresentFenceInfoMemory allocates memory for type C.VkSwapchainPresentFenceInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSwapchainPresentFenceInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentFenceInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SwapchainPresentFenceInfo) Ref() *C.VkSwapchainPresentFenceInfoEXT { + if x == nil { + return nil + } + 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 *SwapchainPresentFenceInfo) Free() { + if x != nil && x.allocsf3a3ddf9 != nil { + x.allocsf3a3ddf9.(*cgoAllocMap).Free() + x.reff3a3ddf9 = nil + } +} + +// 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 NewSwapchainPresentFenceInfoRef(ref unsafe.Pointer) *SwapchainPresentFenceInfo { + if ref == nil { + return nil + } + 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 *SwapchainPresentFenceInfo) PassRef() (*C.VkSwapchainPresentFenceInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff3a3ddf9 != nil { + return x.reff3a3ddf9, nil + } + memf3a3ddf9 := allocSwapchainPresentFenceInfoMemory(1) + reff3a3ddf9 := (*C.VkSwapchainPresentFenceInfoEXT)(memf3a3ddf9) + allocsf3a3ddf9 := new(cgoAllocMap) + allocsf3a3ddf9.Add(memf3a3ddf9) + + var csType_allocs *cgoAllocMap + reff3a3ddf9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff3a3ddf9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(cpNext_allocs) + + var cswapchainCount_allocs *cgoAllocMap + reff3a3ddf9.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(cswapchainCount_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.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 SwapchainPresentFenceInfo) PassValue() (C.VkSwapchainPresentFenceInfoEXT, *cgoAllocMap) { + if x.reff3a3ddf9 != nil { + return *x.reff3a3ddf9, 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 *SwapchainPresentFenceInfo) Deref() { + if x.reff3a3ddf9 == nil { + return + } + x.SType = (StructureType)(x.reff3a3ddf9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3a3ddf9.pNext)) + x.SwapchainCount = (uint32)(x.reff3a3ddf9.swapchainCount) + hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PFences)) + hxfa897de.Data = unsafe.Pointer(x.reff3a3ddf9.pFences) + hxfa897de.Cap = 0x7fffffff + // hxfa897de.Len = ? + +} + +// allocSwapchainPresentModesCreateInfoMemory allocates memory for type C.VkSwapchainPresentModesCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSwapchainPresentModesCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentModesCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SwapchainPresentModesCreateInfo) Ref() *C.VkSwapchainPresentModesCreateInfoEXT { + if x == nil { + return nil + } + 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 *SwapchainPresentModesCreateInfo) Free() { + if x != nil && x.allocs27b56519 != nil { + x.allocs27b56519.(*cgoAllocMap).Free() + x.ref27b56519 = nil + } +} + +// 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 NewSwapchainPresentModesCreateInfoRef(ref unsafe.Pointer) *SwapchainPresentModesCreateInfo { + if ref == nil { + return nil + } + 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 *SwapchainPresentModesCreateInfo) PassRef() (*C.VkSwapchainPresentModesCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref27b56519 != nil { + return x.ref27b56519, nil + } + mem27b56519 := allocSwapchainPresentModesCreateInfoMemory(1) + ref27b56519 := (*C.VkSwapchainPresentModesCreateInfoEXT)(mem27b56519) + allocs27b56519 := new(cgoAllocMap) + allocs27b56519.Add(mem27b56519) + + var csType_allocs *cgoAllocMap + ref27b56519.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs27b56519.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref27b56519.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs27b56519.Borrow(cpNext_allocs) + + 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 SwapchainPresentModesCreateInfo) PassValue() (C.VkSwapchainPresentModesCreateInfoEXT, *cgoAllocMap) { + if x.ref27b56519 != nil { + return *x.ref27b56519, 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 *SwapchainPresentModesCreateInfo) Deref() { + if x.ref27b56519 == nil { + return + } + x.SType = (StructureType)(x.ref27b56519.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref27b56519.pNext)) + x.PresentModeCount = (uint32)(x.ref27b56519.presentModeCount) + hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfe33f90.Data = unsafe.Pointer(x.ref27b56519.pPresentModes) + hxfe33f90.Cap = 0x7fffffff + // hxfe33f90.Len = ? + +} + +// allocSwapchainPresentModeInfoMemory allocates memory for type C.VkSwapchainPresentModeInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSwapchainPresentModeInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentModeInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SwapchainPresentModeInfo) Ref() *C.VkSwapchainPresentModeInfoEXT { + if x == nil { + return nil + } + 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 *SwapchainPresentModeInfo) Free() { + if x != nil && x.allocsee48d4d8 != nil { + x.allocsee48d4d8.(*cgoAllocMap).Free() + x.refee48d4d8 = nil + } +} + +// 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 NewSwapchainPresentModeInfoRef(ref unsafe.Pointer) *SwapchainPresentModeInfo { + if ref == nil { + return nil + } + 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 *SwapchainPresentModeInfo) PassRef() (*C.VkSwapchainPresentModeInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refee48d4d8 != nil { + return x.refee48d4d8, nil + } + memee48d4d8 := allocSwapchainPresentModeInfoMemory(1) + refee48d4d8 := (*C.VkSwapchainPresentModeInfoEXT)(memee48d4d8) + allocsee48d4d8 := new(cgoAllocMap) + allocsee48d4d8.Add(memee48d4d8) + + var csType_allocs *cgoAllocMap + refee48d4d8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee48d4d8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refee48d4d8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee48d4d8.Borrow(cpNext_allocs) + + 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 SwapchainPresentModeInfo) PassValue() (C.VkSwapchainPresentModeInfoEXT, *cgoAllocMap) { + if x.refee48d4d8 != nil { + return *x.refee48d4d8, 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 *SwapchainPresentModeInfo) Deref() { + if x.refee48d4d8 == nil { + return + } + x.SType = (StructureType)(x.refee48d4d8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee48d4d8.pNext)) + x.SwapchainCount = (uint32)(x.refee48d4d8.swapchainCount) + hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxf08bba9.Data = unsafe.Pointer(x.refee48d4d8.pPresentModes) + hxf08bba9.Cap = 0x7fffffff + // hxf08bba9.Len = ? + +} + +// allocSwapchainPresentScalingCreateInfoMemory allocates memory for type C.VkSwapchainPresentScalingCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSwapchainPresentScalingCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentScalingCreateInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SwapchainPresentScalingCreateInfo) Ref() *C.VkSwapchainPresentScalingCreateInfoEXT { + if x == nil { + return nil + } + 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 *SwapchainPresentScalingCreateInfo) Free() { + if x != nil && x.allocs69da29d7 != nil { + x.allocs69da29d7.(*cgoAllocMap).Free() + x.ref69da29d7 = nil + } +} + +// 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 NewSwapchainPresentScalingCreateInfoRef(ref unsafe.Pointer) *SwapchainPresentScalingCreateInfo { + if ref == nil { + return nil + } + 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 *SwapchainPresentScalingCreateInfo) PassRef() (*C.VkSwapchainPresentScalingCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref69da29d7 != nil { + return x.ref69da29d7, nil + } + mem69da29d7 := allocSwapchainPresentScalingCreateInfoMemory(1) + ref69da29d7 := (*C.VkSwapchainPresentScalingCreateInfoEXT)(mem69da29d7) + allocs69da29d7 := new(cgoAllocMap) + allocs69da29d7.Add(mem69da29d7) + + var csType_allocs *cgoAllocMap + ref69da29d7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs69da29d7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref69da29d7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs69da29d7.Borrow(cpNext_allocs) + + var cscalingBehavior_allocs *cgoAllocMap + ref69da29d7.scalingBehavior, cscalingBehavior_allocs = (C.VkPresentScalingFlagsEXT)(x.ScalingBehavior), cgoAllocsUnknown + allocs69da29d7.Borrow(cscalingBehavior_allocs) + + var cpresentGravityX_allocs *cgoAllocMap + ref69da29d7.presentGravityX, cpresentGravityX_allocs = (C.VkPresentGravityFlagsEXT)(x.PresentGravityX), cgoAllocsUnknown + allocs69da29d7.Borrow(cpresentGravityX_allocs) + + var cpresentGravityY_allocs *cgoAllocMap + ref69da29d7.presentGravityY, cpresentGravityY_allocs = (C.VkPresentGravityFlagsEXT)(x.PresentGravityY), cgoAllocsUnknown + allocs69da29d7.Borrow(cpresentGravityY_allocs) + + 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 SwapchainPresentScalingCreateInfo) PassValue() (C.VkSwapchainPresentScalingCreateInfoEXT, *cgoAllocMap) { + if x.ref69da29d7 != nil { + return *x.ref69da29d7, 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 *SwapchainPresentScalingCreateInfo) Deref() { + if x.ref69da29d7 == nil { + return + } + 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) +} + +// allocReleaseSwapchainImagesInfoMemory allocates memory for type C.VkReleaseSwapchainImagesInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfReleaseSwapchainImagesInfoValue = unsafe.Sizeof([1]C.VkReleaseSwapchainImagesInfoEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ReleaseSwapchainImagesInfo) Ref() *C.VkReleaseSwapchainImagesInfoEXT { + if x == nil { + return nil + } + 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 *ReleaseSwapchainImagesInfo) Free() { + if x != nil && x.allocs6c053bf != nil { + x.allocs6c053bf.(*cgoAllocMap).Free() + x.ref6c053bf = nil + } +} + +// 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 NewReleaseSwapchainImagesInfoRef(ref unsafe.Pointer) *ReleaseSwapchainImagesInfo { + if ref == nil { + return nil + } + 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 *ReleaseSwapchainImagesInfo) PassRef() (*C.VkReleaseSwapchainImagesInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6c053bf != nil { + return x.ref6c053bf, nil + } + mem6c053bf := allocReleaseSwapchainImagesInfoMemory(1) + ref6c053bf := (*C.VkReleaseSwapchainImagesInfoEXT)(mem6c053bf) + allocs6c053bf := new(cgoAllocMap) + allocs6c053bf.Add(mem6c053bf) + + var csType_allocs *cgoAllocMap + ref6c053bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6c053bf.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6c053bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6c053bf.Borrow(cpNext_allocs) + + var cswapchain_allocs *cgoAllocMap + ref6c053bf.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs6c053bf.Borrow(cswapchain_allocs) + + var cimageIndexCount_allocs *cgoAllocMap + ref6c053bf.imageIndexCount, cimageIndexCount_allocs = (C.uint32_t)(x.ImageIndexCount), cgoAllocsUnknown + allocs6c053bf.Borrow(cimageIndexCount_allocs) + + 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 ReleaseSwapchainImagesInfo) PassValue() (C.VkReleaseSwapchainImagesInfoEXT, *cgoAllocMap) { + if x.ref6c053bf != nil { + return *x.ref6c053bf, 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 *ReleaseSwapchainImagesInfo) Deref() { + if x.ref6c053bf == nil { + return + } + 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) + hxfd3aa9c := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) + hxfd3aa9c.Data = unsafe.Pointer(x.ref6c053bf.pImageIndices) + hxfd3aa9c.Cap = 0x7fffffff + // hxfd3aa9c.Len = ? + +} + +// allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Free() { + if x != nil && x.allocs569def06 != nil { + x.allocs569def06.(*cgoAllocMap).Free() + x.ref569def06 = nil + } +} + +// 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 NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref569def06 != nil { + return x.ref569def06, nil + } + mem569def06 := allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(1) + ref569def06 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(mem569def06) + allocs569def06 := new(cgoAllocMap) + allocs569def06.Add(mem569def06) + + var csType_allocs *cgoAllocMap + ref569def06.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs569def06.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref569def06.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs569def06.Borrow(cpNext_allocs) + + var cmaxGraphicsShaderGroupCount_allocs *cgoAllocMap + ref569def06.maxGraphicsShaderGroupCount, cmaxGraphicsShaderGroupCount_allocs = (C.uint32_t)(x.MaxGraphicsShaderGroupCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxGraphicsShaderGroupCount_allocs) + + var cmaxIndirectSequenceCount_allocs *cgoAllocMap + ref569def06.maxIndirectSequenceCount, cmaxIndirectSequenceCount_allocs = (C.uint32_t)(x.MaxIndirectSequenceCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectSequenceCount_allocs) + + var cmaxIndirectCommandsTokenCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenCount, cmaxIndirectCommandsTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenCount_allocs) + + var cmaxIndirectCommandsStreamCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsStreamCount, cmaxIndirectCommandsStreamCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsStreamCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsStreamCount_allocs) + + var cmaxIndirectCommandsTokenOffset_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenOffset, cmaxIndirectCommandsTokenOffset_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenOffset), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenOffset_allocs) + + 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 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { + if x.ref569def06 != nil { + return *x.ref569def06, 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 *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Deref() { + if x.ref569def06 == nil { + return + } + 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) +} + +// allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Free() { + if x != nil && x.allocs3ea95583 != nil { + x.allocs3ea95583.(*cgoAllocMap).Free() + x.ref3ea95583 = nil + } +} + +// 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 NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3ea95583 != nil { + return x.ref3ea95583, nil + } + mem3ea95583 := allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(1) + ref3ea95583 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(mem3ea95583) + allocs3ea95583 := new(cgoAllocMap) + allocs3ea95583.Add(mem3ea95583) + + var csType_allocs *cgoAllocMap + ref3ea95583.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3ea95583.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3ea95583.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3ea95583.Borrow(cpNext_allocs) + + var cdeviceGeneratedCommands_allocs *cgoAllocMap + ref3ea95583.deviceGeneratedCommands, cdeviceGeneratedCommands_allocs = (C.VkBool32)(x.DeviceGeneratedCommands), cgoAllocsUnknown + allocs3ea95583.Borrow(cdeviceGeneratedCommands_allocs) + + 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 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { + if x.ref3ea95583 != nil { + return *x.ref3ea95583, 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 *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Deref() { + if x.ref3ea95583 == nil { + return + } + x.SType = (StructureType)(x.ref3ea95583.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ea95583.pNext)) + x.DeviceGeneratedCommands = (Bool32)(x.ref3ea95583.deviceGeneratedCommands) +} + +// allocGraphicsShaderGroupCreateInfoNVMemory allocates memory for type C.VkGraphicsShaderGroupCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 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 *GraphicsShaderGroupCreateInfoNV) Ref() *C.VkGraphicsShaderGroupCreateInfoNV { + if x == nil { + return nil + } + 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 *GraphicsShaderGroupCreateInfoNV) Free() { + if x != nil && x.allocsa9d954e5 != nil { + x.allocsa9d954e5.(*cgoAllocMap).Free() + x.refa9d954e5 = nil + } +} + +// 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 NewGraphicsShaderGroupCreateInfoNVRef(ref unsafe.Pointer) *GraphicsShaderGroupCreateInfoNV { + if ref == nil { + return nil + } + 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 *GraphicsShaderGroupCreateInfoNV) PassRef() (*C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa9d954e5 != nil { + return x.refa9d954e5, nil + } + mema9d954e5 := allocGraphicsShaderGroupCreateInfoNVMemory(1) + refa9d954e5 := (*C.VkGraphicsShaderGroupCreateInfoNV)(mema9d954e5) + allocsa9d954e5 := new(cgoAllocMap) + allocsa9d954e5.Add(mema9d954e5) + + var csType_allocs *cgoAllocMap + refa9d954e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa9d954e5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa9d954e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa9d954e5.Borrow(cpNext_allocs) + + var cstageCount_allocs *cgoAllocMap + refa9d954e5.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown + allocsa9d954e5.Borrow(cstageCount_allocs) + + 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) + 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 GraphicsShaderGroupCreateInfoNV) PassValue() (C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { + if x.refa9d954e5 != nil { + return *x.refa9d954e5, 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 *GraphicsShaderGroupCreateInfoNV) Deref() { + if x.refa9d954e5 == nil { + return + } + 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) +} + +// allocGraphicsPipelineShaderGroupsCreateInfoNVMemory allocates memory for type C.VkGraphicsPipelineShaderGroupsCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 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 *GraphicsPipelineShaderGroupsCreateInfoNV) Ref() *C.VkGraphicsPipelineShaderGroupsCreateInfoNV { + if x == nil { + return nil + } + 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 *GraphicsPipelineShaderGroupsCreateInfoNV) Free() { + if x != nil && x.allocsabf1b7d9 != nil { + x.allocsabf1b7d9.(*cgoAllocMap).Free() + x.refabf1b7d9 = nil + } +} + +// 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 NewGraphicsPipelineShaderGroupsCreateInfoNVRef(ref unsafe.Pointer) *GraphicsPipelineShaderGroupsCreateInfoNV { + if ref == nil { + return nil + } + 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 *GraphicsPipelineShaderGroupsCreateInfoNV) PassRef() (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refabf1b7d9 != nil { + return x.refabf1b7d9, nil + } + memabf1b7d9 := allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(1) + refabf1b7d9 := (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(memabf1b7d9) + allocsabf1b7d9 := new(cgoAllocMap) + allocsabf1b7d9.Add(memabf1b7d9) + + var csType_allocs *cgoAllocMap + refabf1b7d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsabf1b7d9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refabf1b7d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpNext_allocs) + + var cgroupCount_allocs *cgoAllocMap + refabf1b7d9.groupCount, cgroupCount_allocs = (C.uint32_t)(x.GroupCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cgroupCount_allocs) + + var cpGroups_allocs *cgoAllocMap + refabf1b7d9.pGroups, cpGroups_allocs = unpackSGraphicsShaderGroupCreateInfoNV(x.PGroups) + allocsabf1b7d9.Borrow(cpGroups_allocs) + + var cpipelineCount_allocs *cgoAllocMap + refabf1b7d9.pipelineCount, cpipelineCount_allocs = (C.uint32_t)(x.PipelineCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpipelineCount_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.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 GraphicsPipelineShaderGroupsCreateInfoNV) PassValue() (C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { + if x.refabf1b7d9 != nil { + return *x.refabf1b7d9, 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 *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { + if x.refabf1b7d9 == nil { + return + } + 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) + hxfb2f596 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) + hxfb2f596.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) + hxfb2f596.Cap = 0x7fffffff + // hxfb2f596.Len = ? + +} + +// allocBindShaderGroupIndirectCommandNVMemory allocates memory for type C.VkBindShaderGroupIndirectCommandNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfBindShaderGroupIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindShaderGroupIndirectCommandNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindShaderGroupIndirectCommandNV) Ref() *C.VkBindShaderGroupIndirectCommandNV { + if x == nil { + return nil + } + 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 *BindShaderGroupIndirectCommandNV) Free() { + if x != nil && x.allocs4b098fa3 != nil { + x.allocs4b098fa3.(*cgoAllocMap).Free() + x.ref4b098fa3 = nil + } +} + +// 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 NewBindShaderGroupIndirectCommandNVRef(ref unsafe.Pointer) *BindShaderGroupIndirectCommandNV { + if ref == nil { + return nil + } + 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 *BindShaderGroupIndirectCommandNV) PassRef() (*C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4b098fa3 != nil { + return x.ref4b098fa3, nil + } + mem4b098fa3 := allocBindShaderGroupIndirectCommandNVMemory(1) + ref4b098fa3 := (*C.VkBindShaderGroupIndirectCommandNV)(mem4b098fa3) + allocs4b098fa3 := new(cgoAllocMap) + allocs4b098fa3.Add(mem4b098fa3) + + var cgroupIndex_allocs *cgoAllocMap + ref4b098fa3.groupIndex, cgroupIndex_allocs = (C.uint32_t)(x.GroupIndex), cgoAllocsUnknown + allocs4b098fa3.Borrow(cgroupIndex_allocs) + + 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 BindShaderGroupIndirectCommandNV) PassValue() (C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { + if x.ref4b098fa3 != nil { + return *x.ref4b098fa3, 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 *BindShaderGroupIndirectCommandNV) Deref() { + if x.ref4b098fa3 == nil { + return + } + x.GroupIndex = (uint32)(x.ref4b098fa3.groupIndex) +} + +// allocBindIndexBufferIndirectCommandNVMemory allocates memory for type C.VkBindIndexBufferIndirectCommandNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfBindIndexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindIndexBufferIndirectCommandNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindIndexBufferIndirectCommandNV) Ref() *C.VkBindIndexBufferIndirectCommandNV { + if x == nil { + return nil + } + 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 *BindIndexBufferIndirectCommandNV) Free() { + if x != nil && x.allocs74143926 != nil { + x.allocs74143926.(*cgoAllocMap).Free() + x.ref74143926 = nil + } +} + +// 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 NewBindIndexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindIndexBufferIndirectCommandNV { + if ref == nil { + return nil + } + 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 *BindIndexBufferIndirectCommandNV) PassRef() (*C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref74143926 != nil { + return x.ref74143926, nil + } + mem74143926 := allocBindIndexBufferIndirectCommandNVMemory(1) + ref74143926 := (*C.VkBindIndexBufferIndirectCommandNV)(mem74143926) + allocs74143926 := new(cgoAllocMap) + allocs74143926.Add(mem74143926) + + var cbufferAddress_allocs *cgoAllocMap + ref74143926.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocs74143926.Borrow(cbufferAddress_allocs) + + var csize_allocs *cgoAllocMap + ref74143926.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocs74143926.Borrow(csize_allocs) + + var cindexType_allocs *cgoAllocMap + ref74143926.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown + allocs74143926.Borrow(cindexType_allocs) + + 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 BindIndexBufferIndirectCommandNV) PassValue() (C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { + if x.ref74143926 != nil { + return *x.ref74143926, 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 *BindIndexBufferIndirectCommandNV) Deref() { + if x.ref74143926 == nil { + return + } + x.BufferAddress = (DeviceAddress)(x.ref74143926.bufferAddress) + x.Size = (uint32)(x.ref74143926.size) + x.IndexType = (IndexType)(x.ref74143926.indexType) +} + +// allocBindVertexBufferIndirectCommandNVMemory allocates memory for type C.VkBindVertexBufferIndirectCommandNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfBindVertexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindVertexBufferIndirectCommandNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindVertexBufferIndirectCommandNV) Ref() *C.VkBindVertexBufferIndirectCommandNV { + if x == nil { + return nil + } + 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 *BindVertexBufferIndirectCommandNV) Free() { + if x != nil && x.allocsca56f95c != nil { + x.allocsca56f95c.(*cgoAllocMap).Free() + x.refca56f95c = nil + } +} + +// 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 NewBindVertexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindVertexBufferIndirectCommandNV { + if ref == nil { + return nil + } + 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 *BindVertexBufferIndirectCommandNV) PassRef() (*C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refca56f95c != nil { + return x.refca56f95c, nil + } + memca56f95c := allocBindVertexBufferIndirectCommandNVMemory(1) + refca56f95c := (*C.VkBindVertexBufferIndirectCommandNV)(memca56f95c) + allocsca56f95c := new(cgoAllocMap) + allocsca56f95c.Add(memca56f95c) + + var cbufferAddress_allocs *cgoAllocMap + refca56f95c.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocsca56f95c.Borrow(cbufferAddress_allocs) + + var csize_allocs *cgoAllocMap + refca56f95c.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocsca56f95c.Borrow(csize_allocs) + + var cstride_allocs *cgoAllocMap + refca56f95c.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown + allocsca56f95c.Borrow(cstride_allocs) + + 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 BindVertexBufferIndirectCommandNV) PassValue() (C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { + if x.refca56f95c != nil { + return *x.refca56f95c, 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 *BindVertexBufferIndirectCommandNV) Deref() { + if x.refca56f95c == nil { + return + } + x.BufferAddress = (DeviceAddress)(x.refca56f95c.bufferAddress) + x.Size = (uint32)(x.refca56f95c.size) + x.Stride = (uint32)(x.refca56f95c.stride) +} + +// allocSetStateFlagsIndirectCommandNVMemory allocates memory for type C.VkSetStateFlagsIndirectCommandNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfSetStateFlagsIndirectCommandNVValue = unsafe.Sizeof([1]C.VkSetStateFlagsIndirectCommandNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SetStateFlagsIndirectCommandNV) Ref() *C.VkSetStateFlagsIndirectCommandNV { + if x == nil { + return nil + } + 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 *SetStateFlagsIndirectCommandNV) Free() { + if x != nil && x.allocs89ae676d != nil { + x.allocs89ae676d.(*cgoAllocMap).Free() + x.ref89ae676d = nil + } +} + +// 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 NewSetStateFlagsIndirectCommandNVRef(ref unsafe.Pointer) *SetStateFlagsIndirectCommandNV { + if ref == nil { + return nil + } + 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 *SetStateFlagsIndirectCommandNV) PassRef() (*C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref89ae676d != nil { + return x.ref89ae676d, nil + } + mem89ae676d := allocSetStateFlagsIndirectCommandNVMemory(1) + ref89ae676d := (*C.VkSetStateFlagsIndirectCommandNV)(mem89ae676d) + allocs89ae676d := new(cgoAllocMap) + allocs89ae676d.Add(mem89ae676d) + + var cdata_allocs *cgoAllocMap + ref89ae676d.data, cdata_allocs = (C.uint32_t)(x.Data), cgoAllocsUnknown + allocs89ae676d.Borrow(cdata_allocs) + + 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 SetStateFlagsIndirectCommandNV) PassValue() (C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { + if x.ref89ae676d != nil { + return *x.ref89ae676d, 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 *SetStateFlagsIndirectCommandNV) Deref() { + if x.ref89ae676d == nil { + return + } + x.Data = (uint32)(x.ref89ae676d.data) +} + +// allocIndirectCommandsStreamNVMemory allocates memory for type C.VkIndirectCommandsStreamNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfIndirectCommandsStreamNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsStreamNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *IndirectCommandsStreamNV) Ref() *C.VkIndirectCommandsStreamNV { + if x == nil { + return nil + } + 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 *IndirectCommandsStreamNV) Free() { + if x != nil && x.allocsc623636a != nil { + x.allocsc623636a.(*cgoAllocMap).Free() + x.refc623636a = nil + } +} + +// 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 NewIndirectCommandsStreamNVRef(ref unsafe.Pointer) *IndirectCommandsStreamNV { + if ref == nil { + return nil + } + 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 *IndirectCommandsStreamNV) PassRef() (*C.VkIndirectCommandsStreamNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc623636a != nil { + return x.refc623636a, nil + } + memc623636a := allocIndirectCommandsStreamNVMemory(1) + refc623636a := (*C.VkIndirectCommandsStreamNV)(memc623636a) + allocsc623636a := new(cgoAllocMap) + allocsc623636a.Add(memc623636a) + + var cbuffer_allocs *cgoAllocMap + refc623636a.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsc623636a.Borrow(cbuffer_allocs) + + 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 IndirectCommandsStreamNV) PassValue() (C.VkIndirectCommandsStreamNV, *cgoAllocMap) { + if x.refc623636a != nil { + return *x.refc623636a, 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 *IndirectCommandsStreamNV) Deref() { + if x.refc623636a == nil { + return + } + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refc623636a.buffer)) + x.Offset = (DeviceSize)(x.refc623636a.offset) +} + +// allocIndirectCommandsLayoutTokenNVMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfIndirectCommandsLayoutTokenNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *IndirectCommandsLayoutTokenNV) Ref() *C.VkIndirectCommandsLayoutTokenNV { + if x == nil { + return nil + } + 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 *IndirectCommandsLayoutTokenNV) Free() { + if x != nil && x.allocs96f52b76 != nil { + x.allocs96f52b76.(*cgoAllocMap).Free() + x.ref96f52b76 = nil + } +} + +// 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 NewIndirectCommandsLayoutTokenNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNV { + if ref == nil { + return nil + } + 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 *IndirectCommandsLayoutTokenNV) PassRef() (*C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref96f52b76 != nil { + return x.ref96f52b76, nil + } + mem96f52b76 := allocIndirectCommandsLayoutTokenNVMemory(1) + ref96f52b76 := (*C.VkIndirectCommandsLayoutTokenNV)(mem96f52b76) + allocs96f52b76 := new(cgoAllocMap) + allocs96f52b76.Add(mem96f52b76) + + var csType_allocs *cgoAllocMap + ref96f52b76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs96f52b76.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref96f52b76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpNext_allocs) + + var ctokenType_allocs *cgoAllocMap + ref96f52b76.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNV)(x.TokenType), cgoAllocsUnknown + allocs96f52b76.Borrow(ctokenType_allocs) + + var cstream_allocs *cgoAllocMap + ref96f52b76.stream, cstream_allocs = (C.uint32_t)(x.Stream), cgoAllocsUnknown + allocs96f52b76.Borrow(cstream_allocs) + + var coffset_allocs *cgoAllocMap + ref96f52b76.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocs96f52b76.Borrow(coffset_allocs) + + var cvertexBindingUnit_allocs *cgoAllocMap + ref96f52b76.vertexBindingUnit, cvertexBindingUnit_allocs = (C.uint32_t)(x.VertexBindingUnit), cgoAllocsUnknown + allocs96f52b76.Borrow(cvertexBindingUnit_allocs) + + 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 IndirectCommandsLayoutTokenNV) PassValue() (C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { + if x.ref96f52b76 != nil { + return *x.ref96f52b76, 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 *IndirectCommandsLayoutTokenNV) Deref() { + if x.ref96f52b76 == nil { + return + } + 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) + hxf11683e := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) + hxf11683e.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) + hxf11683e.Cap = 0x7fffffff + // hxf11683e.Len = ? + + hxfd9261b := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) + hxfd9261b.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) + hxfd9261b.Cap = 0x7fffffff + // hxfd9261b.Len = ? + +} + +// allocIndirectCommandsLayoutCreateInfoNVMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 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 *IndirectCommandsLayoutCreateInfoNV) Ref() *C.VkIndirectCommandsLayoutCreateInfoNV { + if x == nil { + return nil + } + 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 *IndirectCommandsLayoutCreateInfoNV) Free() { + if x != nil && x.allocs48273185 != nil { + x.allocs48273185.(*cgoAllocMap).Free() + x.ref48273185 = nil + } +} + +// 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 NewIndirectCommandsLayoutCreateInfoNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNV { + if ref == nil { + return nil + } + 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 *IndirectCommandsLayoutCreateInfoNV) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref48273185 != nil { + return x.ref48273185, nil + } + mem48273185 := allocIndirectCommandsLayoutCreateInfoNVMemory(1) + ref48273185 := (*C.VkIndirectCommandsLayoutCreateInfoNV)(mem48273185) + allocs48273185 := new(cgoAllocMap) + allocs48273185.Add(mem48273185) + + var csType_allocs *cgoAllocMap + ref48273185.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48273185.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref48273185.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48273185.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref48273185.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNV)(x.Flags), cgoAllocsUnknown + allocs48273185.Borrow(cflags_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + ref48273185.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocs48273185.Borrow(cpipelineBindPoint_allocs) + + 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 IndirectCommandsLayoutCreateInfoNV) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { + if x.ref48273185 != nil { + return *x.ref48273185, 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 *IndirectCommandsLayoutCreateInfoNV) Deref() { + if x.ref48273185 == nil { + return + } + 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) + hxf77d2ac := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) + hxf77d2ac.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) + hxf77d2ac.Cap = 0x7fffffff + // hxf77d2ac.Len = ? + +} + +// allocGeneratedCommandsInfoNVMemory allocates memory for type C.VkGeneratedCommandsInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfGeneratedCommandsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsInfoNV{}) + +// 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.VkIndirectCommandsStreamNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocIndirectCommandsStreamNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + 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.VkIndirectCommandsStreamNV)(h.Data) + return +} + +// 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 / 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 *GeneratedCommandsInfoNV) Ref() *C.VkGeneratedCommandsInfoNV { + if x == nil { + return nil + } + 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 *GeneratedCommandsInfoNV) Free() { + if x != nil && x.allocsc05396ea != nil { + x.allocsc05396ea.(*cgoAllocMap).Free() + x.refc05396ea = nil + } +} + +// 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 NewGeneratedCommandsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsInfoNV { + if ref == nil { + return nil + } + 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 *GeneratedCommandsInfoNV) PassRef() (*C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc05396ea != nil { + return x.refc05396ea, nil + } + memc05396ea := allocGeneratedCommandsInfoNVMemory(1) + refc05396ea := (*C.VkGeneratedCommandsInfoNV)(memc05396ea) + allocsc05396ea := new(cgoAllocMap) + allocsc05396ea.Add(memc05396ea) + + var csType_allocs *cgoAllocMap + refc05396ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc05396ea.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc05396ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpNext_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + refc05396ea.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipelineBindPoint_allocs) + + var cpipeline_allocs *cgoAllocMap + refc05396ea.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipeline_allocs) + + var cindirectCommandsLayout_allocs *cgoAllocMap + refc05396ea.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNV)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown + allocsc05396ea.Borrow(cindirectCommandsLayout_allocs) + + 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 - 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 GeneratedCommandsInfoNV) PassValue() (C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { + if x.refc05396ea != nil { + return *x.refc05396ea, 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 *GeneratedCommandsInfoNV) Deref() { + if x.refc05396ea == nil { + return + } + 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 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 sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsMemoryRequirementsInfoNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Ref() *C.VkGeneratedCommandsMemoryRequirementsInfoNV { + if x == nil { + return nil + } + 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 *GeneratedCommandsMemoryRequirementsInfoNV) Free() { + if x != nil && x.allocse82e5c4c != nil { + x.allocse82e5c4c.(*cgoAllocMap).Free() + x.refe82e5c4c = nil + } +} + +// 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 NewGeneratedCommandsMemoryRequirementsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsMemoryRequirementsInfoNV { + if ref == nil { + return nil + } + 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 *GeneratedCommandsMemoryRequirementsInfoNV) PassRef() (*C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe82e5c4c != nil { + return x.refe82e5c4c, nil + } + meme82e5c4c := allocGeneratedCommandsMemoryRequirementsInfoNVMemory(1) + refe82e5c4c := (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(meme82e5c4c) + allocse82e5c4c := new(cgoAllocMap) + allocse82e5c4c.Add(meme82e5c4c) + + var csType_allocs *cgoAllocMap + refe82e5c4c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse82e5c4c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe82e5c4c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpNext_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + refe82e5c4c.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpipelineBindPoint_allocs) + + 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 GraphicsShaderGroupCreateInfoNV) PassValue() (C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { - if x.refa9d954e5 != nil { - return *x.refa9d954e5, nil +func (x GeneratedCommandsMemoryRequirementsInfoNV) PassValue() (C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { + if x.refe82e5c4c != nil { + return *x.refe82e5c4c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -55935,143 +62148,471 @@ func (x GraphicsShaderGroupCreateInfoNV) PassValue() (C.VkGraphicsShaderGroupCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GraphicsShaderGroupCreateInfoNV) Deref() { - if x.refa9d954e5 == nil { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Deref() { + if x.refe82e5c4c == nil { return } - 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) + 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) } -// allocGraphicsPipelineShaderGroupsCreateInfoNVMemory allocates memory for type C.VkGraphicsPipelineShaderGroupsCreateInfoNV in C. +// allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue)) +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 sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue = unsafe.Sizeof([1]C.VkGraphicsPipelineShaderGroupsCreateInfoNV{}) +const sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV{}) -// unpackSGraphicsShaderGroupCreateInfoNV transforms a sliced Go data structure into plain C format. -func unpackSGraphicsShaderGroupCreateInfoNV(x []GraphicsShaderGroupCreateInfoNV) (unpacked *C.VkGraphicsShaderGroupCreateInfoNV, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Ref() *C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV { + if x == nil { + return nil + } + 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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) Free() { + if x != nil && x.allocscec68147 != nil { + x.allocscec68147.(*cgoAllocMap).Free() + x.refcec68147 = nil + } +} + +// 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 NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceInheritedViewportScissorFeaturesNV { + if ref == nil { + return nil + } + 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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.refcec68147 != nil { + return x.refcec68147, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkGraphicsShaderGroupCreateInfoNV) { - go allocs.Free() - }) + memcec68147 := allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(1) + refcec68147 := (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(memcec68147) + allocscec68147 := new(cgoAllocMap) + allocscec68147.Add(memcec68147) - len0 := len(x) - mem0 := allocGraphicsShaderGroupCreateInfoNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var csType_allocs *cgoAllocMap + refcec68147.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscec68147.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refcec68147.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscec68147.Borrow(cpNext_allocs) + + var cinheritedViewportScissor2D_allocs *cgoAllocMap + refcec68147.inheritedViewportScissor2D, cinheritedViewportScissor2D_allocs = (C.VkBool32)(x.InheritedViewportScissor2D), cgoAllocsUnknown + allocscec68147.Borrow(cinheritedViewportScissor2D_allocs) + + 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 PhysicalDeviceInheritedViewportScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { + if x.refcec68147 != nil { + return *x.refcec68147, nil } - v0 := *(*[]C.VkGraphicsShaderGroupCreateInfoNV)(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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) Deref() { + if x.refcec68147 == nil { + return + } + x.SType = (StructureType)(x.refcec68147.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcec68147.pNext)) + x.InheritedViewportScissor2D = (Bool32)(x.refcec68147.inheritedViewportScissor2D) +} + +// allocCommandBufferInheritanceViewportScissorInfoNVMemory allocates memory for type C.VkCommandBufferInheritanceViewportScissorInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfCommandBufferInheritanceViewportScissorInfoNVValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceViewportScissorInfoNV{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandBufferInheritanceViewportScissorInfoNV) Ref() *C.VkCommandBufferInheritanceViewportScissorInfoNV { + if x == nil { + return nil + } + 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 *CommandBufferInheritanceViewportScissorInfoNV) Free() { + if x != nil && x.allocsc206d63 != nil { + x.allocsc206d63.(*cgoAllocMap).Free() + x.refc206d63 = nil + } +} + +// 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 NewCommandBufferInheritanceViewportScissorInfoNVRef(ref unsafe.Pointer) *CommandBufferInheritanceViewportScissorInfoNV { + if ref == nil { + return nil + } + 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 *CommandBufferInheritanceViewportScissorInfoNV) PassRef() (*C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc206d63 != nil { + return x.refc206d63, nil + } + memc206d63 := allocCommandBufferInheritanceViewportScissorInfoNVMemory(1) + refc206d63 := (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(memc206d63) + allocsc206d63 := new(cgoAllocMap) + allocsc206d63.Add(memc206d63) + + var csType_allocs *cgoAllocMap + refc206d63.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc206d63.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc206d63.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc206d63.Borrow(cpNext_allocs) + + var cviewportScissor2D_allocs *cgoAllocMap + refc206d63.viewportScissor2D, cviewportScissor2D_allocs = (C.VkBool32)(x.ViewportScissor2D), cgoAllocsUnknown + allocsc206d63.Borrow(cviewportScissor2D_allocs) + + 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 CommandBufferInheritanceViewportScissorInfoNV) PassValue() (C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { + if x.refc206d63 != nil { + return *x.refc206d63, 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 *CommandBufferInheritanceViewportScissorInfoNV) Deref() { + if x.refc206d63 == nil { + return + } + 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) +} + +// allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory allocates memory for type C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceTexelBufferAlignmentFeatures) Free() { + if x != nil && x.allocs2c4411b2 != nil { + x.allocs2c4411b2.(*cgoAllocMap).Free() + x.ref2c4411b2 = nil + } +} + +// 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 NewPhysicalDeviceTexelBufferAlignmentFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceTexelBufferAlignmentFeatures) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2c4411b2 != nil { + return x.ref2c4411b2, nil + } + mem2c4411b2 := allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(1) + ref2c4411b2 := (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(mem2c4411b2) + allocs2c4411b2 := new(cgoAllocMap) + allocs2c4411b2.Add(mem2c4411b2) + + var csType_allocs *cgoAllocMap + ref2c4411b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2c4411b2.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2c4411b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2c4411b2.Borrow(cpNext_allocs) + + var ctexelBufferAlignment_allocs *cgoAllocMap + ref2c4411b2.texelBufferAlignment, ctexelBufferAlignment_allocs = (C.VkBool32)(x.TexelBufferAlignment), cgoAllocsUnknown + allocs2c4411b2.Borrow(ctexelBufferAlignment_allocs) + + 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 PhysicalDeviceTexelBufferAlignmentFeatures) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { + if x.ref2c4411b2 != nil { + return *x.ref2c4411b2, 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 *PhysicalDeviceTexelBufferAlignmentFeatures) Deref() { + if x.ref2c4411b2 == nil { + return + } + x.SType = (StructureType)(x.ref2c4411b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2c4411b2.pNext)) + x.TexelBufferAlignment = (Bool32)(x.ref2c4411b2.texelBufferAlignment) +} + +// allocRenderPassTransformBeginInfoQCOMMemory allocates memory for type C.VkRenderPassTransformBeginInfoQCOM in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfRenderPassTransformBeginInfoQCOMValue = unsafe.Sizeof([1]C.VkRenderPassTransformBeginInfoQCOM{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassTransformBeginInfoQCOM) Ref() *C.VkRenderPassTransformBeginInfoQCOM { + if x == nil { + return nil + } + 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 *RenderPassTransformBeginInfoQCOM) Free() { + if x != nil && x.allocs938e681d != nil { + x.allocs938e681d.(*cgoAllocMap).Free() + x.ref938e681d = nil + } +} + +// 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 NewRenderPassTransformBeginInfoQCOMRef(ref unsafe.Pointer) *RenderPassTransformBeginInfoQCOM { + if ref == nil { + return nil + } + 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 *RenderPassTransformBeginInfoQCOM) PassRef() (*C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref938e681d != nil { + return x.ref938e681d, nil + } + mem938e681d := allocRenderPassTransformBeginInfoQCOMMemory(1) + ref938e681d := (*C.VkRenderPassTransformBeginInfoQCOM)(mem938e681d) + allocs938e681d := new(cgoAllocMap) + allocs938e681d.Add(mem938e681d) + + var csType_allocs *cgoAllocMap + ref938e681d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs938e681d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref938e681d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs938e681d.Borrow(cpNext_allocs) + + var ctransform_allocs *cgoAllocMap + ref938e681d.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocs938e681d.Borrow(ctransform_allocs) + + 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 RenderPassTransformBeginInfoQCOM) PassValue() (C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { + if x.ref938e681d != nil { + return *x.ref938e681d, nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkGraphicsShaderGroupCreateInfoNV)(h.Data) - return + ref, allocs := x.PassRef() + return *ref, allocs } -// 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)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +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 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 sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Ref() *C.VkGraphicsPipelineShaderGroupsCreateInfoNV { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Ref() *C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM { if x == nil { return nil } - return x.refabf1b7d9 + 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 *GraphicsPipelineShaderGroupsCreateInfoNV) Free() { - if x != nil && x.allocsabf1b7d9 != nil { - x.allocsabf1b7d9.(*cgoAllocMap).Free() - x.refabf1b7d9 = nil +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Free() { + if x != nil && x.allocsee6ff04 != nil { + x.allocsee6ff04.(*cgoAllocMap).Free() + x.refee6ff04 = nil } } -// NewGraphicsPipelineShaderGroupsCreateInfoNVRef 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 NewGraphicsPipelineShaderGroupsCreateInfoNVRef(ref unsafe.Pointer) *GraphicsPipelineShaderGroupsCreateInfoNV { +func NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderPassTransformInfoQCOM { if ref == nil { return nil } - obj := new(GraphicsPipelineShaderGroupsCreateInfoNV) - obj.refabf1b7d9 = (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(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 *GraphicsPipelineShaderGroupsCreateInfoNV) PassRef() (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) PassRef() (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refabf1b7d9 != nil { - return x.refabf1b7d9, nil + } else if x.refee6ff04 != nil { + return x.refee6ff04, nil } - memabf1b7d9 := allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(1) - refabf1b7d9 := (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(memabf1b7d9) - allocsabf1b7d9 := new(cgoAllocMap) - allocsabf1b7d9.Add(memabf1b7d9) + memee6ff04 := allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(1) + refee6ff04 := (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(memee6ff04) + allocsee6ff04 := new(cgoAllocMap) + allocsee6ff04.Add(memee6ff04) var csType_allocs *cgoAllocMap - refabf1b7d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsabf1b7d9.Borrow(csType_allocs) + refee6ff04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee6ff04.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refabf1b7d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsabf1b7d9.Borrow(cpNext_allocs) - - var cgroupCount_allocs *cgoAllocMap - refabf1b7d9.groupCount, cgroupCount_allocs = (C.uint32_t)(x.GroupCount), cgoAllocsUnknown - allocsabf1b7d9.Borrow(cgroupCount_allocs) - - var cpGroups_allocs *cgoAllocMap - refabf1b7d9.pGroups, cpGroups_allocs = unpackSGraphicsShaderGroupCreateInfoNV(x.PGroups) - allocsabf1b7d9.Borrow(cpGroups_allocs) + refee6ff04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee6ff04.Borrow(cpNext_allocs) - var cpipelineCount_allocs *cgoAllocMap - refabf1b7d9.pipelineCount, cpipelineCount_allocs = (C.uint32_t)(x.PipelineCount), cgoAllocsUnknown - allocsabf1b7d9.Borrow(cpipelineCount_allocs) + var ctransform_allocs *cgoAllocMap + refee6ff04.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocsee6ff04.Borrow(ctransform_allocs) - var cpPipelines_allocs *cgoAllocMap - refabf1b7d9.pPipelines, cpPipelines_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPipelines)).Data)), cgoAllocsUnknown - allocsabf1b7d9.Borrow(cpPipelines_allocs) + var crenderArea_allocs *cgoAllocMap + refee6ff04.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocsee6ff04.Borrow(crenderArea_allocs) - x.refabf1b7d9 = refabf1b7d9 - x.allocsabf1b7d9 = allocsabf1b7d9 - return refabf1b7d9, allocsabf1b7d9 + 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 GraphicsPipelineShaderGroupsCreateInfoNV) PassValue() (C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { - if x.refabf1b7d9 != nil { - return *x.refabf1b7d9, nil +func (x CommandBufferInheritanceRenderPassTransformInfoQCOM) PassValue() (C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { + if x.refee6ff04 != nil { + return *x.refee6ff04, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56079,89 +62620,91 @@ func (x GraphicsPipelineShaderGroupsCreateInfoNV) PassValue() (C.VkGraphicsPipel // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { - if x.refabf1b7d9 == nil { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Deref() { + if x.refee6ff04 == nil { return } - 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) - hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) - hxf4b5187.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) - hxf4b5187.Cap = 0x7fffffff - // hxf4b5187.Len = ? - + 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)) } -// allocBindShaderGroupIndirectCommandNVMemory allocates memory for type C.VkBindShaderGroupIndirectCommandNV in C. +// allocPhysicalDeviceDeviceMemoryReportFeaturesMemory allocates memory for type C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindShaderGroupIndirectCommandNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindShaderGroupIndirectCommandNVValue)) +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 sizeOfBindShaderGroupIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindShaderGroupIndirectCommandNV{}) +const sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindShaderGroupIndirectCommandNV) Ref() *C.VkBindShaderGroupIndirectCommandNV { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Ref() *C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { if x == nil { return nil } - return x.ref4b098fa3 + 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 *BindShaderGroupIndirectCommandNV) Free() { - if x != nil && x.allocs4b098fa3 != nil { - x.allocs4b098fa3.(*cgoAllocMap).Free() - x.ref4b098fa3 = nil +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Free() { + if x != nil && x.allocs477470f6 != nil { + x.allocs477470f6.(*cgoAllocMap).Free() + x.ref477470f6 = nil } } -// NewBindShaderGroupIndirectCommandNVRef 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 NewBindShaderGroupIndirectCommandNVRef(ref unsafe.Pointer) *BindShaderGroupIndirectCommandNV { +func NewPhysicalDeviceDeviceMemoryReportFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDeviceMemoryReportFeatures { if ref == nil { return nil } - obj := new(BindShaderGroupIndirectCommandNV) - obj.ref4b098fa3 = (*C.VkBindShaderGroupIndirectCommandNV)(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 *BindShaderGroupIndirectCommandNV) PassRef() (*C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) PassRef() (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4b098fa3 != nil { - return x.ref4b098fa3, nil + } else if x.ref477470f6 != nil { + return x.ref477470f6, nil } - mem4b098fa3 := allocBindShaderGroupIndirectCommandNVMemory(1) - ref4b098fa3 := (*C.VkBindShaderGroupIndirectCommandNV)(mem4b098fa3) - allocs4b098fa3 := new(cgoAllocMap) - allocs4b098fa3.Add(mem4b098fa3) + mem477470f6 := allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(1) + ref477470f6 := (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(mem477470f6) + allocs477470f6 := new(cgoAllocMap) + allocs477470f6.Add(mem477470f6) - var cgroupIndex_allocs *cgoAllocMap - ref4b098fa3.groupIndex, cgroupIndex_allocs = (C.uint32_t)(x.GroupIndex), cgoAllocsUnknown - allocs4b098fa3.Borrow(cgroupIndex_allocs) + var csType_allocs *cgoAllocMap + ref477470f6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs477470f6.Borrow(csType_allocs) - x.ref4b098fa3 = ref4b098fa3 - x.allocs4b098fa3 = allocs4b098fa3 - return ref4b098fa3, allocs4b098fa3 + var cpNext_allocs *cgoAllocMap + ref477470f6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs477470f6.Borrow(cpNext_allocs) + + var cdeviceMemoryReport_allocs *cgoAllocMap + ref477470f6.deviceMemoryReport, cdeviceMemoryReport_allocs = (C.VkBool32)(x.DeviceMemoryReport), cgoAllocsUnknown + allocs477470f6.Borrow(cdeviceMemoryReport_allocs) + + 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 BindShaderGroupIndirectCommandNV) PassValue() (C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { - if x.ref4b098fa3 != nil { - return *x.ref4b098fa3, nil +func (x PhysicalDeviceDeviceMemoryReportFeatures) PassValue() (C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { + if x.ref477470f6 != nil { + return *x.ref477470f6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56169,88 +62712,114 @@ func (x BindShaderGroupIndirectCommandNV) PassValue() (C.VkBindShaderGroupIndire // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindShaderGroupIndirectCommandNV) Deref() { - if x.ref4b098fa3 == nil { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Deref() { + if x.ref477470f6 == nil { return } - x.GroupIndex = (uint32)(x.ref4b098fa3.groupIndex) + x.SType = (StructureType)(x.ref477470f6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref477470f6.pNext)) + x.DeviceMemoryReport = (Bool32)(x.ref477470f6.deviceMemoryReport) } -// allocBindIndexBufferIndirectCommandNVMemory allocates memory for type C.VkBindIndexBufferIndirectCommandNV in C. +// allocDeviceMemoryReportCallbackDataMemory allocates memory for type C.VkDeviceMemoryReportCallbackDataEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindIndexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindIndexBufferIndirectCommandNVValue)) +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 sizeOfBindIndexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindIndexBufferIndirectCommandNV{}) +const sizeOfDeviceMemoryReportCallbackDataValue = unsafe.Sizeof([1]C.VkDeviceMemoryReportCallbackDataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindIndexBufferIndirectCommandNV) Ref() *C.VkBindIndexBufferIndirectCommandNV { +func (x *DeviceMemoryReportCallbackData) Ref() *C.VkDeviceMemoryReportCallbackDataEXT { if x == nil { return nil } - return x.ref74143926 + 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 *BindIndexBufferIndirectCommandNV) Free() { - if x != nil && x.allocs74143926 != nil { - x.allocs74143926.(*cgoAllocMap).Free() - x.ref74143926 = nil +func (x *DeviceMemoryReportCallbackData) Free() { + if x != nil && x.allocs3150dbde != nil { + x.allocs3150dbde.(*cgoAllocMap).Free() + x.ref3150dbde = nil } } -// NewBindIndexBufferIndirectCommandNVRef 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 NewBindIndexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindIndexBufferIndirectCommandNV { +func NewDeviceMemoryReportCallbackDataRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackData { if ref == nil { return nil } - obj := new(BindIndexBufferIndirectCommandNV) - obj.ref74143926 = (*C.VkBindIndexBufferIndirectCommandNV)(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 *BindIndexBufferIndirectCommandNV) PassRef() (*C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { +func (x *DeviceMemoryReportCallbackData) PassRef() (*C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref74143926 != nil { - return x.ref74143926, nil + } else if x.ref3150dbde != nil { + return x.ref3150dbde, nil } - mem74143926 := allocBindIndexBufferIndirectCommandNVMemory(1) - ref74143926 := (*C.VkBindIndexBufferIndirectCommandNV)(mem74143926) - allocs74143926 := new(cgoAllocMap) - allocs74143926.Add(mem74143926) + mem3150dbde := allocDeviceMemoryReportCallbackDataMemory(1) + ref3150dbde := (*C.VkDeviceMemoryReportCallbackDataEXT)(mem3150dbde) + allocs3150dbde := new(cgoAllocMap) + allocs3150dbde.Add(mem3150dbde) - var cbufferAddress_allocs *cgoAllocMap - ref74143926.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown - allocs74143926.Borrow(cbufferAddress_allocs) + var csType_allocs *cgoAllocMap + ref3150dbde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3150dbde.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3150dbde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3150dbde.Borrow(cpNext_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 - ref74143926.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown - allocs74143926.Borrow(csize_allocs) + ref3150dbde.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs3150dbde.Borrow(csize_allocs) - var cindexType_allocs *cgoAllocMap - ref74143926.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown - allocs74143926.Borrow(cindexType_allocs) + var cobjectType_allocs *cgoAllocMap + ref3150dbde.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs3150dbde.Borrow(cobjectType_allocs) - x.ref74143926 = ref74143926 - x.allocs74143926 = allocs74143926 - return ref74143926, allocs74143926 + 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.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 BindIndexBufferIndirectCommandNV) PassValue() (C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { - if x.ref74143926 != nil { - return *x.ref74143926, nil +func (x DeviceMemoryReportCallbackData) PassValue() (C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { + if x.ref3150dbde != nil { + return *x.ref3150dbde, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56258,90 +62827,151 @@ func (x BindIndexBufferIndirectCommandNV) PassValue() (C.VkBindIndexBufferIndire // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindIndexBufferIndirectCommandNV) Deref() { - if x.ref74143926 == nil { +func (x *DeviceMemoryReportCallbackData) Deref() { + if x.ref3150dbde == nil { return } - x.BufferAddress = (DeviceAddress)(x.ref74143926.bufferAddress) - x.Size = (uint32)(x.ref74143926.size) - x.IndexType = (IndexType)(x.ref74143926.indexType) + 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) } -// allocBindVertexBufferIndirectCommandNVMemory allocates memory for type C.VkBindVertexBufferIndirectCommandNV 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 allocBindVertexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindVertexBufferIndirectCommandNVValue)) +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 sizeOfBindVertexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindVertexBufferIndirectCommandNV{}) +const sizeOfDeviceDeviceMemoryReportCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceDeviceMemoryReportCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindVertexBufferIndirectCommandNV) Ref() *C.VkBindVertexBufferIndirectCommandNV { +func (x *DeviceDeviceMemoryReportCreateInfo) Ref() *C.VkDeviceDeviceMemoryReportCreateInfoEXT { if x == nil { return nil } - return x.refca56f95c + 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 *BindVertexBufferIndirectCommandNV) Free() { - if x != nil && x.allocsca56f95c != nil { - x.allocsca56f95c.(*cgoAllocMap).Free() - x.refca56f95c = nil +func (x *DeviceDeviceMemoryReportCreateInfo) Free() { + if x != nil && x.allocse99f2c76 != nil { + x.allocse99f2c76.(*cgoAllocMap).Free() + x.refe99f2c76 = nil } } -// NewBindVertexBufferIndirectCommandNVRef 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 NewBindVertexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindVertexBufferIndirectCommandNV { +func NewDeviceDeviceMemoryReportCreateInfoRef(ref unsafe.Pointer) *DeviceDeviceMemoryReportCreateInfo { if ref == nil { return nil } - obj := new(BindVertexBufferIndirectCommandNV) - obj.refca56f95c = (*C.VkBindVertexBufferIndirectCommandNV)(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 *BindVertexBufferIndirectCommandNV) PassRef() (*C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { +func (x *DeviceDeviceMemoryReportCreateInfo) PassRef() (*C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refca56f95c != nil { - return x.refca56f95c, nil + } else if x.refe99f2c76 != nil { + return x.refe99f2c76, nil } - memca56f95c := allocBindVertexBufferIndirectCommandNVMemory(1) - refca56f95c := (*C.VkBindVertexBufferIndirectCommandNV)(memca56f95c) - allocsca56f95c := new(cgoAllocMap) - allocsca56f95c.Add(memca56f95c) + meme99f2c76 := allocDeviceDeviceMemoryReportCreateInfoMemory(1) + refe99f2c76 := (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(meme99f2c76) + allocse99f2c76 := new(cgoAllocMap) + allocse99f2c76.Add(meme99f2c76) - var cbufferAddress_allocs *cgoAllocMap - refca56f95c.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown - allocsca56f95c.Borrow(cbufferAddress_allocs) + var csType_allocs *cgoAllocMap + refe99f2c76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse99f2c76.Borrow(csType_allocs) - var csize_allocs *cgoAllocMap - refca56f95c.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown - allocsca56f95c.Borrow(csize_allocs) + var cpNext_allocs *cgoAllocMap + refe99f2c76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse99f2c76.Borrow(cpNext_allocs) - var cstride_allocs *cgoAllocMap - refca56f95c.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown - allocsca56f95c.Borrow(cstride_allocs) + var cflags_allocs *cgoAllocMap + refe99f2c76.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse99f2c76.Borrow(cflags_allocs) - x.refca56f95c = refca56f95c - x.allocsca56f95c = allocsca56f95c - return refca56f95c, allocsca56f95c + 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 BindVertexBufferIndirectCommandNV) PassValue() (C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { - if x.refca56f95c != nil { - return *x.refca56f95c, nil +func (x DeviceDeviceMemoryReportCreateInfo) PassValue() (C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { + if x.refe99f2c76 != nil { + return *x.refe99f2c76, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56349,82 +62979,100 @@ func (x BindVertexBufferIndirectCommandNV) PassValue() (C.VkBindVertexBufferIndi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindVertexBufferIndirectCommandNV) Deref() { - if x.refca56f95c == nil { +func (x *DeviceDeviceMemoryReportCreateInfo) Deref() { + if x.refe99f2c76 == nil { return } - x.BufferAddress = (DeviceAddress)(x.refca56f95c.bufferAddress) - x.Size = (uint32)(x.refca56f95c.size) - x.Stride = (uint32)(x.refca56f95c.stride) + 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)) } -// allocSetStateFlagsIndirectCommandNVMemory allocates memory for type C.VkSetStateFlagsIndirectCommandNV in C. +// allocPhysicalDeviceRobustness2FeaturesMemory allocates memory for type C.VkPhysicalDeviceRobustness2FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSetStateFlagsIndirectCommandNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSetStateFlagsIndirectCommandNVValue)) +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 sizeOfSetStateFlagsIndirectCommandNVValue = unsafe.Sizeof([1]C.VkSetStateFlagsIndirectCommandNV{}) +const sizeOfPhysicalDeviceRobustness2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SetStateFlagsIndirectCommandNV) Ref() *C.VkSetStateFlagsIndirectCommandNV { +func (x *PhysicalDeviceRobustness2Features) Ref() *C.VkPhysicalDeviceRobustness2FeaturesEXT { if x == nil { return nil } - return x.ref89ae676d + 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 *SetStateFlagsIndirectCommandNV) Free() { - if x != nil && x.allocs89ae676d != nil { - x.allocs89ae676d.(*cgoAllocMap).Free() - x.ref89ae676d = nil +func (x *PhysicalDeviceRobustness2Features) Free() { + if x != nil && x.allocsa1d6be35 != nil { + x.allocsa1d6be35.(*cgoAllocMap).Free() + x.refa1d6be35 = nil } } -// NewSetStateFlagsIndirectCommandNVRef 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 NewSetStateFlagsIndirectCommandNVRef(ref unsafe.Pointer) *SetStateFlagsIndirectCommandNV { +func NewPhysicalDeviceRobustness2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Features { if ref == nil { return nil } - obj := new(SetStateFlagsIndirectCommandNV) - obj.ref89ae676d = (*C.VkSetStateFlagsIndirectCommandNV)(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 *SetStateFlagsIndirectCommandNV) PassRef() (*C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Features) PassRef() (*C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89ae676d != nil { - return x.ref89ae676d, nil + } else if x.refa1d6be35 != nil { + return x.refa1d6be35, nil } - mem89ae676d := allocSetStateFlagsIndirectCommandNVMemory(1) - ref89ae676d := (*C.VkSetStateFlagsIndirectCommandNV)(mem89ae676d) - allocs89ae676d := new(cgoAllocMap) - allocs89ae676d.Add(mem89ae676d) + mema1d6be35 := allocPhysicalDeviceRobustness2FeaturesMemory(1) + refa1d6be35 := (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(mema1d6be35) + allocsa1d6be35 := new(cgoAllocMap) + allocsa1d6be35.Add(mema1d6be35) - var cdata_allocs *cgoAllocMap - ref89ae676d.data, cdata_allocs = (C.uint32_t)(x.Data), cgoAllocsUnknown - allocs89ae676d.Borrow(cdata_allocs) + var csType_allocs *cgoAllocMap + refa1d6be35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa1d6be35.Borrow(csType_allocs) - x.ref89ae676d = ref89ae676d - x.allocs89ae676d = allocs89ae676d - return ref89ae676d, allocs89ae676d + var cpNext_allocs *cgoAllocMap + refa1d6be35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa1d6be35.Borrow(cpNext_allocs) + + var crobustBufferAccess2_allocs *cgoAllocMap + refa1d6be35.robustBufferAccess2, crobustBufferAccess2_allocs = (C.VkBool32)(x.RobustBufferAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustBufferAccess2_allocs) + + var crobustImageAccess2_allocs *cgoAllocMap + refa1d6be35.robustImageAccess2, crobustImageAccess2_allocs = (C.VkBool32)(x.RobustImageAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustImageAccess2_allocs) + + var cnullDescriptor_allocs *cgoAllocMap + refa1d6be35.nullDescriptor, cnullDescriptor_allocs = (C.VkBool32)(x.NullDescriptor), cgoAllocsUnknown + allocsa1d6be35.Borrow(cnullDescriptor_allocs) + + 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 SetStateFlagsIndirectCommandNV) PassValue() (C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { - if x.ref89ae676d != nil { - return *x.ref89ae676d, nil +func (x PhysicalDeviceRobustness2Features) PassValue() (C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { + if x.refa1d6be35 != nil { + return *x.refa1d6be35, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56432,84 +63080,96 @@ func (x SetStateFlagsIndirectCommandNV) PassValue() (C.VkSetStateFlagsIndirectCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SetStateFlagsIndirectCommandNV) Deref() { - if x.ref89ae676d == nil { +func (x *PhysicalDeviceRobustness2Features) Deref() { + if x.refa1d6be35 == nil { return } - x.Data = (uint32)(x.ref89ae676d.data) + 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) } -// allocIndirectCommandsStreamNVMemory allocates memory for type C.VkIndirectCommandsStreamNV in C. +// allocPhysicalDeviceRobustness2PropertiesMemory allocates memory for type C.VkPhysicalDeviceRobustness2PropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsStreamNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsStreamNVValue)) +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 sizeOfIndirectCommandsStreamNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsStreamNV{}) +const sizeOfPhysicalDeviceRobustness2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2PropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsStreamNV) Ref() *C.VkIndirectCommandsStreamNV { +func (x *PhysicalDeviceRobustness2Properties) Ref() *C.VkPhysicalDeviceRobustness2PropertiesEXT { if x == nil { return nil } - return x.refc623636a + 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 *IndirectCommandsStreamNV) Free() { - if x != nil && x.allocsc623636a != nil { - x.allocsc623636a.(*cgoAllocMap).Free() - x.refc623636a = nil +func (x *PhysicalDeviceRobustness2Properties) Free() { + if x != nil && x.allocs82986127 != nil { + x.allocs82986127.(*cgoAllocMap).Free() + x.ref82986127 = nil } } -// NewIndirectCommandsStreamNVRef 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 NewIndirectCommandsStreamNVRef(ref unsafe.Pointer) *IndirectCommandsStreamNV { +func NewPhysicalDeviceRobustness2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Properties { if ref == nil { return nil } - obj := new(IndirectCommandsStreamNV) - obj.refc623636a = (*C.VkIndirectCommandsStreamNV)(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 *IndirectCommandsStreamNV) PassRef() (*C.VkIndirectCommandsStreamNV, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Properties) PassRef() (*C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc623636a != nil { - return x.refc623636a, nil + } else if x.ref82986127 != nil { + return x.ref82986127, nil } - memc623636a := allocIndirectCommandsStreamNVMemory(1) - refc623636a := (*C.VkIndirectCommandsStreamNV)(memc623636a) - allocsc623636a := new(cgoAllocMap) - allocsc623636a.Add(memc623636a) + mem82986127 := allocPhysicalDeviceRobustness2PropertiesMemory(1) + ref82986127 := (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(mem82986127) + allocs82986127 := new(cgoAllocMap) + allocs82986127.Add(mem82986127) - var cbuffer_allocs *cgoAllocMap - refc623636a.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsc623636a.Borrow(cbuffer_allocs) + var csType_allocs *cgoAllocMap + ref82986127.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82986127.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - refc623636a.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocsc623636a.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + ref82986127.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82986127.Borrow(cpNext_allocs) - x.refc623636a = refc623636a - x.allocsc623636a = allocsc623636a - return refc623636a, allocsc623636a + var crobustStorageBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustStorageBufferAccessSizeAlignment, crobustStorageBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustStorageBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustStorageBufferAccessSizeAlignment_allocs) + + var crobustUniformBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustUniformBufferAccessSizeAlignment, crobustUniformBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustUniformBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustUniformBufferAccessSizeAlignment_allocs) + + 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 IndirectCommandsStreamNV) PassValue() (C.VkIndirectCommandsStreamNV, *cgoAllocMap) { - if x.refc623636a != nil { - return *x.refc623636a, nil +func (x PhysicalDeviceRobustness2Properties) PassValue() (C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { + if x.ref82986127 != nil { + return *x.ref82986127, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56517,137 +63177,95 @@ func (x IndirectCommandsStreamNV) PassValue() (C.VkIndirectCommandsStreamNV, *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 *IndirectCommandsStreamNV) Deref() { - if x.refc623636a == nil { +func (x *PhysicalDeviceRobustness2Properties) Deref() { + if x.ref82986127 == nil { return } - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refc623636a.buffer)) - x.Offset = (DeviceSize)(x.refc623636a.offset) + 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) } -// allocIndirectCommandsLayoutTokenNVMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNV in C. +// allocSamplerCustomBorderColorCreateInfoMemory allocates memory for type C.VkSamplerCustomBorderColorCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsLayoutTokenNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutTokenNVValue)) +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 sizeOfIndirectCommandsLayoutTokenNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNV{}) +const sizeOfSamplerCustomBorderColorCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCustomBorderColorCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutTokenNV) Ref() *C.VkIndirectCommandsLayoutTokenNV { +func (x *SamplerCustomBorderColorCreateInfo) Ref() *C.VkSamplerCustomBorderColorCreateInfoEXT { if x == nil { return nil } - return x.ref96f52b76 + 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 *IndirectCommandsLayoutTokenNV) Free() { - if x != nil && x.allocs96f52b76 != nil { - x.allocs96f52b76.(*cgoAllocMap).Free() - x.ref96f52b76 = nil +func (x *SamplerCustomBorderColorCreateInfo) Free() { + if x != nil && x.allocscac2582e != nil { + x.allocscac2582e.(*cgoAllocMap).Free() + x.refcac2582e = nil } } -// NewIndirectCommandsLayoutTokenNVRef 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 NewIndirectCommandsLayoutTokenNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNV { +func NewSamplerCustomBorderColorCreateInfoRef(ref unsafe.Pointer) *SamplerCustomBorderColorCreateInfo { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutTokenNV) - obj.ref96f52b76 = (*C.VkIndirectCommandsLayoutTokenNV)(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 *IndirectCommandsLayoutTokenNV) PassRef() (*C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { +func (x *SamplerCustomBorderColorCreateInfo) PassRef() (*C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref96f52b76 != nil { - return x.ref96f52b76, nil + } else if x.refcac2582e != nil { + return x.refcac2582e, nil } - mem96f52b76 := allocIndirectCommandsLayoutTokenNVMemory(1) - ref96f52b76 := (*C.VkIndirectCommandsLayoutTokenNV)(mem96f52b76) - allocs96f52b76 := new(cgoAllocMap) - allocs96f52b76.Add(mem96f52b76) + memcac2582e := allocSamplerCustomBorderColorCreateInfoMemory(1) + refcac2582e := (*C.VkSamplerCustomBorderColorCreateInfoEXT)(memcac2582e) + allocscac2582e := new(cgoAllocMap) + allocscac2582e.Add(memcac2582e) var csType_allocs *cgoAllocMap - ref96f52b76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs96f52b76.Borrow(csType_allocs) + refcac2582e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscac2582e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref96f52b76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs96f52b76.Borrow(cpNext_allocs) - - var ctokenType_allocs *cgoAllocMap - ref96f52b76.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNV)(x.TokenType), cgoAllocsUnknown - allocs96f52b76.Borrow(ctokenType_allocs) - - var cstream_allocs *cgoAllocMap - ref96f52b76.stream, cstream_allocs = (C.uint32_t)(x.Stream), cgoAllocsUnknown - allocs96f52b76.Borrow(cstream_allocs) - - var coffset_allocs *cgoAllocMap - ref96f52b76.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocs96f52b76.Borrow(coffset_allocs) - - var cvertexBindingUnit_allocs *cgoAllocMap - ref96f52b76.vertexBindingUnit, cvertexBindingUnit_allocs = (C.uint32_t)(x.VertexBindingUnit), cgoAllocsUnknown - allocs96f52b76.Borrow(cvertexBindingUnit_allocs) - - 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) + refcac2582e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscac2582e.Borrow(cpNext_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 ccustomBorderColor_allocs *cgoAllocMap + refcac2582e.customBorderColor, ccustomBorderColor_allocs = *(*C.VkClearColorValue)(unsafe.Pointer(&x.CustomBorderColor)), cgoAllocsUnknown + allocscac2582e.Borrow(ccustomBorderColor_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) + var cformat_allocs *cgoAllocMap + refcac2582e.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocscac2582e.Borrow(cformat_allocs) - x.ref96f52b76 = ref96f52b76 - x.allocs96f52b76 = allocs96f52b76 - return ref96f52b76, allocs96f52b76 + 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 IndirectCommandsLayoutTokenNV) PassValue() (C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { - if x.ref96f52b76 != nil { - return *x.ref96f52b76, nil +func (x SamplerCustomBorderColorCreateInfo) PassValue() (C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { + if x.refcac2582e != nil { + return *x.refcac2582e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56655,168 +63273,91 @@ func (x IndirectCommandsLayoutTokenNV) PassValue() (C.VkIndirectCommandsLayoutTo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *IndirectCommandsLayoutTokenNV) Deref() { - if x.ref96f52b76 == nil { +func (x *SamplerCustomBorderColorCreateInfo) Deref() { + if x.refcac2582e == nil { return } - 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) - hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) - hxf177f79.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) - hxf177f79.Cap = 0x7fffffff - // hxf177f79.Len = ? - - hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) - hxfaa359c.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) - hxfaa359c.Cap = 0x7fffffff - // hxfaa359c.Len = ? - + 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) } -// allocIndirectCommandsLayoutCreateInfoNVMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNV in C. +// allocPhysicalDeviceCustomBorderColorPropertiesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsLayoutCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutCreateInfoNVValue)) +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 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)) - } -} +const sizeOfPhysicalDeviceCustomBorderColorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutCreateInfoNV) Ref() *C.VkIndirectCommandsLayoutCreateInfoNV { +func (x *PhysicalDeviceCustomBorderColorProperties) Ref() *C.VkPhysicalDeviceCustomBorderColorPropertiesEXT { if x == nil { return nil } - return x.ref48273185 + 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 *IndirectCommandsLayoutCreateInfoNV) Free() { - if x != nil && x.allocs48273185 != nil { - x.allocs48273185.(*cgoAllocMap).Free() - x.ref48273185 = nil +func (x *PhysicalDeviceCustomBorderColorProperties) Free() { + if x != nil && x.allocs4b62d3cd != nil { + x.allocs4b62d3cd.(*cgoAllocMap).Free() + x.ref4b62d3cd = nil } } -// NewIndirectCommandsLayoutCreateInfoNVRef 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 NewIndirectCommandsLayoutCreateInfoNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNV { +func NewPhysicalDeviceCustomBorderColorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorProperties { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutCreateInfoNV) - obj.ref48273185 = (*C.VkIndirectCommandsLayoutCreateInfoNV)(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 *IndirectCommandsLayoutCreateInfoNV) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorProperties) PassRef() (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref48273185 != nil { - return x.ref48273185, nil + } else if x.ref4b62d3cd != nil { + return x.ref4b62d3cd, nil } - mem48273185 := allocIndirectCommandsLayoutCreateInfoNVMemory(1) - ref48273185 := (*C.VkIndirectCommandsLayoutCreateInfoNV)(mem48273185) - allocs48273185 := new(cgoAllocMap) - allocs48273185.Add(mem48273185) + mem4b62d3cd := allocPhysicalDeviceCustomBorderColorPropertiesMemory(1) + ref4b62d3cd := (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(mem4b62d3cd) + allocs4b62d3cd := new(cgoAllocMap) + allocs4b62d3cd.Add(mem4b62d3cd) var csType_allocs *cgoAllocMap - ref48273185.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs48273185.Borrow(csType_allocs) + ref4b62d3cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4b62d3cd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref48273185.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs48273185.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref48273185.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNV)(x.Flags), cgoAllocsUnknown - allocs48273185.Borrow(cflags_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - ref48273185.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs48273185.Borrow(cpipelineBindPoint_allocs) - - 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) + ref4b62d3cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cpNext_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) + var cmaxCustomBorderColorSamplers_allocs *cgoAllocMap + ref4b62d3cd.maxCustomBorderColorSamplers, cmaxCustomBorderColorSamplers_allocs = (C.uint32_t)(x.MaxCustomBorderColorSamplers), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cmaxCustomBorderColorSamplers_allocs) - x.ref48273185 = ref48273185 - x.allocs48273185 = allocs48273185 - return ref48273185, allocs48273185 + 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 IndirectCommandsLayoutCreateInfoNV) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { - if x.ref48273185 != nil { - return *x.ref48273185, nil +func (x PhysicalDeviceCustomBorderColorProperties) PassValue() (C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { + if x.ref4b62d3cd != nil { + return *x.ref4b62d3cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -56824,185 +63365,94 @@ func (x IndirectCommandsLayoutCreateInfoNV) PassValue() (C.VkIndirectCommandsLay // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *IndirectCommandsLayoutCreateInfoNV) Deref() { - if x.ref48273185 == nil { +func (x *PhysicalDeviceCustomBorderColorProperties) Deref() { + if x.ref4b62d3cd == nil { return } - 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) - hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) - hxfa897de.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) - hxfa897de.Cap = 0x7fffffff - // hxfa897de.Len = ? - + x.SType = (StructureType)(x.ref4b62d3cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4b62d3cd.pNext)) + x.MaxCustomBorderColorSamplers = (uint32)(x.ref4b62d3cd.maxCustomBorderColorSamplers) } -// allocGeneratedCommandsInfoNVMemory allocates memory for type C.VkGeneratedCommandsInfoNV in C. +// allocPhysicalDeviceCustomBorderColorFeaturesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeneratedCommandsInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsInfoNVValue)) +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 sizeOfGeneratedCommandsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsInfoNV{}) - -// 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.VkIndirectCommandsStreamNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocIndirectCommandsStreamNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - 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.VkIndirectCommandsStreamNV)(h.Data) - return -} - -// 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 / sizeOfIndirectCommandsStreamNVValue]C.VkIndirectCommandsStreamNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewIndirectCommandsStreamNVRef(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 *GeneratedCommandsInfoNV) Ref() *C.VkGeneratedCommandsInfoNV { +func (x *PhysicalDeviceCustomBorderColorFeatures) Ref() *C.VkPhysicalDeviceCustomBorderColorFeaturesEXT { if x == nil { return nil } - return x.refc05396ea + 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 *GeneratedCommandsInfoNV) Free() { - if x != nil && x.allocsc05396ea != nil { - x.allocsc05396ea.(*cgoAllocMap).Free() - x.refc05396ea = nil +func (x *PhysicalDeviceCustomBorderColorFeatures) Free() { + if x != nil && x.allocs8a9c96e0 != nil { + x.allocs8a9c96e0.(*cgoAllocMap).Free() + x.ref8a9c96e0 = nil } } -// NewGeneratedCommandsInfoNVRef 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 NewGeneratedCommandsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsInfoNV { +func NewPhysicalDeviceCustomBorderColorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorFeatures { if ref == nil { return nil } - obj := new(GeneratedCommandsInfoNV) - obj.refc05396ea = (*C.VkGeneratedCommandsInfoNV)(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 *GeneratedCommandsInfoNV) PassRef() (*C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorFeatures) PassRef() (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc05396ea != nil { - return x.refc05396ea, nil + } else if x.ref8a9c96e0 != nil { + return x.ref8a9c96e0, nil } - memc05396ea := allocGeneratedCommandsInfoNVMemory(1) - refc05396ea := (*C.VkGeneratedCommandsInfoNV)(memc05396ea) - allocsc05396ea := new(cgoAllocMap) - allocsc05396ea.Add(memc05396ea) - - var csType_allocs *cgoAllocMap - refc05396ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc05396ea.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refc05396ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc05396ea.Borrow(cpNext_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - refc05396ea.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocsc05396ea.Borrow(cpipelineBindPoint_allocs) - - var cpipeline_allocs *cgoAllocMap - refc05396ea.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocsc05396ea.Borrow(cpipeline_allocs) - - var cindirectCommandsLayout_allocs *cgoAllocMap - refc05396ea.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNV)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown - allocsc05396ea.Borrow(cindirectCommandsLayout_allocs) - - 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) + mem8a9c96e0 := allocPhysicalDeviceCustomBorderColorFeaturesMemory(1) + ref8a9c96e0 := (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(mem8a9c96e0) + allocs8a9c96e0 := new(cgoAllocMap) + allocs8a9c96e0.Add(mem8a9c96e0) - var csequencesCountBuffer_allocs *cgoAllocMap - refc05396ea.sequencesCountBuffer, csequencesCountBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesCountBuffer)), cgoAllocsUnknown - allocsc05396ea.Borrow(csequencesCountBuffer_allocs) + var csType_allocs *cgoAllocMap + ref8a9c96e0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8a9c96e0.Borrow(csType_allocs) - var csequencesCountOffset_allocs *cgoAllocMap - refc05396ea.sequencesCountOffset, csequencesCountOffset_allocs = (C.VkDeviceSize)(x.SequencesCountOffset), cgoAllocsUnknown - allocsc05396ea.Borrow(csequencesCountOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref8a9c96e0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8a9c96e0.Borrow(cpNext_allocs) - var csequencesIndexBuffer_allocs *cgoAllocMap - refc05396ea.sequencesIndexBuffer, csequencesIndexBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesIndexBuffer)), cgoAllocsUnknown - allocsc05396ea.Borrow(csequencesIndexBuffer_allocs) + var ccustomBorderColors_allocs *cgoAllocMap + ref8a9c96e0.customBorderColors, ccustomBorderColors_allocs = (C.VkBool32)(x.CustomBorderColors), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColors_allocs) - var csequencesIndexOffset_allocs *cgoAllocMap - refc05396ea.sequencesIndexOffset, csequencesIndexOffset_allocs = (C.VkDeviceSize)(x.SequencesIndexOffset), cgoAllocsUnknown - allocsc05396ea.Borrow(csequencesIndexOffset_allocs) + var ccustomBorderColorWithoutFormat_allocs *cgoAllocMap + ref8a9c96e0.customBorderColorWithoutFormat, ccustomBorderColorWithoutFormat_allocs = (C.VkBool32)(x.CustomBorderColorWithoutFormat), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColorWithoutFormat_allocs) - x.refc05396ea = refc05396ea - x.allocsc05396ea = allocsc05396ea - return refc05396ea, allocsc05396ea + 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 GeneratedCommandsInfoNV) PassValue() (C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { - if x.refc05396ea != nil { - return *x.refc05396ea, nil +func (x PhysicalDeviceCustomBorderColorFeatures) PassValue() (C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { + if x.ref8a9c96e0 != nil { + return *x.ref8a9c96e0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57010,114 +63460,91 @@ func (x GeneratedCommandsInfoNV) PassValue() (C.VkGeneratedCommandsInfoNV, *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 *GeneratedCommandsInfoNV) Deref() { - if x.refc05396ea == nil { +func (x *PhysicalDeviceCustomBorderColorFeatures) Deref() { + if x.ref8a9c96e0 == nil { return } - 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) + 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) } -// allocGeneratedCommandsMemoryRequirementsInfoNVMemory allocates memory for type C.VkGeneratedCommandsMemoryRequirementsInfoNV in C. +// allocPhysicalDevicePresentBarrierFeaturesNVMemory allocates memory for type C.VkPhysicalDevicePresentBarrierFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeneratedCommandsMemoryRequirementsInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue)) +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 sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsMemoryRequirementsInfoNV{}) +const sizeOfPhysicalDevicePresentBarrierFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentBarrierFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeneratedCommandsMemoryRequirementsInfoNV) Ref() *C.VkGeneratedCommandsMemoryRequirementsInfoNV { +func (x *PhysicalDevicePresentBarrierFeaturesNV) Ref() *C.VkPhysicalDevicePresentBarrierFeaturesNV { if x == nil { return nil } - return x.refe82e5c4c + 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 *GeneratedCommandsMemoryRequirementsInfoNV) Free() { - if x != nil && x.allocse82e5c4c != nil { - x.allocse82e5c4c.(*cgoAllocMap).Free() - x.refe82e5c4c = nil +func (x *PhysicalDevicePresentBarrierFeaturesNV) Free() { + if x != nil && x.allocsf8c28ce8 != nil { + x.allocsf8c28ce8.(*cgoAllocMap).Free() + x.reff8c28ce8 = nil } } -// NewGeneratedCommandsMemoryRequirementsInfoNVRef 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 NewGeneratedCommandsMemoryRequirementsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsMemoryRequirementsInfoNV { +func NewPhysicalDevicePresentBarrierFeaturesNVRef(ref unsafe.Pointer) *PhysicalDevicePresentBarrierFeaturesNV { if ref == nil { return nil } - obj := new(GeneratedCommandsMemoryRequirementsInfoNV) - obj.refe82e5c4c = (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(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 *GeneratedCommandsMemoryRequirementsInfoNV) PassRef() (*C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { +func (x *PhysicalDevicePresentBarrierFeaturesNV) PassRef() (*C.VkPhysicalDevicePresentBarrierFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe82e5c4c != nil { - return x.refe82e5c4c, nil + } else if x.reff8c28ce8 != nil { + return x.reff8c28ce8, nil } - meme82e5c4c := allocGeneratedCommandsMemoryRequirementsInfoNVMemory(1) - refe82e5c4c := (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(meme82e5c4c) - allocse82e5c4c := new(cgoAllocMap) - allocse82e5c4c.Add(meme82e5c4c) + memf8c28ce8 := allocPhysicalDevicePresentBarrierFeaturesNVMemory(1) + reff8c28ce8 := (*C.VkPhysicalDevicePresentBarrierFeaturesNV)(memf8c28ce8) + allocsf8c28ce8 := new(cgoAllocMap) + allocsf8c28ce8.Add(memf8c28ce8) var csType_allocs *cgoAllocMap - refe82e5c4c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse82e5c4c.Borrow(csType_allocs) + reff8c28ce8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf8c28ce8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe82e5c4c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse82e5c4c.Borrow(cpNext_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - refe82e5c4c.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocse82e5c4c.Borrow(cpipelineBindPoint_allocs) - - var cpipeline_allocs *cgoAllocMap - refe82e5c4c.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocse82e5c4c.Borrow(cpipeline_allocs) + reff8c28ce8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf8c28ce8.Borrow(cpNext_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) + var cpresentBarrier_allocs *cgoAllocMap + reff8c28ce8.presentBarrier, cpresentBarrier_allocs = (C.VkBool32)(x.PresentBarrier), cgoAllocsUnknown + allocsf8c28ce8.Borrow(cpresentBarrier_allocs) - x.refe82e5c4c = refe82e5c4c - x.allocse82e5c4c = allocse82e5c4c - return refe82e5c4c, allocse82e5c4c + 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 GeneratedCommandsMemoryRequirementsInfoNV) PassValue() (C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { - if x.refe82e5c4c != nil { - return *x.refe82e5c4c, nil +func (x PhysicalDevicePresentBarrierFeaturesNV) PassValue() (C.VkPhysicalDevicePresentBarrierFeaturesNV, *cgoAllocMap) { + if x.reff8c28ce8 != nil { + return *x.reff8c28ce8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57125,93 +63552,90 @@ func (x GeneratedCommandsMemoryRequirementsInfoNV) PassValue() (C.VkGeneratedCom // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GeneratedCommandsMemoryRequirementsInfoNV) Deref() { - if x.refe82e5c4c == nil { +func (x *PhysicalDevicePresentBarrierFeaturesNV) Deref() { + if x.reff8c28ce8 == nil { return } - 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) + x.SType = (StructureType)(x.reff8c28ce8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff8c28ce8.pNext)) + x.PresentBarrier = (Bool32)(x.reff8c28ce8.presentBarrier) } -// allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV in C. +// allocSurfaceCapabilitiesPresentBarrierNVMemory allocates memory for type C.VkSurfaceCapabilitiesPresentBarrierNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue)) +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 sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV{}) +const sizeOfSurfaceCapabilitiesPresentBarrierNVValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesPresentBarrierNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Ref() *C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV { +func (x *SurfaceCapabilitiesPresentBarrierNV) Ref() *C.VkSurfaceCapabilitiesPresentBarrierNV { if x == nil { return nil } - return x.refcec68147 + 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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) Free() { - if x != nil && x.allocscec68147 != nil { - x.allocscec68147.(*cgoAllocMap).Free() - x.refcec68147 = nil +func (x *SurfaceCapabilitiesPresentBarrierNV) Free() { + if x != nil && x.allocsb05347b2 != nil { + x.allocsb05347b2.(*cgoAllocMap).Free() + x.refb05347b2 = nil } } -// NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef 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 NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceInheritedViewportScissorFeaturesNV { +func NewSurfaceCapabilitiesPresentBarrierNVRef(ref unsafe.Pointer) *SurfaceCapabilitiesPresentBarrierNV { if ref == nil { return nil } - obj := new(PhysicalDeviceInheritedViewportScissorFeaturesNV) - obj.refcec68147 = (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { +func (x *SurfaceCapabilitiesPresentBarrierNV) PassRef() (*C.VkSurfaceCapabilitiesPresentBarrierNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcec68147 != nil { - return x.refcec68147, nil + } else if x.refb05347b2 != nil { + return x.refb05347b2, nil } - memcec68147 := allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(1) - refcec68147 := (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(memcec68147) - allocscec68147 := new(cgoAllocMap) - allocscec68147.Add(memcec68147) + memb05347b2 := allocSurfaceCapabilitiesPresentBarrierNVMemory(1) + refb05347b2 := (*C.VkSurfaceCapabilitiesPresentBarrierNV)(memb05347b2) + allocsb05347b2 := new(cgoAllocMap) + allocsb05347b2.Add(memb05347b2) var csType_allocs *cgoAllocMap - refcec68147.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscec68147.Borrow(csType_allocs) + refb05347b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb05347b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcec68147.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscec68147.Borrow(cpNext_allocs) + refb05347b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb05347b2.Borrow(cpNext_allocs) - var cinheritedViewportScissor2D_allocs *cgoAllocMap - refcec68147.inheritedViewportScissor2D, cinheritedViewportScissor2D_allocs = (C.VkBool32)(x.InheritedViewportScissor2D), cgoAllocsUnknown - allocscec68147.Borrow(cinheritedViewportScissor2D_allocs) + var cpresentBarrierSupported_allocs *cgoAllocMap + refb05347b2.presentBarrierSupported, cpresentBarrierSupported_allocs = (C.VkBool32)(x.PresentBarrierSupported), cgoAllocsUnknown + allocsb05347b2.Borrow(cpresentBarrierSupported_allocs) - x.refcec68147 = refcec68147 - x.allocscec68147 = allocscec68147 - return refcec68147, allocscec68147 + 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 PhysicalDeviceInheritedViewportScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { - if x.refcec68147 != nil { - return *x.refcec68147, nil +func (x SurfaceCapabilitiesPresentBarrierNV) PassValue() (C.VkSurfaceCapabilitiesPresentBarrierNV, *cgoAllocMap) { + if x.refb05347b2 != nil { + return *x.refb05347b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57219,98 +63643,90 @@ func (x PhysicalDeviceInheritedViewportScissorFeaturesNV) 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 *PhysicalDeviceInheritedViewportScissorFeaturesNV) Deref() { - if x.refcec68147 == nil { +func (x *SurfaceCapabilitiesPresentBarrierNV) Deref() { + if x.refb05347b2 == nil { return } - x.SType = (StructureType)(x.refcec68147.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcec68147.pNext)) - x.InheritedViewportScissor2D = (Bool32)(x.refcec68147.inheritedViewportScissor2D) + x.SType = (StructureType)(x.refb05347b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb05347b2.pNext)) + x.PresentBarrierSupported = (Bool32)(x.refb05347b2.presentBarrierSupported) } -// allocCommandBufferInheritanceViewportScissorInfoNVMemory allocates memory for type C.VkCommandBufferInheritanceViewportScissorInfoNV in C. +// allocSwapchainPresentBarrierCreateInfoNVMemory allocates memory for type C.VkSwapchainPresentBarrierCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferInheritanceViewportScissorInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceViewportScissorInfoNVValue)) +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 sizeOfCommandBufferInheritanceViewportScissorInfoNVValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceViewportScissorInfoNV{}) +const sizeOfSwapchainPresentBarrierCreateInfoNVValue = unsafe.Sizeof([1]C.VkSwapchainPresentBarrierCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceViewportScissorInfoNV) Ref() *C.VkCommandBufferInheritanceViewportScissorInfoNV { +func (x *SwapchainPresentBarrierCreateInfoNV) Ref() *C.VkSwapchainPresentBarrierCreateInfoNV { if x == nil { return nil } - return x.refc206d63 + 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 *CommandBufferInheritanceViewportScissorInfoNV) Free() { - if x != nil && x.allocsc206d63 != nil { - x.allocsc206d63.(*cgoAllocMap).Free() - x.refc206d63 = nil +func (x *SwapchainPresentBarrierCreateInfoNV) Free() { + if x != nil && x.allocs72c75914 != nil { + x.allocs72c75914.(*cgoAllocMap).Free() + x.ref72c75914 = nil } } -// NewCommandBufferInheritanceViewportScissorInfoNVRef 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 NewCommandBufferInheritanceViewportScissorInfoNVRef(ref unsafe.Pointer) *CommandBufferInheritanceViewportScissorInfoNV { +func NewSwapchainPresentBarrierCreateInfoNVRef(ref unsafe.Pointer) *SwapchainPresentBarrierCreateInfoNV { if ref == nil { return nil } - obj := new(CommandBufferInheritanceViewportScissorInfoNV) - obj.refc206d63 = (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(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 *CommandBufferInheritanceViewportScissorInfoNV) PassRef() (*C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { +func (x *SwapchainPresentBarrierCreateInfoNV) PassRef() (*C.VkSwapchainPresentBarrierCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc206d63 != nil { - return x.refc206d63, nil + } else if x.ref72c75914 != nil { + return x.ref72c75914, nil } - memc206d63 := allocCommandBufferInheritanceViewportScissorInfoNVMemory(1) - refc206d63 := (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(memc206d63) - allocsc206d63 := new(cgoAllocMap) - allocsc206d63.Add(memc206d63) + mem72c75914 := allocSwapchainPresentBarrierCreateInfoNVMemory(1) + ref72c75914 := (*C.VkSwapchainPresentBarrierCreateInfoNV)(mem72c75914) + allocs72c75914 := new(cgoAllocMap) + allocs72c75914.Add(mem72c75914) var csType_allocs *cgoAllocMap - refc206d63.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc206d63.Borrow(csType_allocs) + ref72c75914.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs72c75914.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc206d63.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc206d63.Borrow(cpNext_allocs) - - var cviewportScissor2D_allocs *cgoAllocMap - refc206d63.viewportScissor2D, cviewportScissor2D_allocs = (C.VkBool32)(x.ViewportScissor2D), cgoAllocsUnknown - allocsc206d63.Borrow(cviewportScissor2D_allocs) - - var cviewportDepthCount_allocs *cgoAllocMap - refc206d63.viewportDepthCount, cviewportDepthCount_allocs = (C.uint32_t)(x.ViewportDepthCount), cgoAllocsUnknown - allocsc206d63.Borrow(cviewportDepthCount_allocs) + ref72c75914.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs72c75914.Borrow(cpNext_allocs) - var cpViewportDepths_allocs *cgoAllocMap - refc206d63.pViewportDepths, cpViewportDepths_allocs = unpackSViewport(x.PViewportDepths) - allocsc206d63.Borrow(cpViewportDepths_allocs) + var cpresentBarrierEnable_allocs *cgoAllocMap + ref72c75914.presentBarrierEnable, cpresentBarrierEnable_allocs = (C.VkBool32)(x.PresentBarrierEnable), cgoAllocsUnknown + allocs72c75914.Borrow(cpresentBarrierEnable_allocs) - x.refc206d63 = refc206d63 - x.allocsc206d63 = allocsc206d63 - return refc206d63, allocsc206d63 + 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 CommandBufferInheritanceViewportScissorInfoNV) PassValue() (C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { - if x.refc206d63 != nil { - return *x.refc206d63, nil +func (x SwapchainPresentBarrierCreateInfoNV) PassValue() (C.VkSwapchainPresentBarrierCreateInfoNV, *cgoAllocMap) { + if x.ref72c75914 != nil { + return *x.ref72c75914, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57318,92 +63734,90 @@ func (x CommandBufferInheritanceViewportScissorInfoNV) PassValue() (C.VkCommandB // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferInheritanceViewportScissorInfoNV) Deref() { - if x.refc206d63 == nil { +func (x *SwapchainPresentBarrierCreateInfoNV) Deref() { + if x.ref72c75914 == nil { return } - 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) + x.SType = (StructureType)(x.ref72c75914.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref72c75914.pNext)) + x.PresentBarrierEnable = (Bool32)(x.ref72c75914.presentBarrierEnable) } -// allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory allocates memory for type C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT in C. +// allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue)) +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 sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT{}) +const sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Ref() *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV { if x == nil { return nil } - return x.ref2c4411b2 + 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 *PhysicalDeviceTexelBufferAlignmentFeatures) Free() { - if x != nil && x.allocs2c4411b2 != nil { - x.allocs2c4411b2.(*cgoAllocMap).Free() - x.ref2c4411b2 = nil +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Free() { + if x != nil && x.allocsd354d3ba != nil { + x.allocsd354d3ba.(*cgoAllocMap).Free() + x.refd354d3ba = nil } } -// NewPhysicalDeviceTexelBufferAlignmentFeaturesRef 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 NewPhysicalDeviceTexelBufferAlignmentFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentFeatures { +func NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDiagnosticsConfigFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceTexelBufferAlignmentFeatures) - obj.ref2c4411b2 = (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(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 *PhysicalDeviceTexelBufferAlignmentFeatures) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) PassRef() (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2c4411b2 != nil { - return x.ref2c4411b2, nil + } else if x.refd354d3ba != nil { + return x.refd354d3ba, nil } - mem2c4411b2 := allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(1) - ref2c4411b2 := (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(mem2c4411b2) - allocs2c4411b2 := new(cgoAllocMap) - allocs2c4411b2.Add(mem2c4411b2) + memd354d3ba := allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(1) + refd354d3ba := (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(memd354d3ba) + allocsd354d3ba := new(cgoAllocMap) + allocsd354d3ba.Add(memd354d3ba) var csType_allocs *cgoAllocMap - ref2c4411b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2c4411b2.Borrow(csType_allocs) + refd354d3ba.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd354d3ba.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2c4411b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2c4411b2.Borrow(cpNext_allocs) + refd354d3ba.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd354d3ba.Borrow(cpNext_allocs) - var ctexelBufferAlignment_allocs *cgoAllocMap - ref2c4411b2.texelBufferAlignment, ctexelBufferAlignment_allocs = (C.VkBool32)(x.TexelBufferAlignment), cgoAllocsUnknown - allocs2c4411b2.Borrow(ctexelBufferAlignment_allocs) + var cdiagnosticsConfig_allocs *cgoAllocMap + refd354d3ba.diagnosticsConfig, cdiagnosticsConfig_allocs = (C.VkBool32)(x.DiagnosticsConfig), cgoAllocsUnknown + allocsd354d3ba.Borrow(cdiagnosticsConfig_allocs) - x.ref2c4411b2 = ref2c4411b2 - x.allocs2c4411b2 = allocs2c4411b2 - return ref2c4411b2, allocs2c4411b2 + 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 PhysicalDeviceTexelBufferAlignmentFeatures) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { - if x.ref2c4411b2 != nil { - return *x.ref2c4411b2, nil +func (x PhysicalDeviceDiagnosticsConfigFeaturesNV) PassValue() (C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { + if x.refd354d3ba != nil { + return *x.refd354d3ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57411,90 +63825,90 @@ func (x PhysicalDeviceTexelBufferAlignmentFeatures) 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 *PhysicalDeviceTexelBufferAlignmentFeatures) Deref() { - if x.ref2c4411b2 == nil { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Deref() { + if x.refd354d3ba == nil { return } - x.SType = (StructureType)(x.ref2c4411b2.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2c4411b2.pNext)) - x.TexelBufferAlignment = (Bool32)(x.ref2c4411b2.texelBufferAlignment) + x.SType = (StructureType)(x.refd354d3ba.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd354d3ba.pNext)) + x.DiagnosticsConfig = (Bool32)(x.refd354d3ba.diagnosticsConfig) } -// allocRenderPassTransformBeginInfoQCOMMemory allocates memory for type C.VkRenderPassTransformBeginInfoQCOM in C. +// allocDeviceDiagnosticsConfigCreateInfoNVMemory allocates memory for type C.VkDeviceDiagnosticsConfigCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassTransformBeginInfoQCOMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassTransformBeginInfoQCOMValue)) +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 sizeOfRenderPassTransformBeginInfoQCOMValue = unsafe.Sizeof([1]C.VkRenderPassTransformBeginInfoQCOM{}) +const sizeOfDeviceDiagnosticsConfigCreateInfoNVValue = unsafe.Sizeof([1]C.VkDeviceDiagnosticsConfigCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassTransformBeginInfoQCOM) Ref() *C.VkRenderPassTransformBeginInfoQCOM { +func (x *DeviceDiagnosticsConfigCreateInfoNV) Ref() *C.VkDeviceDiagnosticsConfigCreateInfoNV { if x == nil { return nil } - return x.ref938e681d + 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 *RenderPassTransformBeginInfoQCOM) Free() { - if x != nil && x.allocs938e681d != nil { - x.allocs938e681d.(*cgoAllocMap).Free() - x.ref938e681d = nil +func (x *DeviceDiagnosticsConfigCreateInfoNV) Free() { + if x != nil && x.allocs856c966a != nil { + x.allocs856c966a.(*cgoAllocMap).Free() + x.ref856c966a = nil } } -// NewRenderPassTransformBeginInfoQCOMRef 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 NewRenderPassTransformBeginInfoQCOMRef(ref unsafe.Pointer) *RenderPassTransformBeginInfoQCOM { +func NewDeviceDiagnosticsConfigCreateInfoNVRef(ref unsafe.Pointer) *DeviceDiagnosticsConfigCreateInfoNV { if ref == nil { return nil } - obj := new(RenderPassTransformBeginInfoQCOM) - obj.ref938e681d = (*C.VkRenderPassTransformBeginInfoQCOM)(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 *RenderPassTransformBeginInfoQCOM) PassRef() (*C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { +func (x *DeviceDiagnosticsConfigCreateInfoNV) PassRef() (*C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref938e681d != nil { - return x.ref938e681d, nil + } else if x.ref856c966a != nil { + return x.ref856c966a, nil } - mem938e681d := allocRenderPassTransformBeginInfoQCOMMemory(1) - ref938e681d := (*C.VkRenderPassTransformBeginInfoQCOM)(mem938e681d) - allocs938e681d := new(cgoAllocMap) - allocs938e681d.Add(mem938e681d) + mem856c966a := allocDeviceDiagnosticsConfigCreateInfoNVMemory(1) + ref856c966a := (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(mem856c966a) + allocs856c966a := new(cgoAllocMap) + allocs856c966a.Add(mem856c966a) var csType_allocs *cgoAllocMap - ref938e681d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs938e681d.Borrow(csType_allocs) + ref856c966a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs856c966a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref938e681d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs938e681d.Borrow(cpNext_allocs) + ref856c966a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs856c966a.Borrow(cpNext_allocs) - var ctransform_allocs *cgoAllocMap - ref938e681d.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown - allocs938e681d.Borrow(ctransform_allocs) + var cflags_allocs *cgoAllocMap + ref856c966a.flags, cflags_allocs = (C.VkDeviceDiagnosticsConfigFlagsNV)(x.Flags), cgoAllocsUnknown + allocs856c966a.Borrow(cflags_allocs) - x.ref938e681d = ref938e681d - x.allocs938e681d = allocs938e681d - return ref938e681d, allocs938e681d + 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 RenderPassTransformBeginInfoQCOM) PassValue() (C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { - if x.ref938e681d != nil { - return *x.ref938e681d, nil +func (x DeviceDiagnosticsConfigCreateInfoNV) PassValue() (C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { + if x.ref856c966a != nil { + return *x.ref856c966a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57502,94 +63916,218 @@ func (x RenderPassTransformBeginInfoQCOM) PassValue() (C.VkRenderPassTransformBe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassTransformBeginInfoQCOM) Deref() { - if x.ref938e681d == nil { +func (x *DeviceDiagnosticsConfigCreateInfoNV) Deref() { + if x.ref856c966a == nil { return } - x.SType = (StructureType)(x.ref938e681d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref938e681d.pNext)) - x.Transform = (SurfaceTransformFlagBits)(x.ref938e681d.transform) + x.SType = (StructureType)(x.ref856c966a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref856c966a.pNext)) + x.Flags = (DeviceDiagnosticsConfigFlagsNV)(x.ref856c966a.flags) } -// allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory allocates memory for type C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM in C. +// allocPhysicalDeviceDescriptorBufferPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue)) +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 sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM{}) +const sizeOfPhysicalDeviceDescriptorBufferPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Ref() *C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM { +func (x *PhysicalDeviceDescriptorBufferProperties) Ref() *C.VkPhysicalDeviceDescriptorBufferPropertiesEXT { if x == nil { return nil } - return x.refee6ff04 + 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 *CommandBufferInheritanceRenderPassTransformInfoQCOM) Free() { - if x != nil && x.allocsee6ff04 != nil { - x.allocsee6ff04.(*cgoAllocMap).Free() - x.refee6ff04 = nil +func (x *PhysicalDeviceDescriptorBufferProperties) Free() { + if x != nil && x.allocs62cc13fb != nil { + x.allocs62cc13fb.(*cgoAllocMap).Free() + x.ref62cc13fb = nil } } -// NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef 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 NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderPassTransformInfoQCOM { +func NewPhysicalDeviceDescriptorBufferPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferProperties { if ref == nil { return nil } - obj := new(CommandBufferInheritanceRenderPassTransformInfoQCOM) - obj.refee6ff04 = (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(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 *CommandBufferInheritanceRenderPassTransformInfoQCOM) PassRef() (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { +func (x *PhysicalDeviceDescriptorBufferProperties) PassRef() (*C.VkPhysicalDeviceDescriptorBufferPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refee6ff04 != nil { - return x.refee6ff04, nil + } else if x.ref62cc13fb != nil { + return x.ref62cc13fb, nil } - memee6ff04 := allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(1) - refee6ff04 := (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(memee6ff04) - allocsee6ff04 := new(cgoAllocMap) - allocsee6ff04.Add(memee6ff04) + mem62cc13fb := allocPhysicalDeviceDescriptorBufferPropertiesMemory(1) + ref62cc13fb := (*C.VkPhysicalDeviceDescriptorBufferPropertiesEXT)(mem62cc13fb) + allocs62cc13fb := new(cgoAllocMap) + allocs62cc13fb.Add(mem62cc13fb) var csType_allocs *cgoAllocMap - refee6ff04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsee6ff04.Borrow(csType_allocs) + ref62cc13fb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62cc13fb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refee6ff04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsee6ff04.Borrow(cpNext_allocs) + ref62cc13fb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62cc13fb.Borrow(cpNext_allocs) - var ctransform_allocs *cgoAllocMap - refee6ff04.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown - allocsee6ff04.Borrow(ctransform_allocs) + var ccombinedImageSamplerDescriptorSingleArray_allocs *cgoAllocMap + ref62cc13fb.combinedImageSamplerDescriptorSingleArray, ccombinedImageSamplerDescriptorSingleArray_allocs = (C.VkBool32)(x.CombinedImageSamplerDescriptorSingleArray), cgoAllocsUnknown + allocs62cc13fb.Borrow(ccombinedImageSamplerDescriptorSingleArray_allocs) - var crenderArea_allocs *cgoAllocMap - refee6ff04.renderArea, crenderArea_allocs = x.RenderArea.PassValue() - allocsee6ff04.Borrow(crenderArea_allocs) + var cbufferlessPushDescriptors_allocs *cgoAllocMap + ref62cc13fb.bufferlessPushDescriptors, cbufferlessPushDescriptors_allocs = (C.VkBool32)(x.BufferlessPushDescriptors), cgoAllocsUnknown + allocs62cc13fb.Borrow(cbufferlessPushDescriptors_allocs) - x.refee6ff04 = refee6ff04 - x.allocsee6ff04 = allocsee6ff04 - return refee6ff04, allocsee6ff04 + 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.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 CommandBufferInheritanceRenderPassTransformInfoQCOM) PassValue() (C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { - if x.refee6ff04 != nil { - return *x.refee6ff04, nil +func (x PhysicalDeviceDescriptorBufferProperties) PassValue() (C.VkPhysicalDeviceDescriptorBufferPropertiesEXT, *cgoAllocMap) { + if x.ref62cc13fb != nil { + return *x.ref62cc13fb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57597,91 +64135,122 @@ func (x CommandBufferInheritanceRenderPassTransformInfoQCOM) PassValue() (C.VkCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Deref() { - if x.refee6ff04 == nil { +func (x *PhysicalDeviceDescriptorBufferProperties) Deref() { + if x.ref62cc13fb == 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)) + 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) } -// allocPhysicalDeviceDeviceMemoryReportFeaturesMemory allocates memory for type C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT in C. +// allocPhysicalDeviceDescriptorBufferDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue)) +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 sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT{}) +const sizeOfPhysicalDeviceDescriptorBufferDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDeviceMemoryReportFeatures) Ref() *C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Ref() *C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { if x == nil { return nil } - return x.ref477470f6 + 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 *PhysicalDeviceDeviceMemoryReportFeatures) Free() { - if x != nil && x.allocs477470f6 != nil { - x.allocs477470f6.(*cgoAllocMap).Free() - x.ref477470f6 = nil +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Free() { + if x != nil && x.allocsb23ce6c9 != nil { + x.allocsb23ce6c9.(*cgoAllocMap).Free() + x.refb23ce6c9 = nil } } -// NewPhysicalDeviceDeviceMemoryReportFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceDeviceMemoryReportFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDeviceMemoryReportFeatures { +func NewPhysicalDeviceDescriptorBufferDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferDensityMapProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceDeviceMemoryReportFeatures) - obj.ref477470f6 = (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDescriptorBufferDensityMapProperties) + obj.refb23ce6c9 = (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDeviceMemoryReportFeatures) PassRef() (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) PassRef() (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref477470f6 != nil { - return x.ref477470f6, nil + } else if x.refb23ce6c9 != nil { + return x.refb23ce6c9, nil } - mem477470f6 := allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(1) - ref477470f6 := (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(mem477470f6) - allocs477470f6 := new(cgoAllocMap) - allocs477470f6.Add(mem477470f6) + memb23ce6c9 := allocPhysicalDeviceDescriptorBufferDensityMapPropertiesMemory(1) + refb23ce6c9 := (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)(memb23ce6c9) + allocsb23ce6c9 := new(cgoAllocMap) + allocsb23ce6c9.Add(memb23ce6c9) var csType_allocs *cgoAllocMap - ref477470f6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs477470f6.Borrow(csType_allocs) + refb23ce6c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb23ce6c9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref477470f6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs477470f6.Borrow(cpNext_allocs) + refb23ce6c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb23ce6c9.Borrow(cpNext_allocs) - var cdeviceMemoryReport_allocs *cgoAllocMap - ref477470f6.deviceMemoryReport, cdeviceMemoryReport_allocs = (C.VkBool32)(x.DeviceMemoryReport), cgoAllocsUnknown - allocs477470f6.Borrow(cdeviceMemoryReport_allocs) + var ccombinedImageSamplerDensityMapDescriptorSize_allocs *cgoAllocMap + refb23ce6c9.combinedImageSamplerDensityMapDescriptorSize, ccombinedImageSamplerDensityMapDescriptorSize_allocs = (C.size_t)(x.CombinedImageSamplerDensityMapDescriptorSize), cgoAllocsUnknown + allocsb23ce6c9.Borrow(ccombinedImageSamplerDensityMapDescriptorSize_allocs) - x.ref477470f6 = ref477470f6 - x.allocs477470f6 = allocs477470f6 - return ref477470f6, allocs477470f6 + 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 PhysicalDeviceDeviceMemoryReportFeatures) PassValue() (C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { - if x.ref477470f6 != nil { - return *x.ref477470f6, nil +func (x PhysicalDeviceDescriptorBufferDensityMapProperties) PassValue() (C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, *cgoAllocMap) { + if x.refb23ce6c9 != nil { + return *x.refb23ce6c9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57689,114 +64258,102 @@ func (x PhysicalDeviceDeviceMemoryReportFeatures) 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 *PhysicalDeviceDeviceMemoryReportFeatures) Deref() { - if x.ref477470f6 == nil { +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Deref() { + if x.refb23ce6c9 == nil { return } - x.SType = (StructureType)(x.ref477470f6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref477470f6.pNext)) - x.DeviceMemoryReport = (Bool32)(x.ref477470f6.deviceMemoryReport) + x.SType = (StructureType)(x.refb23ce6c9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb23ce6c9.pNext)) + x.CombinedImageSamplerDensityMapDescriptorSize = (uint64)(x.refb23ce6c9.combinedImageSamplerDensityMapDescriptorSize) } -// allocDeviceMemoryReportCallbackDataMemory allocates memory for type C.VkDeviceMemoryReportCallbackDataEXT in C. +// allocPhysicalDeviceDescriptorBufferFeaturesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceMemoryReportCallbackDataMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryReportCallbackDataValue)) +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 sizeOfDeviceMemoryReportCallbackDataValue = unsafe.Sizeof([1]C.VkDeviceMemoryReportCallbackDataEXT{}) +const sizeOfPhysicalDeviceDescriptorBufferFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceMemoryReportCallbackData) Ref() *C.VkDeviceMemoryReportCallbackDataEXT { +func (x *PhysicalDeviceDescriptorBufferFeatures) Ref() *C.VkPhysicalDeviceDescriptorBufferFeaturesEXT { if x == nil { return nil } - return x.ref3150dbde + 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 *DeviceMemoryReportCallbackData) Free() { - if x != nil && x.allocs3150dbde != nil { - x.allocs3150dbde.(*cgoAllocMap).Free() - x.ref3150dbde = nil +func (x *PhysicalDeviceDescriptorBufferFeatures) Free() { + if x != nil && x.allocs840279e1 != nil { + x.allocs840279e1.(*cgoAllocMap).Free() + x.ref840279e1 = nil } } -// NewDeviceMemoryReportCallbackDataRef 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 NewDeviceMemoryReportCallbackDataRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackData { +func NewPhysicalDeviceDescriptorBufferFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferFeatures { if ref == nil { return nil } - obj := new(DeviceMemoryReportCallbackData) - obj.ref3150dbde = (*C.VkDeviceMemoryReportCallbackDataEXT)(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 *DeviceMemoryReportCallbackData) PassRef() (*C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref3150dbde != nil { - return x.ref3150dbde, nil - } - mem3150dbde := allocDeviceMemoryReportCallbackDataMemory(1) - ref3150dbde := (*C.VkDeviceMemoryReportCallbackDataEXT)(mem3150dbde) - allocs3150dbde := new(cgoAllocMap) - allocs3150dbde.Add(mem3150dbde) - - var csType_allocs *cgoAllocMap - ref3150dbde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3150dbde.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref3150dbde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3150dbde.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref3150dbde.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs3150dbde.Borrow(cflags_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 *PhysicalDeviceDescriptorBufferFeatures) PassRef() (*C.VkPhysicalDeviceDescriptorBufferFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref840279e1 != nil { + return x.ref840279e1, nil + } + mem840279e1 := allocPhysicalDeviceDescriptorBufferFeaturesMemory(1) + ref840279e1 := (*C.VkPhysicalDeviceDescriptorBufferFeaturesEXT)(mem840279e1) + allocs840279e1 := new(cgoAllocMap) + allocs840279e1.Add(mem840279e1) - var c_type_allocs *cgoAllocMap - ref3150dbde._type, c_type_allocs = (C.VkDeviceMemoryReportEventTypeEXT)(x.Type), cgoAllocsUnknown - allocs3150dbde.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref840279e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs840279e1.Borrow(csType_allocs) - var cmemoryObjectId_allocs *cgoAllocMap - ref3150dbde.memoryObjectId, cmemoryObjectId_allocs = (C.uint64_t)(x.MemoryObjectId), cgoAllocsUnknown - allocs3150dbde.Borrow(cmemoryObjectId_allocs) + var cpNext_allocs *cgoAllocMap + ref840279e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs840279e1.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - ref3150dbde.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs3150dbde.Borrow(csize_allocs) + var cdescriptorBuffer_allocs *cgoAllocMap + ref840279e1.descriptorBuffer, cdescriptorBuffer_allocs = (C.VkBool32)(x.DescriptorBuffer), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBuffer_allocs) - var cobjectType_allocs *cgoAllocMap - ref3150dbde.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown - allocs3150dbde.Borrow(cobjectType_allocs) + var cdescriptorBufferCaptureReplay_allocs *cgoAllocMap + ref840279e1.descriptorBufferCaptureReplay, cdescriptorBufferCaptureReplay_allocs = (C.VkBool32)(x.DescriptorBufferCaptureReplay), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferCaptureReplay_allocs) - var cobjectHandle_allocs *cgoAllocMap - ref3150dbde.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown - allocs3150dbde.Borrow(cobjectHandle_allocs) + var cdescriptorBufferImageLayoutIgnored_allocs *cgoAllocMap + ref840279e1.descriptorBufferImageLayoutIgnored, cdescriptorBufferImageLayoutIgnored_allocs = (C.VkBool32)(x.DescriptorBufferImageLayoutIgnored), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferImageLayoutIgnored_allocs) - var cheapIndex_allocs *cgoAllocMap - ref3150dbde.heapIndex, cheapIndex_allocs = (C.uint32_t)(x.HeapIndex), cgoAllocsUnknown - allocs3150dbde.Borrow(cheapIndex_allocs) + var cdescriptorBufferPushDescriptors_allocs *cgoAllocMap + ref840279e1.descriptorBufferPushDescriptors, cdescriptorBufferPushDescriptors_allocs = (C.VkBool32)(x.DescriptorBufferPushDescriptors), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferPushDescriptors_allocs) - x.ref3150dbde = ref3150dbde - x.allocs3150dbde = allocs3150dbde - return ref3150dbde, allocs3150dbde + 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 DeviceMemoryReportCallbackData) PassValue() (C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { - if x.ref3150dbde != nil { - return *x.ref3150dbde, nil +func (x PhysicalDeviceDescriptorBufferFeatures) PassValue() (C.VkPhysicalDeviceDescriptorBufferFeaturesEXT, *cgoAllocMap) { + if x.ref840279e1 != nil { + return *x.ref840279e1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57804,151 +64361,198 @@ func (x DeviceMemoryReportCallbackData) PassValue() (C.VkDeviceMemoryReportCallb // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceMemoryReportCallbackData) Deref() { - if x.ref3150dbde == nil { +func (x *PhysicalDeviceDescriptorBufferFeatures) Deref() { + if x.ref840279e1 == nil { return } - 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) + 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) } -// 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)) +// 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 } -func (x DeviceMemoryReportCallbackFunc) PassRef() (ref *C.PFN_vkDeviceMemoryReportCallbackEXT, allocs *cgoAllocMap) { +const sizeOfDescriptorAddressInfoValue = unsafe.Sizeof([1]C.VkDescriptorAddressInfoEXT{}) + +// 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, nil + return nil } - if deviceMemoryReportCallbackFuncE34D104CFunc == nil { - deviceMemoryReportCallbackFuncE34D104CFunc = x + return x.ref3f3c750d +} + +// Free invokes alloc map'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 } - return (*C.PFN_vkDeviceMemoryReportCallbackEXT)(C.PFN_vkDeviceMemoryReportCallbackEXT_e34d104c), nil } -func (x DeviceMemoryReportCallbackFunc) PassValue() (ref C.PFN_vkDeviceMemoryReportCallbackEXT, allocs *cgoAllocMap) { +// 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 } - if deviceMemoryReportCallbackFuncE34D104CFunc == nil { - deviceMemoryReportCallbackFuncE34D104CFunc = x - } - return (C.PFN_vkDeviceMemoryReportCallbackEXT)(C.PFN_vkDeviceMemoryReportCallbackEXT_e34d104c), 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 + } -func NewDeviceMemoryReportCallbackFuncRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackFunc { - return (*DeviceMemoryReportCallbackFunc)(ref) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorAddressInfo) PassValue() (C.VkDescriptorAddressInfoEXT, *cgoAllocMap) { + if x.ref3f3c750d != nil { + return *x.ref3f3c750d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs } -//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) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorAddressInfo) Deref() { + if x.ref3f3c750d == nil { return } - panic("callback func has not been set (race?)") + 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) } -var deviceMemoryReportCallbackFuncE34D104CFunc DeviceMemoryReportCallbackFunc - -// allocDeviceDeviceMemoryReportCreateInfoMemory allocates memory for type C.VkDeviceDeviceMemoryReportCreateInfoEXT in C. +// allocDescriptorBufferBindingInfoMemory allocates memory for type C.VkDescriptorBufferBindingInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceDeviceMemoryReportCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDeviceMemoryReportCreateInfoValue)) +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 sizeOfDeviceDeviceMemoryReportCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceDeviceMemoryReportCreateInfoEXT{}) +const sizeOfDescriptorBufferBindingInfoValue = unsafe.Sizeof([1]C.VkDescriptorBufferBindingInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceDeviceMemoryReportCreateInfo) Ref() *C.VkDeviceDeviceMemoryReportCreateInfoEXT { +func (x *DescriptorBufferBindingInfo) Ref() *C.VkDescriptorBufferBindingInfoEXT { if x == nil { return nil } - return x.refe99f2c76 + 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 *DeviceDeviceMemoryReportCreateInfo) Free() { - if x != nil && x.allocse99f2c76 != nil { - x.allocse99f2c76.(*cgoAllocMap).Free() - x.refe99f2c76 = nil +func (x *DescriptorBufferBindingInfo) Free() { + if x != nil && x.allocsbfb2412f != nil { + x.allocsbfb2412f.(*cgoAllocMap).Free() + x.refbfb2412f = nil } } -// NewDeviceDeviceMemoryReportCreateInfoRef 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 NewDeviceDeviceMemoryReportCreateInfoRef(ref unsafe.Pointer) *DeviceDeviceMemoryReportCreateInfo { +func NewDescriptorBufferBindingInfoRef(ref unsafe.Pointer) *DescriptorBufferBindingInfo { if ref == nil { return nil } - obj := new(DeviceDeviceMemoryReportCreateInfo) - obj.refe99f2c76 = (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(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 *DeviceDeviceMemoryReportCreateInfo) PassRef() (*C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { +func (x *DescriptorBufferBindingInfo) PassRef() (*C.VkDescriptorBufferBindingInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe99f2c76 != nil { - return x.refe99f2c76, nil + } else if x.refbfb2412f != nil { + return x.refbfb2412f, nil } - meme99f2c76 := allocDeviceDeviceMemoryReportCreateInfoMemory(1) - refe99f2c76 := (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(meme99f2c76) - allocse99f2c76 := new(cgoAllocMap) - allocse99f2c76.Add(meme99f2c76) + membfb2412f := allocDescriptorBufferBindingInfoMemory(1) + refbfb2412f := (*C.VkDescriptorBufferBindingInfoEXT)(membfb2412f) + allocsbfb2412f := new(cgoAllocMap) + allocsbfb2412f.Add(membfb2412f) var csType_allocs *cgoAllocMap - refe99f2c76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse99f2c76.Borrow(csType_allocs) + refbfb2412f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbfb2412f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe99f2c76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse99f2c76.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refe99f2c76.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown - allocse99f2c76.Borrow(cflags_allocs) + refbfb2412f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbfb2412f.Borrow(cpNext_allocs) - var cpfnUserCallback_allocs *cgoAllocMap - refe99f2c76.pfnUserCallback, cpfnUserCallback_allocs = x.PfnUserCallback.PassValue() - allocse99f2c76.Borrow(cpfnUserCallback_allocs) + var caddress_allocs *cgoAllocMap + refbfb2412f.address, caddress_allocs = (C.VkDeviceAddress)(x.Address), cgoAllocsUnknown + allocsbfb2412f.Borrow(caddress_allocs) - var cpUserData_allocs *cgoAllocMap - refe99f2c76.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown - allocse99f2c76.Borrow(cpUserData_allocs) + var cusage_allocs *cgoAllocMap + refbfb2412f.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown + allocsbfb2412f.Borrow(cusage_allocs) - x.refe99f2c76 = refe99f2c76 - x.allocse99f2c76 = allocse99f2c76 - return refe99f2c76, allocse99f2c76 + x.refbfb2412f = refbfb2412f + x.allocsbfb2412f = allocsbfb2412f + return refbfb2412f, allocsbfb2412f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceDeviceMemoryReportCreateInfo) PassValue() (C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { - if x.refe99f2c76 != nil { - return *x.refe99f2c76, nil +func (x DescriptorBufferBindingInfo) PassValue() (C.VkDescriptorBufferBindingInfoEXT, *cgoAllocMap) { + if x.refbfb2412f != nil { + return *x.refbfb2412f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -57956,100 +64560,91 @@ func (x DeviceDeviceMemoryReportCreateInfo) PassValue() (C.VkDeviceDeviceMemoryR // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceDeviceMemoryReportCreateInfo) Deref() { - if x.refe99f2c76 == nil { +func (x *DescriptorBufferBindingInfo) Deref() { + if x.refbfb2412f == nil { return } - 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)) + 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) } -// allocPhysicalDeviceRobustness2FeaturesMemory allocates memory for type C.VkPhysicalDeviceRobustness2FeaturesEXT in C. +// allocDescriptorBufferBindingPushDescriptorBufferHandleMemory allocates memory for type C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRobustness2FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2FeaturesValue)) +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 sizeOfPhysicalDeviceRobustness2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2FeaturesEXT{}) +const sizeOfDescriptorBufferBindingPushDescriptorBufferHandleValue = unsafe.Sizeof([1]C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRobustness2Features) Ref() *C.VkPhysicalDeviceRobustness2FeaturesEXT { +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Ref() *C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { if x == nil { return nil } - return x.refa1d6be35 + 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 *PhysicalDeviceRobustness2Features) Free() { - if x != nil && x.allocsa1d6be35 != nil { - x.allocsa1d6be35.(*cgoAllocMap).Free() - x.refa1d6be35 = nil +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Free() { + if x != nil && x.allocs14f143c5 != nil { + x.allocs14f143c5.(*cgoAllocMap).Free() + x.ref14f143c5 = nil } } -// NewPhysicalDeviceRobustness2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// 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 NewPhysicalDeviceRobustness2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Features { +func NewDescriptorBufferBindingPushDescriptorBufferHandleRef(ref unsafe.Pointer) *DescriptorBufferBindingPushDescriptorBufferHandle { if ref == nil { return nil } - obj := new(PhysicalDeviceRobustness2Features) - obj.refa1d6be35 = (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(unsafe.Pointer(ref)) + 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 *PhysicalDeviceRobustness2Features) PassRef() (*C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) PassRef() (*C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa1d6be35 != nil { - return x.refa1d6be35, nil + } else if x.ref14f143c5 != nil { + return x.ref14f143c5, nil } - mema1d6be35 := allocPhysicalDeviceRobustness2FeaturesMemory(1) - refa1d6be35 := (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(mema1d6be35) - allocsa1d6be35 := new(cgoAllocMap) - allocsa1d6be35.Add(mema1d6be35) + mem14f143c5 := allocDescriptorBufferBindingPushDescriptorBufferHandleMemory(1) + ref14f143c5 := (*C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT)(mem14f143c5) + allocs14f143c5 := new(cgoAllocMap) + allocs14f143c5.Add(mem14f143c5) var csType_allocs *cgoAllocMap - refa1d6be35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa1d6be35.Borrow(csType_allocs) + ref14f143c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs14f143c5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa1d6be35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa1d6be35.Borrow(cpNext_allocs) - - var crobustBufferAccess2_allocs *cgoAllocMap - refa1d6be35.robustBufferAccess2, crobustBufferAccess2_allocs = (C.VkBool32)(x.RobustBufferAccess2), cgoAllocsUnknown - allocsa1d6be35.Borrow(crobustBufferAccess2_allocs) - - var crobustImageAccess2_allocs *cgoAllocMap - refa1d6be35.robustImageAccess2, crobustImageAccess2_allocs = (C.VkBool32)(x.RobustImageAccess2), cgoAllocsUnknown - allocsa1d6be35.Borrow(crobustImageAccess2_allocs) + ref14f143c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs14f143c5.Borrow(cpNext_allocs) - var cnullDescriptor_allocs *cgoAllocMap - refa1d6be35.nullDescriptor, cnullDescriptor_allocs = (C.VkBool32)(x.NullDescriptor), cgoAllocsUnknown - allocsa1d6be35.Borrow(cnullDescriptor_allocs) + var cbuffer_allocs *cgoAllocMap + ref14f143c5.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs14f143c5.Borrow(cbuffer_allocs) - x.refa1d6be35 = refa1d6be35 - x.allocsa1d6be35 = allocsa1d6be35 - return refa1d6be35, allocsa1d6be35 + 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 PhysicalDeviceRobustness2Features) PassValue() (C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { - if x.refa1d6be35 != nil { - return *x.refa1d6be35, nil +func (x DescriptorBufferBindingPushDescriptorBufferHandle) PassValue() (C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, *cgoAllocMap) { + if x.ref14f143c5 != nil { + return *x.ref14f143c5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58057,96 +64652,94 @@ func (x PhysicalDeviceRobustness2Features) PassValue() (C.VkPhysicalDeviceRobust // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRobustness2Features) Deref() { - if x.refa1d6be35 == nil { +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Deref() { + if x.ref14f143c5 == nil { return } - 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) + x.SType = (StructureType)(x.ref14f143c5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref14f143c5.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref14f143c5.buffer)) } -// allocPhysicalDeviceRobustness2PropertiesMemory allocates memory for type C.VkPhysicalDeviceRobustness2PropertiesEXT in C. +// allocDescriptorGetInfoMemory allocates memory for type C.VkDescriptorGetInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRobustness2PropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2PropertiesValue)) +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 sizeOfPhysicalDeviceRobustness2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2PropertiesEXT{}) +const sizeOfDescriptorGetInfoValue = unsafe.Sizeof([1]C.VkDescriptorGetInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRobustness2Properties) Ref() *C.VkPhysicalDeviceRobustness2PropertiesEXT { +func (x *DescriptorGetInfo) Ref() *C.VkDescriptorGetInfoEXT { if x == nil { return nil } - return x.ref82986127 + 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 *PhysicalDeviceRobustness2Properties) Free() { - if x != nil && x.allocs82986127 != nil { - x.allocs82986127.(*cgoAllocMap).Free() - x.ref82986127 = nil +func (x *DescriptorGetInfo) Free() { + if x != nil && x.allocs15e17023 != nil { + x.allocs15e17023.(*cgoAllocMap).Free() + x.ref15e17023 = nil } } -// NewPhysicalDeviceRobustness2PropertiesRef 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 NewPhysicalDeviceRobustness2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Properties { +func NewDescriptorGetInfoRef(ref unsafe.Pointer) *DescriptorGetInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceRobustness2Properties) - obj.ref82986127 = (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(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 *PhysicalDeviceRobustness2Properties) PassRef() (*C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { +func (x *DescriptorGetInfo) PassRef() (*C.VkDescriptorGetInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref82986127 != nil { - return x.ref82986127, nil + } else if x.ref15e17023 != nil { + return x.ref15e17023, nil } - mem82986127 := allocPhysicalDeviceRobustness2PropertiesMemory(1) - ref82986127 := (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(mem82986127) - allocs82986127 := new(cgoAllocMap) - allocs82986127.Add(mem82986127) + mem15e17023 := allocDescriptorGetInfoMemory(1) + ref15e17023 := (*C.VkDescriptorGetInfoEXT)(mem15e17023) + allocs15e17023 := new(cgoAllocMap) + allocs15e17023.Add(mem15e17023) var csType_allocs *cgoAllocMap - ref82986127.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs82986127.Borrow(csType_allocs) + ref15e17023.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs15e17023.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref82986127.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs82986127.Borrow(cpNext_allocs) + ref15e17023.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs15e17023.Borrow(cpNext_allocs) - var crobustStorageBufferAccessSizeAlignment_allocs *cgoAllocMap - ref82986127.robustStorageBufferAccessSizeAlignment, crobustStorageBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustStorageBufferAccessSizeAlignment), cgoAllocsUnknown - allocs82986127.Borrow(crobustStorageBufferAccessSizeAlignment_allocs) + var c_type_allocs *cgoAllocMap + ref15e17023._type, c_type_allocs = (C.VkDescriptorType)(x.Type), cgoAllocsUnknown + allocs15e17023.Borrow(c_type_allocs) - var crobustUniformBufferAccessSizeAlignment_allocs *cgoAllocMap - ref82986127.robustUniformBufferAccessSizeAlignment, crobustUniformBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustUniformBufferAccessSizeAlignment), cgoAllocsUnknown - allocs82986127.Borrow(crobustUniformBufferAccessSizeAlignment_allocs) + var cdata_allocs *cgoAllocMap + ref15e17023.data, cdata_allocs = *(*C.VkDescriptorDataEXT)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown + allocs15e17023.Borrow(cdata_allocs) - x.ref82986127 = ref82986127 - x.allocs82986127 = allocs82986127 - return ref82986127, allocs82986127 + 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 PhysicalDeviceRobustness2Properties) PassValue() (C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { - if x.ref82986127 != nil { - return *x.ref82986127, nil +func (x DescriptorGetInfo) PassValue() (C.VkDescriptorGetInfoEXT, *cgoAllocMap) { + if x.ref15e17023 != nil { + return *x.ref15e17023, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58154,95 +64747,91 @@ func (x PhysicalDeviceRobustness2Properties) PassValue() (C.VkPhysicalDeviceRobu // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRobustness2Properties) Deref() { - if x.ref82986127 == nil { +func (x *DescriptorGetInfo) Deref() { + if x.ref15e17023 == nil { return } - 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) + 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)) } -// allocSamplerCustomBorderColorCreateInfoMemory allocates memory for type C.VkSamplerCustomBorderColorCreateInfoEXT in C. +// allocBufferCaptureDescriptorDataInfoMemory allocates memory for type C.VkBufferCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerCustomBorderColorCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCustomBorderColorCreateInfoValue)) +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 sizeOfSamplerCustomBorderColorCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCustomBorderColorCreateInfoEXT{}) +const sizeOfBufferCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkBufferCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerCustomBorderColorCreateInfo) Ref() *C.VkSamplerCustomBorderColorCreateInfoEXT { +func (x *BufferCaptureDescriptorDataInfo) Ref() *C.VkBufferCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.refcac2582e + 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 *SamplerCustomBorderColorCreateInfo) Free() { - if x != nil && x.allocscac2582e != nil { - x.allocscac2582e.(*cgoAllocMap).Free() - x.refcac2582e = nil +func (x *BufferCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocs7d170bdd != nil { + x.allocs7d170bdd.(*cgoAllocMap).Free() + x.ref7d170bdd = nil } } -// NewSamplerCustomBorderColorCreateInfoRef 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 NewSamplerCustomBorderColorCreateInfoRef(ref unsafe.Pointer) *SamplerCustomBorderColorCreateInfo { +func NewBufferCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *BufferCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(SamplerCustomBorderColorCreateInfo) - obj.refcac2582e = (*C.VkSamplerCustomBorderColorCreateInfoEXT)(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 *SamplerCustomBorderColorCreateInfo) PassRef() (*C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { +func (x *BufferCaptureDescriptorDataInfo) PassRef() (*C.VkBufferCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcac2582e != nil { - return x.refcac2582e, nil + } else if x.ref7d170bdd != nil { + return x.ref7d170bdd, nil } - memcac2582e := allocSamplerCustomBorderColorCreateInfoMemory(1) - refcac2582e := (*C.VkSamplerCustomBorderColorCreateInfoEXT)(memcac2582e) - allocscac2582e := new(cgoAllocMap) - allocscac2582e.Add(memcac2582e) + mem7d170bdd := allocBufferCaptureDescriptorDataInfoMemory(1) + ref7d170bdd := (*C.VkBufferCaptureDescriptorDataInfoEXT)(mem7d170bdd) + allocs7d170bdd := new(cgoAllocMap) + allocs7d170bdd.Add(mem7d170bdd) var csType_allocs *cgoAllocMap - refcac2582e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscac2582e.Borrow(csType_allocs) + ref7d170bdd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7d170bdd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcac2582e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscac2582e.Borrow(cpNext_allocs) - - var ccustomBorderColor_allocs *cgoAllocMap - refcac2582e.customBorderColor, ccustomBorderColor_allocs = *(*C.VkClearColorValue)(unsafe.Pointer(&x.CustomBorderColor)), cgoAllocsUnknown - allocscac2582e.Borrow(ccustomBorderColor_allocs) + ref7d170bdd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7d170bdd.Borrow(cpNext_allocs) - var cformat_allocs *cgoAllocMap - refcac2582e.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocscac2582e.Borrow(cformat_allocs) + var cbuffer_allocs *cgoAllocMap + ref7d170bdd.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs7d170bdd.Borrow(cbuffer_allocs) - x.refcac2582e = refcac2582e - x.allocscac2582e = allocscac2582e - return refcac2582e, allocscac2582e + 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 SamplerCustomBorderColorCreateInfo) PassValue() (C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { - if x.refcac2582e != nil { - return *x.refcac2582e, nil +func (x BufferCaptureDescriptorDataInfo) PassValue() (C.VkBufferCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.ref7d170bdd != nil { + return *x.ref7d170bdd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58250,91 +64839,90 @@ func (x SamplerCustomBorderColorCreateInfo) PassValue() (C.VkSamplerCustomBorder // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerCustomBorderColorCreateInfo) Deref() { - if x.refcac2582e == nil { +func (x *BufferCaptureDescriptorDataInfo) Deref() { + if x.ref7d170bdd == nil { return } - 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) + x.SType = (StructureType)(x.ref7d170bdd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7d170bdd.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref7d170bdd.buffer)) } -// allocPhysicalDeviceCustomBorderColorPropertiesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorPropertiesEXT in C. +// allocImageCaptureDescriptorDataInfoMemory allocates memory for type C.VkImageCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCustomBorderColorPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorPropertiesValue)) +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 sizeOfPhysicalDeviceCustomBorderColorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorPropertiesEXT{}) +const sizeOfImageCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkImageCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCustomBorderColorProperties) Ref() *C.VkPhysicalDeviceCustomBorderColorPropertiesEXT { +func (x *ImageCaptureDescriptorDataInfo) Ref() *C.VkImageCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.ref4b62d3cd + 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 *PhysicalDeviceCustomBorderColorProperties) Free() { - if x != nil && x.allocs4b62d3cd != nil { - x.allocs4b62d3cd.(*cgoAllocMap).Free() - x.ref4b62d3cd = nil +func (x *ImageCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocsc02d1ea8 != nil { + x.allocsc02d1ea8.(*cgoAllocMap).Free() + x.refc02d1ea8 = nil } } -// NewPhysicalDeviceCustomBorderColorPropertiesRef 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 NewPhysicalDeviceCustomBorderColorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorProperties { +func NewImageCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *ImageCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceCustomBorderColorProperties) - obj.ref4b62d3cd = (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(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 *PhysicalDeviceCustomBorderColorProperties) PassRef() (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { +func (x *ImageCaptureDescriptorDataInfo) PassRef() (*C.VkImageCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4b62d3cd != nil { - return x.ref4b62d3cd, nil + } else if x.refc02d1ea8 != nil { + return x.refc02d1ea8, nil } - mem4b62d3cd := allocPhysicalDeviceCustomBorderColorPropertiesMemory(1) - ref4b62d3cd := (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(mem4b62d3cd) - allocs4b62d3cd := new(cgoAllocMap) - allocs4b62d3cd.Add(mem4b62d3cd) + memc02d1ea8 := allocImageCaptureDescriptorDataInfoMemory(1) + refc02d1ea8 := (*C.VkImageCaptureDescriptorDataInfoEXT)(memc02d1ea8) + allocsc02d1ea8 := new(cgoAllocMap) + allocsc02d1ea8.Add(memc02d1ea8) var csType_allocs *cgoAllocMap - ref4b62d3cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4b62d3cd.Borrow(csType_allocs) + refc02d1ea8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc02d1ea8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4b62d3cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4b62d3cd.Borrow(cpNext_allocs) + refc02d1ea8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc02d1ea8.Borrow(cpNext_allocs) - var cmaxCustomBorderColorSamplers_allocs *cgoAllocMap - ref4b62d3cd.maxCustomBorderColorSamplers, cmaxCustomBorderColorSamplers_allocs = (C.uint32_t)(x.MaxCustomBorderColorSamplers), cgoAllocsUnknown - allocs4b62d3cd.Borrow(cmaxCustomBorderColorSamplers_allocs) + var cimage_allocs *cgoAllocMap + refc02d1ea8.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsc02d1ea8.Borrow(cimage_allocs) - x.ref4b62d3cd = ref4b62d3cd - x.allocs4b62d3cd = allocs4b62d3cd - return ref4b62d3cd, allocs4b62d3cd + 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 PhysicalDeviceCustomBorderColorProperties) PassValue() (C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { - if x.ref4b62d3cd != nil { - return *x.ref4b62d3cd, nil +func (x ImageCaptureDescriptorDataInfo) PassValue() (C.VkImageCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.refc02d1ea8 != nil { + return *x.refc02d1ea8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58342,94 +64930,90 @@ func (x PhysicalDeviceCustomBorderColorProperties) 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 *PhysicalDeviceCustomBorderColorProperties) Deref() { - if x.ref4b62d3cd == nil { +func (x *ImageCaptureDescriptorDataInfo) Deref() { + if x.refc02d1ea8 == nil { return } - x.SType = (StructureType)(x.ref4b62d3cd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4b62d3cd.pNext)) - x.MaxCustomBorderColorSamplers = (uint32)(x.ref4b62d3cd.maxCustomBorderColorSamplers) + x.SType = (StructureType)(x.refc02d1ea8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc02d1ea8.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.refc02d1ea8.image)) } -// allocPhysicalDeviceCustomBorderColorFeaturesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorFeaturesEXT in C. +// allocImageViewCaptureDescriptorDataInfoMemory allocates memory for type C.VkImageViewCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCustomBorderColorFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorFeaturesValue)) +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 sizeOfPhysicalDeviceCustomBorderColorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorFeaturesEXT{}) +const sizeOfImageViewCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkImageViewCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCustomBorderColorFeatures) Ref() *C.VkPhysicalDeviceCustomBorderColorFeaturesEXT { +func (x *ImageViewCaptureDescriptorDataInfo) Ref() *C.VkImageViewCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.ref8a9c96e0 + 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 *PhysicalDeviceCustomBorderColorFeatures) Free() { - if x != nil && x.allocs8a9c96e0 != nil { - x.allocs8a9c96e0.(*cgoAllocMap).Free() - x.ref8a9c96e0 = nil +func (x *ImageViewCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocse2b761d2 != nil { + x.allocse2b761d2.(*cgoAllocMap).Free() + x.refe2b761d2 = nil } } -// NewPhysicalDeviceCustomBorderColorFeaturesRef 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 NewPhysicalDeviceCustomBorderColorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorFeatures { +func NewImageViewCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *ImageViewCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceCustomBorderColorFeatures) - obj.ref8a9c96e0 = (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(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 *PhysicalDeviceCustomBorderColorFeatures) PassRef() (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { +func (x *ImageViewCaptureDescriptorDataInfo) PassRef() (*C.VkImageViewCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a9c96e0 != nil { - return x.ref8a9c96e0, nil + } else if x.refe2b761d2 != nil { + return x.refe2b761d2, nil } - mem8a9c96e0 := allocPhysicalDeviceCustomBorderColorFeaturesMemory(1) - ref8a9c96e0 := (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(mem8a9c96e0) - allocs8a9c96e0 := new(cgoAllocMap) - allocs8a9c96e0.Add(mem8a9c96e0) + meme2b761d2 := allocImageViewCaptureDescriptorDataInfoMemory(1) + refe2b761d2 := (*C.VkImageViewCaptureDescriptorDataInfoEXT)(meme2b761d2) + allocse2b761d2 := new(cgoAllocMap) + allocse2b761d2.Add(meme2b761d2) var csType_allocs *cgoAllocMap - ref8a9c96e0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8a9c96e0.Borrow(csType_allocs) + refe2b761d2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse2b761d2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8a9c96e0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8a9c96e0.Borrow(cpNext_allocs) - - var ccustomBorderColors_allocs *cgoAllocMap - ref8a9c96e0.customBorderColors, ccustomBorderColors_allocs = (C.VkBool32)(x.CustomBorderColors), cgoAllocsUnknown - allocs8a9c96e0.Borrow(ccustomBorderColors_allocs) + refe2b761d2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse2b761d2.Borrow(cpNext_allocs) - var ccustomBorderColorWithoutFormat_allocs *cgoAllocMap - ref8a9c96e0.customBorderColorWithoutFormat, ccustomBorderColorWithoutFormat_allocs = (C.VkBool32)(x.CustomBorderColorWithoutFormat), cgoAllocsUnknown - allocs8a9c96e0.Borrow(ccustomBorderColorWithoutFormat_allocs) + var cimageView_allocs *cgoAllocMap + refe2b761d2.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocse2b761d2.Borrow(cimageView_allocs) - x.ref8a9c96e0 = ref8a9c96e0 - x.allocs8a9c96e0 = allocs8a9c96e0 - return ref8a9c96e0, allocs8a9c96e0 + 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 PhysicalDeviceCustomBorderColorFeatures) PassValue() (C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { - if x.ref8a9c96e0 != nil { - return *x.ref8a9c96e0, nil +func (x ImageViewCaptureDescriptorDataInfo) PassValue() (C.VkImageViewCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.refe2b761d2 != nil { + return *x.refe2b761d2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58437,91 +65021,90 @@ func (x PhysicalDeviceCustomBorderColorFeatures) 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 *PhysicalDeviceCustomBorderColorFeatures) Deref() { - if x.ref8a9c96e0 == nil { +func (x *ImageViewCaptureDescriptorDataInfo) Deref() { + if x.refe2b761d2 == nil { return } - 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) + x.SType = (StructureType)(x.refe2b761d2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2b761d2.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.refe2b761d2.imageView)) } -// allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV in C. +// allocSamplerCaptureDescriptorDataInfoMemory allocates memory for type C.VkSamplerCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue)) +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 sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV{}) +const sizeOfSamplerCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkSamplerCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Ref() *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV { +func (x *SamplerCaptureDescriptorDataInfo) Ref() *C.VkSamplerCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.refd354d3ba + 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 *PhysicalDeviceDiagnosticsConfigFeaturesNV) Free() { - if x != nil && x.allocsd354d3ba != nil { - x.allocsd354d3ba.(*cgoAllocMap).Free() - x.refd354d3ba = nil +func (x *SamplerCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocs2455cc7e != nil { + x.allocs2455cc7e.(*cgoAllocMap).Free() + x.ref2455cc7e = nil } } -// NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef 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 NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDiagnosticsConfigFeaturesNV { +func NewSamplerCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *SamplerCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceDiagnosticsConfigFeaturesNV) - obj.refd354d3ba = (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(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 *PhysicalDeviceDiagnosticsConfigFeaturesNV) PassRef() (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { +func (x *SamplerCaptureDescriptorDataInfo) PassRef() (*C.VkSamplerCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd354d3ba != nil { - return x.refd354d3ba, nil + } else if x.ref2455cc7e != nil { + return x.ref2455cc7e, nil } - memd354d3ba := allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(1) - refd354d3ba := (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(memd354d3ba) - allocsd354d3ba := new(cgoAllocMap) - allocsd354d3ba.Add(memd354d3ba) + mem2455cc7e := allocSamplerCaptureDescriptorDataInfoMemory(1) + ref2455cc7e := (*C.VkSamplerCaptureDescriptorDataInfoEXT)(mem2455cc7e) + allocs2455cc7e := new(cgoAllocMap) + allocs2455cc7e.Add(mem2455cc7e) var csType_allocs *cgoAllocMap - refd354d3ba.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd354d3ba.Borrow(csType_allocs) + ref2455cc7e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2455cc7e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd354d3ba.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd354d3ba.Borrow(cpNext_allocs) + ref2455cc7e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2455cc7e.Borrow(cpNext_allocs) - var cdiagnosticsConfig_allocs *cgoAllocMap - refd354d3ba.diagnosticsConfig, cdiagnosticsConfig_allocs = (C.VkBool32)(x.DiagnosticsConfig), cgoAllocsUnknown - allocsd354d3ba.Borrow(cdiagnosticsConfig_allocs) + var csampler_allocs *cgoAllocMap + ref2455cc7e.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown + allocs2455cc7e.Borrow(csampler_allocs) - x.refd354d3ba = refd354d3ba - x.allocsd354d3ba = allocsd354d3ba - return refd354d3ba, allocsd354d3ba + 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 PhysicalDeviceDiagnosticsConfigFeaturesNV) PassValue() (C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { - if x.refd354d3ba != nil { - return *x.refd354d3ba, nil +func (x SamplerCaptureDescriptorDataInfo) PassValue() (C.VkSamplerCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.ref2455cc7e != nil { + return *x.ref2455cc7e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58529,90 +65112,90 @@ func (x PhysicalDeviceDiagnosticsConfigFeaturesNV) 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 *PhysicalDeviceDiagnosticsConfigFeaturesNV) Deref() { - if x.refd354d3ba == nil { +func (x *SamplerCaptureDescriptorDataInfo) Deref() { + if x.ref2455cc7e == nil { return } - x.SType = (StructureType)(x.refd354d3ba.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd354d3ba.pNext)) - x.DiagnosticsConfig = (Bool32)(x.refd354d3ba.diagnosticsConfig) + x.SType = (StructureType)(x.ref2455cc7e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2455cc7e.pNext)) + x.Sampler = *(*Sampler)(unsafe.Pointer(&x.ref2455cc7e.sampler)) } -// allocDeviceDiagnosticsConfigCreateInfoNVMemory allocates memory for type C.VkDeviceDiagnosticsConfigCreateInfoNV in C. +// allocOpaqueCaptureDescriptorDataCreateInfoMemory allocates memory for type C.VkOpaqueCaptureDescriptorDataCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceDiagnosticsConfigCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDiagnosticsConfigCreateInfoNVValue)) +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 sizeOfDeviceDiagnosticsConfigCreateInfoNVValue = unsafe.Sizeof([1]C.VkDeviceDiagnosticsConfigCreateInfoNV{}) +const sizeOfOpaqueCaptureDescriptorDataCreateInfoValue = unsafe.Sizeof([1]C.VkOpaqueCaptureDescriptorDataCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceDiagnosticsConfigCreateInfoNV) Ref() *C.VkDeviceDiagnosticsConfigCreateInfoNV { +func (x *OpaqueCaptureDescriptorDataCreateInfo) Ref() *C.VkOpaqueCaptureDescriptorDataCreateInfoEXT { if x == nil { return nil } - return x.ref856c966a + 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 *DeviceDiagnosticsConfigCreateInfoNV) Free() { - if x != nil && x.allocs856c966a != nil { - x.allocs856c966a.(*cgoAllocMap).Free() - x.ref856c966a = nil +func (x *OpaqueCaptureDescriptorDataCreateInfo) Free() { + if x != nil && x.allocs48a027d != nil { + x.allocs48a027d.(*cgoAllocMap).Free() + x.ref48a027d = nil } } -// NewDeviceDiagnosticsConfigCreateInfoNVRef 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 NewDeviceDiagnosticsConfigCreateInfoNVRef(ref unsafe.Pointer) *DeviceDiagnosticsConfigCreateInfoNV { +func NewOpaqueCaptureDescriptorDataCreateInfoRef(ref unsafe.Pointer) *OpaqueCaptureDescriptorDataCreateInfo { if ref == nil { return nil } - obj := new(DeviceDiagnosticsConfigCreateInfoNV) - obj.ref856c966a = (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(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 *DeviceDiagnosticsConfigCreateInfoNV) PassRef() (*C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { +func (x *OpaqueCaptureDescriptorDataCreateInfo) PassRef() (*C.VkOpaqueCaptureDescriptorDataCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref856c966a != nil { - return x.ref856c966a, nil + } else if x.ref48a027d != nil { + return x.ref48a027d, nil } - mem856c966a := allocDeviceDiagnosticsConfigCreateInfoNVMemory(1) - ref856c966a := (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(mem856c966a) - allocs856c966a := new(cgoAllocMap) - allocs856c966a.Add(mem856c966a) + mem48a027d := allocOpaqueCaptureDescriptorDataCreateInfoMemory(1) + ref48a027d := (*C.VkOpaqueCaptureDescriptorDataCreateInfoEXT)(mem48a027d) + allocs48a027d := new(cgoAllocMap) + allocs48a027d.Add(mem48a027d) var csType_allocs *cgoAllocMap - ref856c966a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs856c966a.Borrow(csType_allocs) + ref48a027d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48a027d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref856c966a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs856c966a.Borrow(cpNext_allocs) + ref48a027d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48a027d.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref856c966a.flags, cflags_allocs = (C.VkDeviceDiagnosticsConfigFlagsNV)(x.Flags), cgoAllocsUnknown - allocs856c966a.Borrow(cflags_allocs) + var copaqueCaptureDescriptorData_allocs *cgoAllocMap + ref48a027d.opaqueCaptureDescriptorData, copaqueCaptureDescriptorData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.OpaqueCaptureDescriptorData)), cgoAllocsUnknown + allocs48a027d.Borrow(copaqueCaptureDescriptorData_allocs) - x.ref856c966a = ref856c966a - x.allocs856c966a = allocs856c966a - return ref856c966a, allocs856c966a + 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 DeviceDiagnosticsConfigCreateInfoNV) PassValue() (C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { - if x.ref856c966a != nil { - return *x.ref856c966a, nil +func (x OpaqueCaptureDescriptorDataCreateInfo) PassValue() (C.VkOpaqueCaptureDescriptorDataCreateInfoEXT, *cgoAllocMap) { + if x.ref48a027d != nil { + return *x.ref48a027d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -58620,13 +65203,13 @@ func (x DeviceDiagnosticsConfigCreateInfoNV) PassValue() (C.VkDeviceDiagnosticsC // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceDiagnosticsConfigCreateInfoNV) Deref() { - if x.ref856c966a == nil { +func (x *OpaqueCaptureDescriptorDataCreateInfo) Deref() { + if x.ref48a027d == nil { return } - x.SType = (StructureType)(x.ref856c966a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref856c966a.pNext)) - x.Flags = (DeviceDiagnosticsConfigFlagsNV)(x.ref856c966a.flags) + x.SType = (StructureType)(x.ref48a027d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48a027d.pNext)) + x.OpaqueCaptureDescriptorData = (unsafe.Pointer)(unsafe.Pointer(x.ref48a027d.opaqueCaptureDescriptorData)) } // allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT in C. @@ -58907,6 +65490,97 @@ func (x *GraphicsPipelineLibraryCreateInfo) Deref() { x.Flags = (GraphicsPipelineLibraryFlags)(x.reff164ebfc.flags) } +// allocPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Ref() *C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { + if x == nil { + return nil + } + 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 *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Free() { + if x != nil && x.allocsec282b5f != nil { + x.allocsec282b5f.(*cgoAllocMap).Free() + x.refec282b5f = nil + } +} + +// 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 NewPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { + if ref == nil { + return nil + } + 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 *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) PassRef() (*C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refec282b5f != nil { + return x.refec282b5f, nil + } + memec282b5f := allocPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDMemory(1) + refec282b5f := (*C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)(memec282b5f) + allocsec282b5f := new(cgoAllocMap) + allocsec282b5f.Add(memec282b5f) + + var csType_allocs *cgoAllocMap + refec282b5f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsec282b5f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refec282b5f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsec282b5f.Borrow(cpNext_allocs) + + var cshaderEarlyAndLateFragmentTests_allocs *cgoAllocMap + refec282b5f.shaderEarlyAndLateFragmentTests, cshaderEarlyAndLateFragmentTests_allocs = (C.VkBool32)(x.ShaderEarlyAndLateFragmentTests), cgoAllocsUnknown + allocsec282b5f.Borrow(cshaderEarlyAndLateFragmentTests_allocs) + + 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 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) PassValue() (C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, *cgoAllocMap) { + if x.refec282b5f != nil { + return *x.refec282b5f, 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 *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Deref() { + if x.refec282b5f == nil { + return + } + x.SType = (StructureType)(x.refec282b5f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refec282b5f.pNext)) + x.ShaderEarlyAndLateFragmentTests = (Bool32)(x.refec282b5f.shaderEarlyAndLateFragmentTests) +} + // allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. func allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(n int) unsafe.Pointer { @@ -59579,85 +66253,81 @@ func (x *CopyCommandTransformInfoQCOM) Deref() { x.Transform = (SurfaceTransformFlagBits)(x.refeaa6777c.transform) } -// allocPhysicalDevice4444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDevice4444FormatsFeaturesEXT in C. +// allocPhysicalDeviceImageCompressionControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageCompressionControlFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevice4444FormatsFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice4444FormatsFeaturesValue)) +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 sizeOfPhysicalDevice4444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice4444FormatsFeaturesEXT{}) +const sizeOfPhysicalDeviceImageCompressionControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageCompressionControlFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevice4444FormatsFeatures) Ref() *C.VkPhysicalDevice4444FormatsFeaturesEXT { +func (x *PhysicalDeviceImageCompressionControlFeatures) Ref() *C.VkPhysicalDeviceImageCompressionControlFeaturesEXT { if x == nil { return nil } - return x.ref51c957d0 + 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 *PhysicalDevice4444FormatsFeatures) Free() { - if x != nil && x.allocs51c957d0 != nil { - x.allocs51c957d0.(*cgoAllocMap).Free() - x.ref51c957d0 = nil +func (x *PhysicalDeviceImageCompressionControlFeatures) Free() { + if x != nil && x.allocs25740c12 != nil { + x.allocs25740c12.(*cgoAllocMap).Free() + x.ref25740c12 = nil } } -// NewPhysicalDevice4444FormatsFeaturesRef 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 NewPhysicalDevice4444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDevice4444FormatsFeatures { +func NewPhysicalDeviceImageCompressionControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageCompressionControlFeatures { if ref == nil { return nil } - obj := new(PhysicalDevice4444FormatsFeatures) - obj.ref51c957d0 = (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(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 *PhysicalDevice4444FormatsFeatures) PassRef() (*C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceImageCompressionControlFeatures) PassRef() (*C.VkPhysicalDeviceImageCompressionControlFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51c957d0 != nil { - return x.ref51c957d0, nil + } else if x.ref25740c12 != nil { + return x.ref25740c12, nil } - mem51c957d0 := allocPhysicalDevice4444FormatsFeaturesMemory(1) - ref51c957d0 := (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(mem51c957d0) - allocs51c957d0 := new(cgoAllocMap) - allocs51c957d0.Add(mem51c957d0) + mem25740c12 := allocPhysicalDeviceImageCompressionControlFeaturesMemory(1) + ref25740c12 := (*C.VkPhysicalDeviceImageCompressionControlFeaturesEXT)(mem25740c12) + allocs25740c12 := new(cgoAllocMap) + allocs25740c12.Add(mem25740c12) var csType_allocs *cgoAllocMap - ref51c957d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51c957d0.Borrow(csType_allocs) + ref25740c12.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs25740c12.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51c957d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51c957d0.Borrow(cpNext_allocs) - - var cformatA4R4G4B4_allocs *cgoAllocMap - ref51c957d0.formatA4R4G4B4, cformatA4R4G4B4_allocs = (C.VkBool32)(x.FormatA4R4G4B4), cgoAllocsUnknown - allocs51c957d0.Borrow(cformatA4R4G4B4_allocs) + ref25740c12.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs25740c12.Borrow(cpNext_allocs) - var cformatA4B4G4R4_allocs *cgoAllocMap - ref51c957d0.formatA4B4G4R4, cformatA4B4G4R4_allocs = (C.VkBool32)(x.FormatA4B4G4R4), cgoAllocsUnknown - allocs51c957d0.Borrow(cformatA4B4G4R4_allocs) + var cimageCompressionControl_allocs *cgoAllocMap + ref25740c12.imageCompressionControl, cimageCompressionControl_allocs = (C.VkBool32)(x.ImageCompressionControl), cgoAllocsUnknown + allocs25740c12.Borrow(cimageCompressionControl_allocs) - x.ref51c957d0 = ref51c957d0 - x.allocs51c957d0 = allocs51c957d0 - return ref51c957d0, allocs51c957d0 + 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 PhysicalDevice4444FormatsFeatures) PassValue() (C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { - if x.ref51c957d0 != nil { - return *x.ref51c957d0, nil +func (x PhysicalDeviceImageCompressionControlFeatures) PassValue() (C.VkPhysicalDeviceImageCompressionControlFeaturesEXT, *cgoAllocMap) { + if x.ref25740c12 != nil { + return *x.ref25740c12, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -59665,99 +66335,98 @@ func (x PhysicalDevice4444FormatsFeatures) PassValue() (C.VkPhysicalDevice4444Fo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevice4444FormatsFeatures) Deref() { - if x.ref51c957d0 == nil { +func (x *PhysicalDeviceImageCompressionControlFeatures) Deref() { + if x.ref25740c12 == nil { return } - 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) + x.SType = (StructureType)(x.ref25740c12.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref25740c12.pNext)) + x.ImageCompressionControl = (Bool32)(x.ref25740c12.imageCompressionControl) } -// allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory allocates memory for type C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM in C. +// allocImageCompressionControlMemory allocates memory for type C.VkImageCompressionControlEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMValue)) +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 sizeOfPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM{}) +const sizeOfImageCompressionControlValue = unsafe.Sizeof([1]C.VkImageCompressionControlEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Ref() *C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { +func (x *ImageCompressionControl) Ref() *C.VkImageCompressionControlEXT { if x == nil { return nil } - return x.ref139a6788 + 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 *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Free() { - if x != nil && x.allocs139a6788 != nil { - x.allocs139a6788.(*cgoAllocMap).Free() - x.ref139a6788 = nil +func (x *ImageCompressionControl) Free() { + if x != nil && x.allocs37cbe96e != nil { + x.allocs37cbe96e.(*cgoAllocMap).Free() + x.ref37cbe96e = nil } } -// NewPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMRef 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 NewPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMRef(ref unsafe.Pointer) *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { +func NewImageCompressionControlRef(ref unsafe.Pointer) *ImageCompressionControl { if ref == nil { return nil } - obj := new(PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) - obj.ref139a6788 = (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)(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 *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) PassRef() (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, *cgoAllocMap) { +func (x *ImageCompressionControl) PassRef() (*C.VkImageCompressionControlEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref139a6788 != nil { - return x.ref139a6788, nil + } else if x.ref37cbe96e != nil { + return x.ref37cbe96e, nil } - mem139a6788 := allocPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMMemory(1) - ref139a6788 := (*C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)(mem139a6788) - allocs139a6788 := new(cgoAllocMap) - allocs139a6788.Add(mem139a6788) + mem37cbe96e := allocImageCompressionControlMemory(1) + ref37cbe96e := (*C.VkImageCompressionControlEXT)(mem37cbe96e) + allocs37cbe96e := new(cgoAllocMap) + allocs37cbe96e.Add(mem37cbe96e) var csType_allocs *cgoAllocMap - ref139a6788.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs139a6788.Borrow(csType_allocs) + ref37cbe96e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs37cbe96e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref139a6788.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs139a6788.Borrow(cpNext_allocs) + ref37cbe96e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs37cbe96e.Borrow(cpNext_allocs) - var crasterizationOrderColorAttachmentAccess_allocs *cgoAllocMap - ref139a6788.rasterizationOrderColorAttachmentAccess, crasterizationOrderColorAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderColorAttachmentAccess), cgoAllocsUnknown - allocs139a6788.Borrow(crasterizationOrderColorAttachmentAccess_allocs) + var cflags_allocs *cgoAllocMap + ref37cbe96e.flags, cflags_allocs = (C.VkImageCompressionFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs37cbe96e.Borrow(cflags_allocs) - var crasterizationOrderDepthAttachmentAccess_allocs *cgoAllocMap - ref139a6788.rasterizationOrderDepthAttachmentAccess, crasterizationOrderDepthAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderDepthAttachmentAccess), cgoAllocsUnknown - allocs139a6788.Borrow(crasterizationOrderDepthAttachmentAccess_allocs) + var ccompressionControlPlaneCount_allocs *cgoAllocMap + ref37cbe96e.compressionControlPlaneCount, ccompressionControlPlaneCount_allocs = (C.uint32_t)(x.CompressionControlPlaneCount), cgoAllocsUnknown + allocs37cbe96e.Borrow(ccompressionControlPlaneCount_allocs) - var crasterizationOrderStencilAttachmentAccess_allocs *cgoAllocMap - ref139a6788.rasterizationOrderStencilAttachmentAccess, crasterizationOrderStencilAttachmentAccess_allocs = (C.VkBool32)(x.RasterizationOrderStencilAttachmentAccess), cgoAllocsUnknown - allocs139a6788.Borrow(crasterizationOrderStencilAttachmentAccess_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.ref139a6788 = ref139a6788 - x.allocs139a6788 = allocs139a6788 - return ref139a6788, allocs139a6788 + 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 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) PassValue() (C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, *cgoAllocMap) { - if x.ref139a6788 != nil { - return *x.ref139a6788, nil +func (x ImageCompressionControl) PassValue() (C.VkImageCompressionControlEXT, *cgoAllocMap) { + if x.ref37cbe96e != nil { + return *x.ref37cbe96e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -59765,92 +66434,96 @@ func (x PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) PassValue() // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) Deref() { - if x.ref139a6788 == nil { +func (x *ImageCompressionControl) Deref() { + if x.ref37cbe96e == nil { return } - x.SType = (StructureType)(x.ref139a6788.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref139a6788.pNext)) - x.RasterizationOrderColorAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderColorAttachmentAccess) - x.RasterizationOrderDepthAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderDepthAttachmentAccess) - x.RasterizationOrderStencilAttachmentAccess = (Bool32)(x.ref139a6788.rasterizationOrderStencilAttachmentAccess) + 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) + hxff6a91e := (*sliceHeader)(unsafe.Pointer(&x.PFixedRateFlags)) + hxff6a91e.Data = unsafe.Pointer(x.ref37cbe96e.pFixedRateFlags) + hxff6a91e.Cap = 0x7fffffff + // hxff6a91e.Len = ? + } -// allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory allocates memory for type C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT in C. +// allocSubresourceLayout2Memory allocates memory for type C.VkSubresourceLayout2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRGBA10X6FormatsFeaturesValue)) +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 sizeOfPhysicalDeviceRGBA10X6FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT{}) +const sizeOfSubresourceLayout2Value = unsafe.Sizeof([1]C.VkSubresourceLayout2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRGBA10X6FormatsFeatures) Ref() *C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { +func (x *SubresourceLayout2) Ref() *C.VkSubresourceLayout2EXT { if x == nil { return nil } - return x.refb685ff38 + 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 *PhysicalDeviceRGBA10X6FormatsFeatures) Free() { - if x != nil && x.allocsb685ff38 != nil { - x.allocsb685ff38.(*cgoAllocMap).Free() - x.refb685ff38 = nil +func (x *SubresourceLayout2) Free() { + if x != nil && x.allocs63424f18 != nil { + x.allocs63424f18.(*cgoAllocMap).Free() + x.ref63424f18 = nil } } -// NewPhysicalDeviceRGBA10X6FormatsFeaturesRef 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 NewPhysicalDeviceRGBA10X6FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRGBA10X6FormatsFeatures { +func NewSubresourceLayout2Ref(ref unsafe.Pointer) *SubresourceLayout2 { if ref == nil { return nil } - obj := new(PhysicalDeviceRGBA10X6FormatsFeatures) - obj.refb685ff38 = (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT)(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 *PhysicalDeviceRGBA10X6FormatsFeatures) PassRef() (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, *cgoAllocMap) { +func (x *SubresourceLayout2) PassRef() (*C.VkSubresourceLayout2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb685ff38 != nil { - return x.refb685ff38, nil + } else if x.ref63424f18 != nil { + return x.ref63424f18, nil } - memb685ff38 := allocPhysicalDeviceRGBA10X6FormatsFeaturesMemory(1) - refb685ff38 := (*C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT)(memb685ff38) - allocsb685ff38 := new(cgoAllocMap) - allocsb685ff38.Add(memb685ff38) + mem63424f18 := allocSubresourceLayout2Memory(1) + ref63424f18 := (*C.VkSubresourceLayout2EXT)(mem63424f18) + allocs63424f18 := new(cgoAllocMap) + allocs63424f18.Add(mem63424f18) var csType_allocs *cgoAllocMap - refb685ff38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb685ff38.Borrow(csType_allocs) + ref63424f18.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs63424f18.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb685ff38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb685ff38.Borrow(cpNext_allocs) + ref63424f18.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs63424f18.Borrow(cpNext_allocs) - var cformatRgba10x6WithoutYCbCrSampler_allocs *cgoAllocMap - refb685ff38.formatRgba10x6WithoutYCbCrSampler, cformatRgba10x6WithoutYCbCrSampler_allocs = (C.VkBool32)(x.FormatRgba10x6WithoutYCbCrSampler), cgoAllocsUnknown - allocsb685ff38.Borrow(cformatRgba10x6WithoutYCbCrSampler_allocs) + var csubresourceLayout_allocs *cgoAllocMap + ref63424f18.subresourceLayout, csubresourceLayout_allocs = x.SubresourceLayout.PassValue() + allocs63424f18.Borrow(csubresourceLayout_allocs) - x.refb685ff38 = refb685ff38 - x.allocsb685ff38 = allocsb685ff38 - return refb685ff38, allocsb685ff38 + 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 PhysicalDeviceRGBA10X6FormatsFeatures) PassValue() (C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, *cgoAllocMap) { - if x.refb685ff38 != nil { - return *x.refb685ff38, nil +func (x SubresourceLayout2) PassValue() (C.VkSubresourceLayout2EXT, *cgoAllocMap) { + if x.ref63424f18 != nil { + return *x.ref63424f18, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -59858,90 +66531,90 @@ func (x PhysicalDeviceRGBA10X6FormatsFeatures) PassValue() (C.VkPhysicalDeviceRG // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRGBA10X6FormatsFeatures) Deref() { - if x.refb685ff38 == nil { +func (x *SubresourceLayout2) Deref() { + if x.ref63424f18 == nil { return } - x.SType = (StructureType)(x.refb685ff38.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb685ff38.pNext)) - x.FormatRgba10x6WithoutYCbCrSampler = (Bool32)(x.refb685ff38.formatRgba10x6WithoutYCbCrSampler) + x.SType = (StructureType)(x.ref63424f18.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref63424f18.pNext)) + x.SubresourceLayout = *NewSubresourceLayoutRef(unsafe.Pointer(&x.ref63424f18.subresourceLayout)) } -// allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory allocates memory for type C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE in C. +// allocImageSubresource2Memory allocates memory for type C.VkImageSubresource2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMutableDescriptorTypeFeaturesVALVEValue)) +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 sizeOfPhysicalDeviceMutableDescriptorTypeFeaturesVALVEValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE{}) +const sizeOfImageSubresource2Value = unsafe.Sizeof([1]C.VkImageSubresource2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Ref() *C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { +func (x *ImageSubresource2) Ref() *C.VkImageSubresource2EXT { if x == nil { return nil } - return x.ref2b2ab5ea + 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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Free() { - if x != nil && x.allocs2b2ab5ea != nil { - x.allocs2b2ab5ea.(*cgoAllocMap).Free() - x.ref2b2ab5ea = nil +func (x *ImageSubresource2) Free() { + if x != nil && x.allocs9782acd8 != nil { + x.allocs9782acd8.(*cgoAllocMap).Free() + x.ref9782acd8 = nil } } -// NewPhysicalDeviceMutableDescriptorTypeFeaturesVALVERef 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 NewPhysicalDeviceMutableDescriptorTypeFeaturesVALVERef(ref unsafe.Pointer) *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE { +func NewImageSubresource2Ref(ref unsafe.Pointer) *ImageSubresource2 { if ref == nil { return nil } - obj := new(PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) - obj.ref2b2ab5ea = (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE)(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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) PassRef() (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, *cgoAllocMap) { +func (x *ImageSubresource2) PassRef() (*C.VkImageSubresource2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b2ab5ea != nil { - return x.ref2b2ab5ea, nil + } else if x.ref9782acd8 != nil { + return x.ref9782acd8, nil } - mem2b2ab5ea := allocPhysicalDeviceMutableDescriptorTypeFeaturesVALVEMemory(1) - ref2b2ab5ea := (*C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE)(mem2b2ab5ea) - allocs2b2ab5ea := new(cgoAllocMap) - allocs2b2ab5ea.Add(mem2b2ab5ea) + mem9782acd8 := allocImageSubresource2Memory(1) + ref9782acd8 := (*C.VkImageSubresource2EXT)(mem9782acd8) + allocs9782acd8 := new(cgoAllocMap) + allocs9782acd8.Add(mem9782acd8) var csType_allocs *cgoAllocMap - ref2b2ab5ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2b2ab5ea.Borrow(csType_allocs) + ref9782acd8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9782acd8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2b2ab5ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2b2ab5ea.Borrow(cpNext_allocs) + ref9782acd8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9782acd8.Borrow(cpNext_allocs) - var cmutableDescriptorType_allocs *cgoAllocMap - ref2b2ab5ea.mutableDescriptorType, cmutableDescriptorType_allocs = (C.VkBool32)(x.MutableDescriptorType), cgoAllocsUnknown - allocs2b2ab5ea.Borrow(cmutableDescriptorType_allocs) + var cimageSubresource_allocs *cgoAllocMap + ref9782acd8.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() + allocs9782acd8.Borrow(cimageSubresource_allocs) - x.ref2b2ab5ea = ref2b2ab5ea - x.allocs2b2ab5ea = allocs2b2ab5ea - return ref2b2ab5ea, allocs2b2ab5ea + 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 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) PassValue() (C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, *cgoAllocMap) { - if x.ref2b2ab5ea != nil { - return *x.ref2b2ab5ea, nil +func (x ImageSubresource2) PassValue() (C.VkImageSubresource2EXT, *cgoAllocMap) { + if x.ref9782acd8 != nil { + return *x.ref9782acd8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -59949,86 +66622,94 @@ func (x PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) 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 *PhysicalDeviceMutableDescriptorTypeFeaturesVALVE) Deref() { - if x.ref2b2ab5ea == nil { +func (x *ImageSubresource2) Deref() { + if x.ref9782acd8 == nil { return } - x.SType = (StructureType)(x.ref2b2ab5ea.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2b2ab5ea.pNext)) - x.MutableDescriptorType = (Bool32)(x.ref2b2ab5ea.mutableDescriptorType) + x.SType = (StructureType)(x.ref9782acd8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9782acd8.pNext)) + x.ImageSubresource = *NewImageSubresourceRef(unsafe.Pointer(&x.ref9782acd8.imageSubresource)) } -// allocMutableDescriptorTypeListVALVEMemory allocates memory for type C.VkMutableDescriptorTypeListVALVE in C. +// allocImageCompressionPropertiesMemory allocates memory for type C.VkImageCompressionPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMutableDescriptorTypeListVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeListVALVEValue)) +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 sizeOfMutableDescriptorTypeListVALVEValue = unsafe.Sizeof([1]C.VkMutableDescriptorTypeListVALVE{}) +const sizeOfImageCompressionPropertiesValue = unsafe.Sizeof([1]C.VkImageCompressionPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MutableDescriptorTypeListVALVE) Ref() *C.VkMutableDescriptorTypeListVALVE { +func (x *ImageCompressionProperties) Ref() *C.VkImageCompressionPropertiesEXT { if x == nil { return nil } - return x.ref957e9078 + 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 *MutableDescriptorTypeListVALVE) Free() { - if x != nil && x.allocs957e9078 != nil { - x.allocs957e9078.(*cgoAllocMap).Free() - x.ref957e9078 = nil +func (x *ImageCompressionProperties) Free() { + if x != nil && x.allocs6a3ccfa2 != nil { + x.allocs6a3ccfa2.(*cgoAllocMap).Free() + x.ref6a3ccfa2 = nil } } -// NewMutableDescriptorTypeListVALVERef 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 NewMutableDescriptorTypeListVALVERef(ref unsafe.Pointer) *MutableDescriptorTypeListVALVE { +func NewImageCompressionPropertiesRef(ref unsafe.Pointer) *ImageCompressionProperties { if ref == nil { return nil } - obj := new(MutableDescriptorTypeListVALVE) - obj.ref957e9078 = (*C.VkMutableDescriptorTypeListVALVE)(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 *MutableDescriptorTypeListVALVE) PassRef() (*C.VkMutableDescriptorTypeListVALVE, *cgoAllocMap) { +func (x *ImageCompressionProperties) PassRef() (*C.VkImageCompressionPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref957e9078 != nil { - return x.ref957e9078, nil + } else if x.ref6a3ccfa2 != nil { + return x.ref6a3ccfa2, nil } - mem957e9078 := allocMutableDescriptorTypeListVALVEMemory(1) - ref957e9078 := (*C.VkMutableDescriptorTypeListVALVE)(mem957e9078) - allocs957e9078 := new(cgoAllocMap) - allocs957e9078.Add(mem957e9078) + mem6a3ccfa2 := allocImageCompressionPropertiesMemory(1) + ref6a3ccfa2 := (*C.VkImageCompressionPropertiesEXT)(mem6a3ccfa2) + allocs6a3ccfa2 := new(cgoAllocMap) + allocs6a3ccfa2.Add(mem6a3ccfa2) - var cdescriptorTypeCount_allocs *cgoAllocMap - ref957e9078.descriptorTypeCount, cdescriptorTypeCount_allocs = (C.uint32_t)(x.DescriptorTypeCount), cgoAllocsUnknown - allocs957e9078.Borrow(cdescriptorTypeCount_allocs) + var csType_allocs *cgoAllocMap + ref6a3ccfa2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6a3ccfa2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cpNext_allocs) - var cpDescriptorTypes_allocs *cgoAllocMap - ref957e9078.pDescriptorTypes, cpDescriptorTypes_allocs = (*C.VkDescriptorType)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes)).Data)), cgoAllocsUnknown - allocs957e9078.Borrow(cpDescriptorTypes_allocs) + var cimageCompressionFlags_allocs *cgoAllocMap + ref6a3ccfa2.imageCompressionFlags, cimageCompressionFlags_allocs = (C.VkImageCompressionFlagsEXT)(x.ImageCompressionFlags), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cimageCompressionFlags_allocs) - x.ref957e9078 = ref957e9078 - x.allocs957e9078 = allocs957e9078 - return ref957e9078, allocs957e9078 + var cimageCompressionFixedRateFlags_allocs *cgoAllocMap + ref6a3ccfa2.imageCompressionFixedRateFlags, cimageCompressionFixedRateFlags_allocs = (C.VkImageCompressionFixedRateFlagsEXT)(x.ImageCompressionFixedRateFlags), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cimageCompressionFixedRateFlags_allocs) + + 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 MutableDescriptorTypeListVALVE) PassValue() (C.VkMutableDescriptorTypeListVALVE, *cgoAllocMap) { - if x.ref957e9078 != nil { - return *x.ref957e9078, nil +func (x ImageCompressionProperties) PassValue() (C.VkImageCompressionPropertiesEXT, *cgoAllocMap) { + if x.ref6a3ccfa2 != nil { + return *x.ref6a3ccfa2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60036,135 +66717,334 @@ func (x MutableDescriptorTypeListVALVE) PassValue() (C.VkMutableDescriptorTypeLi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MutableDescriptorTypeListVALVE) Deref() { - if x.ref957e9078 == nil { +func (x *ImageCompressionProperties) Deref() { + if x.ref6a3ccfa2 == nil { return } - x.DescriptorTypeCount = (uint32)(x.ref957e9078.descriptorTypeCount) - hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PDescriptorTypes)) - hxfe33f90.Data = unsafe.Pointer(x.ref957e9078.pDescriptorTypes) - hxfe33f90.Cap = 0x7fffffff - // hxfe33f90.Len = ? + 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) +} + +// allocPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Ref() *C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Free() { + if x != nil && x.allocsf251dd56 != nil { + x.allocsf251dd56.(*cgoAllocMap).Free() + x.reff251dd56 = nil + } +} + +// 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 NewPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures { + if ref == nil { + return nil + } + 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 *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) PassRef() (*C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff251dd56 != nil { + return x.reff251dd56, nil + } + memf251dd56 := allocPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesMemory(1) + reff251dd56 := (*C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)(memf251dd56) + allocsf251dd56 := new(cgoAllocMap) + allocsf251dd56.Add(memf251dd56) + + var csType_allocs *cgoAllocMap + reff251dd56.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf251dd56.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff251dd56.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf251dd56.Borrow(cpNext_allocs) + var cattachmentFeedbackLoopLayout_allocs *cgoAllocMap + reff251dd56.attachmentFeedbackLoopLayout, cattachmentFeedbackLoopLayout_allocs = (C.VkBool32)(x.AttachmentFeedbackLoopLayout), cgoAllocsUnknown + allocsf251dd56.Borrow(cattachmentFeedbackLoopLayout_allocs) + + 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 PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) PassValue() (C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, *cgoAllocMap) { + if x.reff251dd56 != nil { + return *x.reff251dd56, 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 *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Deref() { + if x.reff251dd56 == nil { + return + } + x.SType = (StructureType)(x.reff251dd56.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff251dd56.pNext)) + x.AttachmentFeedbackLoopLayout = (Bool32)(x.reff251dd56.attachmentFeedbackLoopLayout) } -// allocMutableDescriptorTypeCreateInfoVALVEMemory allocates memory for type C.VkMutableDescriptorTypeCreateInfoVALVE in C. +// allocPhysicalDevice4444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDevice4444FormatsFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMutableDescriptorTypeCreateInfoVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMutableDescriptorTypeCreateInfoVALVEValue)) +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 sizeOfMutableDescriptorTypeCreateInfoVALVEValue = unsafe.Sizeof([1]C.VkMutableDescriptorTypeCreateInfoVALVE{}) +const sizeOfPhysicalDevice4444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice4444FormatsFeaturesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevice4444FormatsFeatures) Ref() *C.VkPhysicalDevice4444FormatsFeaturesEXT { + if x == nil { + return nil + } + 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 *PhysicalDevice4444FormatsFeatures) Free() { + if x != nil && x.allocs51c957d0 != nil { + x.allocs51c957d0.(*cgoAllocMap).Free() + x.ref51c957d0 = nil + } +} + +// 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 NewPhysicalDevice4444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDevice4444FormatsFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDevice4444FormatsFeatures) + obj.ref51c957d0 = (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(unsafe.Pointer(ref)) + return obj +} -// unpackSMutableDescriptorTypeListVALVE transforms a sliced Go data structure into plain C format. -func unpackSMutableDescriptorTypeListVALVE(x []MutableDescriptorTypeListVALVE) (unpacked *C.VkMutableDescriptorTypeListVALVE, 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 *PhysicalDevice4444FormatsFeatures) PassRef() (*C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.ref51c957d0 != nil { + return x.ref51c957d0, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkMutableDescriptorTypeListVALVE) { - go allocs.Free() - }) + mem51c957d0 := allocPhysicalDevice4444FormatsFeaturesMemory(1) + ref51c957d0 := (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(mem51c957d0) + allocs51c957d0 := new(cgoAllocMap) + allocs51c957d0.Add(mem51c957d0) - len0 := len(x) - mem0 := allocMutableDescriptorTypeListVALVEMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var csType_allocs *cgoAllocMap + ref51c957d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51c957d0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref51c957d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51c957d0.Borrow(cpNext_allocs) + + var cformatA4R4G4B4_allocs *cgoAllocMap + ref51c957d0.formatA4R4G4B4, cformatA4R4G4B4_allocs = (C.VkBool32)(x.FormatA4R4G4B4), cgoAllocsUnknown + allocs51c957d0.Borrow(cformatA4R4G4B4_allocs) + + 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 PhysicalDevice4444FormatsFeatures) PassValue() (C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { + if x.ref51c957d0 != nil { + return *x.ref51c957d0, nil } - v0 := *(*[]C.VkMutableDescriptorTypeListVALVE)(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 *PhysicalDevice4444FormatsFeatures) Deref() { + if x.ref51c957d0 == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkMutableDescriptorTypeListVALVE)(h.Data) - return + 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) } -// packSMutableDescriptorTypeListVALVE reads sliced Go data structure out from plain C format. -func packSMutableDescriptorTypeListVALVE(v []MutableDescriptorTypeListVALVE, ptr0 *C.VkMutableDescriptorTypeListVALVE) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfMutableDescriptorTypeListVALVEValue]C.VkMutableDescriptorTypeListVALVE)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewMutableDescriptorTypeListVALVERef(unsafe.Pointer(&ptr1)) +// allocPhysicalDevicePortabilitySubsetFeaturesMemory allocates memory for type C.VkPhysicalDevicePortabilitySubsetFeaturesKHR in C. +// The caller is responsible for freeing the this memory via C.free. +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 sizeOfPhysicalDevicePortabilitySubsetFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePortabilitySubsetFeaturesKHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MutableDescriptorTypeCreateInfoVALVE) Ref() *C.VkMutableDescriptorTypeCreateInfoVALVE { +func (x *PhysicalDevicePortabilitySubsetFeatures) Ref() *C.VkPhysicalDevicePortabilitySubsetFeaturesKHR { if x == nil { return nil } - return x.ref8ef4bbb3 + 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 *MutableDescriptorTypeCreateInfoVALVE) Free() { - if x != nil && x.allocs8ef4bbb3 != nil { - x.allocs8ef4bbb3.(*cgoAllocMap).Free() - x.ref8ef4bbb3 = nil +func (x *PhysicalDevicePortabilitySubsetFeatures) Free() { + if x != nil && x.allocs1a31db1e != nil { + x.allocs1a31db1e.(*cgoAllocMap).Free() + x.ref1a31db1e = nil } } -// NewMutableDescriptorTypeCreateInfoVALVERef 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 NewMutableDescriptorTypeCreateInfoVALVERef(ref unsafe.Pointer) *MutableDescriptorTypeCreateInfoVALVE { +func NewPhysicalDevicePortabilitySubsetFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePortabilitySubsetFeatures { if ref == nil { return nil } - obj := new(MutableDescriptorTypeCreateInfoVALVE) - obj.ref8ef4bbb3 = (*C.VkMutableDescriptorTypeCreateInfoVALVE)(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 *MutableDescriptorTypeCreateInfoVALVE) PassRef() (*C.VkMutableDescriptorTypeCreateInfoVALVE, *cgoAllocMap) { +func (x *PhysicalDevicePortabilitySubsetFeatures) PassRef() (*C.VkPhysicalDevicePortabilitySubsetFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8ef4bbb3 != nil { - return x.ref8ef4bbb3, nil + } else if x.ref1a31db1e != nil { + return x.ref1a31db1e, nil } - mem8ef4bbb3 := allocMutableDescriptorTypeCreateInfoVALVEMemory(1) - ref8ef4bbb3 := (*C.VkMutableDescriptorTypeCreateInfoVALVE)(mem8ef4bbb3) - allocs8ef4bbb3 := new(cgoAllocMap) - allocs8ef4bbb3.Add(mem8ef4bbb3) + mem1a31db1e := allocPhysicalDevicePortabilitySubsetFeaturesMemory(1) + ref1a31db1e := (*C.VkPhysicalDevicePortabilitySubsetFeaturesKHR)(mem1a31db1e) + allocs1a31db1e := new(cgoAllocMap) + allocs1a31db1e.Add(mem1a31db1e) var csType_allocs *cgoAllocMap - ref8ef4bbb3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8ef4bbb3.Borrow(csType_allocs) + ref1a31db1e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1a31db1e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8ef4bbb3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8ef4bbb3.Borrow(cpNext_allocs) + ref1a31db1e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1a31db1e.Borrow(cpNext_allocs) + + var cconstantAlphaColorBlendFactors_allocs *cgoAllocMap + ref1a31db1e.constantAlphaColorBlendFactors, cconstantAlphaColorBlendFactors_allocs = (C.VkBool32)(x.ConstantAlphaColorBlendFactors), cgoAllocsUnknown + allocs1a31db1e.Borrow(cconstantAlphaColorBlendFactors_allocs) + + var cevents_allocs *cgoAllocMap + ref1a31db1e.events, cevents_allocs = (C.VkBool32)(x.Events), cgoAllocsUnknown + allocs1a31db1e.Borrow(cevents_allocs) + + 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 cmutableDescriptorTypeListCount_allocs *cgoAllocMap - ref8ef4bbb3.mutableDescriptorTypeListCount, cmutableDescriptorTypeListCount_allocs = (C.uint32_t)(x.MutableDescriptorTypeListCount), cgoAllocsUnknown - allocs8ef4bbb3.Borrow(cmutableDescriptorTypeListCount_allocs) + var cshaderSampleRateInterpolationFunctions_allocs *cgoAllocMap + ref1a31db1e.shaderSampleRateInterpolationFunctions, cshaderSampleRateInterpolationFunctions_allocs = (C.VkBool32)(x.ShaderSampleRateInterpolationFunctions), cgoAllocsUnknown + allocs1a31db1e.Borrow(cshaderSampleRateInterpolationFunctions_allocs) - var cpMutableDescriptorTypeLists_allocs *cgoAllocMap - ref8ef4bbb3.pMutableDescriptorTypeLists, cpMutableDescriptorTypeLists_allocs = unpackSMutableDescriptorTypeListVALVE(x.PMutableDescriptorTypeLists) - allocs8ef4bbb3.Borrow(cpMutableDescriptorTypeLists_allocs) + var ctessellationIsolines_allocs *cgoAllocMap + ref1a31db1e.tessellationIsolines, ctessellationIsolines_allocs = (C.VkBool32)(x.TessellationIsolines), cgoAllocsUnknown + allocs1a31db1e.Borrow(ctessellationIsolines_allocs) - x.ref8ef4bbb3 = ref8ef4bbb3 - x.allocs8ef4bbb3 = allocs8ef4bbb3 - return ref8ef4bbb3, allocs8ef4bbb3 + 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 MutableDescriptorTypeCreateInfoVALVE) PassValue() (C.VkMutableDescriptorTypeCreateInfoVALVE, *cgoAllocMap) { - if x.ref8ef4bbb3 != nil { - return *x.ref8ef4bbb3, nil +func (x PhysicalDevicePortabilitySubsetFeatures) PassValue() (C.VkPhysicalDevicePortabilitySubsetFeaturesKHR, *cgoAllocMap) { + if x.ref1a31db1e != nil { + return *x.ref1a31db1e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60172,91 +67052,104 @@ func (x MutableDescriptorTypeCreateInfoVALVE) PassValue() (C.VkMutableDescriptor // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MutableDescriptorTypeCreateInfoVALVE) Deref() { - if x.ref8ef4bbb3 == nil { +func (x *PhysicalDevicePortabilitySubsetFeatures) Deref() { + if x.ref1a31db1e == nil { return } - x.SType = (StructureType)(x.ref8ef4bbb3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8ef4bbb3.pNext)) - x.MutableDescriptorTypeListCount = (uint32)(x.ref8ef4bbb3.mutableDescriptorTypeListCount) - packSMutableDescriptorTypeListVALVE(x.PMutableDescriptorTypeLists, x.ref8ef4bbb3.pMutableDescriptorTypeLists) + 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) } -// allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT in C. +// allocPhysicalDevicePortabilitySubsetPropertiesMemory allocates memory for type C.VkPhysicalDevicePortabilitySubsetPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexInputDynamicStateFeaturesValue)) +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 sizeOfPhysicalDeviceVertexInputDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT{}) +const sizeOfPhysicalDevicePortabilitySubsetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePortabilitySubsetPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexInputDynamicStateFeatures) Ref() *C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { +func (x *PhysicalDevicePortabilitySubsetProperties) Ref() *C.VkPhysicalDevicePortabilitySubsetPropertiesKHR { if x == nil { return nil } - return x.ref69e7b956 + 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 *PhysicalDeviceVertexInputDynamicStateFeatures) Free() { - if x != nil && x.allocs69e7b956 != nil { - x.allocs69e7b956.(*cgoAllocMap).Free() - x.ref69e7b956 = nil +func (x *PhysicalDevicePortabilitySubsetProperties) Free() { + if x != nil && x.allocs8babbd5c != nil { + x.allocs8babbd5c.(*cgoAllocMap).Free() + x.ref8babbd5c = nil } } -// NewPhysicalDeviceVertexInputDynamicStateFeaturesRef 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 NewPhysicalDeviceVertexInputDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexInputDynamicStateFeatures { +func NewPhysicalDevicePortabilitySubsetPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePortabilitySubsetProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexInputDynamicStateFeatures) - obj.ref69e7b956 = (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT)(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 *PhysicalDeviceVertexInputDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDevicePortabilitySubsetProperties) PassRef() (*C.VkPhysicalDevicePortabilitySubsetPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref69e7b956 != nil { - return x.ref69e7b956, nil + } else if x.ref8babbd5c != nil { + return x.ref8babbd5c, nil } - mem69e7b956 := allocPhysicalDeviceVertexInputDynamicStateFeaturesMemory(1) - ref69e7b956 := (*C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT)(mem69e7b956) - allocs69e7b956 := new(cgoAllocMap) - allocs69e7b956.Add(mem69e7b956) + mem8babbd5c := allocPhysicalDevicePortabilitySubsetPropertiesMemory(1) + ref8babbd5c := (*C.VkPhysicalDevicePortabilitySubsetPropertiesKHR)(mem8babbd5c) + allocs8babbd5c := new(cgoAllocMap) + allocs8babbd5c.Add(mem8babbd5c) var csType_allocs *cgoAllocMap - ref69e7b956.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs69e7b956.Borrow(csType_allocs) + ref8babbd5c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8babbd5c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref69e7b956.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs69e7b956.Borrow(cpNext_allocs) + ref8babbd5c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8babbd5c.Borrow(cpNext_allocs) - var cvertexInputDynamicState_allocs *cgoAllocMap - ref69e7b956.vertexInputDynamicState, cvertexInputDynamicState_allocs = (C.VkBool32)(x.VertexInputDynamicState), cgoAllocsUnknown - allocs69e7b956.Borrow(cvertexInputDynamicState_allocs) + var cminVertexInputBindingStrideAlignment_allocs *cgoAllocMap + ref8babbd5c.minVertexInputBindingStrideAlignment, cminVertexInputBindingStrideAlignment_allocs = (C.uint32_t)(x.MinVertexInputBindingStrideAlignment), cgoAllocsUnknown + allocs8babbd5c.Borrow(cminVertexInputBindingStrideAlignment_allocs) - x.ref69e7b956 = ref69e7b956 - x.allocs69e7b956 = allocs69e7b956 - return ref69e7b956, allocs69e7b956 + 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 PhysicalDeviceVertexInputDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, *cgoAllocMap) { - if x.ref69e7b956 != nil { - return *x.ref69e7b956, nil +func (x PhysicalDevicePortabilitySubsetProperties) PassValue() (C.VkPhysicalDevicePortabilitySubsetPropertiesKHR, *cgoAllocMap) { + if x.ref8babbd5c != nil { + return *x.ref8babbd5c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60264,102 +67157,242 @@ func (x PhysicalDeviceVertexInputDynamicStateFeatures) PassValue() (C.VkPhysical // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceVertexInputDynamicStateFeatures) Deref() { - if x.ref69e7b956 == nil { +func (x *PhysicalDevicePortabilitySubsetProperties) Deref() { + if x.ref8babbd5c == nil { return } - x.SType = (StructureType)(x.ref69e7b956.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref69e7b956.pNext)) - x.VertexInputDynamicState = (Bool32)(x.ref69e7b956.vertexInputDynamicState) + x.SType = (StructureType)(x.ref8babbd5c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8babbd5c.pNext)) + x.MinVertexInputBindingStrideAlignment = (uint32)(x.ref8babbd5c.minVertexInputBindingStrideAlignment) } -// allocVertexInputBindingDescription2Memory allocates memory for type C.VkVertexInputBindingDescription2EXT in C. +// allocVideoEncodeInfoMemory allocates memory for type C.VkVideoEncodeInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocVertexInputBindingDescription2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDescription2Value)) +func allocVideoEncodeInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfVertexInputBindingDescription2Value = unsafe.Sizeof([1]C.VkVertexInputBindingDescription2EXT{}) +const sizeOfVideoEncodeInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDescription2) Ref() *C.VkVertexInputBindingDescription2EXT { +func (x *VideoEncodeInfo) Ref() *C.VkVideoEncodeInfoKHR { if x == nil { return nil } - return x.refefc9e910 + return x.ref17fdae33 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *VertexInputBindingDescription2) Free() { - if x != nil && x.allocsefc9e910 != nil { - x.allocsefc9e910.(*cgoAllocMap).Free() - x.refefc9e910 = nil +func (x *VideoEncodeInfo) Free() { + if x != nil && x.allocs17fdae33 != nil { + x.allocs17fdae33.(*cgoAllocMap).Free() + x.ref17fdae33 = nil } } -// NewVertexInputBindingDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewVertexInputBindingDescription2Ref(ref unsafe.Pointer) *VertexInputBindingDescription2 { +func NewVideoEncodeInfoRef(ref unsafe.Pointer) *VideoEncodeInfo { if ref == nil { return nil } - obj := new(VertexInputBindingDescription2) - obj.refefc9e910 = (*C.VkVertexInputBindingDescription2EXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeInfo) + obj.ref17fdae33 = (*C.VkVideoEncodeInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *VertexInputBindingDescription2) PassRef() (*C.VkVertexInputBindingDescription2EXT, *cgoAllocMap) { +func (x *VideoEncodeInfo) PassRef() (*C.VkVideoEncodeInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refefc9e910 != nil { - return x.refefc9e910, nil + } else if x.ref17fdae33 != nil { + return x.ref17fdae33, nil } - memefc9e910 := allocVertexInputBindingDescription2Memory(1) - refefc9e910 := (*C.VkVertexInputBindingDescription2EXT)(memefc9e910) - allocsefc9e910 := new(cgoAllocMap) - allocsefc9e910.Add(memefc9e910) + mem17fdae33 := allocVideoEncodeInfoMemory(1) + ref17fdae33 := (*C.VkVideoEncodeInfoKHR)(mem17fdae33) + allocs17fdae33 := new(cgoAllocMap) + allocs17fdae33.Add(mem17fdae33) var csType_allocs *cgoAllocMap - refefc9e910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsefc9e910.Borrow(csType_allocs) + ref17fdae33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17fdae33.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refefc9e910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsefc9e910.Borrow(cpNext_allocs) + ref17fdae33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17fdae33.Borrow(cpNext_allocs) - var cbinding_allocs *cgoAllocMap - refefc9e910.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsefc9e910.Borrow(cbinding_allocs) + var cflags_allocs *cgoAllocMap + ref17fdae33.flags, cflags_allocs = (C.VkVideoEncodeFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs17fdae33.Borrow(cflags_allocs) - var cstride_allocs *cgoAllocMap - refefc9e910.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown - allocsefc9e910.Borrow(cstride_allocs) + var cqualityLevel_allocs *cgoAllocMap + ref17fdae33.qualityLevel, cqualityLevel_allocs = (C.uint32_t)(x.QualityLevel), cgoAllocsUnknown + allocs17fdae33.Borrow(cqualityLevel_allocs) - var cinputRate_allocs *cgoAllocMap - refefc9e910.inputRate, cinputRate_allocs = (C.VkVertexInputRate)(x.InputRate), cgoAllocsUnknown - allocsefc9e910.Borrow(cinputRate_allocs) + var cdstBitstreamBuffer_allocs *cgoAllocMap + ref17fdae33.dstBitstreamBuffer, cdstBitstreamBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.DstBitstreamBuffer)), cgoAllocsUnknown + allocs17fdae33.Borrow(cdstBitstreamBuffer_allocs) - var cdivisor_allocs *cgoAllocMap - refefc9e910.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown - allocsefc9e910.Borrow(cdivisor_allocs) + var cdstBitstreamBufferOffset_allocs *cgoAllocMap + ref17fdae33.dstBitstreamBufferOffset, cdstBitstreamBufferOffset_allocs = (C.VkDeviceSize)(x.DstBitstreamBufferOffset), cgoAllocsUnknown + allocs17fdae33.Borrow(cdstBitstreamBufferOffset_allocs) + + var cdstBitstreamBufferMaxRange_allocs *cgoAllocMap + ref17fdae33.dstBitstreamBufferMaxRange, cdstBitstreamBufferMaxRange_allocs = (C.VkDeviceSize)(x.DstBitstreamBufferMaxRange), cgoAllocsUnknown + allocs17fdae33.Borrow(cdstBitstreamBufferMaxRange_allocs) + + var csrcPictureResource_allocs *cgoAllocMap + ref17fdae33.srcPictureResource, csrcPictureResource_allocs = x.SrcPictureResource.PassValue() + allocs17fdae33.Borrow(csrcPictureResource_allocs) + + var cpSetupReferenceSlot_allocs *cgoAllocMap + ref17fdae33.pSetupReferenceSlot, cpSetupReferenceSlot_allocs = unpackSVideoReferenceSlotInfo(x.PSetupReferenceSlot) + allocs17fdae33.Borrow(cpSetupReferenceSlot_allocs) + + var creferenceSlotCount_allocs *cgoAllocMap + ref17fdae33.referenceSlotCount, creferenceSlotCount_allocs = (C.uint32_t)(x.ReferenceSlotCount), cgoAllocsUnknown + allocs17fdae33.Borrow(creferenceSlotCount_allocs) + + var cpReferenceSlots_allocs *cgoAllocMap + ref17fdae33.pReferenceSlots, cpReferenceSlots_allocs = unpackSVideoReferenceSlotInfo(x.PReferenceSlots) + allocs17fdae33.Borrow(cpReferenceSlots_allocs) + + var cprecedingExternallyEncodedBytes_allocs *cgoAllocMap + ref17fdae33.precedingExternallyEncodedBytes, cprecedingExternallyEncodedBytes_allocs = (C.uint32_t)(x.PrecedingExternallyEncodedBytes), cgoAllocsUnknown + allocs17fdae33.Borrow(cprecedingExternallyEncodedBytes_allocs) + + x.ref17fdae33 = ref17fdae33 + x.allocs17fdae33 = allocs17fdae33 + return ref17fdae33, allocs17fdae33 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x VideoEncodeInfo) PassValue() (C.VkVideoEncodeInfoKHR, *cgoAllocMap) { + if x.ref17fdae33 != nil { + return *x.ref17fdae33, 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 *VideoEncodeInfo) Deref() { + if x.ref17fdae33 == nil { + return + } + x.SType = (StructureType)(x.ref17fdae33.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17fdae33.pNext)) + x.Flags = (VideoEncodeFlags)(x.ref17fdae33.flags) + x.QualityLevel = (uint32)(x.ref17fdae33.qualityLevel) + x.DstBitstreamBuffer = *(*Buffer)(unsafe.Pointer(&x.ref17fdae33.dstBitstreamBuffer)) + x.DstBitstreamBufferOffset = (DeviceSize)(x.ref17fdae33.dstBitstreamBufferOffset) + x.DstBitstreamBufferMaxRange = (DeviceSize)(x.ref17fdae33.dstBitstreamBufferMaxRange) + x.SrcPictureResource = *NewVideoPictureResourceInfoRef(unsafe.Pointer(&x.ref17fdae33.srcPictureResource)) + packSVideoReferenceSlotInfo(x.PSetupReferenceSlot, x.ref17fdae33.pSetupReferenceSlot) + x.ReferenceSlotCount = (uint32)(x.ref17fdae33.referenceSlotCount) + packSVideoReferenceSlotInfo(x.PReferenceSlots, x.ref17fdae33.pReferenceSlots) + x.PrecedingExternallyEncodedBytes = (uint32)(x.ref17fdae33.precedingExternallyEncodedBytes) +} + +// allocVideoEncodeCapabilitiesMemory allocates memory for type C.VkVideoEncodeCapabilitiesKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocVideoEncodeCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeCapabilitiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfVideoEncodeCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeCapabilitiesKHR{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *VideoEncodeCapabilities) Ref() *C.VkVideoEncodeCapabilitiesKHR { + if x == nil { + return nil + } + return x.ref64e7b215 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *VideoEncodeCapabilities) Free() { + if x != nil && x.allocs64e7b215 != nil { + x.allocs64e7b215.(*cgoAllocMap).Free() + x.ref64e7b215 = nil + } +} + +// NewVideoEncodeCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewVideoEncodeCapabilitiesRef(ref unsafe.Pointer) *VideoEncodeCapabilities { + if ref == nil { + return nil + } + obj := new(VideoEncodeCapabilities) + obj.ref64e7b215 = (*C.VkVideoEncodeCapabilitiesKHR)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *VideoEncodeCapabilities) PassRef() (*C.VkVideoEncodeCapabilitiesKHR, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref64e7b215 != nil { + return x.ref64e7b215, nil + } + mem64e7b215 := allocVideoEncodeCapabilitiesMemory(1) + ref64e7b215 := (*C.VkVideoEncodeCapabilitiesKHR)(mem64e7b215) + allocs64e7b215 := new(cgoAllocMap) + allocs64e7b215.Add(mem64e7b215) + + var csType_allocs *cgoAllocMap + ref64e7b215.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64e7b215.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref64e7b215.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64e7b215.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref64e7b215.flags, cflags_allocs = (C.VkVideoEncodeCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs64e7b215.Borrow(cflags_allocs) + + var crateControlModes_allocs *cgoAllocMap + ref64e7b215.rateControlModes, crateControlModes_allocs = (C.VkVideoEncodeRateControlModeFlagsKHR)(x.RateControlModes), cgoAllocsUnknown + allocs64e7b215.Borrow(crateControlModes_allocs) + + var crateControlLayerCount_allocs *cgoAllocMap + ref64e7b215.rateControlLayerCount, crateControlLayerCount_allocs = (C.uint8_t)(x.RateControlLayerCount), cgoAllocsUnknown + allocs64e7b215.Borrow(crateControlLayerCount_allocs) + + var cqualityLevelCount_allocs *cgoAllocMap + ref64e7b215.qualityLevelCount, cqualityLevelCount_allocs = (C.uint8_t)(x.QualityLevelCount), cgoAllocsUnknown + allocs64e7b215.Borrow(cqualityLevelCount_allocs) + + var cinputImageDataFillAlignment_allocs *cgoAllocMap + ref64e7b215.inputImageDataFillAlignment, cinputImageDataFillAlignment_allocs = x.InputImageDataFillAlignment.PassValue() + allocs64e7b215.Borrow(cinputImageDataFillAlignment_allocs) - x.refefc9e910 = refefc9e910 - x.allocsefc9e910 = allocsefc9e910 - return refefc9e910, allocsefc9e910 + x.ref64e7b215 = ref64e7b215 + x.allocs64e7b215 = allocs64e7b215 + return ref64e7b215, allocs64e7b215 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VertexInputBindingDescription2) PassValue() (C.VkVertexInputBindingDescription2EXT, *cgoAllocMap) { - if x.refefc9e910 != nil { - return *x.refefc9e910, nil +func (x VideoEncodeCapabilities) PassValue() (C.VkVideoEncodeCapabilitiesKHR, *cgoAllocMap) { + if x.ref64e7b215 != nil { + return *x.ref64e7b215, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60367,105 +67400,102 @@ func (x VertexInputBindingDescription2) PassValue() (C.VkVertexInputBindingDescr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *VertexInputBindingDescription2) Deref() { - if x.refefc9e910 == nil { +func (x *VideoEncodeCapabilities) Deref() { + if x.ref64e7b215 == nil { return } - x.SType = (StructureType)(x.refefc9e910.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refefc9e910.pNext)) - x.Binding = (uint32)(x.refefc9e910.binding) - x.Stride = (uint32)(x.refefc9e910.stride) - x.InputRate = (VertexInputRate)(x.refefc9e910.inputRate) - x.Divisor = (uint32)(x.refefc9e910.divisor) + x.SType = (StructureType)(x.ref64e7b215.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64e7b215.pNext)) + x.Flags = (VideoEncodeCapabilityFlags)(x.ref64e7b215.flags) + x.RateControlModes = (VideoEncodeRateControlModeFlags)(x.ref64e7b215.rateControlModes) + x.RateControlLayerCount = (byte)(x.ref64e7b215.rateControlLayerCount) + x.QualityLevelCount = (byte)(x.ref64e7b215.qualityLevelCount) + x.InputImageDataFillAlignment = *NewExtent2DRef(unsafe.Pointer(&x.ref64e7b215.inputImageDataFillAlignment)) } -// allocVertexInputAttributeDescription2Memory allocates memory for type C.VkVertexInputAttributeDescription2EXT in C. +// allocVideoEncodeUsageInfoMemory allocates memory for type C.VkVideoEncodeUsageInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocVertexInputAttributeDescription2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputAttributeDescription2Value)) +func allocVideoEncodeUsageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeUsageInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfVertexInputAttributeDescription2Value = unsafe.Sizeof([1]C.VkVertexInputAttributeDescription2EXT{}) +const sizeOfVideoEncodeUsageInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeUsageInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputAttributeDescription2) Ref() *C.VkVertexInputAttributeDescription2EXT { +func (x *VideoEncodeUsageInfo) Ref() *C.VkVideoEncodeUsageInfoKHR { if x == nil { return nil } - return x.refc6b0b55a + return x.ref8df2e1f2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *VertexInputAttributeDescription2) Free() { - if x != nil && x.allocsc6b0b55a != nil { - x.allocsc6b0b55a.(*cgoAllocMap).Free() - x.refc6b0b55a = nil +func (x *VideoEncodeUsageInfo) Free() { + if x != nil && x.allocs8df2e1f2 != nil { + x.allocs8df2e1f2.(*cgoAllocMap).Free() + x.ref8df2e1f2 = nil } } -// NewVertexInputAttributeDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeUsageInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewVertexInputAttributeDescription2Ref(ref unsafe.Pointer) *VertexInputAttributeDescription2 { +func NewVideoEncodeUsageInfoRef(ref unsafe.Pointer) *VideoEncodeUsageInfo { if ref == nil { return nil } - obj := new(VertexInputAttributeDescription2) - obj.refc6b0b55a = (*C.VkVertexInputAttributeDescription2EXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeUsageInfo) + obj.ref8df2e1f2 = (*C.VkVideoEncodeUsageInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *VertexInputAttributeDescription2) PassRef() (*C.VkVertexInputAttributeDescription2EXT, *cgoAllocMap) { +func (x *VideoEncodeUsageInfo) PassRef() (*C.VkVideoEncodeUsageInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc6b0b55a != nil { - return x.refc6b0b55a, nil + } else if x.ref8df2e1f2 != nil { + return x.ref8df2e1f2, nil } - memc6b0b55a := allocVertexInputAttributeDescription2Memory(1) - refc6b0b55a := (*C.VkVertexInputAttributeDescription2EXT)(memc6b0b55a) - allocsc6b0b55a := new(cgoAllocMap) - allocsc6b0b55a.Add(memc6b0b55a) + mem8df2e1f2 := allocVideoEncodeUsageInfoMemory(1) + ref8df2e1f2 := (*C.VkVideoEncodeUsageInfoKHR)(mem8df2e1f2) + allocs8df2e1f2 := new(cgoAllocMap) + allocs8df2e1f2.Add(mem8df2e1f2) var csType_allocs *cgoAllocMap - refc6b0b55a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc6b0b55a.Borrow(csType_allocs) + ref8df2e1f2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8df2e1f2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc6b0b55a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc6b0b55a.Borrow(cpNext_allocs) + ref8df2e1f2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8df2e1f2.Borrow(cpNext_allocs) - var clocation_allocs *cgoAllocMap - refc6b0b55a.location, clocation_allocs = (C.uint32_t)(x.Location), cgoAllocsUnknown - allocsc6b0b55a.Borrow(clocation_allocs) + var cvideoUsageHints_allocs *cgoAllocMap + ref8df2e1f2.videoUsageHints, cvideoUsageHints_allocs = (C.VkVideoEncodeUsageFlagsKHR)(x.VideoUsageHints), cgoAllocsUnknown + allocs8df2e1f2.Borrow(cvideoUsageHints_allocs) - var cbinding_allocs *cgoAllocMap - refc6b0b55a.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsc6b0b55a.Borrow(cbinding_allocs) + var cvideoContentHints_allocs *cgoAllocMap + ref8df2e1f2.videoContentHints, cvideoContentHints_allocs = (C.VkVideoEncodeContentFlagsKHR)(x.VideoContentHints), cgoAllocsUnknown + allocs8df2e1f2.Borrow(cvideoContentHints_allocs) - var cformat_allocs *cgoAllocMap - refc6b0b55a.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsc6b0b55a.Borrow(cformat_allocs) - - var coffset_allocs *cgoAllocMap - refc6b0b55a.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocsc6b0b55a.Borrow(coffset_allocs) + var ctuningMode_allocs *cgoAllocMap + ref8df2e1f2.tuningMode, ctuningMode_allocs = (C.VkVideoEncodeTuningModeKHR)(x.TuningMode), cgoAllocsUnknown + allocs8df2e1f2.Borrow(ctuningMode_allocs) - x.refc6b0b55a = refc6b0b55a - x.allocsc6b0b55a = allocsc6b0b55a - return refc6b0b55a, allocsc6b0b55a + x.ref8df2e1f2 = ref8df2e1f2 + x.allocs8df2e1f2 = allocs8df2e1f2 + return ref8df2e1f2, allocs8df2e1f2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VertexInputAttributeDescription2) PassValue() (C.VkVertexInputAttributeDescription2EXT, *cgoAllocMap) { - if x.refc6b0b55a != nil { - return *x.refc6b0b55a, nil +func (x VideoEncodeUsageInfo) PassValue() (C.VkVideoEncodeUsageInfoKHR, *cgoAllocMap) { + if x.ref8df2e1f2 != nil { + return *x.ref8df2e1f2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60473,113 +67503,112 @@ func (x VertexInputAttributeDescription2) PassValue() (C.VkVertexInputAttributeD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *VertexInputAttributeDescription2) Deref() { - if x.refc6b0b55a == nil { +func (x *VideoEncodeUsageInfo) Deref() { + if x.ref8df2e1f2 == nil { return } - x.SType = (StructureType)(x.refc6b0b55a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc6b0b55a.pNext)) - x.Location = (uint32)(x.refc6b0b55a.location) - x.Binding = (uint32)(x.refc6b0b55a.binding) - x.Format = (Format)(x.refc6b0b55a.format) - x.Offset = (uint32)(x.refc6b0b55a.offset) + x.SType = (StructureType)(x.ref8df2e1f2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8df2e1f2.pNext)) + x.VideoUsageHints = (VideoEncodeUsageFlags)(x.ref8df2e1f2.videoUsageHints) + x.VideoContentHints = (VideoEncodeContentFlags)(x.ref8df2e1f2.videoContentHints) + x.TuningMode = (VideoEncodeTuningMode)(x.ref8df2e1f2.tuningMode) } -// allocPhysicalDeviceDrmPropertiesMemory allocates memory for type C.VkPhysicalDeviceDrmPropertiesEXT in C. +// allocVideoEncodeRateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeRateControlLayerInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDrmPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDrmPropertiesValue)) +func allocVideoEncodeRateControlLayerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeRateControlLayerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDrmPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDrmPropertiesEXT{}) +const sizeOfVideoEncodeRateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeRateControlLayerInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDrmProperties) Ref() *C.VkPhysicalDeviceDrmPropertiesEXT { +func (x *VideoEncodeRateControlLayerInfo) Ref() *C.VkVideoEncodeRateControlLayerInfoKHR { if x == nil { return nil } - return x.refc94c064 + return x.refa859f41d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDrmProperties) Free() { - if x != nil && x.allocsc94c064 != nil { - x.allocsc94c064.(*cgoAllocMap).Free() - x.refc94c064 = nil +func (x *VideoEncodeRateControlLayerInfo) Free() { + if x != nil && x.allocsa859f41d != nil { + x.allocsa859f41d.(*cgoAllocMap).Free() + x.refa859f41d = nil } } -// NewPhysicalDeviceDrmPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeRateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDrmPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDrmProperties { +func NewVideoEncodeRateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeRateControlLayerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceDrmProperties) - obj.refc94c064 = (*C.VkPhysicalDeviceDrmPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeRateControlLayerInfo) + obj.refa859f41d = (*C.VkVideoEncodeRateControlLayerInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDrmProperties) PassRef() (*C.VkPhysicalDeviceDrmPropertiesEXT, *cgoAllocMap) { +func (x *VideoEncodeRateControlLayerInfo) PassRef() (*C.VkVideoEncodeRateControlLayerInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc94c064 != nil { - return x.refc94c064, nil + } else if x.refa859f41d != nil { + return x.refa859f41d, nil } - memc94c064 := allocPhysicalDeviceDrmPropertiesMemory(1) - refc94c064 := (*C.VkPhysicalDeviceDrmPropertiesEXT)(memc94c064) - allocsc94c064 := new(cgoAllocMap) - allocsc94c064.Add(memc94c064) + mema859f41d := allocVideoEncodeRateControlLayerInfoMemory(1) + refa859f41d := (*C.VkVideoEncodeRateControlLayerInfoKHR)(mema859f41d) + allocsa859f41d := new(cgoAllocMap) + allocsa859f41d.Add(mema859f41d) var csType_allocs *cgoAllocMap - refc94c064.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc94c064.Borrow(csType_allocs) + refa859f41d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa859f41d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc94c064.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc94c064.Borrow(cpNext_allocs) + refa859f41d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa859f41d.Borrow(cpNext_allocs) - var chasPrimary_allocs *cgoAllocMap - refc94c064.hasPrimary, chasPrimary_allocs = (C.VkBool32)(x.HasPrimary), cgoAllocsUnknown - allocsc94c064.Borrow(chasPrimary_allocs) + var caverageBitrate_allocs *cgoAllocMap + refa859f41d.averageBitrate, caverageBitrate_allocs = (C.uint32_t)(x.AverageBitrate), cgoAllocsUnknown + allocsa859f41d.Borrow(caverageBitrate_allocs) - var chasRender_allocs *cgoAllocMap - refc94c064.hasRender, chasRender_allocs = (C.VkBool32)(x.HasRender), cgoAllocsUnknown - allocsc94c064.Borrow(chasRender_allocs) + var cmaxBitrate_allocs *cgoAllocMap + refa859f41d.maxBitrate, cmaxBitrate_allocs = (C.uint32_t)(x.MaxBitrate), cgoAllocsUnknown + allocsa859f41d.Borrow(cmaxBitrate_allocs) - var cprimaryMajor_allocs *cgoAllocMap - refc94c064.primaryMajor, cprimaryMajor_allocs = (C.int64_t)(x.PrimaryMajor), cgoAllocsUnknown - allocsc94c064.Borrow(cprimaryMajor_allocs) + var cframeRateNumerator_allocs *cgoAllocMap + refa859f41d.frameRateNumerator, cframeRateNumerator_allocs = (C.uint32_t)(x.FrameRateNumerator), cgoAllocsUnknown + allocsa859f41d.Borrow(cframeRateNumerator_allocs) - var cprimaryMinor_allocs *cgoAllocMap - refc94c064.primaryMinor, cprimaryMinor_allocs = (C.int64_t)(x.PrimaryMinor), cgoAllocsUnknown - allocsc94c064.Borrow(cprimaryMinor_allocs) + var cframeRateDenominator_allocs *cgoAllocMap + refa859f41d.frameRateDenominator, cframeRateDenominator_allocs = (C.uint32_t)(x.FrameRateDenominator), cgoAllocsUnknown + allocsa859f41d.Borrow(cframeRateDenominator_allocs) - var crenderMajor_allocs *cgoAllocMap - refc94c064.renderMajor, crenderMajor_allocs = (C.int64_t)(x.RenderMajor), cgoAllocsUnknown - allocsc94c064.Borrow(crenderMajor_allocs) + var cvirtualBufferSizeInMs_allocs *cgoAllocMap + refa859f41d.virtualBufferSizeInMs, cvirtualBufferSizeInMs_allocs = (C.uint32_t)(x.VirtualBufferSizeInMs), cgoAllocsUnknown + allocsa859f41d.Borrow(cvirtualBufferSizeInMs_allocs) - var crenderMinor_allocs *cgoAllocMap - refc94c064.renderMinor, crenderMinor_allocs = (C.int64_t)(x.RenderMinor), cgoAllocsUnknown - allocsc94c064.Borrow(crenderMinor_allocs) + var cinitialVirtualBufferSizeInMs_allocs *cgoAllocMap + refa859f41d.initialVirtualBufferSizeInMs, cinitialVirtualBufferSizeInMs_allocs = (C.uint32_t)(x.InitialVirtualBufferSizeInMs), cgoAllocsUnknown + allocsa859f41d.Borrow(cinitialVirtualBufferSizeInMs_allocs) - x.refc94c064 = refc94c064 - x.allocsc94c064 = allocsc94c064 - return refc94c064, allocsc94c064 + x.refa859f41d = refa859f41d + x.allocsa859f41d = allocsa859f41d + return refa859f41d, allocsa859f41d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDrmProperties) PassValue() (C.VkPhysicalDeviceDrmPropertiesEXT, *cgoAllocMap) { - if x.refc94c064 != nil { - return *x.refc94c064, nil +func (x VideoEncodeRateControlLayerInfo) PassValue() (C.VkVideoEncodeRateControlLayerInfoKHR, *cgoAllocMap) { + if x.refa859f41d != nil { + return *x.refa859f41d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60587,186 +67616,145 @@ func (x PhysicalDeviceDrmProperties) PassValue() (C.VkPhysicalDeviceDrmPropertie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDrmProperties) Deref() { - if x.refc94c064 == nil { +func (x *VideoEncodeRateControlLayerInfo) Deref() { + if x.refa859f41d == nil { return } - x.SType = (StructureType)(x.refc94c064.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc94c064.pNext)) - x.HasPrimary = (Bool32)(x.refc94c064.hasPrimary) - x.HasRender = (Bool32)(x.refc94c064.hasRender) - x.PrimaryMajor = (int64)(x.refc94c064.primaryMajor) - x.PrimaryMinor = (int64)(x.refc94c064.primaryMinor) - x.RenderMajor = (int64)(x.refc94c064.renderMajor) - x.RenderMinor = (int64)(x.refc94c064.renderMinor) + x.SType = (StructureType)(x.refa859f41d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa859f41d.pNext)) + x.AverageBitrate = (uint32)(x.refa859f41d.averageBitrate) + x.MaxBitrate = (uint32)(x.refa859f41d.maxBitrate) + x.FrameRateNumerator = (uint32)(x.refa859f41d.frameRateNumerator) + x.FrameRateDenominator = (uint32)(x.refa859f41d.frameRateDenominator) + x.VirtualBufferSizeInMs = (uint32)(x.refa859f41d.virtualBufferSizeInMs) + x.InitialVirtualBufferSizeInMs = (uint32)(x.refa859f41d.initialVirtualBufferSizeInMs) } -// allocPhysicalDeviceDepthClipControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipControlFeaturesEXT in C. +// allocVideoEncodeRateControlInfoMemory allocates memory for type C.VkVideoEncodeRateControlInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDepthClipControlFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipControlFeaturesValue)) +func allocVideoEncodeRateControlInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeRateControlInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDepthClipControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipControlFeaturesEXT{}) +const sizeOfVideoEncodeRateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeRateControlInfoKHR{}) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDepthClipControlFeatures) Ref() *C.VkPhysicalDeviceDepthClipControlFeaturesEXT { - if x == nil { - return nil - } - return x.ref2632e03a -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDepthClipControlFeatures) Free() { - if x != nil && x.allocs2632e03a != nil { - x.allocs2632e03a.(*cgoAllocMap).Free() - x.ref2632e03a = nil - } -} - -// NewPhysicalDeviceDepthClipControlFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDepthClipControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipControlFeatures { - if ref == nil { - return nil - } - obj := new(PhysicalDeviceDepthClipControlFeatures) - obj.ref2632e03a = (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDepthClipControlFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT, *cgoAllocMap) { +// unpackSVideoEncodeRateControlLayerInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeRateControlLayerInfo(x []VideoEncodeRateControlLayerInfo) (unpacked *C.VkVideoEncodeRateControlLayerInfoKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2632e03a != nil { - return x.ref2632e03a, nil } - mem2632e03a := allocPhysicalDeviceDepthClipControlFeaturesMemory(1) - ref2632e03a := (*C.VkPhysicalDeviceDepthClipControlFeaturesEXT)(mem2632e03a) - allocs2632e03a := new(cgoAllocMap) - allocs2632e03a.Add(mem2632e03a) - - var csType_allocs *cgoAllocMap - ref2632e03a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2632e03a.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref2632e03a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2632e03a.Borrow(cpNext_allocs) - - var cdepthClipControl_allocs *cgoAllocMap - ref2632e03a.depthClipControl, cdepthClipControl_allocs = (C.VkBool32)(x.DepthClipControl), cgoAllocsUnknown - allocs2632e03a.Borrow(cdepthClipControl_allocs) - - x.ref2632e03a = ref2632e03a - x.allocs2632e03a = allocs2632e03a - return ref2632e03a, allocs2632e03a - -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeRateControlLayerInfoKHR) { + go allocs.Free() + }) -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDepthClipControlFeatures) PassValue() (C.VkPhysicalDeviceDepthClipControlFeaturesEXT, *cgoAllocMap) { - if x.ref2632e03a != nil { - return *x.ref2632e03a, nil + len0 := len(x) + mem0 := allocVideoEncodeRateControlLayerInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, } - 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 *PhysicalDeviceDepthClipControlFeatures) Deref() { - if x.ref2632e03a == nil { - return + v0 := *(*[]C.VkVideoEncodeRateControlLayerInfoKHR)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) } - x.SType = (StructureType)(x.ref2632e03a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2632e03a.pNext)) - x.DepthClipControl = (Bool32)(x.ref2632e03a.depthClipControl) + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVideoEncodeRateControlLayerInfoKHR)(h.Data) + return } -// allocPipelineViewportDepthClipControlCreateInfoMemory allocates memory for type C.VkPipelineViewportDepthClipControlCreateInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportDepthClipControlCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportDepthClipControlCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// packSVideoEncodeRateControlLayerInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeRateControlLayerInfo(v []VideoEncodeRateControlLayerInfo, ptr0 *C.VkVideoEncodeRateControlLayerInfoKHR) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeRateControlLayerInfoValue]C.VkVideoEncodeRateControlLayerInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeRateControlLayerInfoRef(unsafe.Pointer(&ptr1)) } - return mem } -const sizeOfPipelineViewportDepthClipControlCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineViewportDepthClipControlCreateInfoEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportDepthClipControlCreateInfo) Ref() *C.VkPipelineViewportDepthClipControlCreateInfoEXT { +func (x *VideoEncodeRateControlInfo) Ref() *C.VkVideoEncodeRateControlInfoKHR { if x == nil { return nil } - return x.ref6e11056b + return x.ref6cd9cba3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportDepthClipControlCreateInfo) Free() { - if x != nil && x.allocs6e11056b != nil { - x.allocs6e11056b.(*cgoAllocMap).Free() - x.ref6e11056b = nil +func (x *VideoEncodeRateControlInfo) Free() { + if x != nil && x.allocs6cd9cba3 != nil { + x.allocs6cd9cba3.(*cgoAllocMap).Free() + x.ref6cd9cba3 = nil } } -// NewPipelineViewportDepthClipControlCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeRateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportDepthClipControlCreateInfoRef(ref unsafe.Pointer) *PipelineViewportDepthClipControlCreateInfo { +func NewVideoEncodeRateControlInfoRef(ref unsafe.Pointer) *VideoEncodeRateControlInfo { if ref == nil { return nil } - obj := new(PipelineViewportDepthClipControlCreateInfo) - obj.ref6e11056b = (*C.VkPipelineViewportDepthClipControlCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeRateControlInfo) + obj.ref6cd9cba3 = (*C.VkVideoEncodeRateControlInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportDepthClipControlCreateInfo) PassRef() (*C.VkPipelineViewportDepthClipControlCreateInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeRateControlInfo) PassRef() (*C.VkVideoEncodeRateControlInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6e11056b != nil { - return x.ref6e11056b, nil + } else if x.ref6cd9cba3 != nil { + return x.ref6cd9cba3, nil } - mem6e11056b := allocPipelineViewportDepthClipControlCreateInfoMemory(1) - ref6e11056b := (*C.VkPipelineViewportDepthClipControlCreateInfoEXT)(mem6e11056b) - allocs6e11056b := new(cgoAllocMap) - allocs6e11056b.Add(mem6e11056b) + mem6cd9cba3 := allocVideoEncodeRateControlInfoMemory(1) + ref6cd9cba3 := (*C.VkVideoEncodeRateControlInfoKHR)(mem6cd9cba3) + allocs6cd9cba3 := new(cgoAllocMap) + allocs6cd9cba3.Add(mem6cd9cba3) var csType_allocs *cgoAllocMap - ref6e11056b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6e11056b.Borrow(csType_allocs) + ref6cd9cba3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6cd9cba3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6e11056b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6e11056b.Borrow(cpNext_allocs) + ref6cd9cba3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6cd9cba3.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref6cd9cba3.flags, cflags_allocs = (C.VkVideoEncodeRateControlFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs6cd9cba3.Borrow(cflags_allocs) - var cnegativeOneToOne_allocs *cgoAllocMap - ref6e11056b.negativeOneToOne, cnegativeOneToOne_allocs = (C.VkBool32)(x.NegativeOneToOne), cgoAllocsUnknown - allocs6e11056b.Borrow(cnegativeOneToOne_allocs) + var crateControlMode_allocs *cgoAllocMap + ref6cd9cba3.rateControlMode, crateControlMode_allocs = (C.VkVideoEncodeRateControlModeFlagBitsKHR)(x.RateControlMode), cgoAllocsUnknown + allocs6cd9cba3.Borrow(crateControlMode_allocs) - x.ref6e11056b = ref6e11056b - x.allocs6e11056b = allocs6e11056b - return ref6e11056b, allocs6e11056b + var clayerCount_allocs *cgoAllocMap + ref6cd9cba3.layerCount, clayerCount_allocs = (C.uint8_t)(x.LayerCount), cgoAllocsUnknown + allocs6cd9cba3.Borrow(clayerCount_allocs) + + var cpLayerConfigs_allocs *cgoAllocMap + ref6cd9cba3.pLayerConfigs, cpLayerConfigs_allocs = unpackSVideoEncodeRateControlLayerInfo(x.PLayerConfigs) + allocs6cd9cba3.Borrow(cpLayerConfigs_allocs) + + x.ref6cd9cba3 = ref6cd9cba3 + x.allocs6cd9cba3 = allocs6cd9cba3 + return ref6cd9cba3, allocs6cd9cba3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportDepthClipControlCreateInfo) PassValue() (C.VkPipelineViewportDepthClipControlCreateInfoEXT, *cgoAllocMap) { - if x.ref6e11056b != nil { - return *x.ref6e11056b, nil +func (x VideoEncodeRateControlInfo) PassValue() (C.VkVideoEncodeRateControlInfoKHR, *cgoAllocMap) { + if x.ref6cd9cba3 != nil { + return *x.ref6cd9cba3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60774,94 +67762,133 @@ func (x PipelineViewportDepthClipControlCreateInfo) PassValue() (C.VkPipelineVie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportDepthClipControlCreateInfo) Deref() { - if x.ref6e11056b == nil { +func (x *VideoEncodeRateControlInfo) Deref() { + if x.ref6cd9cba3 == nil { return } - x.SType = (StructureType)(x.ref6e11056b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6e11056b.pNext)) - x.NegativeOneToOne = (Bool32)(x.ref6e11056b.negativeOneToOne) + x.SType = (StructureType)(x.ref6cd9cba3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6cd9cba3.pNext)) + x.Flags = (VideoEncodeRateControlFlags)(x.ref6cd9cba3.flags) + x.RateControlMode = (VideoEncodeRateControlModeFlagBits)(x.ref6cd9cba3.rateControlMode) + x.LayerCount = (byte)(x.ref6cd9cba3.layerCount) + packSVideoEncodeRateControlLayerInfo(x.PLayerConfigs, x.ref6cd9cba3.pLayerConfigs) } -// allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory allocates memory for type C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT in C. +// allocVideoEncodeH264CapabilitiesMemory allocates memory for type C.VkVideoEncodeH264CapabilitiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitiveTopologyListRestartFeaturesValue)) +func allocVideoEncodeH264CapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264CapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePrimitiveTopologyListRestartFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT{}) +const sizeOfVideoEncodeH264CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeH264CapabilitiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePrimitiveTopologyListRestartFeatures) Ref() *C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { +func (x *VideoEncodeH264Capabilities) Ref() *C.VkVideoEncodeH264CapabilitiesEXT { if x == nil { return nil } - return x.ref620627bc + return x.reffabc5de4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePrimitiveTopologyListRestartFeatures) Free() { - if x != nil && x.allocs620627bc != nil { - x.allocs620627bc.(*cgoAllocMap).Free() - x.ref620627bc = nil +func (x *VideoEncodeH264Capabilities) Free() { + if x != nil && x.allocsfabc5de4 != nil { + x.allocsfabc5de4.(*cgoAllocMap).Free() + x.reffabc5de4 = nil } } -// NewPhysicalDevicePrimitiveTopologyListRestartFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePrimitiveTopologyListRestartFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePrimitiveTopologyListRestartFeatures { +func NewVideoEncodeH264CapabilitiesRef(ref unsafe.Pointer) *VideoEncodeH264Capabilities { if ref == nil { return nil } - obj := new(PhysicalDevicePrimitiveTopologyListRestartFeatures) - obj.ref620627bc = (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264Capabilities) + obj.reffabc5de4 = (*C.VkVideoEncodeH264CapabilitiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePrimitiveTopologyListRestartFeatures) PassRef() (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264Capabilities) PassRef() (*C.VkVideoEncodeH264CapabilitiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref620627bc != nil { - return x.ref620627bc, nil + } else if x.reffabc5de4 != nil { + return x.reffabc5de4, nil } - mem620627bc := allocPhysicalDevicePrimitiveTopologyListRestartFeaturesMemory(1) - ref620627bc := (*C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)(mem620627bc) - allocs620627bc := new(cgoAllocMap) - allocs620627bc.Add(mem620627bc) + memfabc5de4 := allocVideoEncodeH264CapabilitiesMemory(1) + reffabc5de4 := (*C.VkVideoEncodeH264CapabilitiesEXT)(memfabc5de4) + allocsfabc5de4 := new(cgoAllocMap) + allocsfabc5de4.Add(memfabc5de4) var csType_allocs *cgoAllocMap - ref620627bc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs620627bc.Borrow(csType_allocs) + reffabc5de4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfabc5de4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref620627bc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs620627bc.Borrow(cpNext_allocs) + reffabc5de4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfabc5de4.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reffabc5de4.flags, cflags_allocs = (C.VkVideoEncodeH264CapabilityFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsfabc5de4.Borrow(cflags_allocs) + + var cinputModeFlags_allocs *cgoAllocMap + reffabc5de4.inputModeFlags, cinputModeFlags_allocs = (C.VkVideoEncodeH264InputModeFlagsEXT)(x.InputModeFlags), cgoAllocsUnknown + allocsfabc5de4.Borrow(cinputModeFlags_allocs) + + var coutputModeFlags_allocs *cgoAllocMap + reffabc5de4.outputModeFlags, coutputModeFlags_allocs = (C.VkVideoEncodeH264OutputModeFlagsEXT)(x.OutputModeFlags), cgoAllocsUnknown + allocsfabc5de4.Borrow(coutputModeFlags_allocs) + + var cmaxPPictureL0ReferenceCount_allocs *cgoAllocMap + reffabc5de4.maxPPictureL0ReferenceCount, cmaxPPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxPPictureL0ReferenceCount), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmaxPPictureL0ReferenceCount_allocs) + + var cmaxBPictureL0ReferenceCount_allocs *cgoAllocMap + reffabc5de4.maxBPictureL0ReferenceCount, cmaxBPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxBPictureL0ReferenceCount), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmaxBPictureL0ReferenceCount_allocs) - var cprimitiveTopologyListRestart_allocs *cgoAllocMap - ref620627bc.primitiveTopologyListRestart, cprimitiveTopologyListRestart_allocs = (C.VkBool32)(x.PrimitiveTopologyListRestart), cgoAllocsUnknown - allocs620627bc.Borrow(cprimitiveTopologyListRestart_allocs) + var cmaxL1ReferenceCount_allocs *cgoAllocMap + reffabc5de4.maxL1ReferenceCount, cmaxL1ReferenceCount_allocs = (C.uint8_t)(x.MaxL1ReferenceCount), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmaxL1ReferenceCount_allocs) - var cprimitiveTopologyPatchListRestart_allocs *cgoAllocMap - ref620627bc.primitiveTopologyPatchListRestart, cprimitiveTopologyPatchListRestart_allocs = (C.VkBool32)(x.PrimitiveTopologyPatchListRestart), cgoAllocsUnknown - allocs620627bc.Borrow(cprimitiveTopologyPatchListRestart_allocs) + var cmotionVectorsOverPicBoundariesFlag_allocs *cgoAllocMap + reffabc5de4.motionVectorsOverPicBoundariesFlag, cmotionVectorsOverPicBoundariesFlag_allocs = (C.VkBool32)(x.MotionVectorsOverPicBoundariesFlag), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmotionVectorsOverPicBoundariesFlag_allocs) - x.ref620627bc = ref620627bc - x.allocs620627bc = allocs620627bc - return ref620627bc, allocs620627bc + var cmaxBytesPerPicDenom_allocs *cgoAllocMap + reffabc5de4.maxBytesPerPicDenom, cmaxBytesPerPicDenom_allocs = (C.uint32_t)(x.MaxBytesPerPicDenom), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmaxBytesPerPicDenom_allocs) + + var cmaxBitsPerMbDenom_allocs *cgoAllocMap + reffabc5de4.maxBitsPerMbDenom, cmaxBitsPerMbDenom_allocs = (C.uint32_t)(x.MaxBitsPerMbDenom), cgoAllocsUnknown + allocsfabc5de4.Borrow(cmaxBitsPerMbDenom_allocs) + + var clog2MaxMvLengthHorizontal_allocs *cgoAllocMap + reffabc5de4.log2MaxMvLengthHorizontal, clog2MaxMvLengthHorizontal_allocs = (C.uint32_t)(x.Log2MaxMvLengthHorizontal), cgoAllocsUnknown + allocsfabc5de4.Borrow(clog2MaxMvLengthHorizontal_allocs) + + var clog2MaxMvLengthVertical_allocs *cgoAllocMap + reffabc5de4.log2MaxMvLengthVertical, clog2MaxMvLengthVertical_allocs = (C.uint32_t)(x.Log2MaxMvLengthVertical), cgoAllocsUnknown + allocsfabc5de4.Borrow(clog2MaxMvLengthVertical_allocs) + + x.reffabc5de4 = reffabc5de4 + x.allocsfabc5de4 = allocsfabc5de4 + return reffabc5de4, allocsfabc5de4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePrimitiveTopologyListRestartFeatures) PassValue() (C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, *cgoAllocMap) { - if x.ref620627bc != nil { - return *x.ref620627bc, nil +func (x VideoEncodeH264Capabilities) PassValue() (C.VkVideoEncodeH264CapabilitiesEXT, *cgoAllocMap) { + if x.reffabc5de4 != nil { + return *x.reffabc5de4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60869,95 +67896,104 @@ func (x PhysicalDevicePrimitiveTopologyListRestartFeatures) 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 *PhysicalDevicePrimitiveTopologyListRestartFeatures) Deref() { - if x.ref620627bc == nil { +func (x *VideoEncodeH264Capabilities) Deref() { + if x.reffabc5de4 == nil { return } - x.SType = (StructureType)(x.ref620627bc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref620627bc.pNext)) - x.PrimitiveTopologyListRestart = (Bool32)(x.ref620627bc.primitiveTopologyListRestart) - x.PrimitiveTopologyPatchListRestart = (Bool32)(x.ref620627bc.primitiveTopologyPatchListRestart) + x.SType = (StructureType)(x.reffabc5de4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffabc5de4.pNext)) + x.Flags = (VideoEncodeH264CapabilityFlags)(x.reffabc5de4.flags) + x.InputModeFlags = (VideoEncodeH264InputModeFlags)(x.reffabc5de4.inputModeFlags) + x.OutputModeFlags = (VideoEncodeH264OutputModeFlags)(x.reffabc5de4.outputModeFlags) + x.MaxPPictureL0ReferenceCount = (byte)(x.reffabc5de4.maxPPictureL0ReferenceCount) + x.MaxBPictureL0ReferenceCount = (byte)(x.reffabc5de4.maxBPictureL0ReferenceCount) + x.MaxL1ReferenceCount = (byte)(x.reffabc5de4.maxL1ReferenceCount) + x.MotionVectorsOverPicBoundariesFlag = (Bool32)(x.reffabc5de4.motionVectorsOverPicBoundariesFlag) + x.MaxBytesPerPicDenom = (uint32)(x.reffabc5de4.maxBytesPerPicDenom) + x.MaxBitsPerMbDenom = (uint32)(x.reffabc5de4.maxBitsPerMbDenom) + x.Log2MaxMvLengthHorizontal = (uint32)(x.reffabc5de4.log2MaxMvLengthHorizontal) + x.Log2MaxMvLengthVertical = (uint32)(x.reffabc5de4.log2MaxMvLengthVertical) } -// allocSubpassShadingPipelineCreateInfoHUAWEIMemory allocates memory for type C.VkSubpassShadingPipelineCreateInfoHUAWEI in C. +// allocVideoEncodeH264SessionParametersAddInfoMemory allocates memory for type C.VkVideoEncodeH264SessionParametersAddInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassShadingPipelineCreateInfoHUAWEIMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassShadingPipelineCreateInfoHUAWEIValue)) +func allocVideoEncodeH264SessionParametersAddInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264SessionParametersAddInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassShadingPipelineCreateInfoHUAWEIValue = unsafe.Sizeof([1]C.VkSubpassShadingPipelineCreateInfoHUAWEI{}) +const sizeOfVideoEncodeH264SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264SessionParametersAddInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassShadingPipelineCreateInfoHUAWEI) Ref() *C.VkSubpassShadingPipelineCreateInfoHUAWEI { +func (x *VideoEncodeH264SessionParametersAddInfo) Ref() *C.VkVideoEncodeH264SessionParametersAddInfoEXT { if x == nil { return nil } - return x.ref991efdae + return x.ref9aeed90f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassShadingPipelineCreateInfoHUAWEI) Free() { - if x != nil && x.allocs991efdae != nil { - x.allocs991efdae.(*cgoAllocMap).Free() - x.ref991efdae = nil +func (x *VideoEncodeH264SessionParametersAddInfo) Free() { + if x != nil && x.allocs9aeed90f != nil { + x.allocs9aeed90f.(*cgoAllocMap).Free() + x.ref9aeed90f = nil } } -// NewSubpassShadingPipelineCreateInfoHUAWEIRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassShadingPipelineCreateInfoHUAWEIRef(ref unsafe.Pointer) *SubpassShadingPipelineCreateInfoHUAWEI { +func NewVideoEncodeH264SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoEncodeH264SessionParametersAddInfo { if ref == nil { return nil } - obj := new(SubpassShadingPipelineCreateInfoHUAWEI) - obj.ref991efdae = (*C.VkSubpassShadingPipelineCreateInfoHUAWEI)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264SessionParametersAddInfo) + obj.ref9aeed90f = (*C.VkVideoEncodeH264SessionParametersAddInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassShadingPipelineCreateInfoHUAWEI) PassRef() (*C.VkSubpassShadingPipelineCreateInfoHUAWEI, *cgoAllocMap) { +func (x *VideoEncodeH264SessionParametersAddInfo) PassRef() (*C.VkVideoEncodeH264SessionParametersAddInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref991efdae != nil { - return x.ref991efdae, nil + } else if x.ref9aeed90f != nil { + return x.ref9aeed90f, nil } - mem991efdae := allocSubpassShadingPipelineCreateInfoHUAWEIMemory(1) - ref991efdae := (*C.VkSubpassShadingPipelineCreateInfoHUAWEI)(mem991efdae) - allocs991efdae := new(cgoAllocMap) - allocs991efdae.Add(mem991efdae) + mem9aeed90f := allocVideoEncodeH264SessionParametersAddInfoMemory(1) + ref9aeed90f := (*C.VkVideoEncodeH264SessionParametersAddInfoEXT)(mem9aeed90f) + allocs9aeed90f := new(cgoAllocMap) + allocs9aeed90f.Add(mem9aeed90f) var csType_allocs *cgoAllocMap - ref991efdae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs991efdae.Borrow(csType_allocs) + ref9aeed90f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9aeed90f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref991efdae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs991efdae.Borrow(cpNext_allocs) + ref9aeed90f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9aeed90f.Borrow(cpNext_allocs) - var crenderPass_allocs *cgoAllocMap - ref991efdae.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown - allocs991efdae.Borrow(crenderPass_allocs) + var cstdSPSCount_allocs *cgoAllocMap + ref9aeed90f.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown + allocs9aeed90f.Borrow(cstdSPSCount_allocs) - var csubpass_allocs *cgoAllocMap - ref991efdae.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown - allocs991efdae.Borrow(csubpass_allocs) + var cstdPPSCount_allocs *cgoAllocMap + ref9aeed90f.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown + allocs9aeed90f.Borrow(cstdPPSCount_allocs) - x.ref991efdae = ref991efdae - x.allocs991efdae = allocs991efdae - return ref991efdae, allocs991efdae + x.ref9aeed90f = ref9aeed90f + x.allocs9aeed90f = allocs9aeed90f + return ref9aeed90f, allocs9aeed90f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassShadingPipelineCreateInfoHUAWEI) PassValue() (C.VkSubpassShadingPipelineCreateInfoHUAWEI, *cgoAllocMap) { - if x.ref991efdae != nil { - return *x.ref991efdae, nil +func (x VideoEncodeH264SessionParametersAddInfo) PassValue() (C.VkVideoEncodeH264SessionParametersAddInfoEXT, *cgoAllocMap) { + if x.ref9aeed90f != nil { + return *x.ref9aeed90f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -60965,182 +68001,137 @@ func (x SubpassShadingPipelineCreateInfoHUAWEI) PassValue() (C.VkSubpassShadingP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassShadingPipelineCreateInfoHUAWEI) Deref() { - if x.ref991efdae == nil { +func (x *VideoEncodeH264SessionParametersAddInfo) Deref() { + if x.ref9aeed90f == nil { return } - x.SType = (StructureType)(x.ref991efdae.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref991efdae.pNext)) - x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref991efdae.renderPass)) - x.Subpass = (uint32)(x.ref991efdae.subpass) + x.SType = (StructureType)(x.ref9aeed90f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9aeed90f.pNext)) + x.StdSPSCount = (uint32)(x.ref9aeed90f.stdSPSCount) + x.StdPPSCount = (uint32)(x.ref9aeed90f.stdPPSCount) } -// allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI in C. +// allocVideoEncodeH264SessionParametersCreateInfoMemory allocates memory for type C.VkVideoEncodeH264SessionParametersCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingFeaturesHUAWEIValue)) +func allocVideoEncodeH264SessionParametersCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264SessionParametersCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSubpassShadingFeaturesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI{}) +const sizeOfVideoEncodeH264SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264SessionParametersCreateInfoEXT{}) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Ref() *C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { - if x == nil { - return nil - } - return x.reff3cfce3e -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Free() { - if x != nil && x.allocsf3cfce3e != nil { - x.allocsf3cfce3e.(*cgoAllocMap).Free() - x.reff3cfce3e = nil - } -} - -// NewPhysicalDeviceSubpassShadingFeaturesHUAWEIRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSubpassShadingFeaturesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceSubpassShadingFeaturesHUAWEI { - if ref == nil { - return nil - } - obj := new(PhysicalDeviceSubpassShadingFeaturesHUAWEI) - obj.reff3cfce3e = (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSubpassShadingFeaturesHUAWEI) PassRef() (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, *cgoAllocMap) { +// unpackSVideoEncodeH264SessionParametersAddInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH264SessionParametersAddInfo(x []VideoEncodeH264SessionParametersAddInfo) (unpacked *C.VkVideoEncodeH264SessionParametersAddInfoEXT, allocs *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff3cfce3e != nil { - return x.reff3cfce3e, nil } - memf3cfce3e := allocPhysicalDeviceSubpassShadingFeaturesHUAWEIMemory(1) - reff3cfce3e := (*C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI)(memf3cfce3e) - allocsf3cfce3e := new(cgoAllocMap) - allocsf3cfce3e.Add(memf3cfce3e) - - var csType_allocs *cgoAllocMap - reff3cfce3e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf3cfce3e.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reff3cfce3e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf3cfce3e.Borrow(cpNext_allocs) - - var csubpassShading_allocs *cgoAllocMap - reff3cfce3e.subpassShading, csubpassShading_allocs = (C.VkBool32)(x.SubpassShading), cgoAllocsUnknown - allocsf3cfce3e.Borrow(csubpassShading_allocs) - - x.reff3cfce3e = reff3cfce3e - x.allocsf3cfce3e = allocsf3cfce3e - return reff3cfce3e, allocsf3cfce3e - -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264SessionParametersAddInfoEXT) { + go allocs.Free() + }) -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSubpassShadingFeaturesHUAWEI) PassValue() (C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, *cgoAllocMap) { - if x.reff3cfce3e != nil { - return *x.reff3cfce3e, nil + len0 := len(x) + mem0 := allocVideoEncodeH264SessionParametersAddInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, } - 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 *PhysicalDeviceSubpassShadingFeaturesHUAWEI) Deref() { - if x.reff3cfce3e == nil { - return + v0 := *(*[]C.VkVideoEncodeH264SessionParametersAddInfoEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) } - x.SType = (StructureType)(x.reff3cfce3e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3cfce3e.pNext)) - x.SubpassShading = (Bool32)(x.reff3cfce3e.subpassShading) + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVideoEncodeH264SessionParametersAddInfoEXT)(h.Data) + return } -// allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubpassShadingPropertiesHUAWEIValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// packSVideoEncodeH264SessionParametersAddInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH264SessionParametersAddInfo(v []VideoEncodeH264SessionParametersAddInfo, ptr0 *C.VkVideoEncodeH264SessionParametersAddInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH264SessionParametersAddInfoValue]C.VkVideoEncodeH264SessionParametersAddInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH264SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) } - return mem } -const sizeOfPhysicalDeviceSubpassShadingPropertiesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Ref() *C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { +func (x *VideoEncodeH264SessionParametersCreateInfo) Ref() *C.VkVideoEncodeH264SessionParametersCreateInfoEXT { if x == nil { return nil } - return x.ref68a800d6 + return x.refda410cad } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Free() { - if x != nil && x.allocs68a800d6 != nil { - x.allocs68a800d6.(*cgoAllocMap).Free() - x.ref68a800d6 = nil +func (x *VideoEncodeH264SessionParametersCreateInfo) Free() { + if x != nil && x.allocsda410cad != nil { + x.allocsda410cad.(*cgoAllocMap).Free() + x.refda410cad = nil } } -// NewPhysicalDeviceSubpassShadingPropertiesHUAWEIRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSubpassShadingPropertiesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceSubpassShadingPropertiesHUAWEI { +func NewVideoEncodeH264SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoEncodeH264SessionParametersCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceSubpassShadingPropertiesHUAWEI) - obj.ref68a800d6 = (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264SessionParametersCreateInfo) + obj.refda410cad = (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSubpassShadingPropertiesHUAWEI) PassRef() (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, *cgoAllocMap) { +func (x *VideoEncodeH264SessionParametersCreateInfo) PassRef() (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref68a800d6 != nil { - return x.ref68a800d6, nil + } else if x.refda410cad != nil { + return x.refda410cad, nil } - mem68a800d6 := allocPhysicalDeviceSubpassShadingPropertiesHUAWEIMemory(1) - ref68a800d6 := (*C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI)(mem68a800d6) - allocs68a800d6 := new(cgoAllocMap) - allocs68a800d6.Add(mem68a800d6) + memda410cad := allocVideoEncodeH264SessionParametersCreateInfoMemory(1) + refda410cad := (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT)(memda410cad) + allocsda410cad := new(cgoAllocMap) + allocsda410cad.Add(memda410cad) var csType_allocs *cgoAllocMap - ref68a800d6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs68a800d6.Borrow(csType_allocs) + refda410cad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsda410cad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref68a800d6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs68a800d6.Borrow(cpNext_allocs) + refda410cad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsda410cad.Borrow(cpNext_allocs) + + var cmaxStdSPSCount_allocs *cgoAllocMap + refda410cad.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown + allocsda410cad.Borrow(cmaxStdSPSCount_allocs) - var cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs *cgoAllocMap - ref68a800d6.maxSubpassShadingWorkgroupSizeAspectRatio, cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs = (C.uint32_t)(x.MaxSubpassShadingWorkgroupSizeAspectRatio), cgoAllocsUnknown - allocs68a800d6.Borrow(cmaxSubpassShadingWorkgroupSizeAspectRatio_allocs) + var cmaxStdPPSCount_allocs *cgoAllocMap + refda410cad.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown + allocsda410cad.Borrow(cmaxStdPPSCount_allocs) - x.ref68a800d6 = ref68a800d6 - x.allocs68a800d6 = allocs68a800d6 - return ref68a800d6, allocs68a800d6 + var cpParametersAddInfo_allocs *cgoAllocMap + refda410cad.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoEncodeH264SessionParametersAddInfo(x.PParametersAddInfo) + allocsda410cad.Borrow(cpParametersAddInfo_allocs) + + x.refda410cad = refda410cad + x.allocsda410cad = allocsda410cad + return refda410cad, allocsda410cad } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSubpassShadingPropertiesHUAWEI) PassValue() (C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, *cgoAllocMap) { - if x.ref68a800d6 != nil { - return *x.ref68a800d6, nil +func (x VideoEncodeH264SessionParametersCreateInfo) PassValue() (C.VkVideoEncodeH264SessionParametersCreateInfoEXT, *cgoAllocMap) { + if x.refda410cad != nil { + return *x.refda410cad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61148,90 +68139,92 @@ func (x PhysicalDeviceSubpassShadingPropertiesHUAWEI) 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 *PhysicalDeviceSubpassShadingPropertiesHUAWEI) Deref() { - if x.ref68a800d6 == nil { +func (x *VideoEncodeH264SessionParametersCreateInfo) Deref() { + if x.refda410cad == nil { return } - x.SType = (StructureType)(x.ref68a800d6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref68a800d6.pNext)) - x.MaxSubpassShadingWorkgroupSizeAspectRatio = (uint32)(x.ref68a800d6.maxSubpassShadingWorkgroupSizeAspectRatio) + x.SType = (StructureType)(x.refda410cad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refda410cad.pNext)) + x.MaxStdSPSCount = (uint32)(x.refda410cad.maxStdSPSCount) + x.MaxStdPPSCount = (uint32)(x.refda410cad.maxStdPPSCount) + packSVideoEncodeH264SessionParametersAddInfo(x.PParametersAddInfo, x.refda410cad.pParametersAddInfo) } -// allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory allocates memory for type C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI in C. +// allocVideoEncodeH264DpbSlotInfoMemory allocates memory for type C.VkVideoEncodeH264DpbSlotInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInvocationMaskFeaturesHUAWEIValue)) +func allocVideoEncodeH264DpbSlotInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264DpbSlotInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceInvocationMaskFeaturesHUAWEIValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI{}) +const sizeOfVideoEncodeH264DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264DpbSlotInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Ref() *C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { +func (x *VideoEncodeH264DpbSlotInfo) Ref() *C.VkVideoEncodeH264DpbSlotInfoEXT { if x == nil { return nil } - return x.reff5b64a1f + return x.refb4df162b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Free() { - if x != nil && x.allocsf5b64a1f != nil { - x.allocsf5b64a1f.(*cgoAllocMap).Free() - x.reff5b64a1f = nil +func (x *VideoEncodeH264DpbSlotInfo) Free() { + if x != nil && x.allocsb4df162b != nil { + x.allocsb4df162b.(*cgoAllocMap).Free() + x.refb4df162b = nil } } -// NewPhysicalDeviceInvocationMaskFeaturesHUAWEIRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceInvocationMaskFeaturesHUAWEIRef(ref unsafe.Pointer) *PhysicalDeviceInvocationMaskFeaturesHUAWEI { +func NewVideoEncodeH264DpbSlotInfoRef(ref unsafe.Pointer) *VideoEncodeH264DpbSlotInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceInvocationMaskFeaturesHUAWEI) - obj.reff5b64a1f = (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264DpbSlotInfo) + obj.refb4df162b = (*C.VkVideoEncodeH264DpbSlotInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceInvocationMaskFeaturesHUAWEI) PassRef() (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, *cgoAllocMap) { +func (x *VideoEncodeH264DpbSlotInfo) PassRef() (*C.VkVideoEncodeH264DpbSlotInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff5b64a1f != nil { - return x.reff5b64a1f, nil + } else if x.refb4df162b != nil { + return x.refb4df162b, nil } - memf5b64a1f := allocPhysicalDeviceInvocationMaskFeaturesHUAWEIMemory(1) - reff5b64a1f := (*C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI)(memf5b64a1f) - allocsf5b64a1f := new(cgoAllocMap) - allocsf5b64a1f.Add(memf5b64a1f) + memb4df162b := allocVideoEncodeH264DpbSlotInfoMemory(1) + refb4df162b := (*C.VkVideoEncodeH264DpbSlotInfoEXT)(memb4df162b) + allocsb4df162b := new(cgoAllocMap) + allocsb4df162b.Add(memb4df162b) var csType_allocs *cgoAllocMap - reff5b64a1f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf5b64a1f.Borrow(csType_allocs) + refb4df162b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb4df162b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff5b64a1f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf5b64a1f.Borrow(cpNext_allocs) + refb4df162b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb4df162b.Borrow(cpNext_allocs) - var cinvocationMask_allocs *cgoAllocMap - reff5b64a1f.invocationMask, cinvocationMask_allocs = (C.VkBool32)(x.InvocationMask), cgoAllocsUnknown - allocsf5b64a1f.Borrow(cinvocationMask_allocs) + var cslotIndex_allocs *cgoAllocMap + refb4df162b.slotIndex, cslotIndex_allocs = (C.int8_t)(x.SlotIndex), cgoAllocsUnknown + allocsb4df162b.Borrow(cslotIndex_allocs) - x.reff5b64a1f = reff5b64a1f - x.allocsf5b64a1f = allocsf5b64a1f - return reff5b64a1f, allocsf5b64a1f + x.refb4df162b = refb4df162b + x.allocsb4df162b = allocsb4df162b + return refb4df162b, allocsb4df162b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceInvocationMaskFeaturesHUAWEI) PassValue() (C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, *cgoAllocMap) { - if x.reff5b64a1f != nil { - return *x.reff5b64a1f, nil +func (x VideoEncodeH264DpbSlotInfo) PassValue() (C.VkVideoEncodeH264DpbSlotInfoEXT, *cgoAllocMap) { + if x.refb4df162b != nil { + return *x.refb4df162b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61239,94 +68232,140 @@ func (x PhysicalDeviceInvocationMaskFeaturesHUAWEI) 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 *PhysicalDeviceInvocationMaskFeaturesHUAWEI) Deref() { - if x.reff5b64a1f == nil { +func (x *VideoEncodeH264DpbSlotInfo) Deref() { + if x.refb4df162b == nil { return } - x.SType = (StructureType)(x.reff5b64a1f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff5b64a1f.pNext)) - x.InvocationMask = (Bool32)(x.reff5b64a1f.invocationMask) + x.SType = (StructureType)(x.refb4df162b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb4df162b.pNext)) + x.SlotIndex = (byte)(x.refb4df162b.slotIndex) } -// allocMemoryGetRemoteAddressInfoNVMemory allocates memory for type C.VkMemoryGetRemoteAddressInfoNV in C. +// allocVideoEncodeH264ReferenceListsInfoMemory allocates memory for type C.VkVideoEncodeH264ReferenceListsInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryGetRemoteAddressInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetRemoteAddressInfoNVValue)) +func allocVideoEncodeH264ReferenceListsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264ReferenceListsInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryGetRemoteAddressInfoNVValue = unsafe.Sizeof([1]C.VkMemoryGetRemoteAddressInfoNV{}) +const sizeOfVideoEncodeH264ReferenceListsInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264ReferenceListsInfoEXT{}) + +// unpackSVideoEncodeH264DpbSlotInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH264DpbSlotInfo(x []VideoEncodeH264DpbSlotInfo) (unpacked *C.VkVideoEncodeH264DpbSlotInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264DpbSlotInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH264DpbSlotInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH264DpbSlotInfoEXT)(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.VkVideoEncodeH264DpbSlotInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH264DpbSlotInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH264DpbSlotInfo(v []VideoEncodeH264DpbSlotInfo, ptr0 *C.VkVideoEncodeH264DpbSlotInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH264DpbSlotInfoValue]C.VkVideoEncodeH264DpbSlotInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH264DpbSlotInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryGetRemoteAddressInfoNV) Ref() *C.VkMemoryGetRemoteAddressInfoNV { +func (x *VideoEncodeH264ReferenceListsInfo) Ref() *C.VkVideoEncodeH264ReferenceListsInfoEXT { if x == nil { return nil } - return x.ref5106899c + return x.ref91fe5805 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryGetRemoteAddressInfoNV) Free() { - if x != nil && x.allocs5106899c != nil { - x.allocs5106899c.(*cgoAllocMap).Free() - x.ref5106899c = nil +func (x *VideoEncodeH264ReferenceListsInfo) Free() { + if x != nil && x.allocs91fe5805 != nil { + x.allocs91fe5805.(*cgoAllocMap).Free() + x.ref91fe5805 = nil } } -// NewMemoryGetRemoteAddressInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264ReferenceListsInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryGetRemoteAddressInfoNVRef(ref unsafe.Pointer) *MemoryGetRemoteAddressInfoNV { +func NewVideoEncodeH264ReferenceListsInfoRef(ref unsafe.Pointer) *VideoEncodeH264ReferenceListsInfo { if ref == nil { return nil } - obj := new(MemoryGetRemoteAddressInfoNV) - obj.ref5106899c = (*C.VkMemoryGetRemoteAddressInfoNV)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264ReferenceListsInfo) + obj.ref91fe5805 = (*C.VkVideoEncodeH264ReferenceListsInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryGetRemoteAddressInfoNV) PassRef() (*C.VkMemoryGetRemoteAddressInfoNV, *cgoAllocMap) { +func (x *VideoEncodeH264ReferenceListsInfo) PassRef() (*C.VkVideoEncodeH264ReferenceListsInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5106899c != nil { - return x.ref5106899c, nil + } else if x.ref91fe5805 != nil { + return x.ref91fe5805, nil } - mem5106899c := allocMemoryGetRemoteAddressInfoNVMemory(1) - ref5106899c := (*C.VkMemoryGetRemoteAddressInfoNV)(mem5106899c) - allocs5106899c := new(cgoAllocMap) - allocs5106899c.Add(mem5106899c) + mem91fe5805 := allocVideoEncodeH264ReferenceListsInfoMemory(1) + ref91fe5805 := (*C.VkVideoEncodeH264ReferenceListsInfoEXT)(mem91fe5805) + allocs91fe5805 := new(cgoAllocMap) + allocs91fe5805.Add(mem91fe5805) var csType_allocs *cgoAllocMap - ref5106899c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5106899c.Borrow(csType_allocs) + ref91fe5805.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs91fe5805.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5106899c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5106899c.Borrow(cpNext_allocs) + ref91fe5805.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs91fe5805.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref5106899c.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs5106899c.Borrow(cmemory_allocs) + var creferenceList0EntryCount_allocs *cgoAllocMap + ref91fe5805.referenceList0EntryCount, creferenceList0EntryCount_allocs = (C.uint8_t)(x.ReferenceList0EntryCount), cgoAllocsUnknown + allocs91fe5805.Borrow(creferenceList0EntryCount_allocs) - var chandleType_allocs *cgoAllocMap - ref5106899c.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs5106899c.Borrow(chandleType_allocs) + var cpReferenceList0Entries_allocs *cgoAllocMap + ref91fe5805.pReferenceList0Entries, cpReferenceList0Entries_allocs = unpackSVideoEncodeH264DpbSlotInfo(x.PReferenceList0Entries) + allocs91fe5805.Borrow(cpReferenceList0Entries_allocs) + + var creferenceList1EntryCount_allocs *cgoAllocMap + ref91fe5805.referenceList1EntryCount, creferenceList1EntryCount_allocs = (C.uint8_t)(x.ReferenceList1EntryCount), cgoAllocsUnknown + allocs91fe5805.Borrow(creferenceList1EntryCount_allocs) - x.ref5106899c = ref5106899c - x.allocs5106899c = allocs5106899c - return ref5106899c, allocs5106899c + var cpReferenceList1Entries_allocs *cgoAllocMap + ref91fe5805.pReferenceList1Entries, cpReferenceList1Entries_allocs = unpackSVideoEncodeH264DpbSlotInfo(x.PReferenceList1Entries) + allocs91fe5805.Borrow(cpReferenceList1Entries_allocs) + + x.ref91fe5805 = ref91fe5805 + x.allocs91fe5805 = allocs91fe5805 + return ref91fe5805, allocs91fe5805 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryGetRemoteAddressInfoNV) PassValue() (C.VkMemoryGetRemoteAddressInfoNV, *cgoAllocMap) { - if x.ref5106899c != nil { - return *x.ref5106899c, nil +func (x VideoEncodeH264ReferenceListsInfo) PassValue() (C.VkVideoEncodeH264ReferenceListsInfoEXT, *cgoAllocMap) { + if x.ref91fe5805 != nil { + return *x.ref91fe5805, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61334,190 +68373,135 @@ func (x MemoryGetRemoteAddressInfoNV) PassValue() (C.VkMemoryGetRemoteAddressInf // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryGetRemoteAddressInfoNV) Deref() { - if x.ref5106899c == nil { +func (x *VideoEncodeH264ReferenceListsInfo) Deref() { + if x.ref91fe5805 == nil { return } - x.SType = (StructureType)(x.ref5106899c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5106899c.pNext)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref5106899c.memory)) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref5106899c.handleType) + x.SType = (StructureType)(x.ref91fe5805.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref91fe5805.pNext)) + x.ReferenceList0EntryCount = (byte)(x.ref91fe5805.referenceList0EntryCount) + packSVideoEncodeH264DpbSlotInfo(x.PReferenceList0Entries, x.ref91fe5805.pReferenceList0Entries) + x.ReferenceList1EntryCount = (byte)(x.ref91fe5805.referenceList1EntryCount) + packSVideoEncodeH264DpbSlotInfo(x.PReferenceList1Entries, x.ref91fe5805.pReferenceList1Entries) } -// allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV in C. +// allocVideoEncodeH264NaluSliceInfoMemory allocates memory for type C.VkVideoEncodeH264NaluSliceInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryRDMAFeaturesNVValue)) +func allocVideoEncodeH264NaluSliceInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264NaluSliceInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalMemoryRDMAFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Ref() *C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { - if x == nil { - return nil - } - return x.ref9c69743b -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Free() { - if x != nil && x.allocs9c69743b != nil { - x.allocs9c69743b.(*cgoAllocMap).Free() - x.ref9c69743b = nil - } -} - -// NewPhysicalDeviceExternalMemoryRDMAFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalMemoryRDMAFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryRDMAFeaturesNV { - if ref == nil { - return nil - } - obj := new(PhysicalDeviceExternalMemoryRDMAFeaturesNV) - obj.ref9c69743b = (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV)(unsafe.Pointer(ref)) - return obj -} +const sizeOfVideoEncodeH264NaluSliceInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264NaluSliceInfoEXT{}) -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalMemoryRDMAFeaturesNV) PassRef() (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, *cgoAllocMap) { +// unpackSVideoEncodeH264ReferenceListsInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH264ReferenceListsInfo(x []VideoEncodeH264ReferenceListsInfo) (unpacked *C.VkVideoEncodeH264ReferenceListsInfoEXT, allocs *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9c69743b != nil { - return x.ref9c69743b, nil } - mem9c69743b := allocPhysicalDeviceExternalMemoryRDMAFeaturesNVMemory(1) - ref9c69743b := (*C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV)(mem9c69743b) - allocs9c69743b := new(cgoAllocMap) - allocs9c69743b.Add(mem9c69743b) - - var csType_allocs *cgoAllocMap - ref9c69743b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9c69743b.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9c69743b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9c69743b.Borrow(cpNext_allocs) - - var cexternalMemoryRDMA_allocs *cgoAllocMap - ref9c69743b.externalMemoryRDMA, cexternalMemoryRDMA_allocs = (C.VkBool32)(x.ExternalMemoryRDMA), cgoAllocsUnknown - allocs9c69743b.Borrow(cexternalMemoryRDMA_allocs) - - x.ref9c69743b = ref9c69743b - x.allocs9c69743b = allocs9c69743b - return ref9c69743b, allocs9c69743b - -} + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264ReferenceListsInfoEXT) { + go allocs.Free() + }) -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalMemoryRDMAFeaturesNV) PassValue() (C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, *cgoAllocMap) { - if x.ref9c69743b != nil { - return *x.ref9c69743b, nil + len0 := len(x) + mem0 := allocVideoEncodeH264ReferenceListsInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, } - 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 *PhysicalDeviceExternalMemoryRDMAFeaturesNV) Deref() { - if x.ref9c69743b == nil { - return + v0 := *(*[]C.VkVideoEncodeH264ReferenceListsInfoEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) } - x.SType = (StructureType)(x.ref9c69743b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c69743b.pNext)) - x.ExternalMemoryRDMA = (Bool32)(x.ref9c69743b.externalMemoryRDMA) + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVideoEncodeH264ReferenceListsInfoEXT)(h.Data) + return } -// allocPhysicalDeviceExtendedDynamicState2FeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExtendedDynamicState2FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicState2FeaturesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// packSVideoEncodeH264ReferenceListsInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH264ReferenceListsInfo(v []VideoEncodeH264ReferenceListsInfo, ptr0 *C.VkVideoEncodeH264ReferenceListsInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH264ReferenceListsInfoValue]C.VkVideoEncodeH264ReferenceListsInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH264ReferenceListsInfoRef(unsafe.Pointer(&ptr1)) } - return mem } -const sizeOfPhysicalDeviceExtendedDynamicState2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExtendedDynamicState2Features) Ref() *C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { +func (x *VideoEncodeH264NaluSliceInfo) Ref() *C.VkVideoEncodeH264NaluSliceInfoEXT { if x == nil { return nil } - return x.refbd0cffdd + return x.ref6f598496 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExtendedDynamicState2Features) Free() { - if x != nil && x.allocsbd0cffdd != nil { - x.allocsbd0cffdd.(*cgoAllocMap).Free() - x.refbd0cffdd = nil +func (x *VideoEncodeH264NaluSliceInfo) Free() { + if x != nil && x.allocs6f598496 != nil { + x.allocs6f598496.(*cgoAllocMap).Free() + x.ref6f598496 = nil } } -// NewPhysicalDeviceExtendedDynamicState2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264NaluSliceInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExtendedDynamicState2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicState2Features { +func NewVideoEncodeH264NaluSliceInfoRef(ref unsafe.Pointer) *VideoEncodeH264NaluSliceInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceExtendedDynamicState2Features) - obj.refbd0cffdd = (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264NaluSliceInfo) + obj.ref6f598496 = (*C.VkVideoEncodeH264NaluSliceInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExtendedDynamicState2Features) PassRef() (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264NaluSliceInfo) PassRef() (*C.VkVideoEncodeH264NaluSliceInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbd0cffdd != nil { - return x.refbd0cffdd, nil + } else if x.ref6f598496 != nil { + return x.ref6f598496, nil } - membd0cffdd := allocPhysicalDeviceExtendedDynamicState2FeaturesMemory(1) - refbd0cffdd := (*C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)(membd0cffdd) - allocsbd0cffdd := new(cgoAllocMap) - allocsbd0cffdd.Add(membd0cffdd) + mem6f598496 := allocVideoEncodeH264NaluSliceInfoMemory(1) + ref6f598496 := (*C.VkVideoEncodeH264NaluSliceInfoEXT)(mem6f598496) + allocs6f598496 := new(cgoAllocMap) + allocs6f598496.Add(mem6f598496) var csType_allocs *cgoAllocMap - refbd0cffdd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbd0cffdd.Borrow(csType_allocs) + ref6f598496.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6f598496.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbd0cffdd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbd0cffdd.Borrow(cpNext_allocs) - - var cextendedDynamicState2_allocs *cgoAllocMap - refbd0cffdd.extendedDynamicState2, cextendedDynamicState2_allocs = (C.VkBool32)(x.ExtendedDynamicState2), cgoAllocsUnknown - allocsbd0cffdd.Borrow(cextendedDynamicState2_allocs) + ref6f598496.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6f598496.Borrow(cpNext_allocs) - var cextendedDynamicState2LogicOp_allocs *cgoAllocMap - refbd0cffdd.extendedDynamicState2LogicOp, cextendedDynamicState2LogicOp_allocs = (C.VkBool32)(x.ExtendedDynamicState2LogicOp), cgoAllocsUnknown - allocsbd0cffdd.Borrow(cextendedDynamicState2LogicOp_allocs) + var cmbCount_allocs *cgoAllocMap + ref6f598496.mbCount, cmbCount_allocs = (C.uint32_t)(x.MbCount), cgoAllocsUnknown + allocs6f598496.Borrow(cmbCount_allocs) - var cextendedDynamicState2PatchControlPoints_allocs *cgoAllocMap - refbd0cffdd.extendedDynamicState2PatchControlPoints, cextendedDynamicState2PatchControlPoints_allocs = (C.VkBool32)(x.ExtendedDynamicState2PatchControlPoints), cgoAllocsUnknown - allocsbd0cffdd.Borrow(cextendedDynamicState2PatchControlPoints_allocs) + var cpReferenceFinalLists_allocs *cgoAllocMap + ref6f598496.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists) + allocs6f598496.Borrow(cpReferenceFinalLists_allocs) - x.refbd0cffdd = refbd0cffdd - x.allocsbd0cffdd = allocsbd0cffdd - return refbd0cffdd, allocsbd0cffdd + x.ref6f598496 = ref6f598496 + x.allocs6f598496 = allocs6f598496 + return ref6f598496, allocs6f598496 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExtendedDynamicState2Features) PassValue() (C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, *cgoAllocMap) { - if x.refbd0cffdd != nil { - return *x.refbd0cffdd, nil +func (x VideoEncodeH264NaluSliceInfo) PassValue() (C.VkVideoEncodeH264NaluSliceInfoEXT, *cgoAllocMap) { + if x.ref6f598496 != nil { + return *x.ref6f598496, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61525,92 +68509,137 @@ func (x PhysicalDeviceExtendedDynamicState2Features) 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 *PhysicalDeviceExtendedDynamicState2Features) Deref() { - if x.refbd0cffdd == nil { +func (x *VideoEncodeH264NaluSliceInfo) Deref() { + if x.ref6f598496 == nil { return } - x.SType = (StructureType)(x.refbd0cffdd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd0cffdd.pNext)) - x.ExtendedDynamicState2 = (Bool32)(x.refbd0cffdd.extendedDynamicState2) - x.ExtendedDynamicState2LogicOp = (Bool32)(x.refbd0cffdd.extendedDynamicState2LogicOp) - x.ExtendedDynamicState2PatchControlPoints = (Bool32)(x.refbd0cffdd.extendedDynamicState2PatchControlPoints) + x.SType = (StructureType)(x.ref6f598496.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6f598496.pNext)) + x.MbCount = (uint32)(x.ref6f598496.mbCount) + packSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists, x.ref6f598496.pReferenceFinalLists) } -// allocPhysicalDeviceColorWriteEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceColorWriteEnableFeaturesEXT in C. +// allocVideoEncodeH264VclFrameInfoMemory allocates memory for type C.VkVideoEncodeH264VclFrameInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceColorWriteEnableFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceColorWriteEnableFeaturesValue)) +func allocVideoEncodeH264VclFrameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264VclFrameInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceColorWriteEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceColorWriteEnableFeaturesEXT{}) +const sizeOfVideoEncodeH264VclFrameInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264VclFrameInfoEXT{}) + +// unpackSVideoEncodeH264NaluSliceInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH264NaluSliceInfo(x []VideoEncodeH264NaluSliceInfo) (unpacked *C.VkVideoEncodeH264NaluSliceInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264NaluSliceInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH264NaluSliceInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH264NaluSliceInfoEXT)(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.VkVideoEncodeH264NaluSliceInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH264NaluSliceInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH264NaluSliceInfo(v []VideoEncodeH264NaluSliceInfo, ptr0 *C.VkVideoEncodeH264NaluSliceInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH264NaluSliceInfoValue]C.VkVideoEncodeH264NaluSliceInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH264NaluSliceInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceColorWriteEnableFeatures) Ref() *C.VkPhysicalDeviceColorWriteEnableFeaturesEXT { +func (x *VideoEncodeH264VclFrameInfo) Ref() *C.VkVideoEncodeH264VclFrameInfoEXT { if x == nil { return nil } - return x.refd894aa7b + return x.ref5a087635 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceColorWriteEnableFeatures) Free() { - if x != nil && x.allocsd894aa7b != nil { - x.allocsd894aa7b.(*cgoAllocMap).Free() - x.refd894aa7b = nil +func (x *VideoEncodeH264VclFrameInfo) Free() { + if x != nil && x.allocs5a087635 != nil { + x.allocs5a087635.(*cgoAllocMap).Free() + x.ref5a087635 = nil } } -// NewPhysicalDeviceColorWriteEnableFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264VclFrameInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceColorWriteEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceColorWriteEnableFeatures { +func NewVideoEncodeH264VclFrameInfoRef(ref unsafe.Pointer) *VideoEncodeH264VclFrameInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceColorWriteEnableFeatures) - obj.refd894aa7b = (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264VclFrameInfo) + obj.ref5a087635 = (*C.VkVideoEncodeH264VclFrameInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceColorWriteEnableFeatures) PassRef() (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264VclFrameInfo) PassRef() (*C.VkVideoEncodeH264VclFrameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd894aa7b != nil { - return x.refd894aa7b, nil + } else if x.ref5a087635 != nil { + return x.ref5a087635, nil } - memd894aa7b := allocPhysicalDeviceColorWriteEnableFeaturesMemory(1) - refd894aa7b := (*C.VkPhysicalDeviceColorWriteEnableFeaturesEXT)(memd894aa7b) - allocsd894aa7b := new(cgoAllocMap) - allocsd894aa7b.Add(memd894aa7b) + mem5a087635 := allocVideoEncodeH264VclFrameInfoMemory(1) + ref5a087635 := (*C.VkVideoEncodeH264VclFrameInfoEXT)(mem5a087635) + allocs5a087635 := new(cgoAllocMap) + allocs5a087635.Add(mem5a087635) var csType_allocs *cgoAllocMap - refd894aa7b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd894aa7b.Borrow(csType_allocs) + ref5a087635.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5a087635.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd894aa7b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd894aa7b.Borrow(cpNext_allocs) + ref5a087635.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5a087635.Borrow(cpNext_allocs) - var ccolorWriteEnable_allocs *cgoAllocMap - refd894aa7b.colorWriteEnable, ccolorWriteEnable_allocs = (C.VkBool32)(x.ColorWriteEnable), cgoAllocsUnknown - allocsd894aa7b.Borrow(ccolorWriteEnable_allocs) + var cpReferenceFinalLists_allocs *cgoAllocMap + ref5a087635.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists) + allocs5a087635.Borrow(cpReferenceFinalLists_allocs) - x.refd894aa7b = refd894aa7b - x.allocsd894aa7b = allocsd894aa7b - return refd894aa7b, allocsd894aa7b + var cnaluSliceEntryCount_allocs *cgoAllocMap + ref5a087635.naluSliceEntryCount, cnaluSliceEntryCount_allocs = (C.uint32_t)(x.NaluSliceEntryCount), cgoAllocsUnknown + allocs5a087635.Borrow(cnaluSliceEntryCount_allocs) + + var cpNaluSliceEntries_allocs *cgoAllocMap + ref5a087635.pNaluSliceEntries, cpNaluSliceEntries_allocs = unpackSVideoEncodeH264NaluSliceInfo(x.PNaluSliceEntries) + allocs5a087635.Borrow(cpNaluSliceEntries_allocs) + + x.ref5a087635 = ref5a087635 + x.allocs5a087635 = allocs5a087635 + return ref5a087635, allocs5a087635 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceColorWriteEnableFeatures) PassValue() (C.VkPhysicalDeviceColorWriteEnableFeaturesEXT, *cgoAllocMap) { - if x.refd894aa7b != nil { - return *x.refd894aa7b, nil +func (x VideoEncodeH264VclFrameInfo) PassValue() (C.VkVideoEncodeH264VclFrameInfoEXT, *cgoAllocMap) { + if x.ref5a087635 != nil { + return *x.ref5a087635, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61618,94 +68647,123 @@ func (x PhysicalDeviceColorWriteEnableFeatures) PassValue() (C.VkPhysicalDeviceC // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceColorWriteEnableFeatures) Deref() { - if x.refd894aa7b == nil { +func (x *VideoEncodeH264VclFrameInfo) Deref() { + if x.ref5a087635 == nil { return } - x.SType = (StructureType)(x.refd894aa7b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd894aa7b.pNext)) - x.ColorWriteEnable = (Bool32)(x.refd894aa7b.colorWriteEnable) + x.SType = (StructureType)(x.ref5a087635.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5a087635.pNext)) + packSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists, x.ref5a087635.pReferenceFinalLists) + x.NaluSliceEntryCount = (uint32)(x.ref5a087635.naluSliceEntryCount) + packSVideoEncodeH264NaluSliceInfo(x.PNaluSliceEntries, x.ref5a087635.pNaluSliceEntries) } -// allocPipelineColorWriteCreateInfoMemory allocates memory for type C.VkPipelineColorWriteCreateInfoEXT in C. +// allocVideoEncodeH264EmitPictureParametersInfoMemory allocates memory for type C.VkVideoEncodeH264EmitPictureParametersInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineColorWriteCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorWriteCreateInfoValue)) +func allocVideoEncodeH264EmitPictureParametersInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264EmitPictureParametersInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineColorWriteCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorWriteCreateInfoEXT{}) +const sizeOfVideoEncodeH264EmitPictureParametersInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264EmitPictureParametersInfoEXT{}) + +// unpackPUint8_tString represents the data from Go string as *C.uint8_t and avoids copying. +func unpackPUint8_tString(str string) (*C.uint8_t, *cgoAllocMap) { + h := (*stringHeader)(unsafe.Pointer(&str)) + return (*C.uint8_t)(h.Data), cgoAllocsUnknown +} + +// packPUint8_tString creates a Go string backed by *C.uint8_t and avoids copying. +func packPUint8_tString(p *C.uint8_t) (raw string) { + if p != nil && *p != 0 { + h := (*stringHeader)(unsafe.Pointer(&raw)) + h.Data = unsafe.Pointer(p) + for *p != 0 { + p = (*C.uint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + 1)) // p++ + } + h.Len = int(uintptr(unsafe.Pointer(p)) - uintptr(h.Data)) + } + return +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorWriteCreateInfo) Ref() *C.VkPipelineColorWriteCreateInfoEXT { +func (x *VideoEncodeH264EmitPictureParametersInfo) Ref() *C.VkVideoEncodeH264EmitPictureParametersInfoEXT { if x == nil { return nil } - return x.refa0609dbc + return x.ref6eca871f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineColorWriteCreateInfo) Free() { - if x != nil && x.allocsa0609dbc != nil { - x.allocsa0609dbc.(*cgoAllocMap).Free() - x.refa0609dbc = nil +func (x *VideoEncodeH264EmitPictureParametersInfo) Free() { + if x != nil && x.allocs6eca871f != nil { + x.allocs6eca871f.(*cgoAllocMap).Free() + x.ref6eca871f = nil } } -// NewPipelineColorWriteCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264EmitPictureParametersInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineColorWriteCreateInfoRef(ref unsafe.Pointer) *PipelineColorWriteCreateInfo { +func NewVideoEncodeH264EmitPictureParametersInfoRef(ref unsafe.Pointer) *VideoEncodeH264EmitPictureParametersInfo { if ref == nil { return nil } - obj := new(PipelineColorWriteCreateInfo) - obj.refa0609dbc = (*C.VkPipelineColorWriteCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264EmitPictureParametersInfo) + obj.ref6eca871f = (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineColorWriteCreateInfo) PassRef() (*C.VkPipelineColorWriteCreateInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeH264EmitPictureParametersInfo) PassRef() (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa0609dbc != nil { - return x.refa0609dbc, nil + } else if x.ref6eca871f != nil { + return x.ref6eca871f, nil } - mema0609dbc := allocPipelineColorWriteCreateInfoMemory(1) - refa0609dbc := (*C.VkPipelineColorWriteCreateInfoEXT)(mema0609dbc) - allocsa0609dbc := new(cgoAllocMap) - allocsa0609dbc.Add(mema0609dbc) + mem6eca871f := allocVideoEncodeH264EmitPictureParametersInfoMemory(1) + ref6eca871f := (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT)(mem6eca871f) + allocs6eca871f := new(cgoAllocMap) + allocs6eca871f.Add(mem6eca871f) var csType_allocs *cgoAllocMap - refa0609dbc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa0609dbc.Borrow(csType_allocs) + ref6eca871f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6eca871f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa0609dbc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa0609dbc.Borrow(cpNext_allocs) + ref6eca871f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6eca871f.Borrow(cpNext_allocs) - var cattachmentCount_allocs *cgoAllocMap - refa0609dbc.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocsa0609dbc.Borrow(cattachmentCount_allocs) + var cspsId_allocs *cgoAllocMap + ref6eca871f.spsId, cspsId_allocs = (C.uint8_t)(x.SpsId), cgoAllocsUnknown + allocs6eca871f.Borrow(cspsId_allocs) + + var cemitSpsEnable_allocs *cgoAllocMap + ref6eca871f.emitSpsEnable, cemitSpsEnable_allocs = (C.VkBool32)(x.EmitSpsEnable), cgoAllocsUnknown + allocs6eca871f.Borrow(cemitSpsEnable_allocs) - var cpColorWriteEnables_allocs *cgoAllocMap - refa0609dbc.pColorWriteEnables, cpColorWriteEnables_allocs = (*C.VkBool32)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables)).Data)), cgoAllocsUnknown - allocsa0609dbc.Borrow(cpColorWriteEnables_allocs) + var cppsIdEntryCount_allocs *cgoAllocMap + ref6eca871f.ppsIdEntryCount, cppsIdEntryCount_allocs = (C.uint32_t)(x.PpsIdEntryCount), cgoAllocsUnknown + allocs6eca871f.Borrow(cppsIdEntryCount_allocs) - x.refa0609dbc = refa0609dbc - x.allocsa0609dbc = allocsa0609dbc - return refa0609dbc, allocsa0609dbc + var cppsIdEntries_allocs *cgoAllocMap + ref6eca871f.ppsIdEntries, cppsIdEntries_allocs = unpackPUint8_tString(x.PpsIdEntries) + allocs6eca871f.Borrow(cppsIdEntries_allocs) + + x.ref6eca871f = ref6eca871f + x.allocs6eca871f = allocs6eca871f + return ref6eca871f, allocs6eca871f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineColorWriteCreateInfo) PassValue() (C.VkPipelineColorWriteCreateInfoEXT, *cgoAllocMap) { - if x.refa0609dbc != nil { - return *x.refa0609dbc, nil +func (x VideoEncodeH264EmitPictureParametersInfo) PassValue() (C.VkVideoEncodeH264EmitPictureParametersInfoEXT, *cgoAllocMap) { + if x.ref6eca871f != nil { + return *x.ref6eca871f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61713,103 +68771,89 @@ func (x PipelineColorWriteCreateInfo) PassValue() (C.VkPipelineColorWriteCreateI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineColorWriteCreateInfo) Deref() { - if x.refa0609dbc == nil { +func (x *VideoEncodeH264EmitPictureParametersInfo) Deref() { + if x.ref6eca871f == nil { return } - x.SType = (StructureType)(x.refa0609dbc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa0609dbc.pNext)) - x.AttachmentCount = (uint32)(x.refa0609dbc.attachmentCount) - hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PColorWriteEnables)) - hxf08bba9.Data = unsafe.Pointer(x.refa0609dbc.pColorWriteEnables) - hxf08bba9.Cap = 0x7fffffff - // hxf08bba9.Len = ? - + x.SType = (StructureType)(x.ref6eca871f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6eca871f.pNext)) + x.SpsId = (byte)(x.ref6eca871f.spsId) + x.EmitSpsEnable = (Bool32)(x.ref6eca871f.emitSpsEnable) + x.PpsIdEntryCount = (uint32)(x.ref6eca871f.ppsIdEntryCount) + x.PpsIdEntries = packPUint8_tString(x.ref6eca871f.ppsIdEntries) } -// allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT in C. +// allocVideoEncodeH264ProfileInfoMemory allocates memory for type C.VkVideoEncodeH264ProfileInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrimitivesGeneratedQueryFeaturesValue)) +func allocVideoEncodeH264ProfileInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264ProfileInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePrimitivesGeneratedQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT{}) +const sizeOfVideoEncodeH264ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264ProfileInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePrimitivesGeneratedQueryFeatures) Ref() *C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { +func (x *VideoEncodeH264ProfileInfo) Ref() *C.VkVideoEncodeH264ProfileInfoEXT { if x == nil { return nil } - return x.reff7d249a0 + return x.ref3ba3093 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePrimitivesGeneratedQueryFeatures) Free() { - if x != nil && x.allocsf7d249a0 != nil { - x.allocsf7d249a0.(*cgoAllocMap).Free() - x.reff7d249a0 = nil +func (x *VideoEncodeH264ProfileInfo) Free() { + if x != nil && x.allocs3ba3093 != nil { + x.allocs3ba3093.(*cgoAllocMap).Free() + x.ref3ba3093 = nil } } -// NewPhysicalDevicePrimitivesGeneratedQueryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePrimitivesGeneratedQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePrimitivesGeneratedQueryFeatures { +func NewVideoEncodeH264ProfileInfoRef(ref unsafe.Pointer) *VideoEncodeH264ProfileInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePrimitivesGeneratedQueryFeatures) - obj.reff7d249a0 = (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264ProfileInfo) + obj.ref3ba3093 = (*C.VkVideoEncodeH264ProfileInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePrimitivesGeneratedQueryFeatures) PassRef() (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264ProfileInfo) PassRef() (*C.VkVideoEncodeH264ProfileInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff7d249a0 != nil { - return x.reff7d249a0, nil + } else if x.ref3ba3093 != nil { + return x.ref3ba3093, nil } - memf7d249a0 := allocPhysicalDevicePrimitivesGeneratedQueryFeaturesMemory(1) - reff7d249a0 := (*C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)(memf7d249a0) - allocsf7d249a0 := new(cgoAllocMap) - allocsf7d249a0.Add(memf7d249a0) + mem3ba3093 := allocVideoEncodeH264ProfileInfoMemory(1) + ref3ba3093 := (*C.VkVideoEncodeH264ProfileInfoEXT)(mem3ba3093) + allocs3ba3093 := new(cgoAllocMap) + allocs3ba3093.Add(mem3ba3093) var csType_allocs *cgoAllocMap - reff7d249a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf7d249a0.Borrow(csType_allocs) + ref3ba3093.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3ba3093.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff7d249a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf7d249a0.Borrow(cpNext_allocs) + ref3ba3093.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3ba3093.Borrow(cpNext_allocs) - var cprimitivesGeneratedQuery_allocs *cgoAllocMap - reff7d249a0.primitivesGeneratedQuery, cprimitivesGeneratedQuery_allocs = (C.VkBool32)(x.PrimitivesGeneratedQuery), cgoAllocsUnknown - allocsf7d249a0.Borrow(cprimitivesGeneratedQuery_allocs) - - var cprimitivesGeneratedQueryWithRasterizerDiscard_allocs *cgoAllocMap - reff7d249a0.primitivesGeneratedQueryWithRasterizerDiscard, cprimitivesGeneratedQueryWithRasterizerDiscard_allocs = (C.VkBool32)(x.PrimitivesGeneratedQueryWithRasterizerDiscard), cgoAllocsUnknown - allocsf7d249a0.Borrow(cprimitivesGeneratedQueryWithRasterizerDiscard_allocs) - - var cprimitivesGeneratedQueryWithNonZeroStreams_allocs *cgoAllocMap - reff7d249a0.primitivesGeneratedQueryWithNonZeroStreams, cprimitivesGeneratedQueryWithNonZeroStreams_allocs = (C.VkBool32)(x.PrimitivesGeneratedQueryWithNonZeroStreams), cgoAllocsUnknown - allocsf7d249a0.Borrow(cprimitivesGeneratedQueryWithNonZeroStreams_allocs) - - x.reff7d249a0 = reff7d249a0 - x.allocsf7d249a0 = allocsf7d249a0 - return reff7d249a0, allocsf7d249a0 + x.ref3ba3093 = ref3ba3093 + x.allocs3ba3093 = allocs3ba3093 + return ref3ba3093, allocs3ba3093 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePrimitivesGeneratedQueryFeatures) PassValue() (C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, *cgoAllocMap) { - if x.reff7d249a0 != nil { - return *x.reff7d249a0, nil +func (x VideoEncodeH264ProfileInfo) PassValue() (C.VkVideoEncodeH264ProfileInfoEXT, *cgoAllocMap) { + if x.ref3ba3093 != nil { + return *x.ref3ba3093, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61817,92 +68861,105 @@ func (x PhysicalDevicePrimitivesGeneratedQueryFeatures) 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 *PhysicalDevicePrimitivesGeneratedQueryFeatures) Deref() { - if x.reff7d249a0 == nil { +func (x *VideoEncodeH264ProfileInfo) Deref() { + if x.ref3ba3093 == nil { return } - x.SType = (StructureType)(x.reff7d249a0.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7d249a0.pNext)) - x.PrimitivesGeneratedQuery = (Bool32)(x.reff7d249a0.primitivesGeneratedQuery) - x.PrimitivesGeneratedQueryWithRasterizerDiscard = (Bool32)(x.reff7d249a0.primitivesGeneratedQueryWithRasterizerDiscard) - x.PrimitivesGeneratedQueryWithNonZeroStreams = (Bool32)(x.reff7d249a0.primitivesGeneratedQueryWithNonZeroStreams) + x.SType = (StructureType)(x.ref3ba3093.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ba3093.pNext)) } -// allocPhysicalDeviceImageViewMinLodFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageViewMinLodFeaturesEXT in C. +// allocVideoEncodeH264RateControlInfoMemory allocates memory for type C.VkVideoEncodeH264RateControlInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceImageViewMinLodFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewMinLodFeaturesValue)) +func allocVideoEncodeH264RateControlInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264RateControlInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceImageViewMinLodFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewMinLodFeaturesEXT{}) +const sizeOfVideoEncodeH264RateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264RateControlInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageViewMinLodFeatures) Ref() *C.VkPhysicalDeviceImageViewMinLodFeaturesEXT { +func (x *VideoEncodeH264RateControlInfo) Ref() *C.VkVideoEncodeH264RateControlInfoEXT { if x == nil { return nil } - return x.refac392a2f + return x.ref2b3e86c5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceImageViewMinLodFeatures) Free() { - if x != nil && x.allocsac392a2f != nil { - x.allocsac392a2f.(*cgoAllocMap).Free() - x.refac392a2f = nil +func (x *VideoEncodeH264RateControlInfo) Free() { + if x != nil && x.allocs2b3e86c5 != nil { + x.allocs2b3e86c5.(*cgoAllocMap).Free() + x.ref2b3e86c5 = nil } } -// NewPhysicalDeviceImageViewMinLodFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264RateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceImageViewMinLodFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageViewMinLodFeatures { +func NewVideoEncodeH264RateControlInfoRef(ref unsafe.Pointer) *VideoEncodeH264RateControlInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceImageViewMinLodFeatures) - obj.refac392a2f = (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264RateControlInfo) + obj.ref2b3e86c5 = (*C.VkVideoEncodeH264RateControlInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceImageViewMinLodFeatures) PassRef() (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264RateControlInfo) PassRef() (*C.VkVideoEncodeH264RateControlInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac392a2f != nil { - return x.refac392a2f, nil + } else if x.ref2b3e86c5 != nil { + return x.ref2b3e86c5, nil } - memac392a2f := allocPhysicalDeviceImageViewMinLodFeaturesMemory(1) - refac392a2f := (*C.VkPhysicalDeviceImageViewMinLodFeaturesEXT)(memac392a2f) - allocsac392a2f := new(cgoAllocMap) - allocsac392a2f.Add(memac392a2f) + mem2b3e86c5 := allocVideoEncodeH264RateControlInfoMemory(1) + ref2b3e86c5 := (*C.VkVideoEncodeH264RateControlInfoEXT)(mem2b3e86c5) + allocs2b3e86c5 := new(cgoAllocMap) + allocs2b3e86c5.Add(mem2b3e86c5) var csType_allocs *cgoAllocMap - refac392a2f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsac392a2f.Borrow(csType_allocs) + ref2b3e86c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2b3e86c5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refac392a2f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsac392a2f.Borrow(cpNext_allocs) + ref2b3e86c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2b3e86c5.Borrow(cpNext_allocs) - var cminLod_allocs *cgoAllocMap - refac392a2f.minLod, cminLod_allocs = (C.VkBool32)(x.MinLod), cgoAllocsUnknown - allocsac392a2f.Borrow(cminLod_allocs) + var cgopFrameCount_allocs *cgoAllocMap + ref2b3e86c5.gopFrameCount, cgopFrameCount_allocs = (C.uint32_t)(x.GopFrameCount), cgoAllocsUnknown + allocs2b3e86c5.Borrow(cgopFrameCount_allocs) - x.refac392a2f = refac392a2f - x.allocsac392a2f = allocsac392a2f - return refac392a2f, allocsac392a2f + var cidrPeriod_allocs *cgoAllocMap + ref2b3e86c5.idrPeriod, cidrPeriod_allocs = (C.uint32_t)(x.IdrPeriod), cgoAllocsUnknown + allocs2b3e86c5.Borrow(cidrPeriod_allocs) + + var cconsecutiveBFrameCount_allocs *cgoAllocMap + ref2b3e86c5.consecutiveBFrameCount, cconsecutiveBFrameCount_allocs = (C.uint32_t)(x.ConsecutiveBFrameCount), cgoAllocsUnknown + allocs2b3e86c5.Borrow(cconsecutiveBFrameCount_allocs) + + var crateControlStructure_allocs *cgoAllocMap + ref2b3e86c5.rateControlStructure, crateControlStructure_allocs = (C.VkVideoEncodeH264RateControlStructureEXT)(x.RateControlStructure), cgoAllocsUnknown + allocs2b3e86c5.Borrow(crateControlStructure_allocs) + + var ctemporalLayerCount_allocs *cgoAllocMap + ref2b3e86c5.temporalLayerCount, ctemporalLayerCount_allocs = (C.uint8_t)(x.TemporalLayerCount), cgoAllocsUnknown + allocs2b3e86c5.Borrow(ctemporalLayerCount_allocs) + + x.ref2b3e86c5 = ref2b3e86c5 + x.allocs2b3e86c5 = allocs2b3e86c5 + return ref2b3e86c5, allocs2b3e86c5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceImageViewMinLodFeatures) PassValue() (C.VkPhysicalDeviceImageViewMinLodFeaturesEXT, *cgoAllocMap) { - if x.refac392a2f != nil { - return *x.refac392a2f, nil +func (x VideoEncodeH264RateControlInfo) PassValue() (C.VkVideoEncodeH264RateControlInfoEXT, *cgoAllocMap) { + if x.ref2b3e86c5 != nil { + return *x.ref2b3e86c5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -61910,90 +68967,94 @@ func (x PhysicalDeviceImageViewMinLodFeatures) PassValue() (C.VkPhysicalDeviceIm // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceImageViewMinLodFeatures) Deref() { - if x.refac392a2f == nil { +func (x *VideoEncodeH264RateControlInfo) Deref() { + if x.ref2b3e86c5 == nil { return } - x.SType = (StructureType)(x.refac392a2f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac392a2f.pNext)) - x.MinLod = (Bool32)(x.refac392a2f.minLod) + x.SType = (StructureType)(x.ref2b3e86c5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2b3e86c5.pNext)) + x.GopFrameCount = (uint32)(x.ref2b3e86c5.gopFrameCount) + x.IdrPeriod = (uint32)(x.ref2b3e86c5.idrPeriod) + x.ConsecutiveBFrameCount = (uint32)(x.ref2b3e86c5.consecutiveBFrameCount) + x.RateControlStructure = (VideoEncodeH264RateControlStructure)(x.ref2b3e86c5.rateControlStructure) + x.TemporalLayerCount = (byte)(x.ref2b3e86c5.temporalLayerCount) } -// allocImageViewMinLodCreateInfoMemory allocates memory for type C.VkImageViewMinLodCreateInfoEXT in C. +// allocVideoEncodeH264QpMemory allocates memory for type C.VkVideoEncodeH264QpEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewMinLodCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewMinLodCreateInfoValue)) +func allocVideoEncodeH264QpMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264QpValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageViewMinLodCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewMinLodCreateInfoEXT{}) +const sizeOfVideoEncodeH264QpValue = unsafe.Sizeof([1]C.VkVideoEncodeH264QpEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewMinLodCreateInfo) Ref() *C.VkImageViewMinLodCreateInfoEXT { +func (x *VideoEncodeH264Qp) Ref() *C.VkVideoEncodeH264QpEXT { if x == nil { return nil } - return x.ref25a88d90 + return x.refcc70a5bd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageViewMinLodCreateInfo) Free() { - if x != nil && x.allocs25a88d90 != nil { - x.allocs25a88d90.(*cgoAllocMap).Free() - x.ref25a88d90 = nil +func (x *VideoEncodeH264Qp) Free() { + if x != nil && x.allocscc70a5bd != nil { + x.allocscc70a5bd.(*cgoAllocMap).Free() + x.refcc70a5bd = nil } } -// NewImageViewMinLodCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264QpRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageViewMinLodCreateInfoRef(ref unsafe.Pointer) *ImageViewMinLodCreateInfo { +func NewVideoEncodeH264QpRef(ref unsafe.Pointer) *VideoEncodeH264Qp { if ref == nil { return nil } - obj := new(ImageViewMinLodCreateInfo) - obj.ref25a88d90 = (*C.VkImageViewMinLodCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264Qp) + obj.refcc70a5bd = (*C.VkVideoEncodeH264QpEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageViewMinLodCreateInfo) PassRef() (*C.VkImageViewMinLodCreateInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeH264Qp) PassRef() (*C.VkVideoEncodeH264QpEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref25a88d90 != nil { - return x.ref25a88d90, nil + } else if x.refcc70a5bd != nil { + return x.refcc70a5bd, nil } - mem25a88d90 := allocImageViewMinLodCreateInfoMemory(1) - ref25a88d90 := (*C.VkImageViewMinLodCreateInfoEXT)(mem25a88d90) - allocs25a88d90 := new(cgoAllocMap) - allocs25a88d90.Add(mem25a88d90) + memcc70a5bd := allocVideoEncodeH264QpMemory(1) + refcc70a5bd := (*C.VkVideoEncodeH264QpEXT)(memcc70a5bd) + allocscc70a5bd := new(cgoAllocMap) + allocscc70a5bd.Add(memcc70a5bd) - var csType_allocs *cgoAllocMap - ref25a88d90.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs25a88d90.Borrow(csType_allocs) + var cqpI_allocs *cgoAllocMap + refcc70a5bd.qpI, cqpI_allocs = (C.int32_t)(x.QpI), cgoAllocsUnknown + allocscc70a5bd.Borrow(cqpI_allocs) - var cpNext_allocs *cgoAllocMap - ref25a88d90.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs25a88d90.Borrow(cpNext_allocs) + var cqpP_allocs *cgoAllocMap + refcc70a5bd.qpP, cqpP_allocs = (C.int32_t)(x.QpP), cgoAllocsUnknown + allocscc70a5bd.Borrow(cqpP_allocs) - var cminLod_allocs *cgoAllocMap - ref25a88d90.minLod, cminLod_allocs = (C.float)(x.MinLod), cgoAllocsUnknown - allocs25a88d90.Borrow(cminLod_allocs) + var cqpB_allocs *cgoAllocMap + refcc70a5bd.qpB, cqpB_allocs = (C.int32_t)(x.QpB), cgoAllocsUnknown + allocscc70a5bd.Borrow(cqpB_allocs) - x.ref25a88d90 = ref25a88d90 - x.allocs25a88d90 = allocs25a88d90 - return ref25a88d90, allocs25a88d90 + x.refcc70a5bd = refcc70a5bd + x.allocscc70a5bd = allocscc70a5bd + return refcc70a5bd, allocscc70a5bd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageViewMinLodCreateInfo) PassValue() (C.VkImageViewMinLodCreateInfoEXT, *cgoAllocMap) { - if x.ref25a88d90 != nil { - return *x.ref25a88d90, nil +func (x VideoEncodeH264Qp) PassValue() (C.VkVideoEncodeH264QpEXT, *cgoAllocMap) { + if x.refcc70a5bd != nil { + return *x.refcc70a5bd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62001,90 +69062,90 @@ func (x ImageViewMinLodCreateInfo) PassValue() (C.VkImageViewMinLodCreateInfoEXT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageViewMinLodCreateInfo) Deref() { - if x.ref25a88d90 == nil { +func (x *VideoEncodeH264Qp) Deref() { + if x.refcc70a5bd == nil { return } - x.SType = (StructureType)(x.ref25a88d90.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref25a88d90.pNext)) - x.MinLod = (float32)(x.ref25a88d90.minLod) + x.QpI = (int32)(x.refcc70a5bd.qpI) + x.QpP = (int32)(x.refcc70a5bd.qpP) + x.QpB = (int32)(x.refcc70a5bd.qpB) } -// allocPhysicalDeviceMultiDrawFeaturesMemory allocates memory for type C.VkPhysicalDeviceMultiDrawFeaturesEXT in C. +// allocVideoEncodeH264FrameSizeMemory allocates memory for type C.VkVideoEncodeH264FrameSizeEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMultiDrawFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawFeaturesValue)) +func allocVideoEncodeH264FrameSizeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264FrameSizeValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMultiDrawFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiDrawFeaturesEXT{}) +const sizeOfVideoEncodeH264FrameSizeValue = unsafe.Sizeof([1]C.VkVideoEncodeH264FrameSizeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiDrawFeatures) Ref() *C.VkPhysicalDeviceMultiDrawFeaturesEXT { +func (x *VideoEncodeH264FrameSize) Ref() *C.VkVideoEncodeH264FrameSizeEXT { if x == nil { return nil } - return x.reff54fe1a4 + return x.reff1a45729 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMultiDrawFeatures) Free() { - if x != nil && x.allocsf54fe1a4 != nil { - x.allocsf54fe1a4.(*cgoAllocMap).Free() - x.reff54fe1a4 = nil +func (x *VideoEncodeH264FrameSize) Free() { + if x != nil && x.allocsf1a45729 != nil { + x.allocsf1a45729.(*cgoAllocMap).Free() + x.reff1a45729 = nil } } -// NewPhysicalDeviceMultiDrawFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264FrameSizeRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMultiDrawFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMultiDrawFeatures { +func NewVideoEncodeH264FrameSizeRef(ref unsafe.Pointer) *VideoEncodeH264FrameSize { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiDrawFeatures) - obj.reff54fe1a4 = (*C.VkPhysicalDeviceMultiDrawFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264FrameSize) + obj.reff1a45729 = (*C.VkVideoEncodeH264FrameSizeEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMultiDrawFeatures) PassRef() (*C.VkPhysicalDeviceMultiDrawFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264FrameSize) PassRef() (*C.VkVideoEncodeH264FrameSizeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff54fe1a4 != nil { - return x.reff54fe1a4, nil + } else if x.reff1a45729 != nil { + return x.reff1a45729, nil } - memf54fe1a4 := allocPhysicalDeviceMultiDrawFeaturesMemory(1) - reff54fe1a4 := (*C.VkPhysicalDeviceMultiDrawFeaturesEXT)(memf54fe1a4) - allocsf54fe1a4 := new(cgoAllocMap) - allocsf54fe1a4.Add(memf54fe1a4) + memf1a45729 := allocVideoEncodeH264FrameSizeMemory(1) + reff1a45729 := (*C.VkVideoEncodeH264FrameSizeEXT)(memf1a45729) + allocsf1a45729 := new(cgoAllocMap) + allocsf1a45729.Add(memf1a45729) - var csType_allocs *cgoAllocMap - reff54fe1a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf54fe1a4.Borrow(csType_allocs) + var cframeISize_allocs *cgoAllocMap + reff1a45729.frameISize, cframeISize_allocs = (C.uint32_t)(x.FrameISize), cgoAllocsUnknown + allocsf1a45729.Borrow(cframeISize_allocs) - var cpNext_allocs *cgoAllocMap - reff54fe1a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf54fe1a4.Borrow(cpNext_allocs) + var cframePSize_allocs *cgoAllocMap + reff1a45729.framePSize, cframePSize_allocs = (C.uint32_t)(x.FramePSize), cgoAllocsUnknown + allocsf1a45729.Borrow(cframePSize_allocs) - var cmultiDraw_allocs *cgoAllocMap - reff54fe1a4.multiDraw, cmultiDraw_allocs = (C.VkBool32)(x.MultiDraw), cgoAllocsUnknown - allocsf54fe1a4.Borrow(cmultiDraw_allocs) + var cframeBSize_allocs *cgoAllocMap + reff1a45729.frameBSize, cframeBSize_allocs = (C.uint32_t)(x.FrameBSize), cgoAllocsUnknown + allocsf1a45729.Borrow(cframeBSize_allocs) - x.reff54fe1a4 = reff54fe1a4 - x.allocsf54fe1a4 = allocsf54fe1a4 - return reff54fe1a4, allocsf54fe1a4 + x.reff1a45729 = reff1a45729 + x.allocsf1a45729 = allocsf1a45729 + return reff1a45729, allocsf1a45729 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMultiDrawFeatures) PassValue() (C.VkPhysicalDeviceMultiDrawFeaturesEXT, *cgoAllocMap) { - if x.reff54fe1a4 != nil { - return *x.reff54fe1a4, nil +func (x VideoEncodeH264FrameSize) PassValue() (C.VkVideoEncodeH264FrameSizeEXT, *cgoAllocMap) { + if x.reff1a45729 != nil { + return *x.reff1a45729, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62092,90 +69153,122 @@ func (x PhysicalDeviceMultiDrawFeatures) PassValue() (C.VkPhysicalDeviceMultiDra // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMultiDrawFeatures) Deref() { - if x.reff54fe1a4 == nil { +func (x *VideoEncodeH264FrameSize) Deref() { + if x.reff1a45729 == nil { return } - x.SType = (StructureType)(x.reff54fe1a4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff54fe1a4.pNext)) - x.MultiDraw = (Bool32)(x.reff54fe1a4.multiDraw) + x.FrameISize = (uint32)(x.reff1a45729.frameISize) + x.FramePSize = (uint32)(x.reff1a45729.framePSize) + x.FrameBSize = (uint32)(x.reff1a45729.frameBSize) } -// allocPhysicalDeviceMultiDrawPropertiesMemory allocates memory for type C.VkPhysicalDeviceMultiDrawPropertiesEXT in C. +// allocVideoEncodeH264RateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeH264RateControlLayerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMultiDrawPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiDrawPropertiesValue)) +func allocVideoEncodeH264RateControlLayerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264RateControlLayerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMultiDrawPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiDrawPropertiesEXT{}) +const sizeOfVideoEncodeH264RateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264RateControlLayerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiDrawProperties) Ref() *C.VkPhysicalDeviceMultiDrawPropertiesEXT { +func (x *VideoEncodeH264RateControlLayerInfo) Ref() *C.VkVideoEncodeH264RateControlLayerInfoEXT { if x == nil { return nil } - return x.ref1116c280 + return x.refc9f21e78 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMultiDrawProperties) Free() { - if x != nil && x.allocs1116c280 != nil { - x.allocs1116c280.(*cgoAllocMap).Free() - x.ref1116c280 = nil +func (x *VideoEncodeH264RateControlLayerInfo) Free() { + if x != nil && x.allocsc9f21e78 != nil { + x.allocsc9f21e78.(*cgoAllocMap).Free() + x.refc9f21e78 = nil } } -// NewPhysicalDeviceMultiDrawPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH264RateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMultiDrawPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMultiDrawProperties { +func NewVideoEncodeH264RateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeH264RateControlLayerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiDrawProperties) - obj.ref1116c280 = (*C.VkPhysicalDeviceMultiDrawPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH264RateControlLayerInfo) + obj.refc9f21e78 = (*C.VkVideoEncodeH264RateControlLayerInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMultiDrawProperties) PassRef() (*C.VkPhysicalDeviceMultiDrawPropertiesEXT, *cgoAllocMap) { +func (x *VideoEncodeH264RateControlLayerInfo) PassRef() (*C.VkVideoEncodeH264RateControlLayerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1116c280 != nil { - return x.ref1116c280, nil + } else if x.refc9f21e78 != nil { + return x.refc9f21e78, nil } - mem1116c280 := allocPhysicalDeviceMultiDrawPropertiesMemory(1) - ref1116c280 := (*C.VkPhysicalDeviceMultiDrawPropertiesEXT)(mem1116c280) - allocs1116c280 := new(cgoAllocMap) - allocs1116c280.Add(mem1116c280) + memc9f21e78 := allocVideoEncodeH264RateControlLayerInfoMemory(1) + refc9f21e78 := (*C.VkVideoEncodeH264RateControlLayerInfoEXT)(memc9f21e78) + allocsc9f21e78 := new(cgoAllocMap) + allocsc9f21e78.Add(memc9f21e78) var csType_allocs *cgoAllocMap - ref1116c280.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1116c280.Borrow(csType_allocs) + refc9f21e78.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc9f21e78.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1116c280.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1116c280.Borrow(cpNext_allocs) + refc9f21e78.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc9f21e78.Borrow(cpNext_allocs) + + var ctemporalLayerId_allocs *cgoAllocMap + refc9f21e78.temporalLayerId, ctemporalLayerId_allocs = (C.uint8_t)(x.TemporalLayerId), cgoAllocsUnknown + allocsc9f21e78.Borrow(ctemporalLayerId_allocs) + + var cuseInitialRcQp_allocs *cgoAllocMap + refc9f21e78.useInitialRcQp, cuseInitialRcQp_allocs = (C.VkBool32)(x.UseInitialRcQp), cgoAllocsUnknown + allocsc9f21e78.Borrow(cuseInitialRcQp_allocs) + + var cinitialRcQp_allocs *cgoAllocMap + refc9f21e78.initialRcQp, cinitialRcQp_allocs = x.InitialRcQp.PassValue() + allocsc9f21e78.Borrow(cinitialRcQp_allocs) + + var cuseMinQp_allocs *cgoAllocMap + refc9f21e78.useMinQp, cuseMinQp_allocs = (C.VkBool32)(x.UseMinQp), cgoAllocsUnknown + allocsc9f21e78.Borrow(cuseMinQp_allocs) + + var cminQp_allocs *cgoAllocMap + refc9f21e78.minQp, cminQp_allocs = x.MinQp.PassValue() + allocsc9f21e78.Borrow(cminQp_allocs) + + var cuseMaxQp_allocs *cgoAllocMap + refc9f21e78.useMaxQp, cuseMaxQp_allocs = (C.VkBool32)(x.UseMaxQp), cgoAllocsUnknown + allocsc9f21e78.Borrow(cuseMaxQp_allocs) + + var cmaxQp_allocs *cgoAllocMap + refc9f21e78.maxQp, cmaxQp_allocs = x.MaxQp.PassValue() + allocsc9f21e78.Borrow(cmaxQp_allocs) - var cmaxMultiDrawCount_allocs *cgoAllocMap - ref1116c280.maxMultiDrawCount, cmaxMultiDrawCount_allocs = (C.uint32_t)(x.MaxMultiDrawCount), cgoAllocsUnknown - allocs1116c280.Borrow(cmaxMultiDrawCount_allocs) + var cuseMaxFrameSize_allocs *cgoAllocMap + refc9f21e78.useMaxFrameSize, cuseMaxFrameSize_allocs = (C.VkBool32)(x.UseMaxFrameSize), cgoAllocsUnknown + allocsc9f21e78.Borrow(cuseMaxFrameSize_allocs) - x.ref1116c280 = ref1116c280 - x.allocs1116c280 = allocs1116c280 - return ref1116c280, allocs1116c280 + var cmaxFrameSize_allocs *cgoAllocMap + refc9f21e78.maxFrameSize, cmaxFrameSize_allocs = x.MaxFrameSize.PassValue() + allocsc9f21e78.Borrow(cmaxFrameSize_allocs) + + x.refc9f21e78 = refc9f21e78 + x.allocsc9f21e78 = allocsc9f21e78 + return refc9f21e78, allocsc9f21e78 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMultiDrawProperties) PassValue() (C.VkPhysicalDeviceMultiDrawPropertiesEXT, *cgoAllocMap) { - if x.ref1116c280 != nil { - return *x.ref1116c280, nil +func (x VideoEncodeH264RateControlLayerInfo) PassValue() (C.VkVideoEncodeH264RateControlLayerInfoEXT, *cgoAllocMap) { + if x.refc9f21e78 != nil { + return *x.refc9f21e78, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62183,86 +69276,174 @@ func (x PhysicalDeviceMultiDrawProperties) PassValue() (C.VkPhysicalDeviceMultiD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMultiDrawProperties) Deref() { - if x.ref1116c280 == nil { +func (x *VideoEncodeH264RateControlLayerInfo) Deref() { + if x.refc9f21e78 == nil { return } - x.SType = (StructureType)(x.ref1116c280.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1116c280.pNext)) - x.MaxMultiDrawCount = (uint32)(x.ref1116c280.maxMultiDrawCount) + x.SType = (StructureType)(x.refc9f21e78.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc9f21e78.pNext)) + x.TemporalLayerId = (byte)(x.refc9f21e78.temporalLayerId) + x.UseInitialRcQp = (Bool32)(x.refc9f21e78.useInitialRcQp) + x.InitialRcQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.initialRcQp)) + x.UseMinQp = (Bool32)(x.refc9f21e78.useMinQp) + x.MinQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.minQp)) + x.UseMaxQp = (Bool32)(x.refc9f21e78.useMaxQp) + x.MaxQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.maxQp)) + x.UseMaxFrameSize = (Bool32)(x.refc9f21e78.useMaxFrameSize) + x.MaxFrameSize = *NewVideoEncodeH264FrameSizeRef(unsafe.Pointer(&x.refc9f21e78.maxFrameSize)) } -// allocMultiDrawInfoMemory allocates memory for type C.VkMultiDrawInfoEXT in C. +// allocVideoEncodeH265CapabilitiesMemory allocates memory for type C.VkVideoEncodeH265CapabilitiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMultiDrawInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawInfoValue)) +func allocVideoEncodeH265CapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265CapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMultiDrawInfoValue = unsafe.Sizeof([1]C.VkMultiDrawInfoEXT{}) +const sizeOfVideoEncodeH265CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeH265CapabilitiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultiDrawInfo) Ref() *C.VkMultiDrawInfoEXT { +func (x *VideoEncodeH265Capabilities) Ref() *C.VkVideoEncodeH265CapabilitiesEXT { if x == nil { return nil } - return x.refc79896ab + return x.ref54d4cc75 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MultiDrawInfo) Free() { - if x != nil && x.allocsc79896ab != nil { - x.allocsc79896ab.(*cgoAllocMap).Free() - x.refc79896ab = nil +func (x *VideoEncodeH265Capabilities) Free() { + if x != nil && x.allocs54d4cc75 != nil { + x.allocs54d4cc75.(*cgoAllocMap).Free() + x.ref54d4cc75 = nil } } -// NewMultiDrawInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMultiDrawInfoRef(ref unsafe.Pointer) *MultiDrawInfo { +func NewVideoEncodeH265CapabilitiesRef(ref unsafe.Pointer) *VideoEncodeH265Capabilities { if ref == nil { return nil } - obj := new(MultiDrawInfo) - obj.refc79896ab = (*C.VkMultiDrawInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265Capabilities) + obj.ref54d4cc75 = (*C.VkVideoEncodeH265CapabilitiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MultiDrawInfo) PassRef() (*C.VkMultiDrawInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeH265Capabilities) PassRef() (*C.VkVideoEncodeH265CapabilitiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc79896ab != nil { - return x.refc79896ab, nil + } else if x.ref54d4cc75 != nil { + return x.ref54d4cc75, nil } - memc79896ab := allocMultiDrawInfoMemory(1) - refc79896ab := (*C.VkMultiDrawInfoEXT)(memc79896ab) - allocsc79896ab := new(cgoAllocMap) - allocsc79896ab.Add(memc79896ab) + mem54d4cc75 := allocVideoEncodeH265CapabilitiesMemory(1) + ref54d4cc75 := (*C.VkVideoEncodeH265CapabilitiesEXT)(mem54d4cc75) + allocs54d4cc75 := new(cgoAllocMap) + allocs54d4cc75.Add(mem54d4cc75) - var cfirstVertex_allocs *cgoAllocMap - refc79896ab.firstVertex, cfirstVertex_allocs = (C.uint32_t)(x.FirstVertex), cgoAllocsUnknown - allocsc79896ab.Borrow(cfirstVertex_allocs) + var csType_allocs *cgoAllocMap + ref54d4cc75.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs54d4cc75.Borrow(csType_allocs) - var cvertexCount_allocs *cgoAllocMap - refc79896ab.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown - allocsc79896ab.Borrow(cvertexCount_allocs) + var cpNext_allocs *cgoAllocMap + ref54d4cc75.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs54d4cc75.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref54d4cc75.flags, cflags_allocs = (C.VkVideoEncodeH265CapabilityFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs54d4cc75.Borrow(cflags_allocs) + + var cinputModeFlags_allocs *cgoAllocMap + ref54d4cc75.inputModeFlags, cinputModeFlags_allocs = (C.VkVideoEncodeH265InputModeFlagsEXT)(x.InputModeFlags), cgoAllocsUnknown + allocs54d4cc75.Borrow(cinputModeFlags_allocs) + + var coutputModeFlags_allocs *cgoAllocMap + ref54d4cc75.outputModeFlags, coutputModeFlags_allocs = (C.VkVideoEncodeH265OutputModeFlagsEXT)(x.OutputModeFlags), cgoAllocsUnknown + allocs54d4cc75.Borrow(coutputModeFlags_allocs) + + var cctbSizes_allocs *cgoAllocMap + ref54d4cc75.ctbSizes, cctbSizes_allocs = (C.VkVideoEncodeH265CtbSizeFlagsEXT)(x.CtbSizes), cgoAllocsUnknown + allocs54d4cc75.Borrow(cctbSizes_allocs) + + var ctransformBlockSizes_allocs *cgoAllocMap + ref54d4cc75.transformBlockSizes, ctransformBlockSizes_allocs = (C.VkVideoEncodeH265TransformBlockSizeFlagsEXT)(x.TransformBlockSizes), cgoAllocsUnknown + allocs54d4cc75.Borrow(ctransformBlockSizes_allocs) + + var cmaxPPictureL0ReferenceCount_allocs *cgoAllocMap + ref54d4cc75.maxPPictureL0ReferenceCount, cmaxPPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxPPictureL0ReferenceCount), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxPPictureL0ReferenceCount_allocs) + + var cmaxBPictureL0ReferenceCount_allocs *cgoAllocMap + ref54d4cc75.maxBPictureL0ReferenceCount, cmaxBPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxBPictureL0ReferenceCount), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxBPictureL0ReferenceCount_allocs) + + var cmaxL1ReferenceCount_allocs *cgoAllocMap + ref54d4cc75.maxL1ReferenceCount, cmaxL1ReferenceCount_allocs = (C.uint8_t)(x.MaxL1ReferenceCount), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxL1ReferenceCount_allocs) + + var cmaxSubLayersCount_allocs *cgoAllocMap + ref54d4cc75.maxSubLayersCount, cmaxSubLayersCount_allocs = (C.uint8_t)(x.MaxSubLayersCount), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxSubLayersCount_allocs) + + var cminLog2MinLumaCodingBlockSizeMinus3_allocs *cgoAllocMap + ref54d4cc75.minLog2MinLumaCodingBlockSizeMinus3, cminLog2MinLumaCodingBlockSizeMinus3_allocs = (C.uint8_t)(x.MinLog2MinLumaCodingBlockSizeMinus3), cgoAllocsUnknown + allocs54d4cc75.Borrow(cminLog2MinLumaCodingBlockSizeMinus3_allocs) + + var cmaxLog2MinLumaCodingBlockSizeMinus3_allocs *cgoAllocMap + ref54d4cc75.maxLog2MinLumaCodingBlockSizeMinus3, cmaxLog2MinLumaCodingBlockSizeMinus3_allocs = (C.uint8_t)(x.MaxLog2MinLumaCodingBlockSizeMinus3), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxLog2MinLumaCodingBlockSizeMinus3_allocs) + + var cminLog2MinLumaTransformBlockSizeMinus2_allocs *cgoAllocMap + ref54d4cc75.minLog2MinLumaTransformBlockSizeMinus2, cminLog2MinLumaTransformBlockSizeMinus2_allocs = (C.uint8_t)(x.MinLog2MinLumaTransformBlockSizeMinus2), cgoAllocsUnknown + allocs54d4cc75.Borrow(cminLog2MinLumaTransformBlockSizeMinus2_allocs) + + var cmaxLog2MinLumaTransformBlockSizeMinus2_allocs *cgoAllocMap + ref54d4cc75.maxLog2MinLumaTransformBlockSizeMinus2, cmaxLog2MinLumaTransformBlockSizeMinus2_allocs = (C.uint8_t)(x.MaxLog2MinLumaTransformBlockSizeMinus2), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxLog2MinLumaTransformBlockSizeMinus2_allocs) + + var cminMaxTransformHierarchyDepthInter_allocs *cgoAllocMap + ref54d4cc75.minMaxTransformHierarchyDepthInter, cminMaxTransformHierarchyDepthInter_allocs = (C.uint8_t)(x.MinMaxTransformHierarchyDepthInter), cgoAllocsUnknown + allocs54d4cc75.Borrow(cminMaxTransformHierarchyDepthInter_allocs) + + var cmaxMaxTransformHierarchyDepthInter_allocs *cgoAllocMap + ref54d4cc75.maxMaxTransformHierarchyDepthInter, cmaxMaxTransformHierarchyDepthInter_allocs = (C.uint8_t)(x.MaxMaxTransformHierarchyDepthInter), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxMaxTransformHierarchyDepthInter_allocs) + + var cminMaxTransformHierarchyDepthIntra_allocs *cgoAllocMap + ref54d4cc75.minMaxTransformHierarchyDepthIntra, cminMaxTransformHierarchyDepthIntra_allocs = (C.uint8_t)(x.MinMaxTransformHierarchyDepthIntra), cgoAllocsUnknown + allocs54d4cc75.Borrow(cminMaxTransformHierarchyDepthIntra_allocs) + + var cmaxMaxTransformHierarchyDepthIntra_allocs *cgoAllocMap + ref54d4cc75.maxMaxTransformHierarchyDepthIntra, cmaxMaxTransformHierarchyDepthIntra_allocs = (C.uint8_t)(x.MaxMaxTransformHierarchyDepthIntra), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxMaxTransformHierarchyDepthIntra_allocs) + + var cmaxDiffCuQpDeltaDepth_allocs *cgoAllocMap + ref54d4cc75.maxDiffCuQpDeltaDepth, cmaxDiffCuQpDeltaDepth_allocs = (C.uint8_t)(x.MaxDiffCuQpDeltaDepth), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxDiffCuQpDeltaDepth_allocs) - x.refc79896ab = refc79896ab - x.allocsc79896ab = allocsc79896ab - return refc79896ab, allocsc79896ab + var cminMaxNumMergeCand_allocs *cgoAllocMap + ref54d4cc75.minMaxNumMergeCand, cminMaxNumMergeCand_allocs = (C.uint8_t)(x.MinMaxNumMergeCand), cgoAllocsUnknown + allocs54d4cc75.Borrow(cminMaxNumMergeCand_allocs) + + var cmaxMaxNumMergeCand_allocs *cgoAllocMap + ref54d4cc75.maxMaxNumMergeCand, cmaxMaxNumMergeCand_allocs = (C.uint8_t)(x.MaxMaxNumMergeCand), cgoAllocsUnknown + allocs54d4cc75.Borrow(cmaxMaxNumMergeCand_allocs) + + x.ref54d4cc75 = ref54d4cc75 + x.allocs54d4cc75 = allocs54d4cc75 + return ref54d4cc75, allocs54d4cc75 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MultiDrawInfo) PassValue() (C.VkMultiDrawInfoEXT, *cgoAllocMap) { - if x.refc79896ab != nil { - return *x.refc79896ab, nil +func (x VideoEncodeH265Capabilities) PassValue() (C.VkVideoEncodeH265CapabilitiesEXT, *cgoAllocMap) { + if x.ref54d4cc75 != nil { + return *x.ref54d4cc75, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62270,89 +69451,117 @@ func (x MultiDrawInfo) PassValue() (C.VkMultiDrawInfoEXT, *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 *MultiDrawInfo) Deref() { - if x.refc79896ab == nil { +func (x *VideoEncodeH265Capabilities) Deref() { + if x.ref54d4cc75 == nil { return } - x.FirstVertex = (uint32)(x.refc79896ab.firstVertex) - x.VertexCount = (uint32)(x.refc79896ab.vertexCount) + x.SType = (StructureType)(x.ref54d4cc75.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref54d4cc75.pNext)) + x.Flags = (VideoEncodeH265CapabilityFlags)(x.ref54d4cc75.flags) + x.InputModeFlags = (VideoEncodeH265InputModeFlags)(x.ref54d4cc75.inputModeFlags) + x.OutputModeFlags = (VideoEncodeH265OutputModeFlags)(x.ref54d4cc75.outputModeFlags) + x.CtbSizes = (VideoEncodeH265CtbSizeFlags)(x.ref54d4cc75.ctbSizes) + x.TransformBlockSizes = (VideoEncodeH265TransformBlockSizeFlags)(x.ref54d4cc75.transformBlockSizes) + x.MaxPPictureL0ReferenceCount = (byte)(x.ref54d4cc75.maxPPictureL0ReferenceCount) + x.MaxBPictureL0ReferenceCount = (byte)(x.ref54d4cc75.maxBPictureL0ReferenceCount) + x.MaxL1ReferenceCount = (byte)(x.ref54d4cc75.maxL1ReferenceCount) + x.MaxSubLayersCount = (byte)(x.ref54d4cc75.maxSubLayersCount) + x.MinLog2MinLumaCodingBlockSizeMinus3 = (byte)(x.ref54d4cc75.minLog2MinLumaCodingBlockSizeMinus3) + x.MaxLog2MinLumaCodingBlockSizeMinus3 = (byte)(x.ref54d4cc75.maxLog2MinLumaCodingBlockSizeMinus3) + x.MinLog2MinLumaTransformBlockSizeMinus2 = (byte)(x.ref54d4cc75.minLog2MinLumaTransformBlockSizeMinus2) + x.MaxLog2MinLumaTransformBlockSizeMinus2 = (byte)(x.ref54d4cc75.maxLog2MinLumaTransformBlockSizeMinus2) + x.MinMaxTransformHierarchyDepthInter = (byte)(x.ref54d4cc75.minMaxTransformHierarchyDepthInter) + x.MaxMaxTransformHierarchyDepthInter = (byte)(x.ref54d4cc75.maxMaxTransformHierarchyDepthInter) + x.MinMaxTransformHierarchyDepthIntra = (byte)(x.ref54d4cc75.minMaxTransformHierarchyDepthIntra) + x.MaxMaxTransformHierarchyDepthIntra = (byte)(x.ref54d4cc75.maxMaxTransformHierarchyDepthIntra) + x.MaxDiffCuQpDeltaDepth = (byte)(x.ref54d4cc75.maxDiffCuQpDeltaDepth) + x.MinMaxNumMergeCand = (byte)(x.ref54d4cc75.minMaxNumMergeCand) + x.MaxMaxNumMergeCand = (byte)(x.ref54d4cc75.maxMaxNumMergeCand) } -// allocMultiDrawIndexedInfoMemory allocates memory for type C.VkMultiDrawIndexedInfoEXT in C. +// allocVideoEncodeH265SessionParametersAddInfoMemory allocates memory for type C.VkVideoEncodeH265SessionParametersAddInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMultiDrawIndexedInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiDrawIndexedInfoValue)) +func allocVideoEncodeH265SessionParametersAddInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265SessionParametersAddInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMultiDrawIndexedInfoValue = unsafe.Sizeof([1]C.VkMultiDrawIndexedInfoEXT{}) +const sizeOfVideoEncodeH265SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265SessionParametersAddInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultiDrawIndexedInfo) Ref() *C.VkMultiDrawIndexedInfoEXT { +func (x *VideoEncodeH265SessionParametersAddInfo) Ref() *C.VkVideoEncodeH265SessionParametersAddInfoEXT { if x == nil { return nil } - return x.ref2e569a13 + return x.ref9b5b2412 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MultiDrawIndexedInfo) Free() { - if x != nil && x.allocs2e569a13 != nil { - x.allocs2e569a13.(*cgoAllocMap).Free() - x.ref2e569a13 = nil +func (x *VideoEncodeH265SessionParametersAddInfo) Free() { + if x != nil && x.allocs9b5b2412 != nil { + x.allocs9b5b2412.(*cgoAllocMap).Free() + x.ref9b5b2412 = nil } } -// NewMultiDrawIndexedInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMultiDrawIndexedInfoRef(ref unsafe.Pointer) *MultiDrawIndexedInfo { +func NewVideoEncodeH265SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoEncodeH265SessionParametersAddInfo { if ref == nil { return nil } - obj := new(MultiDrawIndexedInfo) - obj.ref2e569a13 = (*C.VkMultiDrawIndexedInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265SessionParametersAddInfo) + obj.ref9b5b2412 = (*C.VkVideoEncodeH265SessionParametersAddInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MultiDrawIndexedInfo) PassRef() (*C.VkMultiDrawIndexedInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeH265SessionParametersAddInfo) PassRef() (*C.VkVideoEncodeH265SessionParametersAddInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2e569a13 != nil { - return x.ref2e569a13, nil + } else if x.ref9b5b2412 != nil { + return x.ref9b5b2412, nil } - mem2e569a13 := allocMultiDrawIndexedInfoMemory(1) - ref2e569a13 := (*C.VkMultiDrawIndexedInfoEXT)(mem2e569a13) - allocs2e569a13 := new(cgoAllocMap) - allocs2e569a13.Add(mem2e569a13) + mem9b5b2412 := allocVideoEncodeH265SessionParametersAddInfoMemory(1) + ref9b5b2412 := (*C.VkVideoEncodeH265SessionParametersAddInfoEXT)(mem9b5b2412) + allocs9b5b2412 := new(cgoAllocMap) + allocs9b5b2412.Add(mem9b5b2412) - var cfirstIndex_allocs *cgoAllocMap - ref2e569a13.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown - allocs2e569a13.Borrow(cfirstIndex_allocs) + var csType_allocs *cgoAllocMap + ref9b5b2412.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9b5b2412.Borrow(csType_allocs) - var cindexCount_allocs *cgoAllocMap - ref2e569a13.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown - allocs2e569a13.Borrow(cindexCount_allocs) + var cpNext_allocs *cgoAllocMap + ref9b5b2412.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9b5b2412.Borrow(cpNext_allocs) - var cvertexOffset_allocs *cgoAllocMap - ref2e569a13.vertexOffset, cvertexOffset_allocs = (C.int32_t)(x.VertexOffset), cgoAllocsUnknown - allocs2e569a13.Borrow(cvertexOffset_allocs) + var cstdVPSCount_allocs *cgoAllocMap + ref9b5b2412.stdVPSCount, cstdVPSCount_allocs = (C.uint32_t)(x.StdVPSCount), cgoAllocsUnknown + allocs9b5b2412.Borrow(cstdVPSCount_allocs) + + var cstdSPSCount_allocs *cgoAllocMap + ref9b5b2412.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown + allocs9b5b2412.Borrow(cstdSPSCount_allocs) - x.ref2e569a13 = ref2e569a13 - x.allocs2e569a13 = allocs2e569a13 - return ref2e569a13, allocs2e569a13 + var cstdPPSCount_allocs *cgoAllocMap + ref9b5b2412.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown + allocs9b5b2412.Borrow(cstdPPSCount_allocs) + + x.ref9b5b2412 = ref9b5b2412 + x.allocs9b5b2412 = allocs9b5b2412 + return ref9b5b2412, allocs9b5b2412 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MultiDrawIndexedInfo) PassValue() (C.VkMultiDrawIndexedInfoEXT, *cgoAllocMap) { - if x.ref2e569a13 != nil { - return *x.ref2e569a13, nil +func (x VideoEncodeH265SessionParametersAddInfo) PassValue() (C.VkVideoEncodeH265SessionParametersAddInfoEXT, *cgoAllocMap) { + if x.ref9b5b2412 != nil { + return *x.ref9b5b2412, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62360,94 +69569,142 @@ func (x MultiDrawIndexedInfo) PassValue() (C.VkMultiDrawIndexedInfoEXT, *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 *MultiDrawIndexedInfo) Deref() { - if x.ref2e569a13 == nil { +func (x *VideoEncodeH265SessionParametersAddInfo) Deref() { + if x.ref9b5b2412 == nil { return } - x.FirstIndex = (uint32)(x.ref2e569a13.firstIndex) - x.IndexCount = (uint32)(x.ref2e569a13.indexCount) - x.VertexOffset = (int32)(x.ref2e569a13.vertexOffset) + x.SType = (StructureType)(x.ref9b5b2412.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9b5b2412.pNext)) + x.StdVPSCount = (uint32)(x.ref9b5b2412.stdVPSCount) + x.StdSPSCount = (uint32)(x.ref9b5b2412.stdSPSCount) + x.StdPPSCount = (uint32)(x.ref9b5b2412.stdPPSCount) } -// allocPhysicalDeviceImage2DViewOf3DFeaturesMemory allocates memory for type C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT in C. +// allocVideoEncodeH265SessionParametersCreateInfoMemory allocates memory for type C.VkVideoEncodeH265SessionParametersCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceImage2DViewOf3DFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImage2DViewOf3DFeaturesValue)) +func allocVideoEncodeH265SessionParametersCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265SessionParametersCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceImage2DViewOf3DFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT{}) +const sizeOfVideoEncodeH265SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265SessionParametersCreateInfoEXT{}) + +// unpackSVideoEncodeH265SessionParametersAddInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH265SessionParametersAddInfo(x []VideoEncodeH265SessionParametersAddInfo) (unpacked *C.VkVideoEncodeH265SessionParametersAddInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265SessionParametersAddInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH265SessionParametersAddInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH265SessionParametersAddInfoEXT)(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.VkVideoEncodeH265SessionParametersAddInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH265SessionParametersAddInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH265SessionParametersAddInfo(v []VideoEncodeH265SessionParametersAddInfo, ptr0 *C.VkVideoEncodeH265SessionParametersAddInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH265SessionParametersAddInfoValue]C.VkVideoEncodeH265SessionParametersAddInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH265SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImage2DViewOf3DFeatures) Ref() *C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { +func (x *VideoEncodeH265SessionParametersCreateInfo) Ref() *C.VkVideoEncodeH265SessionParametersCreateInfoEXT { if x == nil { return nil } - return x.ref7b20322b + return x.refd4a6e47c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceImage2DViewOf3DFeatures) Free() { - if x != nil && x.allocs7b20322b != nil { - x.allocs7b20322b.(*cgoAllocMap).Free() - x.ref7b20322b = nil +func (x *VideoEncodeH265SessionParametersCreateInfo) Free() { + if x != nil && x.allocsd4a6e47c != nil { + x.allocsd4a6e47c.(*cgoAllocMap).Free() + x.refd4a6e47c = nil } } -// NewPhysicalDeviceImage2DViewOf3DFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceImage2DViewOf3DFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImage2DViewOf3DFeatures { +func NewVideoEncodeH265SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoEncodeH265SessionParametersCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceImage2DViewOf3DFeatures) - obj.ref7b20322b = (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265SessionParametersCreateInfo) + obj.refd4a6e47c = (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceImage2DViewOf3DFeatures) PassRef() (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH265SessionParametersCreateInfo) PassRef() (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7b20322b != nil { - return x.ref7b20322b, nil + } else if x.refd4a6e47c != nil { + return x.refd4a6e47c, nil } - mem7b20322b := allocPhysicalDeviceImage2DViewOf3DFeaturesMemory(1) - ref7b20322b := (*C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)(mem7b20322b) - allocs7b20322b := new(cgoAllocMap) - allocs7b20322b.Add(mem7b20322b) + memd4a6e47c := allocVideoEncodeH265SessionParametersCreateInfoMemory(1) + refd4a6e47c := (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT)(memd4a6e47c) + allocsd4a6e47c := new(cgoAllocMap) + allocsd4a6e47c.Add(memd4a6e47c) var csType_allocs *cgoAllocMap - ref7b20322b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7b20322b.Borrow(csType_allocs) + refd4a6e47c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd4a6e47c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7b20322b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7b20322b.Borrow(cpNext_allocs) + refd4a6e47c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd4a6e47c.Borrow(cpNext_allocs) + + var cmaxStdVPSCount_allocs *cgoAllocMap + refd4a6e47c.maxStdVPSCount, cmaxStdVPSCount_allocs = (C.uint32_t)(x.MaxStdVPSCount), cgoAllocsUnknown + allocsd4a6e47c.Borrow(cmaxStdVPSCount_allocs) - var cimage2DViewOf3D_allocs *cgoAllocMap - ref7b20322b.image2DViewOf3D, cimage2DViewOf3D_allocs = (C.VkBool32)(x.Image2DViewOf3D), cgoAllocsUnknown - allocs7b20322b.Borrow(cimage2DViewOf3D_allocs) + var cmaxStdSPSCount_allocs *cgoAllocMap + refd4a6e47c.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown + allocsd4a6e47c.Borrow(cmaxStdSPSCount_allocs) - var csampler2DViewOf3D_allocs *cgoAllocMap - ref7b20322b.sampler2DViewOf3D, csampler2DViewOf3D_allocs = (C.VkBool32)(x.Sampler2DViewOf3D), cgoAllocsUnknown - allocs7b20322b.Borrow(csampler2DViewOf3D_allocs) + var cmaxStdPPSCount_allocs *cgoAllocMap + refd4a6e47c.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown + allocsd4a6e47c.Borrow(cmaxStdPPSCount_allocs) - x.ref7b20322b = ref7b20322b - x.allocs7b20322b = allocs7b20322b - return ref7b20322b, allocs7b20322b + var cpParametersAddInfo_allocs *cgoAllocMap + refd4a6e47c.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoEncodeH265SessionParametersAddInfo(x.PParametersAddInfo) + allocsd4a6e47c.Borrow(cpParametersAddInfo_allocs) + + x.refd4a6e47c = refd4a6e47c + x.allocsd4a6e47c = allocsd4a6e47c + return refd4a6e47c, allocsd4a6e47c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceImage2DViewOf3DFeatures) PassValue() (C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, *cgoAllocMap) { - if x.ref7b20322b != nil { - return *x.ref7b20322b, nil +func (x VideoEncodeH265SessionParametersCreateInfo) PassValue() (C.VkVideoEncodeH265SessionParametersCreateInfoEXT, *cgoAllocMap) { + if x.refd4a6e47c != nil { + return *x.refd4a6e47c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62455,95 +69712,93 @@ func (x PhysicalDeviceImage2DViewOf3DFeatures) PassValue() (C.VkPhysicalDeviceIm // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceImage2DViewOf3DFeatures) Deref() { - if x.ref7b20322b == nil { +func (x *VideoEncodeH265SessionParametersCreateInfo) Deref() { + if x.refd4a6e47c == nil { return } - x.SType = (StructureType)(x.ref7b20322b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7b20322b.pNext)) - x.Image2DViewOf3D = (Bool32)(x.ref7b20322b.image2DViewOf3D) - x.Sampler2DViewOf3D = (Bool32)(x.ref7b20322b.sampler2DViewOf3D) + x.SType = (StructureType)(x.refd4a6e47c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd4a6e47c.pNext)) + x.MaxStdVPSCount = (uint32)(x.refd4a6e47c.maxStdVPSCount) + x.MaxStdSPSCount = (uint32)(x.refd4a6e47c.maxStdSPSCount) + x.MaxStdPPSCount = (uint32)(x.refd4a6e47c.maxStdPPSCount) + packSVideoEncodeH265SessionParametersAddInfo(x.PParametersAddInfo, x.refd4a6e47c.pParametersAddInfo) } -// allocPhysicalDeviceBorderColorSwizzleFeaturesMemory allocates memory for type C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT in C. +// allocVideoEncodeH265DpbSlotInfoMemory allocates memory for type C.VkVideoEncodeH265DpbSlotInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceBorderColorSwizzleFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBorderColorSwizzleFeaturesValue)) +func allocVideoEncodeH265DpbSlotInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265DpbSlotInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceBorderColorSwizzleFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT{}) +const sizeOfVideoEncodeH265DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265DpbSlotInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBorderColorSwizzleFeatures) Ref() *C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { +func (x *VideoEncodeH265DpbSlotInfo) Ref() *C.VkVideoEncodeH265DpbSlotInfoEXT { if x == nil { return nil } - return x.ref8f8ce94c + return x.refd24cdc3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceBorderColorSwizzleFeatures) Free() { - if x != nil && x.allocs8f8ce94c != nil { - x.allocs8f8ce94c.(*cgoAllocMap).Free() - x.ref8f8ce94c = nil +func (x *VideoEncodeH265DpbSlotInfo) Free() { + if x != nil && x.allocsd24cdc3 != nil { + x.allocsd24cdc3.(*cgoAllocMap).Free() + x.refd24cdc3 = nil } } -// NewPhysicalDeviceBorderColorSwizzleFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceBorderColorSwizzleFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBorderColorSwizzleFeatures { +func NewVideoEncodeH265DpbSlotInfoRef(ref unsafe.Pointer) *VideoEncodeH265DpbSlotInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceBorderColorSwizzleFeatures) - obj.ref8f8ce94c = (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265DpbSlotInfo) + obj.refd24cdc3 = (*C.VkVideoEncodeH265DpbSlotInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceBorderColorSwizzleFeatures) PassRef() (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH265DpbSlotInfo) PassRef() (*C.VkVideoEncodeH265DpbSlotInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8f8ce94c != nil { - return x.ref8f8ce94c, nil + } else if x.refd24cdc3 != nil { + return x.refd24cdc3, nil } - mem8f8ce94c := allocPhysicalDeviceBorderColorSwizzleFeaturesMemory(1) - ref8f8ce94c := (*C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT)(mem8f8ce94c) - allocs8f8ce94c := new(cgoAllocMap) - allocs8f8ce94c.Add(mem8f8ce94c) + memd24cdc3 := allocVideoEncodeH265DpbSlotInfoMemory(1) + refd24cdc3 := (*C.VkVideoEncodeH265DpbSlotInfoEXT)(memd24cdc3) + allocsd24cdc3 := new(cgoAllocMap) + allocsd24cdc3.Add(memd24cdc3) var csType_allocs *cgoAllocMap - ref8f8ce94c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8f8ce94c.Borrow(csType_allocs) + refd24cdc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd24cdc3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8f8ce94c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8f8ce94c.Borrow(cpNext_allocs) - - var cborderColorSwizzle_allocs *cgoAllocMap - ref8f8ce94c.borderColorSwizzle, cborderColorSwizzle_allocs = (C.VkBool32)(x.BorderColorSwizzle), cgoAllocsUnknown - allocs8f8ce94c.Borrow(cborderColorSwizzle_allocs) + refd24cdc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd24cdc3.Borrow(cpNext_allocs) - var cborderColorSwizzleFromImage_allocs *cgoAllocMap - ref8f8ce94c.borderColorSwizzleFromImage, cborderColorSwizzleFromImage_allocs = (C.VkBool32)(x.BorderColorSwizzleFromImage), cgoAllocsUnknown - allocs8f8ce94c.Borrow(cborderColorSwizzleFromImage_allocs) + var cslotIndex_allocs *cgoAllocMap + refd24cdc3.slotIndex, cslotIndex_allocs = (C.int8_t)(x.SlotIndex), cgoAllocsUnknown + allocsd24cdc3.Borrow(cslotIndex_allocs) - x.ref8f8ce94c = ref8f8ce94c - x.allocs8f8ce94c = allocs8f8ce94c - return ref8f8ce94c, allocs8f8ce94c + x.refd24cdc3 = refd24cdc3 + x.allocsd24cdc3 = allocsd24cdc3 + return refd24cdc3, allocsd24cdc3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceBorderColorSwizzleFeatures) PassValue() (C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, *cgoAllocMap) { - if x.ref8f8ce94c != nil { - return *x.ref8f8ce94c, nil +func (x VideoEncodeH265DpbSlotInfo) PassValue() (C.VkVideoEncodeH265DpbSlotInfoEXT, *cgoAllocMap) { + if x.refd24cdc3 != nil { + return *x.refd24cdc3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62551,95 +69806,140 @@ func (x PhysicalDeviceBorderColorSwizzleFeatures) 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 *PhysicalDeviceBorderColorSwizzleFeatures) Deref() { - if x.ref8f8ce94c == nil { +func (x *VideoEncodeH265DpbSlotInfo) Deref() { + if x.refd24cdc3 == nil { return } - x.SType = (StructureType)(x.ref8f8ce94c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8f8ce94c.pNext)) - x.BorderColorSwizzle = (Bool32)(x.ref8f8ce94c.borderColorSwizzle) - x.BorderColorSwizzleFromImage = (Bool32)(x.ref8f8ce94c.borderColorSwizzleFromImage) + x.SType = (StructureType)(x.refd24cdc3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd24cdc3.pNext)) + x.SlotIndex = (byte)(x.refd24cdc3.slotIndex) } -// allocSamplerBorderColorComponentMappingCreateInfoMemory allocates memory for type C.VkSamplerBorderColorComponentMappingCreateInfoEXT in C. +// allocVideoEncodeH265ReferenceListsInfoMemory allocates memory for type C.VkVideoEncodeH265ReferenceListsInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerBorderColorComponentMappingCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerBorderColorComponentMappingCreateInfoValue)) +func allocVideoEncodeH265ReferenceListsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265ReferenceListsInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerBorderColorComponentMappingCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerBorderColorComponentMappingCreateInfoEXT{}) +const sizeOfVideoEncodeH265ReferenceListsInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265ReferenceListsInfoEXT{}) + +// unpackSVideoEncodeH265DpbSlotInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH265DpbSlotInfo(x []VideoEncodeH265DpbSlotInfo) (unpacked *C.VkVideoEncodeH265DpbSlotInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265DpbSlotInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH265DpbSlotInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH265DpbSlotInfoEXT)(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.VkVideoEncodeH265DpbSlotInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH265DpbSlotInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH265DpbSlotInfo(v []VideoEncodeH265DpbSlotInfo, ptr0 *C.VkVideoEncodeH265DpbSlotInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH265DpbSlotInfoValue]C.VkVideoEncodeH265DpbSlotInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH265DpbSlotInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerBorderColorComponentMappingCreateInfo) Ref() *C.VkSamplerBorderColorComponentMappingCreateInfoEXT { +func (x *VideoEncodeH265ReferenceListsInfo) Ref() *C.VkVideoEncodeH265ReferenceListsInfoEXT { if x == nil { return nil } - return x.ref652e9666 + return x.ref86d63cc5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerBorderColorComponentMappingCreateInfo) Free() { - if x != nil && x.allocs652e9666 != nil { - x.allocs652e9666.(*cgoAllocMap).Free() - x.ref652e9666 = nil +func (x *VideoEncodeH265ReferenceListsInfo) Free() { + if x != nil && x.allocs86d63cc5 != nil { + x.allocs86d63cc5.(*cgoAllocMap).Free() + x.ref86d63cc5 = nil } } -// NewSamplerBorderColorComponentMappingCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265ReferenceListsInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerBorderColorComponentMappingCreateInfoRef(ref unsafe.Pointer) *SamplerBorderColorComponentMappingCreateInfo { +func NewVideoEncodeH265ReferenceListsInfoRef(ref unsafe.Pointer) *VideoEncodeH265ReferenceListsInfo { if ref == nil { return nil } - obj := new(SamplerBorderColorComponentMappingCreateInfo) - obj.ref652e9666 = (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265ReferenceListsInfo) + obj.ref86d63cc5 = (*C.VkVideoEncodeH265ReferenceListsInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerBorderColorComponentMappingCreateInfo) PassRef() (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT, *cgoAllocMap) { +func (x *VideoEncodeH265ReferenceListsInfo) PassRef() (*C.VkVideoEncodeH265ReferenceListsInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref652e9666 != nil { - return x.ref652e9666, nil + } else if x.ref86d63cc5 != nil { + return x.ref86d63cc5, nil } - mem652e9666 := allocSamplerBorderColorComponentMappingCreateInfoMemory(1) - ref652e9666 := (*C.VkSamplerBorderColorComponentMappingCreateInfoEXT)(mem652e9666) - allocs652e9666 := new(cgoAllocMap) - allocs652e9666.Add(mem652e9666) + mem86d63cc5 := allocVideoEncodeH265ReferenceListsInfoMemory(1) + ref86d63cc5 := (*C.VkVideoEncodeH265ReferenceListsInfoEXT)(mem86d63cc5) + allocs86d63cc5 := new(cgoAllocMap) + allocs86d63cc5.Add(mem86d63cc5) var csType_allocs *cgoAllocMap - ref652e9666.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs652e9666.Borrow(csType_allocs) + ref86d63cc5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86d63cc5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref652e9666.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs652e9666.Borrow(cpNext_allocs) + ref86d63cc5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86d63cc5.Borrow(cpNext_allocs) - var ccomponents_allocs *cgoAllocMap - ref652e9666.components, ccomponents_allocs = x.Components.PassValue() - allocs652e9666.Borrow(ccomponents_allocs) + var creferenceList0EntryCount_allocs *cgoAllocMap + ref86d63cc5.referenceList0EntryCount, creferenceList0EntryCount_allocs = (C.uint8_t)(x.ReferenceList0EntryCount), cgoAllocsUnknown + allocs86d63cc5.Borrow(creferenceList0EntryCount_allocs) + + var cpReferenceList0Entries_allocs *cgoAllocMap + ref86d63cc5.pReferenceList0Entries, cpReferenceList0Entries_allocs = unpackSVideoEncodeH265DpbSlotInfo(x.PReferenceList0Entries) + allocs86d63cc5.Borrow(cpReferenceList0Entries_allocs) - var csrgb_allocs *cgoAllocMap - ref652e9666.srgb, csrgb_allocs = (C.VkBool32)(x.Srgb), cgoAllocsUnknown - allocs652e9666.Borrow(csrgb_allocs) + var creferenceList1EntryCount_allocs *cgoAllocMap + ref86d63cc5.referenceList1EntryCount, creferenceList1EntryCount_allocs = (C.uint8_t)(x.ReferenceList1EntryCount), cgoAllocsUnknown + allocs86d63cc5.Borrow(creferenceList1EntryCount_allocs) - x.ref652e9666 = ref652e9666 - x.allocs652e9666 = allocs652e9666 - return ref652e9666, allocs652e9666 + var cpReferenceList1Entries_allocs *cgoAllocMap + ref86d63cc5.pReferenceList1Entries, cpReferenceList1Entries_allocs = unpackSVideoEncodeH265DpbSlotInfo(x.PReferenceList1Entries) + allocs86d63cc5.Borrow(cpReferenceList1Entries_allocs) + + x.ref86d63cc5 = ref86d63cc5 + x.allocs86d63cc5 = allocs86d63cc5 + return ref86d63cc5, allocs86d63cc5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerBorderColorComponentMappingCreateInfo) PassValue() (C.VkSamplerBorderColorComponentMappingCreateInfoEXT, *cgoAllocMap) { - if x.ref652e9666 != nil { - return *x.ref652e9666, nil +func (x VideoEncodeH265ReferenceListsInfo) PassValue() (C.VkVideoEncodeH265ReferenceListsInfoEXT, *cgoAllocMap) { + if x.ref86d63cc5 != nil { + return *x.ref86d63cc5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62647,91 +69947,135 @@ func (x SamplerBorderColorComponentMappingCreateInfo) PassValue() (C.VkSamplerBo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerBorderColorComponentMappingCreateInfo) Deref() { - if x.ref652e9666 == nil { +func (x *VideoEncodeH265ReferenceListsInfo) Deref() { + if x.ref86d63cc5 == nil { return } - x.SType = (StructureType)(x.ref652e9666.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref652e9666.pNext)) - x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref652e9666.components)) - x.Srgb = (Bool32)(x.ref652e9666.srgb) + x.SType = (StructureType)(x.ref86d63cc5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86d63cc5.pNext)) + x.ReferenceList0EntryCount = (byte)(x.ref86d63cc5.referenceList0EntryCount) + packSVideoEncodeH265DpbSlotInfo(x.PReferenceList0Entries, x.ref86d63cc5.pReferenceList0Entries) + x.ReferenceList1EntryCount = (byte)(x.ref86d63cc5.referenceList1EntryCount) + packSVideoEncodeH265DpbSlotInfo(x.PReferenceList1Entries, x.ref86d63cc5.pReferenceList1Entries) } -// allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory allocates memory for type C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT in C. +// allocVideoEncodeH265NaluSliceSegmentInfoMemory allocates memory for type C.VkVideoEncodeH265NaluSliceSegmentInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePageableDeviceLocalMemoryFeaturesValue)) +func allocVideoEncodeH265NaluSliceSegmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265NaluSliceSegmentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePageableDeviceLocalMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT{}) +const sizeOfVideoEncodeH265NaluSliceSegmentInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT{}) + +// unpackSVideoEncodeH265ReferenceListsInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH265ReferenceListsInfo(x []VideoEncodeH265ReferenceListsInfo) (unpacked *C.VkVideoEncodeH265ReferenceListsInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265ReferenceListsInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH265ReferenceListsInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH265ReferenceListsInfoEXT)(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.VkVideoEncodeH265ReferenceListsInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH265ReferenceListsInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH265ReferenceListsInfo(v []VideoEncodeH265ReferenceListsInfo, ptr0 *C.VkVideoEncodeH265ReferenceListsInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH265ReferenceListsInfoValue]C.VkVideoEncodeH265ReferenceListsInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH265ReferenceListsInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) Ref() *C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { +func (x *VideoEncodeH265NaluSliceSegmentInfo) Ref() *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT { if x == nil { return nil } - return x.ref837987f8 + return x.refc6dca7f8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) Free() { - if x != nil && x.allocs837987f8 != nil { - x.allocs837987f8.(*cgoAllocMap).Free() - x.ref837987f8 = nil +func (x *VideoEncodeH265NaluSliceSegmentInfo) Free() { + if x != nil && x.allocsc6dca7f8 != nil { + x.allocsc6dca7f8.(*cgoAllocMap).Free() + x.refc6dca7f8 = nil } } -// NewPhysicalDevicePageableDeviceLocalMemoryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265NaluSliceSegmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePageableDeviceLocalMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePageableDeviceLocalMemoryFeatures { +func NewVideoEncodeH265NaluSliceSegmentInfoRef(ref unsafe.Pointer) *VideoEncodeH265NaluSliceSegmentInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePageableDeviceLocalMemoryFeatures) - obj.ref837987f8 = (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265NaluSliceSegmentInfo) + obj.refc6dca7f8 = (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) PassRef() (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, *cgoAllocMap) { +func (x *VideoEncodeH265NaluSliceSegmentInfo) PassRef() (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref837987f8 != nil { - return x.ref837987f8, nil + } else if x.refc6dca7f8 != nil { + return x.refc6dca7f8, nil } - mem837987f8 := allocPhysicalDevicePageableDeviceLocalMemoryFeaturesMemory(1) - ref837987f8 := (*C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)(mem837987f8) - allocs837987f8 := new(cgoAllocMap) - allocs837987f8.Add(mem837987f8) + memc6dca7f8 := allocVideoEncodeH265NaluSliceSegmentInfoMemory(1) + refc6dca7f8 := (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(memc6dca7f8) + allocsc6dca7f8 := new(cgoAllocMap) + allocsc6dca7f8.Add(memc6dca7f8) var csType_allocs *cgoAllocMap - ref837987f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs837987f8.Borrow(csType_allocs) + refc6dca7f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc6dca7f8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref837987f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs837987f8.Borrow(cpNext_allocs) + refc6dca7f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc6dca7f8.Borrow(cpNext_allocs) + + var cctbCount_allocs *cgoAllocMap + refc6dca7f8.ctbCount, cctbCount_allocs = (C.uint32_t)(x.CtbCount), cgoAllocsUnknown + allocsc6dca7f8.Borrow(cctbCount_allocs) - var cpageableDeviceLocalMemory_allocs *cgoAllocMap - ref837987f8.pageableDeviceLocalMemory, cpageableDeviceLocalMemory_allocs = (C.VkBool32)(x.PageableDeviceLocalMemory), cgoAllocsUnknown - allocs837987f8.Borrow(cpageableDeviceLocalMemory_allocs) + var cpReferenceFinalLists_allocs *cgoAllocMap + refc6dca7f8.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists) + allocsc6dca7f8.Borrow(cpReferenceFinalLists_allocs) - x.ref837987f8 = ref837987f8 - x.allocs837987f8 = allocs837987f8 - return ref837987f8, allocs837987f8 + x.refc6dca7f8 = refc6dca7f8 + x.allocsc6dca7f8 = allocsc6dca7f8 + return refc6dca7f8, allocsc6dca7f8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePageableDeviceLocalMemoryFeatures) PassValue() (C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, *cgoAllocMap) { - if x.ref837987f8 != nil { - return *x.ref837987f8, nil +func (x VideoEncodeH265NaluSliceSegmentInfo) PassValue() (C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, *cgoAllocMap) { + if x.refc6dca7f8 != nil { + return *x.refc6dca7f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62739,90 +70083,137 @@ func (x PhysicalDevicePageableDeviceLocalMemoryFeatures) PassValue() (C.VkPhysic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePageableDeviceLocalMemoryFeatures) Deref() { - if x.ref837987f8 == nil { +func (x *VideoEncodeH265NaluSliceSegmentInfo) Deref() { + if x.refc6dca7f8 == nil { return } - x.SType = (StructureType)(x.ref837987f8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref837987f8.pNext)) - x.PageableDeviceLocalMemory = (Bool32)(x.ref837987f8.pageableDeviceLocalMemory) + x.SType = (StructureType)(x.refc6dca7f8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc6dca7f8.pNext)) + x.CtbCount = (uint32)(x.refc6dca7f8.ctbCount) + packSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists, x.refc6dca7f8.pReferenceFinalLists) } -// allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory allocates memory for type C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE in C. +// allocVideoEncodeH265VclFrameInfoMemory allocates memory for type C.VkVideoEncodeH265VclFrameInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValue)) +func allocVideoEncodeH265VclFrameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265VclFrameInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE{}) +const sizeOfVideoEncodeH265VclFrameInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265VclFrameInfoEXT{}) + +// unpackSVideoEncodeH265NaluSliceSegmentInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoEncodeH265NaluSliceSegmentInfo(x []VideoEncodeH265NaluSliceSegmentInfo) (unpacked *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265NaluSliceSegmentInfoEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoEncodeH265NaluSliceSegmentInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(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.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(h.Data) + return +} + +// packSVideoEncodeH265NaluSliceSegmentInfo reads sliced Go data structure out from plain C format. +func packSVideoEncodeH265NaluSliceSegmentInfo(v []VideoEncodeH265NaluSliceSegmentInfo, ptr0 *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoEncodeH265NaluSliceSegmentInfoValue]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoEncodeH265NaluSliceSegmentInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Ref() *C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { +func (x *VideoEncodeH265VclFrameInfo) Ref() *C.VkVideoEncodeH265VclFrameInfoEXT { if x == nil { return nil } - return x.refa6b51ca7 + return x.reff460e7a4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Free() { - if x != nil && x.allocsa6b51ca7 != nil { - x.allocsa6b51ca7.(*cgoAllocMap).Free() - x.refa6b51ca7 = nil +func (x *VideoEncodeH265VclFrameInfo) Free() { + if x != nil && x.allocsf460e7a4 != nil { + x.allocsf460e7a4.(*cgoAllocMap).Free() + x.reff460e7a4 = nil } } -// NewPhysicalDeviceDescriptorSetHostMappingFeaturesVALVERef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265VclFrameInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDescriptorSetHostMappingFeaturesVALVERef(ref unsafe.Pointer) *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { +func NewVideoEncodeH265VclFrameInfoRef(ref unsafe.Pointer) *VideoEncodeH265VclFrameInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) - obj.refa6b51ca7 = (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265VclFrameInfo) + obj.reff460e7a4 = (*C.VkVideoEncodeH265VclFrameInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) PassRef() (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, *cgoAllocMap) { +func (x *VideoEncodeH265VclFrameInfo) PassRef() (*C.VkVideoEncodeH265VclFrameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa6b51ca7 != nil { - return x.refa6b51ca7, nil + } else if x.reff460e7a4 != nil { + return x.reff460e7a4, nil } - mema6b51ca7 := allocPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEMemory(1) - refa6b51ca7 := (*C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)(mema6b51ca7) - allocsa6b51ca7 := new(cgoAllocMap) - allocsa6b51ca7.Add(mema6b51ca7) + memf460e7a4 := allocVideoEncodeH265VclFrameInfoMemory(1) + reff460e7a4 := (*C.VkVideoEncodeH265VclFrameInfoEXT)(memf460e7a4) + allocsf460e7a4 := new(cgoAllocMap) + allocsf460e7a4.Add(memf460e7a4) var csType_allocs *cgoAllocMap - refa6b51ca7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa6b51ca7.Borrow(csType_allocs) + reff460e7a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf460e7a4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa6b51ca7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa6b51ca7.Borrow(cpNext_allocs) + reff460e7a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf460e7a4.Borrow(cpNext_allocs) - var cdescriptorSetHostMapping_allocs *cgoAllocMap - refa6b51ca7.descriptorSetHostMapping, cdescriptorSetHostMapping_allocs = (C.VkBool32)(x.DescriptorSetHostMapping), cgoAllocsUnknown - allocsa6b51ca7.Borrow(cdescriptorSetHostMapping_allocs) + var cpReferenceFinalLists_allocs *cgoAllocMap + reff460e7a4.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists) + allocsf460e7a4.Borrow(cpReferenceFinalLists_allocs) - x.refa6b51ca7 = refa6b51ca7 - x.allocsa6b51ca7 = allocsa6b51ca7 - return refa6b51ca7, allocsa6b51ca7 + var cnaluSliceSegmentEntryCount_allocs *cgoAllocMap + reff460e7a4.naluSliceSegmentEntryCount, cnaluSliceSegmentEntryCount_allocs = (C.uint32_t)(x.NaluSliceSegmentEntryCount), cgoAllocsUnknown + allocsf460e7a4.Borrow(cnaluSliceSegmentEntryCount_allocs) + + var cpNaluSliceSegmentEntries_allocs *cgoAllocMap + reff460e7a4.pNaluSliceSegmentEntries, cpNaluSliceSegmentEntries_allocs = unpackSVideoEncodeH265NaluSliceSegmentInfo(x.PNaluSliceSegmentEntries) + allocsf460e7a4.Borrow(cpNaluSliceSegmentEntries_allocs) + + x.reff460e7a4 = reff460e7a4 + x.allocsf460e7a4 = allocsf460e7a4 + return reff460e7a4, allocsf460e7a4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) PassValue() (C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, *cgoAllocMap) { - if x.refa6b51ca7 != nil { - return *x.refa6b51ca7, nil +func (x VideoEncodeH265VclFrameInfo) PassValue() (C.VkVideoEncodeH265VclFrameInfoEXT, *cgoAllocMap) { + if x.reff460e7a4 != nil { + return *x.reff460e7a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62830,94 +70221,112 @@ func (x PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) PassValue() (C.VkPh // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) Deref() { - if x.refa6b51ca7 == nil { +func (x *VideoEncodeH265VclFrameInfo) Deref() { + if x.reff460e7a4 == nil { return } - x.SType = (StructureType)(x.refa6b51ca7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6b51ca7.pNext)) - x.DescriptorSetHostMapping = (Bool32)(x.refa6b51ca7.descriptorSetHostMapping) + x.SType = (StructureType)(x.reff460e7a4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff460e7a4.pNext)) + packSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists, x.reff460e7a4.pReferenceFinalLists) + x.NaluSliceSegmentEntryCount = (uint32)(x.reff460e7a4.naluSliceSegmentEntryCount) + packSVideoEncodeH265NaluSliceSegmentInfo(x.PNaluSliceSegmentEntries, x.reff460e7a4.pNaluSliceSegmentEntries) } -// allocDescriptorSetBindingReferenceVALVEMemory allocates memory for type C.VkDescriptorSetBindingReferenceVALVE in C. +// allocVideoEncodeH265EmitPictureParametersInfoMemory allocates memory for type C.VkVideoEncodeH265EmitPictureParametersInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetBindingReferenceVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetBindingReferenceVALVEValue)) +func allocVideoEncodeH265EmitPictureParametersInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265EmitPictureParametersInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetBindingReferenceVALVEValue = unsafe.Sizeof([1]C.VkDescriptorSetBindingReferenceVALVE{}) +const sizeOfVideoEncodeH265EmitPictureParametersInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265EmitPictureParametersInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetBindingReferenceVALVE) Ref() *C.VkDescriptorSetBindingReferenceVALVE { +func (x *VideoEncodeH265EmitPictureParametersInfo) Ref() *C.VkVideoEncodeH265EmitPictureParametersInfoEXT { if x == nil { return nil } - return x.refb8b72026 + return x.refdcd5e3b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetBindingReferenceVALVE) Free() { - if x != nil && x.allocsb8b72026 != nil { - x.allocsb8b72026.(*cgoAllocMap).Free() - x.refb8b72026 = nil +func (x *VideoEncodeH265EmitPictureParametersInfo) Free() { + if x != nil && x.allocsdcd5e3b != nil { + x.allocsdcd5e3b.(*cgoAllocMap).Free() + x.refdcd5e3b = nil } } -// NewDescriptorSetBindingReferenceVALVERef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265EmitPictureParametersInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetBindingReferenceVALVERef(ref unsafe.Pointer) *DescriptorSetBindingReferenceVALVE { +func NewVideoEncodeH265EmitPictureParametersInfoRef(ref unsafe.Pointer) *VideoEncodeH265EmitPictureParametersInfo { if ref == nil { return nil } - obj := new(DescriptorSetBindingReferenceVALVE) - obj.refb8b72026 = (*C.VkDescriptorSetBindingReferenceVALVE)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265EmitPictureParametersInfo) + obj.refdcd5e3b = (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetBindingReferenceVALVE) PassRef() (*C.VkDescriptorSetBindingReferenceVALVE, *cgoAllocMap) { +func (x *VideoEncodeH265EmitPictureParametersInfo) PassRef() (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8b72026 != nil { - return x.refb8b72026, nil + } else if x.refdcd5e3b != nil { + return x.refdcd5e3b, nil } - memb8b72026 := allocDescriptorSetBindingReferenceVALVEMemory(1) - refb8b72026 := (*C.VkDescriptorSetBindingReferenceVALVE)(memb8b72026) - allocsb8b72026 := new(cgoAllocMap) - allocsb8b72026.Add(memb8b72026) + memdcd5e3b := allocVideoEncodeH265EmitPictureParametersInfoMemory(1) + refdcd5e3b := (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT)(memdcd5e3b) + allocsdcd5e3b := new(cgoAllocMap) + allocsdcd5e3b.Add(memdcd5e3b) var csType_allocs *cgoAllocMap - refb8b72026.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8b72026.Borrow(csType_allocs) + refdcd5e3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdcd5e3b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8b72026.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8b72026.Borrow(cpNext_allocs) + refdcd5e3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cpNext_allocs) - var cdescriptorSetLayout_allocs *cgoAllocMap - refb8b72026.descriptorSetLayout, cdescriptorSetLayout_allocs = *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&x.DescriptorSetLayout)), cgoAllocsUnknown - allocsb8b72026.Borrow(cdescriptorSetLayout_allocs) + var cvpsId_allocs *cgoAllocMap + refdcd5e3b.vpsId, cvpsId_allocs = (C.uint8_t)(x.VpsId), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cvpsId_allocs) - var cbinding_allocs *cgoAllocMap - refb8b72026.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsb8b72026.Borrow(cbinding_allocs) + var cspsId_allocs *cgoAllocMap + refdcd5e3b.spsId, cspsId_allocs = (C.uint8_t)(x.SpsId), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cspsId_allocs) + + var cemitVpsEnable_allocs *cgoAllocMap + refdcd5e3b.emitVpsEnable, cemitVpsEnable_allocs = (C.VkBool32)(x.EmitVpsEnable), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cemitVpsEnable_allocs) + + var cemitSpsEnable_allocs *cgoAllocMap + refdcd5e3b.emitSpsEnable, cemitSpsEnable_allocs = (C.VkBool32)(x.EmitSpsEnable), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cemitSpsEnable_allocs) + + var cppsIdEntryCount_allocs *cgoAllocMap + refdcd5e3b.ppsIdEntryCount, cppsIdEntryCount_allocs = (C.uint32_t)(x.PpsIdEntryCount), cgoAllocsUnknown + allocsdcd5e3b.Borrow(cppsIdEntryCount_allocs) + + var cppsIdEntries_allocs *cgoAllocMap + refdcd5e3b.ppsIdEntries, cppsIdEntries_allocs = unpackPUint8_tString(x.PpsIdEntries) + allocsdcd5e3b.Borrow(cppsIdEntries_allocs) - x.refb8b72026 = refb8b72026 - x.allocsb8b72026 = allocsb8b72026 - return refb8b72026, allocsb8b72026 + x.refdcd5e3b = refdcd5e3b + x.allocsdcd5e3b = allocsdcd5e3b + return refdcd5e3b, allocsdcd5e3b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetBindingReferenceVALVE) PassValue() (C.VkDescriptorSetBindingReferenceVALVE, *cgoAllocMap) { - if x.refb8b72026 != nil { - return *x.refb8b72026, nil +func (x VideoEncodeH265EmitPictureParametersInfo) PassValue() (C.VkVideoEncodeH265EmitPictureParametersInfoEXT, *cgoAllocMap) { + if x.refdcd5e3b != nil { + return *x.refdcd5e3b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -62925,95 +70334,91 @@ func (x DescriptorSetBindingReferenceVALVE) PassValue() (C.VkDescriptorSetBindin // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetBindingReferenceVALVE) Deref() { - if x.refb8b72026 == nil { +func (x *VideoEncodeH265EmitPictureParametersInfo) Deref() { + if x.refdcd5e3b == nil { return } - x.SType = (StructureType)(x.refb8b72026.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8b72026.pNext)) - x.DescriptorSetLayout = *(*DescriptorSetLayout)(unsafe.Pointer(&x.refb8b72026.descriptorSetLayout)) - x.Binding = (uint32)(x.refb8b72026.binding) + x.SType = (StructureType)(x.refdcd5e3b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdcd5e3b.pNext)) + x.VpsId = (byte)(x.refdcd5e3b.vpsId) + x.SpsId = (byte)(x.refdcd5e3b.spsId) + x.EmitVpsEnable = (Bool32)(x.refdcd5e3b.emitVpsEnable) + x.EmitSpsEnable = (Bool32)(x.refdcd5e3b.emitSpsEnable) + x.PpsIdEntryCount = (uint32)(x.refdcd5e3b.ppsIdEntryCount) + x.PpsIdEntries = packPUint8_tString(x.refdcd5e3b.ppsIdEntries) } -// allocDescriptorSetLayoutHostMappingInfoVALVEMemory allocates memory for type C.VkDescriptorSetLayoutHostMappingInfoVALVE in C. +// allocVideoEncodeH265ProfileInfoMemory allocates memory for type C.VkVideoEncodeH265ProfileInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutHostMappingInfoVALVEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutHostMappingInfoVALVEValue)) +func allocVideoEncodeH265ProfileInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265ProfileInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetLayoutHostMappingInfoVALVEValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutHostMappingInfoVALVE{}) +const sizeOfVideoEncodeH265ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265ProfileInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutHostMappingInfoVALVE) Ref() *C.VkDescriptorSetLayoutHostMappingInfoVALVE { +func (x *VideoEncodeH265ProfileInfo) Ref() *C.VkVideoEncodeH265ProfileInfoEXT { if x == nil { return nil } - return x.ref21a3fbe4 + return x.refba41eb7b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetLayoutHostMappingInfoVALVE) Free() { - if x != nil && x.allocs21a3fbe4 != nil { - x.allocs21a3fbe4.(*cgoAllocMap).Free() - x.ref21a3fbe4 = nil +func (x *VideoEncodeH265ProfileInfo) Free() { + if x != nil && x.allocsba41eb7b != nil { + x.allocsba41eb7b.(*cgoAllocMap).Free() + x.refba41eb7b = nil } } -// NewDescriptorSetLayoutHostMappingInfoVALVERef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetLayoutHostMappingInfoVALVERef(ref unsafe.Pointer) *DescriptorSetLayoutHostMappingInfoVALVE { +func NewVideoEncodeH265ProfileInfoRef(ref unsafe.Pointer) *VideoEncodeH265ProfileInfo { if ref == nil { return nil } - obj := new(DescriptorSetLayoutHostMappingInfoVALVE) - obj.ref21a3fbe4 = (*C.VkDescriptorSetLayoutHostMappingInfoVALVE)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265ProfileInfo) + obj.refba41eb7b = (*C.VkVideoEncodeH265ProfileInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetLayoutHostMappingInfoVALVE) PassRef() (*C.VkDescriptorSetLayoutHostMappingInfoVALVE, *cgoAllocMap) { +func (x *VideoEncodeH265ProfileInfo) PassRef() (*C.VkVideoEncodeH265ProfileInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref21a3fbe4 != nil { - return x.ref21a3fbe4, nil + } else if x.refba41eb7b != nil { + return x.refba41eb7b, nil } - mem21a3fbe4 := allocDescriptorSetLayoutHostMappingInfoVALVEMemory(1) - ref21a3fbe4 := (*C.VkDescriptorSetLayoutHostMappingInfoVALVE)(mem21a3fbe4) - allocs21a3fbe4 := new(cgoAllocMap) - allocs21a3fbe4.Add(mem21a3fbe4) + memba41eb7b := allocVideoEncodeH265ProfileInfoMemory(1) + refba41eb7b := (*C.VkVideoEncodeH265ProfileInfoEXT)(memba41eb7b) + allocsba41eb7b := new(cgoAllocMap) + allocsba41eb7b.Add(memba41eb7b) var csType_allocs *cgoAllocMap - ref21a3fbe4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs21a3fbe4.Borrow(csType_allocs) + refba41eb7b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsba41eb7b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref21a3fbe4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs21a3fbe4.Borrow(cpNext_allocs) + refba41eb7b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsba41eb7b.Borrow(cpNext_allocs) - var cdescriptorOffset_allocs *cgoAllocMap - ref21a3fbe4.descriptorOffset, cdescriptorOffset_allocs = (C.size_t)(x.DescriptorOffset), cgoAllocsUnknown - allocs21a3fbe4.Borrow(cdescriptorOffset_allocs) - - var cdescriptorSize_allocs *cgoAllocMap - ref21a3fbe4.descriptorSize, cdescriptorSize_allocs = (C.uint32_t)(x.DescriptorSize), cgoAllocsUnknown - allocs21a3fbe4.Borrow(cdescriptorSize_allocs) - - x.ref21a3fbe4 = ref21a3fbe4 - x.allocs21a3fbe4 = allocs21a3fbe4 - return ref21a3fbe4, allocs21a3fbe4 + x.refba41eb7b = refba41eb7b + x.allocsba41eb7b = allocsba41eb7b + return refba41eb7b, allocsba41eb7b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetLayoutHostMappingInfoVALVE) PassValue() (C.VkDescriptorSetLayoutHostMappingInfoVALVE, *cgoAllocMap) { - if x.ref21a3fbe4 != nil { - return *x.ref21a3fbe4, nil +func (x VideoEncodeH265ProfileInfo) PassValue() (C.VkVideoEncodeH265ProfileInfoEXT, *cgoAllocMap) { + if x.refba41eb7b != nil { + return *x.refba41eb7b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -63021,91 +70426,105 @@ func (x DescriptorSetLayoutHostMappingInfoVALVE) PassValue() (C.VkDescriptorSetL // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetLayoutHostMappingInfoVALVE) Deref() { - if x.ref21a3fbe4 == nil { +func (x *VideoEncodeH265ProfileInfo) Deref() { + if x.refba41eb7b == nil { return } - x.SType = (StructureType)(x.ref21a3fbe4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref21a3fbe4.pNext)) - x.DescriptorOffset = (uint64)(x.ref21a3fbe4.descriptorOffset) - x.DescriptorSize = (uint32)(x.ref21a3fbe4.descriptorSize) + x.SType = (StructureType)(x.refba41eb7b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba41eb7b.pNext)) } -// allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM in C. +// allocVideoEncodeH265RateControlInfoMemory allocates memory for type C.VkVideoEncodeH265RateControlInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMValue)) +func allocVideoEncodeH265RateControlInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265RateControlInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM{}) +const sizeOfVideoEncodeH265RateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265RateControlInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Ref() *C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { +func (x *VideoEncodeH265RateControlInfo) Ref() *C.VkVideoEncodeH265RateControlInfoEXT { if x == nil { return nil } - return x.refbc16fceb + return x.reffcdc069d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Free() { - if x != nil && x.allocsbc16fceb != nil { - x.allocsbc16fceb.(*cgoAllocMap).Free() - x.refbc16fceb = nil +func (x *VideoEncodeH265RateControlInfo) Free() { + if x != nil && x.allocsfcdc069d != nil { + x.allocsfcdc069d.(*cgoAllocMap).Free() + x.reffcdc069d = nil } } -// NewPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265RateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { +func NewVideoEncodeH265RateControlInfoRef(ref unsafe.Pointer) *VideoEncodeH265RateControlInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) - obj.refbc16fceb = (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265RateControlInfo) + obj.reffcdc069d = (*C.VkVideoEncodeH265RateControlInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, *cgoAllocMap) { +func (x *VideoEncodeH265RateControlInfo) PassRef() (*C.VkVideoEncodeH265RateControlInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc16fceb != nil { - return x.refbc16fceb, nil + } else if x.reffcdc069d != nil { + return x.reffcdc069d, nil } - membc16fceb := allocPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMMemory(1) - refbc16fceb := (*C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)(membc16fceb) - allocsbc16fceb := new(cgoAllocMap) - allocsbc16fceb.Add(membc16fceb) + memfcdc069d := allocVideoEncodeH265RateControlInfoMemory(1) + reffcdc069d := (*C.VkVideoEncodeH265RateControlInfoEXT)(memfcdc069d) + allocsfcdc069d := new(cgoAllocMap) + allocsfcdc069d.Add(memfcdc069d) var csType_allocs *cgoAllocMap - refbc16fceb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc16fceb.Borrow(csType_allocs) + reffcdc069d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfcdc069d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbc16fceb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc16fceb.Borrow(cpNext_allocs) + reffcdc069d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfcdc069d.Borrow(cpNext_allocs) + + var cgopFrameCount_allocs *cgoAllocMap + reffcdc069d.gopFrameCount, cgopFrameCount_allocs = (C.uint32_t)(x.GopFrameCount), cgoAllocsUnknown + allocsfcdc069d.Borrow(cgopFrameCount_allocs) + + var cidrPeriod_allocs *cgoAllocMap + reffcdc069d.idrPeriod, cidrPeriod_allocs = (C.uint32_t)(x.IdrPeriod), cgoAllocsUnknown + allocsfcdc069d.Borrow(cidrPeriod_allocs) - var cfragmentDensityMapOffset_allocs *cgoAllocMap - refbc16fceb.fragmentDensityMapOffset, cfragmentDensityMapOffset_allocs = (C.VkBool32)(x.FragmentDensityMapOffset), cgoAllocsUnknown - allocsbc16fceb.Borrow(cfragmentDensityMapOffset_allocs) + var cconsecutiveBFrameCount_allocs *cgoAllocMap + reffcdc069d.consecutiveBFrameCount, cconsecutiveBFrameCount_allocs = (C.uint32_t)(x.ConsecutiveBFrameCount), cgoAllocsUnknown + allocsfcdc069d.Borrow(cconsecutiveBFrameCount_allocs) - x.refbc16fceb = refbc16fceb - x.allocsbc16fceb = allocsbc16fceb - return refbc16fceb, allocsbc16fceb + var crateControlStructure_allocs *cgoAllocMap + reffcdc069d.rateControlStructure, crateControlStructure_allocs = (C.VkVideoEncodeH265RateControlStructureEXT)(x.RateControlStructure), cgoAllocsUnknown + allocsfcdc069d.Borrow(crateControlStructure_allocs) + + var csubLayerCount_allocs *cgoAllocMap + reffcdc069d.subLayerCount, csubLayerCount_allocs = (C.uint8_t)(x.SubLayerCount), cgoAllocsUnknown + allocsfcdc069d.Borrow(csubLayerCount_allocs) + + x.reffcdc069d = reffcdc069d + x.allocsfcdc069d = allocsfcdc069d + return reffcdc069d, allocsfcdc069d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) PassValue() (C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, *cgoAllocMap) { - if x.refbc16fceb != nil { - return *x.refbc16fceb, nil +func (x VideoEncodeH265RateControlInfo) PassValue() (C.VkVideoEncodeH265RateControlInfoEXT, *cgoAllocMap) { + if x.reffcdc069d != nil { + return *x.reffcdc069d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -63113,90 +70532,94 @@ func (x PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) 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 *PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) Deref() { - if x.refbc16fceb == nil { +func (x *VideoEncodeH265RateControlInfo) Deref() { + if x.reffcdc069d == nil { return } - x.SType = (StructureType)(x.refbc16fceb.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc16fceb.pNext)) - x.FragmentDensityMapOffset = (Bool32)(x.refbc16fceb.fragmentDensityMapOffset) + x.SType = (StructureType)(x.reffcdc069d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffcdc069d.pNext)) + x.GopFrameCount = (uint32)(x.reffcdc069d.gopFrameCount) + x.IdrPeriod = (uint32)(x.reffcdc069d.idrPeriod) + x.ConsecutiveBFrameCount = (uint32)(x.reffcdc069d.consecutiveBFrameCount) + x.RateControlStructure = (VideoEncodeH265RateControlStructure)(x.reffcdc069d.rateControlStructure) + x.SubLayerCount = (byte)(x.reffcdc069d.subLayerCount) } -// allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM in C. +// allocVideoEncodeH265QpMemory allocates memory for type C.VkVideoEncodeH265QpEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMValue)) +func allocVideoEncodeH265QpMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265QpValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM{}) +const sizeOfVideoEncodeH265QpValue = unsafe.Sizeof([1]C.VkVideoEncodeH265QpEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Ref() *C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { +func (x *VideoEncodeH265Qp) Ref() *C.VkVideoEncodeH265QpEXT { if x == nil { return nil } - return x.refe9bba09c + return x.ref72c7618 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Free() { - if x != nil && x.allocse9bba09c != nil { - x.allocse9bba09c.(*cgoAllocMap).Free() - x.refe9bba09c = nil +func (x *VideoEncodeH265Qp) Free() { + if x != nil && x.allocs72c7618 != nil { + x.allocs72c7618.(*cgoAllocMap).Free() + x.ref72c7618 = nil } } -// NewPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265QpRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { +func NewVideoEncodeH265QpRef(ref unsafe.Pointer) *VideoEncodeH265Qp { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) - obj.refe9bba09c = (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265Qp) + obj.ref72c7618 = (*C.VkVideoEncodeH265QpEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, *cgoAllocMap) { +func (x *VideoEncodeH265Qp) PassRef() (*C.VkVideoEncodeH265QpEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe9bba09c != nil { - return x.refe9bba09c, nil + } else if x.ref72c7618 != nil { + return x.ref72c7618, nil } - meme9bba09c := allocPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMMemory(1) - refe9bba09c := (*C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)(meme9bba09c) - allocse9bba09c := new(cgoAllocMap) - allocse9bba09c.Add(meme9bba09c) + mem72c7618 := allocVideoEncodeH265QpMemory(1) + ref72c7618 := (*C.VkVideoEncodeH265QpEXT)(mem72c7618) + allocs72c7618 := new(cgoAllocMap) + allocs72c7618.Add(mem72c7618) - var csType_allocs *cgoAllocMap - refe9bba09c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse9bba09c.Borrow(csType_allocs) + var cqpI_allocs *cgoAllocMap + ref72c7618.qpI, cqpI_allocs = (C.int32_t)(x.QpI), cgoAllocsUnknown + allocs72c7618.Borrow(cqpI_allocs) - var cpNext_allocs *cgoAllocMap - refe9bba09c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse9bba09c.Borrow(cpNext_allocs) + var cqpP_allocs *cgoAllocMap + ref72c7618.qpP, cqpP_allocs = (C.int32_t)(x.QpP), cgoAllocsUnknown + allocs72c7618.Borrow(cqpP_allocs) - var cfragmentDensityOffsetGranularity_allocs *cgoAllocMap - refe9bba09c.fragmentDensityOffsetGranularity, cfragmentDensityOffsetGranularity_allocs = x.FragmentDensityOffsetGranularity.PassValue() - allocse9bba09c.Borrow(cfragmentDensityOffsetGranularity_allocs) + var cqpB_allocs *cgoAllocMap + ref72c7618.qpB, cqpB_allocs = (C.int32_t)(x.QpB), cgoAllocsUnknown + allocs72c7618.Borrow(cqpB_allocs) - x.refe9bba09c = refe9bba09c - x.allocse9bba09c = allocse9bba09c - return refe9bba09c, allocse9bba09c + x.ref72c7618 = ref72c7618 + x.allocs72c7618 = allocs72c7618 + return ref72c7618, allocs72c7618 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) PassValue() (C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, *cgoAllocMap) { - if x.refe9bba09c != nil { - return *x.refe9bba09c, nil +func (x VideoEncodeH265Qp) PassValue() (C.VkVideoEncodeH265QpEXT, *cgoAllocMap) { + if x.ref72c7618 != nil { + return *x.ref72c7618, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -63204,132 +70627,90 @@ func (x PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) PassValue() (C.VkP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) Deref() { - if x.refe9bba09c == nil { +func (x *VideoEncodeH265Qp) Deref() { + if x.ref72c7618 == nil { return } - x.SType = (StructureType)(x.refe9bba09c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe9bba09c.pNext)) - x.FragmentDensityOffsetGranularity = *NewExtent2DRef(unsafe.Pointer(&x.refe9bba09c.fragmentDensityOffsetGranularity)) + x.QpI = (int32)(x.ref72c7618.qpI) + x.QpP = (int32)(x.ref72c7618.qpP) + x.QpB = (int32)(x.ref72c7618.qpB) } -// allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory allocates memory for type C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM in C. +// allocVideoEncodeH265FrameSizeMemory allocates memory for type C.VkVideoEncodeH265FrameSizeEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassFragmentDensityMapOffsetEndInfoQCOMValue)) +func allocVideoEncodeH265FrameSizeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265FrameSizeValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassFragmentDensityMapOffsetEndInfoQCOMValue = unsafe.Sizeof([1]C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM{}) - -// unpackSOffset2D transforms a sliced Go data structure into plain C format. -func unpackSOffset2D(x []Offset2D) (unpacked *C.VkOffset2D, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkOffset2D) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocOffset2DMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkOffset2D)(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.VkOffset2D)(h.Data) - return -} - -// packSOffset2D reads sliced Go data structure out from plain C format. -func packSOffset2D(v []Offset2D, ptr0 *C.VkOffset2D) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfOffset2DValue]C.VkOffset2D)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewOffset2DRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfVideoEncodeH265FrameSizeValue = unsafe.Sizeof([1]C.VkVideoEncodeH265FrameSizeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) Ref() *C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM { +func (x *VideoEncodeH265FrameSize) Ref() *C.VkVideoEncodeH265FrameSizeEXT { if x == nil { return nil } - return x.ref17e4eb04 + return x.ref2c328eac } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) Free() { - if x != nil && x.allocs17e4eb04 != nil { - x.allocs17e4eb04.(*cgoAllocMap).Free() - x.ref17e4eb04 = nil +func (x *VideoEncodeH265FrameSize) Free() { + if x != nil && x.allocs2c328eac != nil { + x.allocs2c328eac.(*cgoAllocMap).Free() + x.ref2c328eac = nil } } -// NewSubpassFragmentDensityMapOffsetEndInfoQCOMRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265FrameSizeRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassFragmentDensityMapOffsetEndInfoQCOMRef(ref unsafe.Pointer) *SubpassFragmentDensityMapOffsetEndInfoQCOM { +func NewVideoEncodeH265FrameSizeRef(ref unsafe.Pointer) *VideoEncodeH265FrameSize { if ref == nil { return nil } - obj := new(SubpassFragmentDensityMapOffsetEndInfoQCOM) - obj.ref17e4eb04 = (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265FrameSize) + obj.ref2c328eac = (*C.VkVideoEncodeH265FrameSizeEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) PassRef() (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM, *cgoAllocMap) { +func (x *VideoEncodeH265FrameSize) PassRef() (*C.VkVideoEncodeH265FrameSizeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref17e4eb04 != nil { - return x.ref17e4eb04, nil + } else if x.ref2c328eac != nil { + return x.ref2c328eac, nil } - mem17e4eb04 := allocSubpassFragmentDensityMapOffsetEndInfoQCOMMemory(1) - ref17e4eb04 := (*C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM)(mem17e4eb04) - allocs17e4eb04 := new(cgoAllocMap) - allocs17e4eb04.Add(mem17e4eb04) + mem2c328eac := allocVideoEncodeH265FrameSizeMemory(1) + ref2c328eac := (*C.VkVideoEncodeH265FrameSizeEXT)(mem2c328eac) + allocs2c328eac := new(cgoAllocMap) + allocs2c328eac.Add(mem2c328eac) - var csType_allocs *cgoAllocMap - ref17e4eb04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs17e4eb04.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref17e4eb04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs17e4eb04.Borrow(cpNext_allocs) + var cframeISize_allocs *cgoAllocMap + ref2c328eac.frameISize, cframeISize_allocs = (C.uint32_t)(x.FrameISize), cgoAllocsUnknown + allocs2c328eac.Borrow(cframeISize_allocs) - var cfragmentDensityOffsetCount_allocs *cgoAllocMap - ref17e4eb04.fragmentDensityOffsetCount, cfragmentDensityOffsetCount_allocs = (C.uint32_t)(x.FragmentDensityOffsetCount), cgoAllocsUnknown - allocs17e4eb04.Borrow(cfragmentDensityOffsetCount_allocs) + var cframePSize_allocs *cgoAllocMap + ref2c328eac.framePSize, cframePSize_allocs = (C.uint32_t)(x.FramePSize), cgoAllocsUnknown + allocs2c328eac.Borrow(cframePSize_allocs) - var cpFragmentDensityOffsets_allocs *cgoAllocMap - ref17e4eb04.pFragmentDensityOffsets, cpFragmentDensityOffsets_allocs = unpackSOffset2D(x.PFragmentDensityOffsets) - allocs17e4eb04.Borrow(cpFragmentDensityOffsets_allocs) + var cframeBSize_allocs *cgoAllocMap + ref2c328eac.frameBSize, cframeBSize_allocs = (C.uint32_t)(x.FrameBSize), cgoAllocsUnknown + allocs2c328eac.Borrow(cframeBSize_allocs) - x.ref17e4eb04 = ref17e4eb04 - x.allocs17e4eb04 = allocs17e4eb04 - return ref17e4eb04, allocs17e4eb04 + x.ref2c328eac = ref2c328eac + x.allocs2c328eac = allocs2c328eac + return ref2c328eac, allocs2c328eac } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassFragmentDensityMapOffsetEndInfoQCOM) PassValue() (C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM, *cgoAllocMap) { - if x.ref17e4eb04 != nil { - return *x.ref17e4eb04, nil +func (x VideoEncodeH265FrameSize) PassValue() (C.VkVideoEncodeH265FrameSizeEXT, *cgoAllocMap) { + if x.ref2c328eac != nil { + return *x.ref2c328eac, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -63337,91 +70718,122 @@ func (x SubpassFragmentDensityMapOffsetEndInfoQCOM) PassValue() (C.VkSubpassFrag // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassFragmentDensityMapOffsetEndInfoQCOM) Deref() { - if x.ref17e4eb04 == nil { +func (x *VideoEncodeH265FrameSize) Deref() { + if x.ref2c328eac == nil { return } - x.SType = (StructureType)(x.ref17e4eb04.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17e4eb04.pNext)) - x.FragmentDensityOffsetCount = (uint32)(x.ref17e4eb04.fragmentDensityOffsetCount) - packSOffset2D(x.PFragmentDensityOffsets, x.ref17e4eb04.pFragmentDensityOffsets) + x.FrameISize = (uint32)(x.ref2c328eac.frameISize) + x.FramePSize = (uint32)(x.ref2c328eac.framePSize) + x.FrameBSize = (uint32)(x.ref2c328eac.frameBSize) } -// allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV in C. +// allocVideoEncodeH265RateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeH265RateControlLayerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLinearColorAttachmentFeaturesNVValue)) +func allocVideoEncodeH265RateControlLayerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265RateControlLayerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceLinearColorAttachmentFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV{}) +const sizeOfVideoEncodeH265RateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265RateControlLayerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceLinearColorAttachmentFeaturesNV) Ref() *C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV { +func (x *VideoEncodeH265RateControlLayerInfo) Ref() *C.VkVideoEncodeH265RateControlLayerInfoEXT { if x == nil { return nil } - return x.ref32a130f5 + return x.ref48d77b5f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceLinearColorAttachmentFeaturesNV) Free() { - if x != nil && x.allocs32a130f5 != nil { - x.allocs32a130f5.(*cgoAllocMap).Free() - x.ref32a130f5 = nil +func (x *VideoEncodeH265RateControlLayerInfo) Free() { + if x != nil && x.allocs48d77b5f != nil { + x.allocs48d77b5f.(*cgoAllocMap).Free() + x.ref48d77b5f = nil } } -// NewPhysicalDeviceLinearColorAttachmentFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEncodeH265RateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceLinearColorAttachmentFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceLinearColorAttachmentFeaturesNV { +func NewVideoEncodeH265RateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeH265RateControlLayerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceLinearColorAttachmentFeaturesNV) - obj.ref32a130f5 = (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV)(unsafe.Pointer(ref)) + obj := new(VideoEncodeH265RateControlLayerInfo) + obj.ref48d77b5f = (*C.VkVideoEncodeH265RateControlLayerInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceLinearColorAttachmentFeaturesNV) PassRef() (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV, *cgoAllocMap) { +func (x *VideoEncodeH265RateControlLayerInfo) PassRef() (*C.VkVideoEncodeH265RateControlLayerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref32a130f5 != nil { - return x.ref32a130f5, nil + } else if x.ref48d77b5f != nil { + return x.ref48d77b5f, nil } - mem32a130f5 := allocPhysicalDeviceLinearColorAttachmentFeaturesNVMemory(1) - ref32a130f5 := (*C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV)(mem32a130f5) - allocs32a130f5 := new(cgoAllocMap) - allocs32a130f5.Add(mem32a130f5) + mem48d77b5f := allocVideoEncodeH265RateControlLayerInfoMemory(1) + ref48d77b5f := (*C.VkVideoEncodeH265RateControlLayerInfoEXT)(mem48d77b5f) + allocs48d77b5f := new(cgoAllocMap) + allocs48d77b5f.Add(mem48d77b5f) var csType_allocs *cgoAllocMap - ref32a130f5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs32a130f5.Borrow(csType_allocs) + ref48d77b5f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48d77b5f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref32a130f5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs32a130f5.Borrow(cpNext_allocs) + ref48d77b5f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48d77b5f.Borrow(cpNext_allocs) + + var ctemporalId_allocs *cgoAllocMap + ref48d77b5f.temporalId, ctemporalId_allocs = (C.uint8_t)(x.TemporalId), cgoAllocsUnknown + allocs48d77b5f.Borrow(ctemporalId_allocs) - var clinearColorAttachment_allocs *cgoAllocMap - ref32a130f5.linearColorAttachment, clinearColorAttachment_allocs = (C.VkBool32)(x.LinearColorAttachment), cgoAllocsUnknown - allocs32a130f5.Borrow(clinearColorAttachment_allocs) + var cuseInitialRcQp_allocs *cgoAllocMap + ref48d77b5f.useInitialRcQp, cuseInitialRcQp_allocs = (C.VkBool32)(x.UseInitialRcQp), cgoAllocsUnknown + allocs48d77b5f.Borrow(cuseInitialRcQp_allocs) - x.ref32a130f5 = ref32a130f5 - x.allocs32a130f5 = allocs32a130f5 - return ref32a130f5, allocs32a130f5 + var cinitialRcQp_allocs *cgoAllocMap + ref48d77b5f.initialRcQp, cinitialRcQp_allocs = x.InitialRcQp.PassValue() + allocs48d77b5f.Borrow(cinitialRcQp_allocs) + + var cuseMinQp_allocs *cgoAllocMap + ref48d77b5f.useMinQp, cuseMinQp_allocs = (C.VkBool32)(x.UseMinQp), cgoAllocsUnknown + allocs48d77b5f.Borrow(cuseMinQp_allocs) + + var cminQp_allocs *cgoAllocMap + ref48d77b5f.minQp, cminQp_allocs = x.MinQp.PassValue() + allocs48d77b5f.Borrow(cminQp_allocs) + + var cuseMaxQp_allocs *cgoAllocMap + ref48d77b5f.useMaxQp, cuseMaxQp_allocs = (C.VkBool32)(x.UseMaxQp), cgoAllocsUnknown + allocs48d77b5f.Borrow(cuseMaxQp_allocs) + + var cmaxQp_allocs *cgoAllocMap + ref48d77b5f.maxQp, cmaxQp_allocs = x.MaxQp.PassValue() + allocs48d77b5f.Borrow(cmaxQp_allocs) + + var cuseMaxFrameSize_allocs *cgoAllocMap + ref48d77b5f.useMaxFrameSize, cuseMaxFrameSize_allocs = (C.VkBool32)(x.UseMaxFrameSize), cgoAllocsUnknown + allocs48d77b5f.Borrow(cuseMaxFrameSize_allocs) + + var cmaxFrameSize_allocs *cgoAllocMap + ref48d77b5f.maxFrameSize, cmaxFrameSize_allocs = x.MaxFrameSize.PassValue() + allocs48d77b5f.Borrow(cmaxFrameSize_allocs) + + x.ref48d77b5f = ref48d77b5f + x.allocs48d77b5f = allocs48d77b5f + return ref48d77b5f, allocs48d77b5f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceLinearColorAttachmentFeaturesNV) PassValue() (C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV, *cgoAllocMap) { - if x.ref32a130f5 != nil { - return *x.ref32a130f5, nil +func (x VideoEncodeH265RateControlLayerInfo) PassValue() (C.VkVideoEncodeH265RateControlLayerInfoEXT, *cgoAllocMap) { + if x.ref48d77b5f != nil { + return *x.ref48d77b5f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -63429,13 +70841,21 @@ func (x PhysicalDeviceLinearColorAttachmentFeaturesNV) PassValue() (C.VkPhysical // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceLinearColorAttachmentFeaturesNV) Deref() { - if x.ref32a130f5 == nil { +func (x *VideoEncodeH265RateControlLayerInfo) Deref() { + if x.ref48d77b5f == nil { return } - x.SType = (StructureType)(x.ref32a130f5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref32a130f5.pNext)) - x.LinearColorAttachment = (Bool32)(x.ref32a130f5.linearColorAttachment) + x.SType = (StructureType)(x.ref48d77b5f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48d77b5f.pNext)) + x.TemporalId = (byte)(x.ref48d77b5f.temporalId) + x.UseInitialRcQp = (Bool32)(x.ref48d77b5f.useInitialRcQp) + x.InitialRcQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.initialRcQp)) + x.UseMinQp = (Bool32)(x.ref48d77b5f.useMinQp) + x.MinQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.minQp)) + x.UseMaxQp = (Bool32)(x.ref48d77b5f.useMaxQp) + x.MaxQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.maxQp)) + x.UseMaxFrameSize = (Bool32)(x.ref48d77b5f.useMaxFrameSize) + x.MaxFrameSize = *NewVideoEncodeH265FrameSizeRef(unsafe.Pointer(&x.ref48d77b5f.maxFrameSize)) } // unpackArgSQueueFamilyProperties transforms a sliced Go data structure into plain C format. @@ -63505,15 +70925,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 d04e524..17806eb 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 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 diff --git a/const.go b/const.go index 3c3a562..1028509 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 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 @@ -18,1484 +19,1460 @@ import "C" const ( // NoPrototypes as defined in vulkan/:24 NoPrototypes = 1 + // EnableBetaExtensions as defined in vulkan/:25 + EnableBetaExtensions = 1 // Version10 as defined in vulkan/vulkan_core.h:22 Version10 = 1 // Use64BitPtrDefines as defined in vulkan/vulkan_core.h:30 Use64BitPtrDefines = 1 // HeaderVersion as defined in vulkan/vulkan_core.h:75 - HeaderVersion = 211 - // UuidSize as defined in vulkan/vulkan_core.h:123 - UuidSize = uint32(16) - // AttachmentUnused as defined in vulkan/vulkan_core.h:124 + HeaderVersion = 239 + // AttachmentUnused as defined in vulkan/vulkan_core.h:123 AttachmentUnused = (^uint32(0)) - // False as defined in vulkan/vulkan_core.h:125 + // False as defined in vulkan/vulkan_core.h:124 False = 0 - // LodClampNone as defined in vulkan/vulkan_core.h:126 + // LodClampNone as defined in vulkan/vulkan_core.h:125 LodClampNone = 1000.0 - // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:127 + // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:126 QueueFamilyIgnored = (^uint32(0)) - // RemainingArrayLayers as defined in vulkan/vulkan_core.h:128 + // RemainingArrayLayers as defined in vulkan/vulkan_core.h:127 RemainingArrayLayers = (^uint32(0)) - // RemainingMipLevels as defined in vulkan/vulkan_core.h:129 + // RemainingMipLevels as defined in vulkan/vulkan_core.h:128 RemainingMipLevels = (^uint32(0)) - // SubpassExternal as defined in vulkan/vulkan_core.h:130 + // SubpassExternal as defined in vulkan/vulkan_core.h:129 SubpassExternal = (^uint32(0)) - // True as defined in vulkan/vulkan_core.h:131 + // True as defined in vulkan/vulkan_core.h:130 True = 1 - // WholeSize as defined in vulkan/vulkan_core.h:132 + // WholeSize as defined in vulkan/vulkan_core.h:131 WholeSize = (^uint64(0)) - // MaxMemoryTypes as defined in vulkan/vulkan_core.h:133 + // MaxMemoryTypes as defined in vulkan/vulkan_core.h:132 MaxMemoryTypes = uint32(32) - // MaxMemoryHeaps as defined in vulkan/vulkan_core.h:134 - MaxMemoryHeaps = uint32(16) - // MaxPhysicalDeviceNameSize as defined in vulkan/vulkan_core.h:135 + // MaxPhysicalDeviceNameSize as defined in vulkan/vulkan_core.h:133 MaxPhysicalDeviceNameSize = uint32(256) - // MaxExtensionNameSize as defined in vulkan/vulkan_core.h:136 + // 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:137 + // MaxDescriptionSize as defined in vulkan/vulkan_core.h:136 MaxDescriptionSize = uint32(256) - // Version11 as defined in vulkan/vulkan_core.h:4632 + // MaxMemoryHeaps as defined in vulkan/vulkan_core.h:137 + MaxMemoryHeaps = uint32(16) + // Version11 as defined in vulkan/vulkan_core.h:4751 Version11 = 1 - // MaxDeviceGroupSize as defined in vulkan/vulkan_core.h:4638 + // MaxDeviceGroupSize as defined in vulkan/vulkan_core.h:4757 MaxDeviceGroupSize = uint32(32) - // LuidSize as defined in vulkan/vulkan_core.h:4639 + // LuidSize as defined in vulkan/vulkan_core.h:4758 LuidSize = uint32(8) - // QueueFamilyExternal as defined in vulkan/vulkan_core.h:4640 + // QueueFamilyExternal as defined in vulkan/vulkan_core.h:4759 QueueFamilyExternal = (^uint32(1)) - // Version12 as defined in vulkan/vulkan_core.h:5497 + // Version12 as defined in vulkan/vulkan_core.h:5616 Version12 = 1 - // MaxDriverNameSize as defined in vulkan/vulkan_core.h:5501 + // MaxDriverNameSize as defined in vulkan/vulkan_core.h:5620 MaxDriverNameSize = uint32(256) - // MaxDriverInfoSize as defined in vulkan/vulkan_core.h:5502 + // MaxDriverInfoSize as defined in vulkan/vulkan_core.h:5621 MaxDriverInfoSize = uint32(256) - // Version13 as defined in vulkan/vulkan_core.h:6248 + // Version13 as defined in vulkan/vulkan_core.h:6370 Version13 = 1 - // KhrSurface as defined in vulkan/vulkan_core.h:7279 + // KhrSurface as defined in vulkan/vulkan_core.h:7411 KhrSurface = 1 - // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:7281 + // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:7413 KhrSurfaceSpecVersion = 25 - // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:7282 + // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:7414 KhrSurfaceExtensionName = "VK_KHR_surface" - // KhrSwapchain as defined in vulkan/vulkan_core.h:7393 + // KhrSwapchain as defined in vulkan/vulkan_core.h:7525 KhrSwapchain = 1 - // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:7395 + // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:7527 KhrSwapchainSpecVersion = 70 - // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:7396 + // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:7528 KhrSwapchainExtensionName = "VK_KHR_swapchain" - // KhrDisplay as defined in vulkan/vulkan_core.h:7552 + // KhrDisplay as defined in vulkan/vulkan_core.h:7685 KhrDisplay = 1 - // KhrDisplaySpecVersion as defined in vulkan/vulkan_core.h:7555 + // KhrDisplaySpecVersion as defined in vulkan/vulkan_core.h:7688 KhrDisplaySpecVersion = 23 - // KhrDisplayExtensionName as defined in vulkan/vulkan_core.h:7556 + // KhrDisplayExtensionName as defined in vulkan/vulkan_core.h:7689 KhrDisplayExtensionName = "VK_KHR_display" - // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:7677 + // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:7810 KhrDisplaySwapchain = 1 - // KhrDisplaySwapchainSpecVersion as defined in vulkan/vulkan_core.h:7678 + // KhrDisplaySwapchainSpecVersion as defined in vulkan/vulkan_core.h:7811 KhrDisplaySwapchainSpecVersion = 10 - // KhrDisplaySwapchainExtensionName as defined in vulkan/vulkan_core.h:7679 + // KhrDisplaySwapchainExtensionName as defined in vulkan/vulkan_core.h:7812 KhrDisplaySwapchainExtensionName = "VK_KHR_display_swapchain" - // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:7700 + // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:7833 KhrSamplerMirrorClampToEdge = 1 - // KhrSamplerMirrorClampToEdgeSpecVersion as defined in vulkan/vulkan_core.h:7701 + // KhrSamplerMirrorClampToEdgeSpecVersion as defined in vulkan/vulkan_core.h:7834 KhrSamplerMirrorClampToEdgeSpecVersion = 3 - // KhrSamplerMirrorClampToEdgeExtensionName as defined in vulkan/vulkan_core.h:7702 + // KhrSamplerMirrorClampToEdgeExtensionName as defined in vulkan/vulkan_core.h:7835 KhrSamplerMirrorClampToEdgeExtensionName = "VK_KHR_sampler_mirror_clamp_to_edge" - // KhrDynamicRendering as defined in vulkan/vulkan_core.h:7705 + // 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" + // KhrVideoDecodeH264 as defined in vulkan/vulkan_core.h:8184 + KhrVideoDecodeH264 = 1 + // KhrVideoDecodeH264SpecVersion as defined in vulkan/vulkan_core.h:8187 + KhrVideoDecodeH264SpecVersion = 8 + // KhrVideoDecodeH264ExtensionName as defined in vulkan/vulkan_core.h:8188 + KhrVideoDecodeH264ExtensionName = "VK_KHR_video_decode_h264" + // KhrDynamicRendering as defined in vulkan/vulkan_core.h:8244 KhrDynamicRendering = 1 - // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:7706 + // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:8245 KhrDynamicRenderingSpecVersion = 1 - // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:7707 + // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:8246 KhrDynamicRenderingExtensionName = "VK_KHR_dynamic_rendering" - // KhrMultiview as defined in vulkan/vulkan_core.h:7767 + // KhrMultiview as defined in vulkan/vulkan_core.h:8306 KhrMultiview = 1 - // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:7768 + // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:8307 KhrMultiviewSpecVersion = 1 - // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:7769 + // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:8308 KhrMultiviewExtensionName = "VK_KHR_multiview" - // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:7778 + // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:8317 KhrGetPhysicalDeviceProperties2 = 1 - // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:7779 + // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:8318 KhrGetPhysicalDeviceProperties2SpecVersion = 2 - // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:7780 + // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:8319 KhrGetPhysicalDeviceProperties2ExtensionName = "VK_KHR_get_physical_device_properties2" - // KhrDeviceGroup as defined in vulkan/vulkan_core.h:7843 + // KhrDeviceGroup as defined in vulkan/vulkan_core.h:8382 KhrDeviceGroup = 1 - // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:7844 + // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:8383 KhrDeviceGroupSpecVersion = 4 - // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:7845 + // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:8384 KhrDeviceGroupExtensionName = "VK_KHR_device_group" - // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:7895 + // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:8434 KhrShaderDrawParameters = 1 - // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:7896 + // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:8435 KhrShaderDrawParametersSpecVersion = 1 - // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:7897 + // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:8436 KhrShaderDrawParametersExtensionName = "VK_KHR_shader_draw_parameters" - // KhrMaintenance1 as defined in vulkan/vulkan_core.h:7900 + // KhrMaintenance1 as defined in vulkan/vulkan_core.h:8439 KhrMaintenance1 = 1 - // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:7901 + // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:8440 KhrMaintenance1SpecVersion = 2 - // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:7902 + // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:8441 KhrMaintenance1ExtensionName = "VK_KHR_maintenance1" - // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:7917 + // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:8456 KhrDeviceGroupCreation = 1 - // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:7918 + // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:8457 KhrDeviceGroupCreationSpecVersion = 1 - // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:7919 + // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:8458 KhrDeviceGroupCreationExtensionName = "VK_KHR_device_group_creation" - // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:7935 + // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:8474 KhrExternalMemoryCapabilities = 1 - // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:7936 + // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8475 KhrExternalMemoryCapabilitiesSpecVersion = 1 - // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:7937 + // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8476 KhrExternalMemoryCapabilitiesExtensionName = "VK_KHR_external_memory_capabilities" - // KhrExternalMemory as defined in vulkan/vulkan_core.h:7969 + // KhrExternalMemory as defined in vulkan/vulkan_core.h:8508 KhrExternalMemory = 1 - // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:7970 + // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:8509 KhrExternalMemorySpecVersion = 1 - // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:7971 + // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:8510 KhrExternalMemoryExtensionName = "VK_KHR_external_memory" - // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:7981 + // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:8520 KhrExternalMemoryFd = 1 - // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:7982 + // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:8521 KhrExternalMemoryFdSpecVersion = 1 - // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:7983 + // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:8522 KhrExternalMemoryFdExtensionName = "VK_KHR_external_memory_fd" - // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8021 + // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8560 KhrExternalSemaphoreCapabilities = 1 - // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8022 + // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8561 KhrExternalSemaphoreCapabilitiesSpecVersion = 1 - // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8023 + // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8562 KhrExternalSemaphoreCapabilitiesExtensionName = "VK_KHR_external_semaphore_capabilities" - // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8046 + // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8585 KhrExternalSemaphore = 1 - // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8047 + // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8586 KhrExternalSemaphoreSpecVersion = 1 - // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8048 + // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8587 KhrExternalSemaphoreExtensionName = "VK_KHR_external_semaphore" - // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8057 + // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8596 KhrExternalSemaphoreFd = 1 - // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8058 + // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8597 KhrExternalSemaphoreFdSpecVersion = 1 - // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8059 + // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8598 KhrExternalSemaphoreFdExtensionName = "VK_KHR_external_semaphore_fd" - // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8091 + // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8630 KhrPushDescriptor = 1 - // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8092 + // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8631 KhrPushDescriptorSpecVersion = 2 - // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8093 + // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8632 KhrPushDescriptorExtensionName = "VK_KHR_push_descriptor" - // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8121 + // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8660 KhrShaderFloat16Int8 = 1 - // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8122 + // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8661 KhrShaderFloat16Int8SpecVersion = 1 - // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8123 + // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8662 KhrShaderFloat16Int8ExtensionName = "VK_KHR_shader_float16_int8" - // Khr16bitStorage as defined in vulkan/vulkan_core.h:8130 + // Khr16bitStorage as defined in vulkan/vulkan_core.h:8669 Khr16bitStorage = 1 - // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8131 + // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8670 Khr16bitStorageSpecVersion = 1 - // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8132 + // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8671 Khr16bitStorageExtensionName = "VK_KHR_16bit_storage" - // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8137 + // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8676 KhrIncrementalPresent = 1 - // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:8138 + // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:8677 KhrIncrementalPresentSpecVersion = 2 - // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8139 + // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8678 KhrIncrementalPresentExtensionName = "VK_KHR_incremental_present" - // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8160 + // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8699 KhrDescriptorUpdateTemplate = 1 - // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8163 + // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8702 KhrDescriptorUpdateTemplateSpecVersion = 1 - // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8164 + // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8703 KhrDescriptorUpdateTemplateExtensionName = "VK_KHR_descriptor_update_template" - // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8197 + // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8736 KhrImagelessFramebuffer = 1 - // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8198 + // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8737 KhrImagelessFramebufferSpecVersion = 1 - // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8199 + // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8738 KhrImagelessFramebufferExtensionName = "VK_KHR_imageless_framebuffer" - // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8210 + // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8749 KhrCreateRenderpass2 = 1 - // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8211 + // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8750 KhrCreateRenderpass2SpecVersion = 1 - // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8212 + // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8751 KhrCreateRenderpass2ExtensionName = "VK_KHR_create_renderpass2" - // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8255 + // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8794 KhrSharedPresentableImage = 1 - // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8256 + // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8795 KhrSharedPresentableImageSpecVersion = 1 - // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8257 + // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8796 KhrSharedPresentableImageExtensionName = "VK_KHR_shared_presentable_image" - // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8273 + // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8812 KhrExternalFenceCapabilities = 1 - // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8274 + // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8813 KhrExternalFenceCapabilitiesSpecVersion = 1 - // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8275 + // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8814 KhrExternalFenceCapabilitiesExtensionName = "VK_KHR_external_fence_capabilities" - // KhrExternalFence as defined in vulkan/vulkan_core.h:8298 + // KhrExternalFence as defined in vulkan/vulkan_core.h:8837 KhrExternalFence = 1 - // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8299 + // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8838 KhrExternalFenceSpecVersion = 1 - // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8300 + // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8839 KhrExternalFenceExtensionName = "VK_KHR_external_fence" - // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8309 + // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8848 KhrExternalFenceFd = 1 - // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8310 + // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8849 KhrExternalFenceFdSpecVersion = 1 - // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8311 + // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8850 KhrExternalFenceFdExtensionName = "VK_KHR_external_fence_fd" - // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8343 + // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8882 KhrPerformanceQuery = 1 - // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8344 + // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8883 KhrPerformanceQuerySpecVersion = 1 - // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8345 + // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8884 KhrPerformanceQueryExtensionName = "VK_KHR_performance_query" - // KhrMaintenance2 as defined in vulkan/vulkan_core.h:8483 + // KhrMaintenance2 as defined in vulkan/vulkan_core.h:9022 KhrMaintenance2 = 1 - // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:8484 + // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:9023 KhrMaintenance2SpecVersion = 1 - // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:8485 + // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:9024 KhrMaintenance2ExtensionName = "VK_KHR_maintenance2" - // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:8504 + // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:9043 KhrGetSurfaceCapabilities2 = 1 - // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:8505 + // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:9044 KhrGetSurfaceCapabilities2SpecVersion = 1 - // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:8506 + // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:9045 KhrGetSurfaceCapabilities2ExtensionName = "VK_KHR_get_surface_capabilities2" - // KhrVariablePointers as defined in vulkan/vulkan_core.h:8542 + // KhrVariablePointers as defined in vulkan/vulkan_core.h:9081 KhrVariablePointers = 1 - // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:8543 + // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:9082 KhrVariablePointersSpecVersion = 1 - // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:8544 + // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:9083 KhrVariablePointersExtensionName = "VK_KHR_variable_pointers" - // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:8551 + // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:9090 KhrGetDisplayProperties2 = 1 - // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:8552 + // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:9091 KhrGetDisplayProperties2SpecVersion = 1 - // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:8553 + // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:9092 KhrGetDisplayProperties2ExtensionName = "VK_KHR_get_display_properties2" - // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:8614 + // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:9153 KhrDedicatedAllocation = 1 - // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:8615 + // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9154 KhrDedicatedAllocationSpecVersion = 3 - // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:8616 + // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9155 KhrDedicatedAllocationExtensionName = "VK_KHR_dedicated_allocation" - // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:8623 + // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:9162 KhrStorageBufferStorageClass = 1 - // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:8624 + // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:9163 KhrStorageBufferStorageClassSpecVersion = 1 - // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:8625 + // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:9164 KhrStorageBufferStorageClassExtensionName = "VK_KHR_storage_buffer_storage_class" - // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:8628 + // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:9167 KhrRelaxedBlockLayout = 1 - // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:8629 + // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:9168 KhrRelaxedBlockLayoutSpecVersion = 1 - // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:8630 + // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:9169 KhrRelaxedBlockLayoutExtensionName = "VK_KHR_relaxed_block_layout" - // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:8633 + // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:9172 KhrGetMemoryRequirements2 = 1 - // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:8634 + // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:9173 KhrGetMemoryRequirements2SpecVersion = 1 - // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:8635 + // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:9174 KhrGetMemoryRequirements2ExtensionName = "VK_KHR_get_memory_requirements2" - // KhrImageFormatList as defined in vulkan/vulkan_core.h:8669 + // KhrImageFormatList as defined in vulkan/vulkan_core.h:9208 KhrImageFormatList = 1 - // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:8670 + // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:9209 KhrImageFormatListSpecVersion = 1 - // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:8671 + // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:9210 KhrImageFormatListExtensionName = "VK_KHR_image_format_list" - // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:8676 + // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:9215 KhrSamplerYcbcrConversion = 1 - // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:8679 + // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:9218 KhrSamplerYcbcrConversionSpecVersion = 14 - // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:8680 + // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:9219 KhrSamplerYcbcrConversionExtensionName = "VK_KHR_sampler_ycbcr_conversion" - // KhrBindMemory2 as defined in vulkan/vulkan_core.h:8716 + // KhrBindMemory2 as defined in vulkan/vulkan_core.h:9255 KhrBindMemory2 = 1 - // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:8717 + // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:9256 KhrBindMemory2SpecVersion = 1 - // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:8718 + // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:9257 KhrBindMemory2ExtensionName = "VK_KHR_bind_memory2" - // KhrMaintenance3 as defined in vulkan/vulkan_core.h:8739 + // KhrMaintenance3 as defined in vulkan/vulkan_core.h:9278 KhrMaintenance3 = 1 - // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:8740 + // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:9279 KhrMaintenance3SpecVersion = 1 - // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:8741 + // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:9280 KhrMaintenance3ExtensionName = "VK_KHR_maintenance3" - // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:8758 + // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:9297 KhrDrawIndirectCount = 1 - // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:8759 + // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:9298 KhrDrawIndirectCountSpecVersion = 1 - // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:8760 + // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9299 KhrDrawIndirectCountExtensionName = "VK_KHR_draw_indirect_count" - // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:8785 + // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:9324 KhrShaderSubgroupExtendedTypes = 1 - // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:8786 + // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:9325 KhrShaderSubgroupExtendedTypesSpecVersion = 1 - // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:8787 + // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:9326 KhrShaderSubgroupExtendedTypesExtensionName = "VK_KHR_shader_subgroup_extended_types" - // Khr8bitStorage as defined in vulkan/vulkan_core.h:8792 + // Khr8bitStorage as defined in vulkan/vulkan_core.h:9331 Khr8bitStorage = 1 - // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8793 + // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:9332 Khr8bitStorageSpecVersion = 1 - // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:8794 + // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:9333 Khr8bitStorageExtensionName = "VK_KHR_8bit_storage" - // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:8799 + // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:9338 KhrShaderAtomicInt64 = 1 - // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:8800 + // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:9339 KhrShaderAtomicInt64SpecVersion = 1 - // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:8801 + // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:9340 KhrShaderAtomicInt64ExtensionName = "VK_KHR_shader_atomic_int64" - // KhrShaderClock as defined in vulkan/vulkan_core.h:8806 + // KhrShaderClock as defined in vulkan/vulkan_core.h:9345 KhrShaderClock = 1 - // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:8807 + // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:9346 KhrShaderClockSpecVersion = 1 - // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:8808 + // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:9347 KhrShaderClockExtensionName = "VK_KHR_shader_clock" - // KhrGlobalPriority as defined in vulkan/vulkan_core.h:8818 + // KhrVideoDecodeH265 as defined in vulkan/vulkan_core.h:9357 + KhrVideoDecodeH265 = 1 + // KhrVideoDecodeH265SpecVersion as defined in vulkan/vulkan_core.h:9360 + KhrVideoDecodeH265SpecVersion = 7 + // KhrVideoDecodeH265ExtensionName as defined in vulkan/vulkan_core.h:9361 + KhrVideoDecodeH265ExtensionName = "VK_KHR_video_decode_h265" + // KhrGlobalPriority as defined in vulkan/vulkan_core.h:9410 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:8820 + // KhrGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:9412 KhrGlobalPrioritySpecVersion = 1 - // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:8821 + // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:9413 KhrGlobalPriorityExtensionName = "VK_KHR_global_priority" - // KhrDriverProperties as defined in vulkan/vulkan_core.h:8855 + // KhrDriverProperties as defined in vulkan/vulkan_core.h:9447 KhrDriverProperties = 1 - // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:8856 + // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:9448 KhrDriverPropertiesSpecVersion = 1 - // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:8857 + // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:9449 KhrDriverPropertiesExtensionName = "VK_KHR_driver_properties" - // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:8868 + // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:9460 KhrShaderFloatControls = 1 - // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:8869 + // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:9461 KhrShaderFloatControlsSpecVersion = 4 - // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:8870 + // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:9462 KhrShaderFloatControlsExtensionName = "VK_KHR_shader_float_controls" - // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:8877 + // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:9469 KhrDepthStencilResolve = 1 - // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:8878 + // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:9470 KhrDepthStencilResolveSpecVersion = 1 - // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:8879 + // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:9471 KhrDepthStencilResolveExtensionName = "VK_KHR_depth_stencil_resolve" - // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:8890 + // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:9482 KhrSwapchainMutableFormat = 1 - // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:8891 + // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:9483 KhrSwapchainMutableFormatSpecVersion = 1 - // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:8892 + // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:9484 KhrSwapchainMutableFormatExtensionName = "VK_KHR_swapchain_mutable_format" - // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:8895 + // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:9487 KhrTimelineSemaphore = 1 - // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8896 + // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:9488 KhrTimelineSemaphoreSpecVersion = 2 - // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8897 + // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:9489 KhrTimelineSemaphoreExtensionName = "VK_KHR_timeline_semaphore" - // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:8937 + // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:9529 KhrVulkanMemoryModel = 1 - // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:8938 + // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:9530 KhrVulkanMemoryModelSpecVersion = 3 - // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:8939 + // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:9531 KhrVulkanMemoryModelExtensionName = "VK_KHR_vulkan_memory_model" - // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:8944 + // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:9536 KhrShaderTerminateInvocation = 1 - // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:8945 + // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:9537 KhrShaderTerminateInvocationSpecVersion = 1 - // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:8946 + // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:9538 KhrShaderTerminateInvocationExtensionName = "VK_KHR_shader_terminate_invocation" - // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:8951 + // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:9543 KhrFragmentShadingRate = 1 - // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:8952 + // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:9544 KhrFragmentShadingRateSpecVersion = 2 - // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:8953 + // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:9545 KhrFragmentShadingRateExtensionName = "VK_KHR_fragment_shading_rate" - // KhrSpirv14 as defined in vulkan/vulkan_core.h:9030 + // KhrSpirv14 as defined in vulkan/vulkan_core.h:9622 KhrSpirv14 = 1 - // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9031 + // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9623 KhrSpirv14SpecVersion = 1 - // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9032 + // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9624 KhrSpirv14ExtensionName = "VK_KHR_spirv_1_4" - // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9035 + // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9627 KhrSurfaceProtectedCapabilities = 1 - // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9036 + // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9628 KhrSurfaceProtectedCapabilitiesSpecVersion = 1 - // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9037 + // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9629 KhrSurfaceProtectedCapabilitiesExtensionName = "VK_KHR_surface_protected_capabilities" - // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9046 + // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9638 KhrSeparateDepthStencilLayouts = 1 - // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9047 + // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9639 KhrSeparateDepthStencilLayoutsSpecVersion = 1 - // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9048 + // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9640 KhrSeparateDepthStencilLayoutsExtensionName = "VK_KHR_separate_depth_stencil_layouts" - // KhrPresentWait as defined in vulkan/vulkan_core.h:9057 + // KhrPresentWait as defined in vulkan/vulkan_core.h:9649 KhrPresentWait = 1 - // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9058 + // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9650 KhrPresentWaitSpecVersion = 1 - // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9059 + // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9651 KhrPresentWaitExtensionName = "VK_KHR_present_wait" - // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9077 + // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9669 KhrUniformBufferStandardLayout = 1 - // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9078 + // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9670 KhrUniformBufferStandardLayoutSpecVersion = 1 - // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9079 + // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9671 KhrUniformBufferStandardLayoutExtensionName = "VK_KHR_uniform_buffer_standard_layout" - // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9084 + // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9676 KhrBufferDeviceAddress = 1 - // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9085 + // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9677 KhrBufferDeviceAddressSpecVersion = 1 - // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9086 + // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9678 KhrBufferDeviceAddressExtensionName = "VK_KHR_buffer_device_address" - // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9116 + // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9708 KhrDeferredHostOperations = 1 - // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9118 + // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9710 KhrDeferredHostOperationsSpecVersion = 4 - // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9119 + // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9711 KhrDeferredHostOperationsExtensionName = "VK_KHR_deferred_host_operations" - // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9151 + // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9743 KhrPipelineExecutableProperties = 1 - // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9152 + // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9744 KhrPipelineExecutablePropertiesSpecVersion = 1 - // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9153 + // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9745 KhrPipelineExecutablePropertiesExtensionName = "VK_KHR_pipeline_executable_properties" - // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9241 + // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9833 KhrShaderIntegerDotProduct = 1 - // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9242 + // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9834 KhrShaderIntegerDotProductSpecVersion = 1 - // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9243 + // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9835 KhrShaderIntegerDotProductExtensionName = "VK_KHR_shader_integer_dot_product" - // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9250 + // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9842 KhrPipelineLibrary = 1 - // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9251 + // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9843 KhrPipelineLibrarySpecVersion = 1 - // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9252 + // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9844 KhrPipelineLibraryExtensionName = "VK_KHR_pipeline_library" - // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9262 + // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9854 KhrShaderNonSemanticInfo = 1 - // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9263 + // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9855 KhrShaderNonSemanticInfoSpecVersion = 1 - // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9264 + // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9856 KhrShaderNonSemanticInfoExtensionName = "VK_KHR_shader_non_semantic_info" - // KhrPresentId as defined in vulkan/vulkan_core.h:9267 + // KhrPresentId as defined in vulkan/vulkan_core.h:9859 KhrPresentId = 1 - // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9268 + // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9860 KhrPresentIdSpecVersion = 1 - // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9269 + // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9861 KhrPresentIdExtensionName = "VK_KHR_present_id" - // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9285 + // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9877 KhrSynchronization2 = 1 - // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9286 + // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9878 KhrSynchronization2SpecVersion = 1 - // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9287 + // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9879 KhrSynchronization2ExtensionName = "VK_KHR_synchronization2" - // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9385 + // KhrFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:9977 + KhrFragmentShaderBarycentric = 1 + // KhrFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:9978 + KhrFragmentShaderBarycentricSpecVersion = 1 + // KhrFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:9979 + KhrFragmentShaderBarycentricExtensionName = "VK_KHR_fragment_shader_barycentric" + // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9994 KhrShaderSubgroupUniformControlFlow = 1 - // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9386 + // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9995 KhrShaderSubgroupUniformControlFlowSpecVersion = 1 - // KhrShaderSubgroupUniformControlFlowExtensionName as defined in vulkan/vulkan_core.h:9387 + // KhrShaderSubgroupUniformControlFlowExtensionName as defined in vulkan/vulkan_core.h:9996 KhrShaderSubgroupUniformControlFlowExtensionName = "VK_KHR_shader_subgroup_uniform_control_flow" - // KhrZeroInitializeWorkgroupMemory as defined in vulkan/vulkan_core.h:9396 + // KhrZeroInitializeWorkgroupMemory as defined in vulkan/vulkan_core.h:10005 KhrZeroInitializeWorkgroupMemory = 1 - // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:9397 + // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:10006 KhrZeroInitializeWorkgroupMemorySpecVersion = 1 - // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:9398 + // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:10007 KhrZeroInitializeWorkgroupMemoryExtensionName = "VK_KHR_zero_initialize_workgroup_memory" - // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:9403 + // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:10012 KhrWorkgroupMemoryExplicitLayout = 1 - // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:9404 + // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:10013 KhrWorkgroupMemoryExplicitLayoutSpecVersion = 1 - // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:9405 + // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:10014 KhrWorkgroupMemoryExplicitLayoutExtensionName = "VK_KHR_workgroup_memory_explicit_layout" - // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:9417 + // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:10026 KhrCopyCommands2 = 1 - // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:9418 + // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:10027 KhrCopyCommands2SpecVersion = 1 - // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:9419 + // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:10028 KhrCopyCommands2ExtensionName = "VK_KHR_copy_commands2" - // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:9476 + // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:10085 KhrFormatFeatureFlags2 = 1 - // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:9477 - KhrFormatFeatureFlags2SpecVersion = 1 - // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:9478 + // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:10086 + KhrFormatFeatureFlags2SpecVersion = 2 + // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:10087 KhrFormatFeatureFlags2ExtensionName = "VK_KHR_format_feature_flags2" - // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:9487 + // KhrRayTracingMaintenance1 as defined in vulkan/vulkan_core.h:10096 + KhrRayTracingMaintenance1 = 1 + // KhrRayTracingMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:10097 + KhrRayTracingMaintenance1SpecVersion = 1 + // KhrRayTracingMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:10098 + KhrRayTracingMaintenance1ExtensionName = "VK_KHR_ray_tracing_maintenance1" + // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:10132 KhrPortabilityEnumeration = 1 - // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:9488 + // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:10133 KhrPortabilityEnumerationSpecVersion = 1 - // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:9489 + // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:10134 KhrPortabilityEnumerationExtensionName = "VK_KHR_portability_enumeration" - // KhrMaintenance4 as defined in vulkan/vulkan_core.h:9492 + // KhrMaintenance4 as defined in vulkan/vulkan_core.h:10137 KhrMaintenance4 = 1 - // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:9493 + // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:10138 KhrMaintenance4SpecVersion = 2 - // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:9494 + // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:10139 KhrMaintenance4ExtensionName = "VK_KHR_maintenance4" - // ExtDebugReport as defined in vulkan/vulkan_core.h:9526 + // ExtDebugReport as defined in vulkan/vulkan_core.h:10171 ExtDebugReport = 1 - // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:9528 + // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:10173 ExtDebugReportSpecVersion = 10 - // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:9529 + // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:10174 ExtDebugReportExtensionName = "VK_EXT_debug_report" - // NvGlslShader as defined in vulkan/vulkan_core.h:9633 + // NvGlslShader as defined in vulkan/vulkan_core.h:10278 NvGlslShader = 1 - // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:9634 + // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:10279 NvGlslShaderSpecVersion = 1 - // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:9635 + // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:10280 NvGlslShaderExtensionName = "VK_NV_glsl_shader" - // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:9638 + // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:10283 ExtDepthRangeUnrestricted = 1 - // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:9639 + // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:10284 ExtDepthRangeUnrestrictedSpecVersion = 1 - // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:9640 + // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:10285 ExtDepthRangeUnrestrictedExtensionName = "VK_EXT_depth_range_unrestricted" - // ImgFilterCubic as defined in vulkan/vulkan_core.h:9643 + // ImgFilterCubic as defined in vulkan/vulkan_core.h:10288 ImgFilterCubic = 1 - // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:9644 + // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:10289 ImgFilterCubicSpecVersion = 1 - // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:9645 + // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:10290 ImgFilterCubicExtensionName = "VK_IMG_filter_cubic" - // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:9648 + // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:10293 AmdRasterizationOrder = 1 - // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:9649 + // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:10294 AmdRasterizationOrderSpecVersion = 1 - // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:9650 + // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:10295 AmdRasterizationOrderExtensionName = "VK_AMD_rasterization_order" - // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:9665 + // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:10310 AmdShaderTrinaryMinmax = 1 - // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:9666 + // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:10311 AmdShaderTrinaryMinmaxSpecVersion = 1 - // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:9667 + // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:10312 AmdShaderTrinaryMinmaxExtensionName = "VK_AMD_shader_trinary_minmax" - // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:9670 + // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:10315 AmdShaderExplicitVertexParameter = 1 - // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:9671 + // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:10316 AmdShaderExplicitVertexParameterSpecVersion = 1 - // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:9672 + // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:10317 AmdShaderExplicitVertexParameterExtensionName = "VK_AMD_shader_explicit_vertex_parameter" - // ExtDebugMarker as defined in vulkan/vulkan_core.h:9675 + // ExtDebugMarker as defined in vulkan/vulkan_core.h:10320 ExtDebugMarker = 1 - // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:9676 + // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:10321 ExtDebugMarkerSpecVersion = 4 - // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:9677 + // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:10322 ExtDebugMarkerExtensionName = "VK_EXT_debug_marker" - // AmdGcnShader as defined in vulkan/vulkan_core.h:9731 + // AmdGcnShader as defined in vulkan/vulkan_core.h:10376 AmdGcnShader = 1 - // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:9732 + // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:10377 AmdGcnShaderSpecVersion = 1 - // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:9733 + // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:10378 AmdGcnShaderExtensionName = "VK_AMD_gcn_shader" - // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:9736 + // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:10381 NvDedicatedAllocation = 1 - // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9737 + // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:10382 NvDedicatedAllocationSpecVersion = 1 - // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9738 + // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:10383 NvDedicatedAllocationExtensionName = "VK_NV_dedicated_allocation" - // ExtTransformFeedback as defined in vulkan/vulkan_core.h:9760 + // ExtTransformFeedback as defined in vulkan/vulkan_core.h:10405 ExtTransformFeedback = 1 - // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:9761 + // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:10406 ExtTransformFeedbackSpecVersion = 1 - // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:9762 + // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:10407 ExtTransformFeedbackExtensionName = "VK_EXT_transform_feedback" - // NvxImageViewHandle as defined in vulkan/vulkan_core.h:9918 + // NvxImageViewHandle as defined in vulkan/vulkan_core.h:10563 NvxImageViewHandle = 1 - // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:9919 + // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:10564 NvxImageViewHandleSpecVersion = 2 - // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:9920 + // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:10565 NvxImageViewHandleExtensionName = "VK_NVX_image_view_handle" - // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:9951 + // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:10596 AmdDrawIndirectCount = 1 - // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:9952 + // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:10597 AmdDrawIndirectCountSpecVersion = 2 - // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9953 + // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:10598 AmdDrawIndirectCountExtensionName = "VK_AMD_draw_indirect_count" - // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:9978 + // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:10623 AmdNegativeViewportHeight = 1 - // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:9979 + // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:10624 AmdNegativeViewportHeightSpecVersion = 1 - // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:9980 + // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:10625 AmdNegativeViewportHeightExtensionName = "VK_AMD_negative_viewport_height" - // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:9983 + // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:10628 AmdGpuShaderHalfFloat = 1 - // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:9984 + // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:10629 AmdGpuShaderHalfFloatSpecVersion = 2 - // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:9985 + // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:10630 AmdGpuShaderHalfFloatExtensionName = "VK_AMD_gpu_shader_half_float" - // AmdShaderBallot as defined in vulkan/vulkan_core.h:9988 + // AmdShaderBallot as defined in vulkan/vulkan_core.h:10633 AmdShaderBallot = 1 - // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:9989 + // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:10634 AmdShaderBallotSpecVersion = 1 - // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:9990 + // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:10635 AmdShaderBallotExtensionName = "VK_AMD_shader_ballot" - // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:9993 + // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:10638 AmdTextureGatherBiasLod = 1 - // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:9994 + // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:10639 AmdTextureGatherBiasLodSpecVersion = 1 - // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:9995 + // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:10640 AmdTextureGatherBiasLodExtensionName = "VK_AMD_texture_gather_bias_lod" - // AmdShaderInfo as defined in vulkan/vulkan_core.h:10004 + // AmdShaderInfo as defined in vulkan/vulkan_core.h:10649 AmdShaderInfo = 1 - // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10005 + // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10650 AmdShaderInfoSpecVersion = 1 - // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10006 + // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10651 AmdShaderInfoExtensionName = "VK_AMD_shader_info" - // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10045 + // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10690 AmdShaderImageLoadStoreLod = 1 - // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10046 + // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10691 AmdShaderImageLoadStoreLodSpecVersion = 1 - // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:10047 + // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:10692 AmdShaderImageLoadStoreLodExtensionName = "VK_AMD_shader_image_load_store_lod" - // NvCornerSampledImage as defined in vulkan/vulkan_core.h:10050 + // NvCornerSampledImage as defined in vulkan/vulkan_core.h:10695 NvCornerSampledImage = 1 - // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10051 + // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10696 NvCornerSampledImageSpecVersion = 2 - // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10052 + // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10697 NvCornerSampledImageExtensionName = "VK_NV_corner_sampled_image" - // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10061 + // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10706 ImgFormatPvrtc = 1 - // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10062 + // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10707 ImgFormatPvrtcSpecVersion = 1 - // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10063 + // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10708 ImgFormatPvrtcExtensionName = "VK_IMG_format_pvrtc" - // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10066 + // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10711 NvExternalMemoryCapabilities = 1 - // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10067 + // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10712 NvExternalMemoryCapabilitiesSpecVersion = 1 - // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10068 + // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10713 NvExternalMemoryCapabilitiesExtensionName = "VK_NV_external_memory_capabilities" - // NvExternalMemory as defined in vulkan/vulkan_core.h:10108 + // NvExternalMemory as defined in vulkan/vulkan_core.h:10753 NvExternalMemory = 1 - // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10109 + // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10754 NvExternalMemorySpecVersion = 1 - // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10110 + // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10755 NvExternalMemoryExtensionName = "VK_NV_external_memory" - // ExtValidationFlags as defined in vulkan/vulkan_core.h:10125 + // ExtValidationFlags as defined in vulkan/vulkan_core.h:10770 ExtValidationFlags = 1 - // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:10126 + // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:10771 ExtValidationFlagsSpecVersion = 2 - // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10127 + // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10772 ExtValidationFlagsExtensionName = "VK_EXT_validation_flags" - // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10143 + // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10788 ExtShaderSubgroupBallot = 1 - // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10144 + // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10789 ExtShaderSubgroupBallotSpecVersion = 1 - // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10145 + // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10790 ExtShaderSubgroupBallotExtensionName = "VK_EXT_shader_subgroup_ballot" - // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10148 + // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10793 ExtShaderSubgroupVote = 1 - // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10149 + // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10794 ExtShaderSubgroupVoteSpecVersion = 1 - // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10150 + // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10795 ExtShaderSubgroupVoteExtensionName = "VK_EXT_shader_subgroup_vote" - // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10153 + // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10798 ExtTextureCompressionAstcHdr = 1 - // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10154 + // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10799 ExtTextureCompressionAstcHdrSpecVersion = 1 - // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10155 + // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10800 ExtTextureCompressionAstcHdrExtensionName = "VK_EXT_texture_compression_astc_hdr" - // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10160 + // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10805 ExtAstcDecodeMode = 1 - // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10161 + // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10806 ExtAstcDecodeModeSpecVersion = 1 - // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10162 + // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10807 ExtAstcDecodeModeExtensionName = "VK_EXT_astc_decode_mode" - // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10177 + // ExtPipelineRobustness as defined in vulkan/vulkan_core.h:10822 + ExtPipelineRobustness = 1 + // ExtPipelineRobustnessSpecVersion as defined in vulkan/vulkan_core.h:10823 + ExtPipelineRobustnessSpecVersion = 1 + // ExtPipelineRobustnessExtensionName as defined in vulkan/vulkan_core.h:10824 + ExtPipelineRobustnessExtensionName = "VK_EXT_pipeline_robustness" + // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10867 ExtConditionalRendering = 1 - // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:10178 + // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:10868 ExtConditionalRenderingSpecVersion = 2 - // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10179 + // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10869 ExtConditionalRenderingExtensionName = "VK_EXT_conditional_rendering" - // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:10220 + // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:10910 NvClipSpaceWScaling = 1 - // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10221 + // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10911 NvClipSpaceWScalingSpecVersion = 1 - // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10222 + // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10912 NvClipSpaceWScalingExtensionName = "VK_NV_clip_space_w_scaling" - // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10247 + // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10937 ExtDirectModeDisplay = 1 - // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10248 + // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10938 ExtDirectModeDisplaySpecVersion = 1 - // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10249 + // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10939 ExtDirectModeDisplayExtensionName = "VK_EXT_direct_mode_display" - // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10259 + // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10949 ExtDisplaySurfaceCounter = 1 - // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10260 + // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10950 ExtDisplaySurfaceCounterSpecVersion = 1 - // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10261 + // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10951 ExtDisplaySurfaceCounterExtensionName = "VK_EXT_display_surface_counter" - // ExtDisplayControl as defined in vulkan/vulkan_core.h:10295 + // ExtDisplayControl as defined in vulkan/vulkan_core.h:10985 ExtDisplayControl = 1 - // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10296 + // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10986 ExtDisplayControlSpecVersion = 1 - // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10297 + // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10987 ExtDisplayControlExtensionName = "VK_EXT_display_control" - // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:10371 + // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:11061 GoogleDisplayTiming = 1 - // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:10372 + // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:11062 GoogleDisplayTimingSpecVersion = 1 - // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:10373 + // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:11063 GoogleDisplayTimingExtensionName = "VK_GOOGLE_display_timing" - // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:10415 + // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:11105 NvSampleMaskOverrideCoverage = 1 - // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:10416 + // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:11106 NvSampleMaskOverrideCoverageSpecVersion = 1 - // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:10417 + // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:11107 NvSampleMaskOverrideCoverageExtensionName = "VK_NV_sample_mask_override_coverage" - // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:10420 + // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:11110 NvGeometryShaderPassthrough = 1 - // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:10421 + // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:11111 NvGeometryShaderPassthroughSpecVersion = 1 - // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:10422 + // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:11112 NvGeometryShaderPassthroughExtensionName = "VK_NV_geometry_shader_passthrough" - // NvViewportArray2 as defined in vulkan/vulkan_core.h:10425 + // NvViewportArray2 as defined in vulkan/vulkan_core.h:11115 NvViewportArray2 = 1 - // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:10426 + // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:11116 NvViewportArray2SpecVersion = 1 - // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:10427 + // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:11117 NvViewportArray2ExtensionName = "VK_NV_viewport_array2" - // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:10432 + // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:11122 NvxMultiviewPerViewAttributes = 1 - // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:10433 + // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:11123 NvxMultiviewPerViewAttributesSpecVersion = 1 - // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:10434 + // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:11124 NvxMultiviewPerViewAttributesExtensionName = "VK_NVX_multiview_per_view_attributes" - // NvViewportSwizzle as defined in vulkan/vulkan_core.h:10443 + // NvViewportSwizzle as defined in vulkan/vulkan_core.h:11133 NvViewportSwizzle = 1 - // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:10444 + // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:11134 NvViewportSwizzleSpecVersion = 1 - // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:10445 + // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:11135 NvViewportSwizzleExtensionName = "VK_NV_viewport_swizzle" - // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:10476 + // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:11166 ExtDiscardRectangles = 1 - // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:10477 + // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:11167 ExtDiscardRectanglesSpecVersion = 1 - // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:10478 + // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:11168 ExtDiscardRectanglesExtensionName = "VK_EXT_discard_rectangles" - // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:10512 + // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:11202 ExtConservativeRasterization = 1 - // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:10513 + // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:11203 ExtConservativeRasterizationSpecVersion = 1 - // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:10514 + // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:11204 ExtConservativeRasterizationExtensionName = "VK_EXT_conservative_rasterization" - // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:10547 + // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:11237 ExtDepthClipEnable = 1 - // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:10548 + // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:11238 ExtDepthClipEnableSpecVersion = 1 - // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:10549 + // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:11239 ExtDepthClipEnableExtensionName = "VK_EXT_depth_clip_enable" - // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:10566 + // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:11256 ExtSwapchainColorspace = 1 - // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:10567 + // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:11257 ExtSwapchainColorSpaceSpecVersion = 4 - // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:10568 + // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:11258 ExtSwapchainColorSpaceExtensionName = "VK_EXT_swapchain_colorspace" - // ExtHdrMetadata as defined in vulkan/vulkan_core.h:10571 + // ExtHdrMetadata as defined in vulkan/vulkan_core.h:11261 ExtHdrMetadata = 1 - // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:10572 + // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:11262 ExtHdrMetadataSpecVersion = 2 - // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:10573 + // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:11263 ExtHdrMetadataExtensionName = "VK_EXT_hdr_metadata" - // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:10603 + // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:11293 ExtExternalMemoryDmaBuf = 1 - // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:10604 + // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:11294 ExtExternalMemoryDmaBufSpecVersion = 1 - // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:10605 + // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:11295 ExtExternalMemoryDmaBufExtensionName = "VK_EXT_external_memory_dma_buf" - // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:10608 + // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:11298 ExtQueueFamilyForeign = 1 - // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:10609 + // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:11299 ExtQueueFamilyForeignSpecVersion = 1 - // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:10610 + // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:11300 ExtQueueFamilyForeignExtensionName = "VK_EXT_queue_family_foreign" - // QueueFamilyForeign as defined in vulkan/vulkan_core.h:10611 + // QueueFamilyForeign as defined in vulkan/vulkan_core.h:11301 QueueFamilyForeign = (^uint32(2)) - // ExtDebugUtils as defined in vulkan/vulkan_core.h:10614 + // ExtDebugUtils as defined in vulkan/vulkan_core.h:11304 ExtDebugUtils = 1 - // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:10616 + // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:11306 ExtDebugUtilsSpecVersion = 2 - // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:10617 + // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:11307 ExtDebugUtilsExtensionName = "VK_EXT_debug_utils" - // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:10755 + // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:11446 ExtSamplerFilterMinmax = 1 - // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:10756 + // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:11447 ExtSamplerFilterMinmaxSpecVersion = 2 - // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:10757 + // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:11448 ExtSamplerFilterMinmaxExtensionName = "VK_EXT_sampler_filter_minmax" - // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:10766 + // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:11457 AmdGpuShaderInt16 = 1 - // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:10767 + // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:11458 AmdGpuShaderInt16SpecVersion = 2 - // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:10768 + // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:11459 AmdGpuShaderInt16ExtensionName = "VK_AMD_gpu_shader_int16" - // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:10771 + // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:11462 AmdMixedAttachmentSamples = 1 - // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:10772 + // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:11463 AmdMixedAttachmentSamplesSpecVersion = 1 - // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:10773 + // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:11464 AmdMixedAttachmentSamplesExtensionName = "VK_AMD_mixed_attachment_samples" - // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:10776 + // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:11467 AmdShaderFragmentMask = 1 - // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:10777 + // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:11468 AmdShaderFragmentMaskSpecVersion = 1 - // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:10778 + // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:11469 AmdShaderFragmentMaskExtensionName = "VK_AMD_shader_fragment_mask" - // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:10781 + // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:11472 ExtInlineUniformBlock = 1 - // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:10782 + // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:11473 ExtInlineUniformBlockSpecVersion = 1 - // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:10783 + // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:11474 ExtInlineUniformBlockExtensionName = "VK_EXT_inline_uniform_block" - // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:10794 + // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:11485 ExtShaderStencilExport = 1 - // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:10795 + // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:11486 ExtShaderStencilExportSpecVersion = 1 - // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:10796 + // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:11487 ExtShaderStencilExportExtensionName = "VK_EXT_shader_stencil_export" - // ExtSampleLocations as defined in vulkan/vulkan_core.h:10799 + // ExtSampleLocations as defined in vulkan/vulkan_core.h:11490 ExtSampleLocations = 1 - // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:10800 + // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:11491 ExtSampleLocationsSpecVersion = 1 - // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:10801 + // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:11492 ExtSampleLocationsExtensionName = "VK_EXT_sample_locations" - // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:10873 + // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:11564 ExtBlendOperationAdvanced = 1 - // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:10874 + // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:11565 ExtBlendOperationAdvancedSpecVersion = 2 - // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:10875 + // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:11566 ExtBlendOperationAdvancedExtensionName = "VK_EXT_blend_operation_advanced" - // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:10910 + // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:11601 NvFragmentCoverageToColor = 1 - // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:10911 + // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:11602 NvFragmentCoverageToColorSpecVersion = 1 - // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:10912 + // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:11603 NvFragmentCoverageToColorExtensionName = "VK_NV_fragment_coverage_to_color" - // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:10924 + // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:11615 NvFramebufferMixedSamples = 1 - // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:10925 + // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:11616 NvFramebufferMixedSamplesSpecVersion = 1 - // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:10926 + // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:11617 NvFramebufferMixedSamplesExtensionName = "VK_NV_framebuffer_mixed_samples" - // NvFillRectangle as defined in vulkan/vulkan_core.h:10948 + // NvFillRectangle as defined in vulkan/vulkan_core.h:11639 NvFillRectangle = 1 - // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:10949 + // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:11640 NvFillRectangleSpecVersion = 1 - // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:10950 + // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:11641 NvFillRectangleExtensionName = "VK_NV_fill_rectangle" - // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:10953 + // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:11644 NvShaderSmBuiltins = 1 - // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:10954 + // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:11645 NvShaderSmBuiltinsSpecVersion = 1 - // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:10955 + // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:11646 NvShaderSmBuiltinsExtensionName = "VK_NV_shader_sm_builtins" - // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:10971 + // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:11662 ExtPostDepthCoverage = 1 - // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:10972 + // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:11663 ExtPostDepthCoverageSpecVersion = 1 - // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:10973 + // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:11664 ExtPostDepthCoverageExtensionName = "VK_EXT_post_depth_coverage" - // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:10976 + // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:11667 ExtImageDrmFormatModifier = 1 - // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:10977 + // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:11668 ExtImageDrmFormatModifierSpecVersion = 2 - // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:10978 + // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:11669 ExtImageDrmFormatModifierExtensionName = "VK_EXT_image_drm_format_modifier" - // ExtValidationCache as defined in vulkan/vulkan_core.h:11045 + // ExtValidationCache as defined in vulkan/vulkan_core.h:11736 ExtValidationCache = 1 - // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11047 + // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11738 ExtValidationCacheSpecVersion = 1 - // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11048 + // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11739 ExtValidationCacheExtensionName = "VK_EXT_validation_cache" - // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11100 + // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11791 ExtDescriptorIndexing = 1 - // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11101 + // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11792 ExtDescriptorIndexingSpecVersion = 2 - // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11102 + // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11793 ExtDescriptorIndexingExtensionName = "VK_EXT_descriptor_indexing" - // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11119 + // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11810 ExtShaderViewportIndexLayer = 1 - // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11120 + // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11811 ExtShaderViewportIndexLayerSpecVersion = 1 - // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11121 + // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11812 ExtShaderViewportIndexLayerExtensionName = "VK_EXT_shader_viewport_index_layer" - // NvShadingRateImage as defined in vulkan/vulkan_core.h:11124 + // NvShadingRateImage as defined in vulkan/vulkan_core.h:11815 NvShadingRateImage = 1 - // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11125 + // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11816 NvShadingRateImageSpecVersion = 3 - // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11126 + // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11817 NvShadingRateImageExtensionName = "VK_NV_shading_rate_image" - // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:11596 + // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:12292 NvRepresentativeFragmentTest = 1 - // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:11597 + // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:12293 NvRepresentativeFragmentTestSpecVersion = 2 - // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:11598 + // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:12294 NvRepresentativeFragmentTestExtensionName = "VK_NV_representative_fragment_test" - // ExtFilterCubic as defined in vulkan/vulkan_core.h:11613 + // ExtFilterCubic as defined in vulkan/vulkan_core.h:12309 ExtFilterCubic = 1 - // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:11614 + // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:12310 ExtFilterCubicSpecVersion = 3 - // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:11615 + // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:12311 ExtFilterCubicExtensionName = "VK_EXT_filter_cubic" - // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:11631 + // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:12327 QcomRenderPassShaderResolve = 1 - // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:11632 + // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:12328 QcomRenderPassShaderResolveSpecVersion = 4 - // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:11633 + // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:12329 QcomRenderPassShaderResolveExtensionName = "VK_QCOM_render_pass_shader_resolve" - // ExtGlobalPriority as defined in vulkan/vulkan_core.h:11636 + // ExtGlobalPriority as defined in vulkan/vulkan_core.h:12332 ExtGlobalPriority = 1 - // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:11637 + // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:12333 ExtGlobalPrioritySpecVersion = 2 - // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:11638 + // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:12334 ExtGlobalPriorityExtensionName = "VK_EXT_global_priority" - // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:11645 + // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:12341 ExtExternalMemoryHost = 1 - // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:11646 + // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:12342 ExtExternalMemoryHostSpecVersion = 1 - // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:11647 + // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:12343 ExtExternalMemoryHostExtensionName = "VK_EXT_external_memory_host" - // AmdBufferMarker as defined in vulkan/vulkan_core.h:11678 + // AmdBufferMarker as defined in vulkan/vulkan_core.h:12374 AmdBufferMarker = 1 - // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:11679 + // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:12375 AmdBufferMarkerSpecVersion = 1 - // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:11680 + // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:12376 AmdBufferMarkerExtensionName = "VK_AMD_buffer_marker" - // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:11693 + // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:12389 AmdPipelineCompilerControl = 1 - // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:11694 + // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:12390 AmdPipelineCompilerControlSpecVersion = 1 - // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:11695 + // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:12391 AmdPipelineCompilerControlExtensionName = "VK_AMD_pipeline_compiler_control" - // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:11709 + // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:12405 ExtCalibratedTimestamps = 1 - // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:11710 + // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:12406 ExtCalibratedTimestampsSpecVersion = 2 - // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:11711 + // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:12407 ExtCalibratedTimestampsExtensionName = "VK_EXT_calibrated_timestamps" - // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:11744 + // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:12440 AmdShaderCoreProperties = 1 - // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:11745 + // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:12441 AmdShaderCorePropertiesSpecVersion = 2 - // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:11746 + // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:12442 AmdShaderCorePropertiesExtensionName = "VK_AMD_shader_core_properties" - // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:11768 + // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:12464 AmdMemoryOverallocationBehavior = 1 - // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:11769 + // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:12465 AmdMemoryOverallocationBehaviorSpecVersion = 1 - // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:11770 + // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:12466 AmdMemoryOverallocationBehaviorExtensionName = "VK_AMD_memory_overallocation_behavior" - // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:11786 + // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:12482 ExtVertexAttributeDivisor = 1 - // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:11787 + // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:12483 ExtVertexAttributeDivisorSpecVersion = 3 - // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:11788 + // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:12484 ExtVertexAttributeDivisorExtensionName = "VK_EXT_vertex_attribute_divisor" - // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:11816 + // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:12512 ExtPipelineCreationFeedback = 1 - // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:11817 + // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:12513 ExtPipelineCreationFeedbackSpecVersion = 1 - // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:11818 + // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:12514 ExtPipelineCreationFeedbackExtensionName = "VK_EXT_pipeline_creation_feedback" - // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:11829 + // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:12525 NvShaderSubgroupPartitioned = 1 - // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:11830 + // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:12526 NvShaderSubgroupPartitionedSpecVersion = 1 - // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:11831 + // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:12527 NvShaderSubgroupPartitionedExtensionName = "VK_NV_shader_subgroup_partitioned" - // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:11834 + // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:12530 NvComputeShaderDerivatives = 1 - // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:11835 + // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:12531 NvComputeShaderDerivativesSpecVersion = 1 - // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:11836 + // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:12532 NvComputeShaderDerivativesExtensionName = "VK_NV_compute_shader_derivatives" - // NvMeshShader as defined in vulkan/vulkan_core.h:11846 + // NvMeshShader as defined in vulkan/vulkan_core.h:12542 NvMeshShader = 1 - // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:11847 + // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:12543 NvMeshShaderSpecVersion = 1 - // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:11848 + // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:12544 NvMeshShaderExtensionName = "VK_NV_mesh_shader" - // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:11907 + // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:12603 NvFragmentShaderBarycentric = 1 - // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:11908 + // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:12604 NvFragmentShaderBarycentricSpecVersion = 1 - // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:11909 + // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:12605 NvFragmentShaderBarycentricExtensionName = "VK_NV_fragment_shader_barycentric" - // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:11918 + // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:12610 NvShaderImageFootprint = 1 - // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:11919 + // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:12611 NvShaderImageFootprintSpecVersion = 2 - // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:11920 + // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:12612 NvShaderImageFootprintExtensionName = "VK_NV_shader_image_footprint" - // NvScissorExclusive as defined in vulkan/vulkan_core.h:11929 + // NvScissorExclusive as defined in vulkan/vulkan_core.h:12621 NvScissorExclusive = 1 - // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:11930 + // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:12622 NvScissorExclusiveSpecVersion = 1 - // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:11931 + // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:12623 NvScissorExclusiveExtensionName = "VK_NV_scissor_exclusive" - // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:11956 + // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:12648 NvDeviceDiagnosticCheckpoints = 1 - // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:11957 + // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:12649 NvDeviceDiagnosticCheckpointsSpecVersion = 2 - // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:11958 + // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:12650 NvDeviceDiagnosticCheckpointsExtensionName = "VK_NV_device_diagnostic_checkpoints" - // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:11987 + // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:12679 IntelShaderIntegerFunctions2 = 1 - // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:11988 + // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:12680 IntelShaderIntegerFunctions2SpecVersion = 1 - // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:11989 + // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:12681 IntelShaderIntegerFunctions2ExtensionName = "VK_INTEL_shader_integer_functions2" - // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:11998 + // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:12690 IntelPerformanceQuery = 1 - // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12000 + // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12692 IntelPerformanceQuerySpecVersion = 2 - // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12001 + // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12693 IntelPerformanceQueryExtensionName = "VK_INTEL_performance_query" - // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12136 + // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12828 ExtPciBusInfo = 1 - // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:12137 + // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:12829 ExtPciBusInfoSpecVersion = 2 - // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12138 + // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12830 ExtPciBusInfoExtensionName = "VK_EXT_pci_bus_info" - // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12150 + // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12842 AmdDisplayNativeHdr = 1 - // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12151 + // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12843 AmdDisplayNativeHdrSpecVersion = 1 - // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12152 + // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12844 AmdDisplayNativeHdrExtensionName = "VK_AMD_display_native_hdr" - // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12175 + // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12867 ExtFragmentDensityMap = 1 - // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12176 + // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12868 ExtFragmentDensityMapSpecVersion = 2 - // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12177 + // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12869 ExtFragmentDensityMapExtensionName = "VK_EXT_fragment_density_map" - // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12202 + // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12894 ExtScalarBlockLayout = 1 - // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12203 + // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12895 ExtScalarBlockLayoutSpecVersion = 1 - // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12204 + // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12896 ExtScalarBlockLayoutExtensionName = "VK_EXT_scalar_block_layout" - // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12209 + // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12901 GoogleHlslFunctionality1 = 1 - // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:12210 + // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:12902 GoogleHlslFunctionality1SpecVersion = 1 - // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12211 + // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12903 GoogleHlslFunctionality1ExtensionName = "VK_GOOGLE_hlsl_functionality1" - // GoogleDecorateString as defined in vulkan/vulkan_core.h:12216 + // GoogleDecorateString as defined in vulkan/vulkan_core.h:12908 GoogleDecorateString = 1 - // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:12217 + // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:12909 GoogleDecorateStringSpecVersion = 1 - // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12218 + // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12910 GoogleDecorateStringExtensionName = "VK_GOOGLE_decorate_string" - // ExtSubgroupSizeControl as defined in vulkan/vulkan_core.h:12221 + // ExtSubgroupSizeControl as defined in vulkan/vulkan_core.h:12913 ExtSubgroupSizeControl = 1 - // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12222 + // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12914 ExtSubgroupSizeControlSpecVersion = 2 - // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12223 + // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12915 ExtSubgroupSizeControlExtensionName = "VK_EXT_subgroup_size_control" - // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12232 + // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12924 AmdShaderCoreProperties2 = 1 - // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12233 + // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12925 AmdShaderCoreProperties2SpecVersion = 1 - // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12234 + // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12926 AmdShaderCoreProperties2ExtensionName = "VK_AMD_shader_core_properties2" - // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12249 + // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12941 AmdDeviceCoherentMemory = 1 - // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12250 + // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12942 AmdDeviceCoherentMemorySpecVersion = 1 - // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12251 + // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12943 AmdDeviceCoherentMemoryExtensionName = "VK_AMD_device_coherent_memory" - // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12260 + // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12952 ExtShaderImageAtomicInt64 = 1 - // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12261 + // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12953 ExtShaderImageAtomicInt64SpecVersion = 1 - // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12262 + // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12954 ExtShaderImageAtomicInt64ExtensionName = "VK_EXT_shader_image_atomic_int64" - // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12272 + // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12964 ExtMemoryBudget = 1 - // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12273 + // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12965 ExtMemoryBudgetSpecVersion = 1 - // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12274 + // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12966 ExtMemoryBudgetExtensionName = "VK_EXT_memory_budget" - // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12284 + // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12976 ExtMemoryPriority = 1 - // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12285 + // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12977 ExtMemoryPrioritySpecVersion = 1 - // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12286 + // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12978 ExtMemoryPriorityExtensionName = "VK_EXT_memory_priority" - // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12301 + // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12993 NvDedicatedAllocationImageAliasing = 1 - // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12302 + // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12994 NvDedicatedAllocationImageAliasingSpecVersion = 1 - // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12303 + // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12995 NvDedicatedAllocationImageAliasingExtensionName = "VK_NV_dedicated_allocation_image_aliasing" - // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:12312 + // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:13004 ExtBufferDeviceAddress = 1 - // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:12313 + // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:13005 ExtBufferDeviceAddressSpecVersion = 2 - // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:12314 + // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:13006 ExtBufferDeviceAddressExtensionName = "VK_EXT_buffer_device_address" - // ExtToolingInfo as defined in vulkan/vulkan_core.h:12342 + // ExtToolingInfo as defined in vulkan/vulkan_core.h:13034 ExtToolingInfo = 1 - // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:12343 + // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:13035 ExtToolingInfoSpecVersion = 1 - // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:12344 + // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:13036 ExtToolingInfoExtensionName = "VK_EXT_tooling_info" - // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:12361 + // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:13053 ExtSeparateStencilUsage = 1 - // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:12362 + // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:13054 ExtSeparateStencilUsageSpecVersion = 1 - // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:12363 + // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:13055 ExtSeparateStencilUsageExtensionName = "VK_EXT_separate_stencil_usage" - // ExtValidationFeatures as defined in vulkan/vulkan_core.h:12368 + // ExtValidationFeatures as defined in vulkan/vulkan_core.h:13060 ExtValidationFeatures = 1 - // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:12369 + // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:13061 ExtValidationFeaturesSpecVersion = 5 - // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:12370 + // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:13062 ExtValidationFeaturesExtensionName = "VK_EXT_validation_features" - // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:12403 + // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:13095 NvCooperativeMatrix = 1 - // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:12404 + // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:13096 NvCooperativeMatrixSpecVersion = 1 - // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:12405 + // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:13097 NvCooperativeMatrixExtensionName = "VK_NV_cooperative_matrix" - // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:12465 + // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:13157 NvCoverageReductionMode = 1 - // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:12466 + // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:13158 NvCoverageReductionModeSpecVersion = 1 - // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:12467 + // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:13159 NvCoverageReductionModeExtensionName = "VK_NV_coverage_reduction_mode" - // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:12507 + // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:13199 ExtFragmentShaderInterlock = 1 - // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:12508 + // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:13200 ExtFragmentShaderInterlockSpecVersion = 1 - // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:12509 + // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:13201 ExtFragmentShaderInterlockExtensionName = "VK_EXT_fragment_shader_interlock" - // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:12520 + // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:13212 ExtYcbcrImageArrays = 1 - // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:12521 + // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:13213 ExtYcbcrImageArraysSpecVersion = 1 - // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:12522 + // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:13214 ExtYcbcrImageArraysExtensionName = "VK_EXT_ycbcr_image_arrays" - // ExtProvokingVertex as defined in vulkan/vulkan_core.h:12531 + // ExtProvokingVertex as defined in vulkan/vulkan_core.h:13223 ExtProvokingVertex = 1 - // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:12532 + // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:13224 ExtProvokingVertexSpecVersion = 1 - // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:12533 + // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:13225 ExtProvokingVertexExtensionName = "VK_EXT_provoking_vertex" - // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:12562 + // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:13254 ExtHeadlessSurface = 1 - // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:12563 + // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:13255 ExtHeadlessSurfaceSpecVersion = 1 - // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:12564 + // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:13256 ExtHeadlessSurfaceExtensionName = "VK_EXT_headless_surface" - // ExtLineRasterization as defined in vulkan/vulkan_core.h:12583 + // ExtLineRasterization as defined in vulkan/vulkan_core.h:13275 ExtLineRasterization = 1 - // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:12584 + // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:13276 ExtLineRasterizationSpecVersion = 1 - // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:12585 + // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:13277 ExtLineRasterizationExtensionName = "VK_EXT_line_rasterization" - // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:12630 + // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:13322 ExtShaderAtomicFloat = 1 - // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:12631 + // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:13323 ExtShaderAtomicFloatSpecVersion = 1 - // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:12632 + // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:13324 ExtShaderAtomicFloatExtensionName = "VK_EXT_shader_atomic_float" - // ExtHostQueryReset as defined in vulkan/vulkan_core.h:12652 + // ExtHostQueryReset as defined in vulkan/vulkan_core.h:13344 ExtHostQueryReset = 1 - // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:12653 + // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:13345 ExtHostQueryResetSpecVersion = 1 - // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:12654 + // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:13346 ExtHostQueryResetExtensionName = "VK_EXT_host_query_reset" - // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:12668 + // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:13360 ExtIndexTypeUint8 = 1 - // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:12669 + // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:13361 ExtIndexTypeUint8SpecVersion = 1 - // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:12670 + // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:13362 ExtIndexTypeUint8ExtensionName = "VK_EXT_index_type_uint8" - // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:12679 + // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:13371 ExtExtendedDynamicState = 1 - // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:12680 + // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13372 ExtExtendedDynamicStateSpecVersion = 1 - // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:12681 + // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13373 ExtExtendedDynamicStateExtensionName = "VK_EXT_extended_dynamic_state" - // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:12763 + // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:13455 ExtShaderAtomicFloat2 = 1 - // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:12764 + // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:13456 ExtShaderAtomicFloat2SpecVersion = 1 - // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:12765 + // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:13457 ExtShaderAtomicFloat2ExtensionName = "VK_EXT_shader_atomic_float2" - // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:12785 + // ExtSurfaceMaintenance1 as defined in vulkan/vulkan_core.h:13477 + ExtSurfaceMaintenance1 = 1 + // ExtSurfaceMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13478 + ExtSurfaceMaintenance1SpecVersion = 1 + // ExtSurfaceMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13479 + ExtSurfaceMaintenance1ExtensionName = "VK_EXT_surface_maintenance1" + // ExtSwapchainMaintenance1 as defined in vulkan/vulkan_core.h:13521 + ExtSwapchainMaintenance1 = 1 + // ExtSwapchainMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13522 + ExtSwapchainMaintenance1SpecVersion = 1 + // ExtSwapchainMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13523 + ExtSwapchainMaintenance1ExtensionName = "VK_EXT_swapchain_maintenance1" + // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:13576 ExtShaderDemoteToHelperInvocation = 1 - // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:12786 + // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:13577 ExtShaderDemoteToHelperInvocationSpecVersion = 1 - // ExtShaderDemoteToHelperInvocationExtensionName as defined in vulkan/vulkan_core.h:12787 + // ExtShaderDemoteToHelperInvocationExtensionName as defined in vulkan/vulkan_core.h:13578 ExtShaderDemoteToHelperInvocationExtensionName = "VK_EXT_shader_demote_to_helper_invocation" - // NvDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:12792 + // NvDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:13583 NvDeviceGeneratedCommands = 1 - // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:12794 + // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:13585 NvDeviceGeneratedCommandsSpecVersion = 3 - // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:12795 + // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:13586 NvDeviceGeneratedCommandsExtensionName = "VK_NV_device_generated_commands" - // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:12982 + // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:13774 NvInheritedViewportScissor = 1 - // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:12983 + // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:13775 NvInheritedViewportScissorSpecVersion = 1 - // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:12984 + // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:13776 NvInheritedViewportScissorExtensionName = "VK_NV_inherited_viewport_scissor" - // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13001 + // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13793 ExtTexelBufferAlignment = 1 - // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13002 + // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13794 ExtTexelBufferAlignmentSpecVersion = 1 - // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13003 + // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13795 ExtTexelBufferAlignmentExtensionName = "VK_EXT_texel_buffer_alignment" - // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13014 + // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13806 QcomRenderPassTransform = 1 - // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13015 - QcomRenderPassTransformSpecVersion = 2 - // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13016 + // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13807 + QcomRenderPassTransformSpecVersion = 3 + // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13808 QcomRenderPassTransformExtensionName = "VK_QCOM_render_pass_transform" - // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13032 + // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13824 ExtDeviceMemoryReport = 1 - // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13033 + // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13825 ExtDeviceMemoryReportSpecVersion = 2 - // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13034 + // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13826 ExtDeviceMemoryReportExtensionName = "VK_EXT_device_memory_report" - // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13077 + // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13869 ExtAcquireDrmDisplay = 1 - // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13078 + // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13870 ExtAcquireDrmDisplaySpecVersion = 1 - // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13079 + // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13871 ExtAcquireDrmDisplayExtensionName = "VK_EXT_acquire_drm_display" - // ExtRobustness2 as defined in vulkan/vulkan_core.h:13097 + // ExtRobustness2 as defined in vulkan/vulkan_core.h:13889 ExtRobustness2 = 1 - // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13098 + // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13890 ExtRobustness2SpecVersion = 1 - // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13099 + // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13891 ExtRobustness2ExtensionName = "VK_EXT_robustness2" - // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13117 + // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13909 ExtCustomBorderColor = 1 - // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13118 + // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13910 ExtCustomBorderColorSpecVersion = 12 - // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13119 + // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13911 ExtCustomBorderColorExtensionName = "VK_EXT_custom_border_color" - // GoogleUserType as defined in vulkan/vulkan_core.h:13142 + // GoogleUserType as defined in vulkan/vulkan_core.h:13934 GoogleUserType = 1 - // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13143 + // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13935 GoogleUserTypeSpecVersion = 1 - // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13144 + // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13936 GoogleUserTypeExtensionName = "VK_GOOGLE_user_type" - // ExtPrivateData as defined in vulkan/vulkan_core.h:13147 + // NvPresentBarrier as defined in vulkan/vulkan_core.h:13939 + NvPresentBarrier = 1 + // NvPresentBarrierSpecVersion as defined in vulkan/vulkan_core.h:13940 + NvPresentBarrierSpecVersion = 1 + // NvPresentBarrierExtensionName as defined in vulkan/vulkan_core.h:13941 + NvPresentBarrierExtensionName = "VK_NV_present_barrier" + // ExtPrivateData as defined in vulkan/vulkan_core.h:13962 ExtPrivateData = 1 - // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13150 + // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13965 ExtPrivateDataSpecVersion = 1 - // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13151 + // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13966 ExtPrivateDataExtensionName = "VK_EXT_private_data" - // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:13193 + // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:14008 ExtPipelineCreationCacheControl = 1 - // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:13194 + // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:14009 ExtPipelineCreationCacheControlSpecVersion = 3 - // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:13195 + // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:14010 ExtPipelineCreationCacheControlExtensionName = "VK_EXT_pipeline_creation_cache_control" - // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:13200 + // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:14015 NvDeviceDiagnosticsConfig = 1 - // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:13201 - NvDeviceDiagnosticsConfigSpecVersion = 1 - // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:13202 + // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:14016 + NvDeviceDiagnosticsConfigSpecVersion = 2 + // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:14017 NvDeviceDiagnosticsConfigExtensionName = "VK_NV_device_diagnostics_config" - // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:13225 + // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:14041 QcomRenderPassStoreOps = 1 - // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:13226 + // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:14042 QcomRenderPassStoreOpsSpecVersion = 2 - // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:13227 + // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:14043 QcomRenderPassStoreOpsExtensionName = "VK_QCOM_render_pass_store_ops" - // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:13230 + // ExtDescriptorBuffer as defined in vulkan/vulkan_core.h:14046 + ExtDescriptorBuffer = 1 + // ExtDescriptorBufferSpecVersion as defined in vulkan/vulkan_core.h:14048 + ExtDescriptorBufferSpecVersion = 1 + // ExtDescriptorBufferExtensionName as defined in vulkan/vulkan_core.h:14049 + ExtDescriptorBufferExtensionName = "VK_EXT_descriptor_buffer" + // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:14265 ExtGraphicsPipelineLibrary = 1 - // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:13231 + // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:14266 ExtGraphicsPipelineLibrarySpecVersion = 1 - // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:13232 + // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:14267 ExtGraphicsPipelineLibraryExtensionName = "VK_EXT_graphics_pipeline_library" - // NvFragmentShadingRateEnums as defined in vulkan/vulkan_core.h:13263 + // AmdShaderEarlyAndLateFragmentTests as defined in vulkan/vulkan_core.h:14298 + AmdShaderEarlyAndLateFragmentTests = 1 + // AmdShaderEarlyAndLateFragmentTestsSpecVersion as defined in vulkan/vulkan_core.h:14299 + AmdShaderEarlyAndLateFragmentTestsSpecVersion = 1 + // AmdShaderEarlyAndLateFragmentTestsExtensionName as defined in vulkan/vulkan_core.h:14300 + AmdShaderEarlyAndLateFragmentTestsExtensionName = "VK_AMD_shader_early_and_late_fragment_tests" + // NvFragmentShadingRateEnums as defined in vulkan/vulkan_core.h:14309 NvFragmentShadingRateEnums = 1 - // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:13264 + // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:14310 NvFragmentShadingRateEnumsSpecVersion = 1 - // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:13265 + // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:14311 NvFragmentShadingRateEnumsExtensionName = "VK_NV_fragment_shading_rate_enums" - // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:13411 + // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:14457 ExtYcbcr2plane444Formats = 1 - // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:13412 + // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14458 ExtYcbcr2plane444FormatsSpecVersion = 1 - // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:13413 + // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:14459 ExtYcbcr2plane444FormatsExtensionName = "VK_EXT_ycbcr_2plane_444_formats" - // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:13422 + // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:14468 ExtFragmentDensityMap2 = 1 - // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:13423 + // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:14469 ExtFragmentDensityMap2SpecVersion = 1 - // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:13424 + // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:14470 ExtFragmentDensityMap2ExtensionName = "VK_EXT_fragment_density_map2" - // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:13442 + // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:14488 QcomRotatedCopyCommands = 1 - // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:13443 + // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:14489 QcomRotatedCopyCommandsSpecVersion = 1 - // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:13444 + // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:14490 QcomRotatedCopyCommandsExtensionName = "VK_QCOM_rotated_copy_commands" - // ExtImageRobustness as defined in vulkan/vulkan_core.h:13453 + // ExtImageRobustness as defined in vulkan/vulkan_core.h:14499 ExtImageRobustness = 1 - // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:13454 + // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:14500 ExtImageRobustnessSpecVersion = 1 - // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:13455 + // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:14501 ExtImageRobustnessExtensionName = "VK_EXT_image_robustness" - // Ext4444Formats as defined in vulkan/vulkan_core.h:13460 + // ExtImageCompressionControl as defined in vulkan/vulkan_core.h:14506 + ExtImageCompressionControl = 1 + // ExtImageCompressionControlSpecVersion as defined in vulkan/vulkan_core.h:14507 + ExtImageCompressionControlSpecVersion = 1 + // ExtImageCompressionControlExtensionName as defined in vulkan/vulkan_core.h:14508 + ExtImageCompressionControlExtensionName = "VK_EXT_image_compression_control" + // ExtAttachmentFeedbackLoopLayout as defined in vulkan/vulkan_core.h:14592 + ExtAttachmentFeedbackLoopLayout = 1 + // ExtAttachmentFeedbackLoopLayoutSpecVersion as defined in vulkan/vulkan_core.h:14593 + ExtAttachmentFeedbackLoopLayoutSpecVersion = 2 + // ExtAttachmentFeedbackLoopLayoutExtensionName as defined in vulkan/vulkan_core.h:14594 + ExtAttachmentFeedbackLoopLayoutExtensionName = "VK_EXT_attachment_feedback_loop_layout" + // Ext4444Formats as defined in vulkan/vulkan_core.h:14603 Ext4444Formats = 1 - // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:13461 + // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14604 Ext4444FormatsSpecVersion = 1 - // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:13462 + // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:14605 Ext4444FormatsExtensionName = "VK_EXT_4444_formats" - // ArmRasterizationOrderAttachmentAccess as defined in vulkan/vulkan_core.h:13472 - ArmRasterizationOrderAttachmentAccess = 1 - // ArmRasterizationOrderAttachmentAccessSpecVersion as defined in vulkan/vulkan_core.h:13473 - ArmRasterizationOrderAttachmentAccessSpecVersion = 1 - // ArmRasterizationOrderAttachmentAccessExtensionName as defined in vulkan/vulkan_core.h:13474 - ArmRasterizationOrderAttachmentAccessExtensionName = "VK_ARM_rasterization_order_attachment_access" - // ExtRgba10x6Formats as defined in vulkan/vulkan_core.h:13485 - ExtRgba10x6Formats = 1 - // ExtRgba10x6FormatsSpecVersion as defined in vulkan/vulkan_core.h:13486 - ExtRgba10x6FormatsSpecVersion = 1 - // ExtRgba10x6FormatsExtensionName as defined in vulkan/vulkan_core.h:13487 - ExtRgba10x6FormatsExtensionName = "VK_EXT_rgba10x6_formats" - // NvAcquireWinrtDisplay as defined in vulkan/vulkan_core.h:13496 - NvAcquireWinrtDisplay = 1 - // NvAcquireWinrtDisplaySpecVersion as defined in vulkan/vulkan_core.h:13497 - NvAcquireWinrtDisplaySpecVersion = 1 - // NvAcquireWinrtDisplayExtensionName as defined in vulkan/vulkan_core.h:13498 - NvAcquireWinrtDisplayExtensionName = "VK_NV_acquire_winrt_display" - // ValveMutableDescriptorType as defined in vulkan/vulkan_core.h:13514 - ValveMutableDescriptorType = 1 - // ValveMutableDescriptorTypeSpecVersion as defined in vulkan/vulkan_core.h:13515 - ValveMutableDescriptorTypeSpecVersion = 1 - // ValveMutableDescriptorTypeExtensionName as defined in vulkan/vulkan_core.h:13516 - ValveMutableDescriptorTypeExtensionName = "VK_VALVE_mutable_descriptor_type" - // ExtVertexInputDynamicState as defined in vulkan/vulkan_core.h:13537 - ExtVertexInputDynamicState = 1 - // ExtVertexInputDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13538 - ExtVertexInputDynamicStateSpecVersion = 2 - // ExtVertexInputDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13539 - ExtVertexInputDynamicStateExtensionName = "VK_EXT_vertex_input_dynamic_state" - // ExtPhysicalDeviceDrm as defined in vulkan/vulkan_core.h:13576 - ExtPhysicalDeviceDrm = 1 - // ExtPhysicalDeviceDrmSpecVersion as defined in vulkan/vulkan_core.h:13577 - ExtPhysicalDeviceDrmSpecVersion = 1 - // ExtPhysicalDeviceDrmExtensionName as defined in vulkan/vulkan_core.h:13578 - ExtPhysicalDeviceDrmExtensionName = "VK_EXT_physical_device_drm" - // ExtDepthClipControl as defined in vulkan/vulkan_core.h:13592 - ExtDepthClipControl = 1 - // ExtDepthClipControlSpecVersion as defined in vulkan/vulkan_core.h:13593 - ExtDepthClipControlSpecVersion = 1 - // ExtDepthClipControlExtensionName as defined in vulkan/vulkan_core.h:13594 - ExtDepthClipControlExtensionName = "VK_EXT_depth_clip_control" - // ExtPrimitiveTopologyListRestart as defined in vulkan/vulkan_core.h:13609 - ExtPrimitiveTopologyListRestart = 1 - // ExtPrimitiveTopologyListRestartSpecVersion as defined in vulkan/vulkan_core.h:13610 - ExtPrimitiveTopologyListRestartSpecVersion = 1 - // ExtPrimitiveTopologyListRestartExtensionName as defined in vulkan/vulkan_core.h:13611 - ExtPrimitiveTopologyListRestartExtensionName = "VK_EXT_primitive_topology_list_restart" - // HuaweiSubpassShading as defined in vulkan/vulkan_core.h:13621 - HuaweiSubpassShading = 1 - // HuaweiSubpassShadingSpecVersion as defined in vulkan/vulkan_core.h:13622 - HuaweiSubpassShadingSpecVersion = 2 - // HuaweiSubpassShadingExtensionName as defined in vulkan/vulkan_core.h:13623 - HuaweiSubpassShadingExtensionName = "VK_HUAWEI_subpass_shading" - // HuaweiInvocationMask as defined in vulkan/vulkan_core.h:13657 - HuaweiInvocationMask = 1 - // HuaweiInvocationMaskSpecVersion as defined in vulkan/vulkan_core.h:13658 - HuaweiInvocationMaskSpecVersion = 1 - // HuaweiInvocationMaskExtensionName as defined in vulkan/vulkan_core.h:13659 - HuaweiInvocationMaskExtensionName = "VK_HUAWEI_invocation_mask" - // NvExternalMemoryRdma as defined in vulkan/vulkan_core.h:13676 - NvExternalMemoryRdma = 1 - // NvExternalMemoryRdmaSpecVersion as defined in vulkan/vulkan_core.h:13678 - NvExternalMemoryRdmaSpecVersion = 1 - // NvExternalMemoryRdmaExtensionName as defined in vulkan/vulkan_core.h:13679 - NvExternalMemoryRdmaExtensionName = "VK_NV_external_memory_rdma" - // ExtExtendedDynamicState2 as defined in vulkan/vulkan_core.h:13703 - ExtExtendedDynamicState2 = 1 - // ExtExtendedDynamicState2SpecVersion as defined in vulkan/vulkan_core.h:13704 - ExtExtendedDynamicState2SpecVersion = 1 - // ExtExtendedDynamicState2ExtensionName as defined in vulkan/vulkan_core.h:13705 - ExtExtendedDynamicState2ExtensionName = "VK_EXT_extended_dynamic_state2" - // ExtColorWriteEnable as defined in vulkan/vulkan_core.h:13743 - ExtColorWriteEnable = 1 - // ExtColorWriteEnableSpecVersion as defined in vulkan/vulkan_core.h:13744 - ExtColorWriteEnableSpecVersion = 1 - // ExtColorWriteEnableExtensionName as defined in vulkan/vulkan_core.h:13745 - ExtColorWriteEnableExtensionName = "VK_EXT_color_write_enable" - // ExtPrimitivesGeneratedQuery as defined in vulkan/vulkan_core.h:13769 - ExtPrimitivesGeneratedQuery = 1 - // ExtPrimitivesGeneratedQuerySpecVersion as defined in vulkan/vulkan_core.h:13770 - ExtPrimitivesGeneratedQuerySpecVersion = 1 - // ExtPrimitivesGeneratedQueryExtensionName as defined in vulkan/vulkan_core.h:13771 - ExtPrimitivesGeneratedQueryExtensionName = "VK_EXT_primitives_generated_query" - // ExtGlobalPriorityQuery as defined in vulkan/vulkan_core.h:13782 - ExtGlobalPriorityQuery = 1 - // ExtGlobalPriorityQuerySpecVersion as defined in vulkan/vulkan_core.h:13783 - ExtGlobalPriorityQuerySpecVersion = 1 - // ExtGlobalPriorityQueryExtensionName as defined in vulkan/vulkan_core.h:13784 - ExtGlobalPriorityQueryExtensionName = "VK_EXT_global_priority_query" - // ExtImageViewMinLod as defined in vulkan/vulkan_core.h:13792 - ExtImageViewMinLod = 1 - // ExtImageViewMinLodSpecVersion as defined in vulkan/vulkan_core.h:13793 - ExtImageViewMinLodSpecVersion = 1 - // ExtImageViewMinLodExtensionName as defined in vulkan/vulkan_core.h:13794 - ExtImageViewMinLodExtensionName = "VK_EXT_image_view_min_lod" - // ExtMultiDraw as defined in vulkan/vulkan_core.h:13809 - ExtMultiDraw = 1 - // ExtMultiDrawSpecVersion as defined in vulkan/vulkan_core.h:13810 - ExtMultiDrawSpecVersion = 1 - // ExtMultiDrawExtensionName as defined in vulkan/vulkan_core.h:13811 - ExtMultiDrawExtensionName = "VK_EXT_multi_draw" - // ExtImage2dViewOf3d as defined in vulkan/vulkan_core.h:13858 - ExtImage2dViewOf3d = 1 - // ExtImage2dViewOf3dSpecVersion as defined in vulkan/vulkan_core.h:13859 - ExtImage2dViewOf3dSpecVersion = 1 - // ExtImage2dViewOf3dExtensionName as defined in vulkan/vulkan_core.h:13860 - ExtImage2dViewOf3dExtensionName = "VK_EXT_image_2d_view_of_3d" - // ExtLoadStoreOpNone as defined in vulkan/vulkan_core.h:13870 - ExtLoadStoreOpNone = 1 - // ExtLoadStoreOpNoneSpecVersion as defined in vulkan/vulkan_core.h:13871 - ExtLoadStoreOpNoneSpecVersion = 1 - // ExtLoadStoreOpNoneExtensionName as defined in vulkan/vulkan_core.h:13872 - ExtLoadStoreOpNoneExtensionName = "VK_EXT_load_store_op_none" - // ExtBorderColorSwizzle as defined in vulkan/vulkan_core.h:13875 - ExtBorderColorSwizzle = 1 - // ExtBorderColorSwizzleSpecVersion as defined in vulkan/vulkan_core.h:13876 - ExtBorderColorSwizzleSpecVersion = 1 - // ExtBorderColorSwizzleExtensionName as defined in vulkan/vulkan_core.h:13877 - ExtBorderColorSwizzleExtensionName = "VK_EXT_border_color_swizzle" - // ExtPageableDeviceLocalMemory as defined in vulkan/vulkan_core.h:13894 - ExtPageableDeviceLocalMemory = 1 - // ExtPageableDeviceLocalMemorySpecVersion as defined in vulkan/vulkan_core.h:13895 - ExtPageableDeviceLocalMemorySpecVersion = 1 - // ExtPageableDeviceLocalMemoryExtensionName as defined in vulkan/vulkan_core.h:13896 - ExtPageableDeviceLocalMemoryExtensionName = "VK_EXT_pageable_device_local_memory" - // ValveDescriptorSetHostMapping as defined in vulkan/vulkan_core.h:13913 - ValveDescriptorSetHostMapping = 1 - // ValveDescriptorSetHostMappingSpecVersion as defined in vulkan/vulkan_core.h:13914 - ValveDescriptorSetHostMappingSpecVersion = 1 - // ValveDescriptorSetHostMappingExtensionName as defined in vulkan/vulkan_core.h:13915 - ValveDescriptorSetHostMappingExtensionName = "VK_VALVE_descriptor_set_host_mapping" - // QcomFragmentDensityMapOffset as defined in vulkan/vulkan_core.h:13952 - QcomFragmentDensityMapOffset = 1 - // QcomFragmentDensityMapOffsetSpecVersion as defined in vulkan/vulkan_core.h:13953 - QcomFragmentDensityMapOffsetSpecVersion = 1 - // QcomFragmentDensityMapOffsetExtensionName as defined in vulkan/vulkan_core.h:13954 - QcomFragmentDensityMapOffsetExtensionName = "VK_QCOM_fragment_density_map_offset" - // NvLinearColorAttachment as defined in vulkan/vulkan_core.h:13976 - NvLinearColorAttachment = 1 - // NvLinearColorAttachmentSpecVersion as defined in vulkan/vulkan_core.h:13977 - NvLinearColorAttachmentSpecVersion = 1 - // NvLinearColorAttachmentExtensionName as defined in vulkan/vulkan_core.h:13978 - NvLinearColorAttachmentExtensionName = "VK_NV_linear_color_attachment" - // GoogleSurfacelessQuery as defined in vulkan/vulkan_core.h:13987 - GoogleSurfacelessQuery = 1 - // GoogleSurfacelessQuerySpecVersion as defined in vulkan/vulkan_core.h:13988 - GoogleSurfacelessQuerySpecVersion = 1 - // GoogleSurfacelessQueryExtensionName as defined in vulkan/vulkan_core.h:13989 - GoogleSurfacelessQueryExtensionName = "VK_GOOGLE_surfaceless_query" + // StdVulkanVideoCodecH264DecodeSpecVersion as defined in vk_video/vulkan_video_codec_h264std_decode.h:27 + // 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 + // 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 + 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" + // KhrVideoEncodeQueue as defined in vulkan/vulkan_beta.h:53 + KhrVideoEncodeQueue = 1 + // KhrVideoEncodeQueueSpecVersion as defined in vulkan/vulkan_beta.h:54 + KhrVideoEncodeQueueSpecVersion = 7 + // KhrVideoEncodeQueueExtensionName as defined in vulkan/vulkan_beta.h:55 + KhrVideoEncodeQueueExtensionName = "VK_KHR_video_encode_queue" + // ExtVideoEncodeH264 as defined in vulkan/vulkan_beta.h:162 + ExtVideoEncodeH264 = 1 + // ExtVideoEncodeH264SpecVersion as defined in vulkan/vulkan_beta.h:165 + ExtVideoEncodeH264SpecVersion = 9 + // ExtVideoEncodeH264ExtensionName as defined in vulkan/vulkan_beta.h:166 + ExtVideoEncodeH264ExtensionName = "VK_EXT_video_encode_h264" + // ExtVideoEncodeH265 as defined in vulkan/vulkan_beta.h:340 + ExtVideoEncodeH265 = 1 + // ExtVideoEncodeH265SpecVersion as defined in vulkan/vulkan_beta.h:343 + ExtVideoEncodeH265SpecVersion = 9 + // 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 + // 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 + // StdVulkanVideoCodecH265EncodeExtensionName as defined in vk_video/vulkan_video_codec_h265std_encode.h:27 + StdVulkanVideoCodecH265EncodeExtensionName = "VK_STD_vulkan_video_codec_h265_encode" ) // Result as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResult.html @@ -1534,6 +1511,12 @@ 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 ErrorNotPermitted Result = -1000174001 ErrorFullScreenExclusiveModeLost Result = -1000255000 @@ -1541,6 +1524,7 @@ const ( ThreadDone Result = 1000268001 OperationDeferred Result = 1000268002 OperationNotDeferred Result = 1000268003 + ErrorCompressionExhausted Result = -1000338000 ErrorInvalidDeviceAddress Result = -1000257000 ErrorPipelineCompileRequired Result = 1000297000 ResultMaxEnum Result = 2147483647 @@ -1788,6 +1772,26 @@ const ( 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 @@ -1799,6 +1803,34 @@ const ( 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 @@ -1815,6 +1847,9 @@ const ( 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 @@ -1925,6 +1960,8 @@ const ( StructureTypeDrmFormatModifierPropertiesList2 StructureType = 1000158006 StructureTypeValidationCacheCreateInfo StructureType = 1000160000 StructureTypeShaderModuleValidationCacheCreateInfo StructureType = 1000160001 + StructureTypePhysicalDevicePortabilitySubsetFeatures StructureType = 1000163000 + StructureTypePhysicalDevicePortabilitySubsetProperties StructureType = 1000163001 StructureTypePipelineViewportShadingRateImageStateCreateInfoNv StructureType = 1000164000 StructureTypePhysicalDeviceShadingRateImageFeaturesNv StructureType = 1000164001 StructureTypePhysicalDeviceShadingRateImagePropertiesNv StructureType = 1000164002 @@ -1951,6 +1988,12 @@ const ( 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 @@ -1962,7 +2005,6 @@ const ( StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesNv StructureType = 1000201000 StructureTypePhysicalDeviceMeshShaderFeaturesNv StructureType = 1000202000 StructureTypePhysicalDeviceMeshShaderPropertiesNv StructureType = 1000202001 - StructureTypePhysicalDeviceFragmentShaderBarycentricFeaturesNv StructureType = 1000203000 StructureTypePhysicalDeviceShaderImageFootprintFeaturesNv StructureType = 1000204000 StructureTypePipelineViewportExclusiveScissorStateCreateInfoNv StructureType = 1000205000 StructureTypePhysicalDeviceExclusiveScissorFeaturesNv StructureType = 1000205002 @@ -2027,6 +2069,15 @@ const ( 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 @@ -2049,15 +2100,51 @@ const ( 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 @@ -2065,21 +2152,31 @@ const ( 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 - StructureTypePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesArm StructureType = 1000342000 + StructureTypePhysicalDeviceFaultFeatures StructureType = 1000341000 + StructureTypeDeviceFaultCounts StructureType = 1000341001 + StructureTypeDeviceFaultInfo StructureType = 1000341002 StructureTypePhysicalDeviceRgba10x6FormatsFeatures StructureType = 1000344000 StructureTypeDirectfbSurfaceCreateInfo StructureType = 1000346000 - StructureTypePhysicalDeviceMutableDescriptorTypeFeaturesValve StructureType = 1000351000 - StructureTypeMutableDescriptorTypeCreateInfoValve StructureType = 1000351002 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 @@ -2104,36 +2201,110 @@ const ( 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 @@ -2157,9 +2328,16 @@ const ( 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 ) @@ -2203,6 +2381,8 @@ const ( ObjectTypeDisplay ObjectType = 1000002000 ObjectTypeDisplayMode ObjectType = 1000002001 ObjectTypeDebugReportCallback ObjectType = 1000011000 + ObjectTypeVideoSession ObjectType = 1000023000 + ObjectTypeVideoSessionParameters ObjectType = 1000023001 ObjectTypeCuModuleNvx ObjectType = 1000029000 ObjectTypeCuFunctionNvx ObjectType = 1000029001 ObjectTypeDebugUtilsMessenger ObjectType = 1000128000 @@ -2213,18 +2393,11 @@ const ( ObjectTypeDeferredOperation ObjectType = 1000268000 ObjectTypeIndirectCommandsLayoutNv ObjectType = 1000277000 ObjectTypeBufferCollectionFuchsia ObjectType = 1000366000 + ObjectTypeMicromap ObjectType = 1000396000 + ObjectTypeOpticalFlowSessionNv ObjectType = 1000464000 ObjectTypeMaxEnum ObjectType = 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 -) - // VendorId as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVendorId.html type VendorId int32 @@ -2513,6 +2686,7 @@ const ( FormatPvrtc14bppSrgbBlockImg Format = 1000054005 FormatPvrtc22bppSrgbBlockImg Format = 1000054006 FormatPvrtc24bppSrgbBlockImg Format = 1000054007 + FormatR16g16S105Nv Format = 1000464000 FormatMaxEnum Format = 2147483647 ) @@ -2556,17 +2730,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 - QueryTypePerformanceQuery QueryType = 1000116000 - QueryTypeAccelerationStructureCompactedSize QueryType = 1000150000 - QueryTypeAccelerationStructureSerializationSize QueryType = 1000150001 - QueryTypeAccelerationStructureCompactedSizeNv QueryType = 1000165000 - QueryTypePerformanceQueryIntel QueryType = 1000210000 - QueryTypePrimitivesGenerated QueryType = 1000382000 - 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 @@ -2716,44 +2897,75 @@ type DynamicState int32 // DynamicState enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.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 - 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 - DynamicStateMaxEnum DynamicState = 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 ) // FrontFace as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html @@ -2870,8 +3082,8 @@ type Filter int32 const ( FilterNearest Filter = iota FilterLinear Filter = 1 - FilterCubicImg Filter = 1000015000 FilterCubic Filter = 1000015000 + FilterCubicImg Filter = 1000015000 FilterMaxEnum Filter = 2147483647 ) @@ -2917,6 +3129,9 @@ const ( DescriptorTypeInlineUniformBlock DescriptorType = 1000138000 DescriptorTypeAccelerationStructure DescriptorType = 1000150000 DescriptorTypeAccelerationStructureNv DescriptorType = 1000165000 + DescriptorTypeSampleWeightImageQcom DescriptorType = 1000440000 + DescriptorTypeBlockMatchImageQcom DescriptorType = 1000440001 + DescriptorTypeMutable DescriptorType = 1000351000 DescriptorTypeMutableValve DescriptorType = 1000351000 DescriptorTypeMaxEnum DescriptorType = 2147483647 ) @@ -3079,11 +3294,15 @@ const ( FormatFeatureDisjointBit FormatFeatureFlagBits = 4194304 FormatFeatureCositedChromaSamplesBit FormatFeatureFlagBits = 8388608 FormatFeatureSampledImageFilterMinmaxBit FormatFeatureFlagBits = 65536 - FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 + FormatFeatureVideoDecodeOutputBit FormatFeatureFlagBits = 33554432 + FormatFeatureVideoDecodeDpbBit FormatFeatureFlagBits = 67108864 FormatFeatureAccelerationStructureVertexBufferBit FormatFeatureFlagBits = 536870912 + FormatFeatureSampledImageFilterCubicBit FormatFeatureFlagBits = 8192 FormatFeatureFragmentDensityMapBit FormatFeatureFlagBits = 16777216 FormatFeatureFragmentShadingRateAttachmentBit FormatFeatureFlagBits = 1073741824 - FormatFeatureSampledImageFilterCubicBit FormatFeatureFlagBits = 8192 + FormatFeatureVideoEncodeInputBit FormatFeatureFlagBits = 134217728 + FormatFeatureVideoEncodeDpbBit FormatFeatureFlagBits = 268435456 + FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 FormatFeatureFlagBitsMaxEnum FormatFeatureFlagBits = 2147483647 ) @@ -3092,24 +3311,26 @@ 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 - ImageCreateSubsampledBit ImageCreateFlagBits = 16384 - ImageCreate2dViewCompatibleBit ImageCreateFlagBits = 131072 - ImageCreateFragmentDensityMapOffsetBitQcom ImageCreateFlagBits = 32768 - 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 @@ -3140,9 +3361,18 @@ const ( 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 ) @@ -3193,6 +3423,9 @@ const ( QueueTransferBit QueueFlagBits = 4 QueueSparseBindingBit QueueFlagBits = 8 QueueProtectedBit QueueFlagBits = 16 + QueueVideoDecodeBit QueueFlagBits = 32 + QueueVideoEncodeBit QueueFlagBits = 64 + QueueOpticalFlowBitNv QueueFlagBits = 256 QueueFlagBitsMaxEnum QueueFlagBits = 2147483647 ) @@ -3232,14 +3465,16 @@ const ( PipelineStageConditionalRenderingBit PipelineStageFlagBits = 262144 PipelineStageAccelerationStructureBuildBit PipelineStageFlagBits = 33554432 PipelineStageRayTracingShaderBit PipelineStageFlagBits = 2097152 - PipelineStageTaskShaderBitNv PipelineStageFlagBits = 524288 - PipelineStageMeshShaderBitNv PipelineStageFlagBits = 1048576 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 ) @@ -3297,6 +3532,9 @@ const ( QueryPipelineStatisticTessellationControlShaderPatchesBit QueryPipelineStatisticFlagBits = 256 QueryPipelineStatisticTessellationEvaluationShaderInvocationsBit QueryPipelineStatisticFlagBits = 512 QueryPipelineStatisticComputeShaderInvocationsBit QueryPipelineStatisticFlagBits = 1024 + QueryPipelineStatisticTaskShaderInvocationsBit QueryPipelineStatisticFlagBits = 2048 + QueryPipelineStatisticMeshShaderInvocationsBit QueryPipelineStatisticFlagBits = 4096 + QueryPipelineStatisticClusterCullingShaderInvocationsBitHuawei QueryPipelineStatisticFlagBits = 8192 QueryPipelineStatisticFlagBitsMaxEnum QueryPipelineStatisticFlagBits = 2147483647 ) @@ -3309,6 +3547,7 @@ const ( QueryResultWaitBit QueryResultFlagBits = 2 QueryResultWithAvailabilityBit QueryResultFlagBits = 4 QueryResultPartialBit QueryResultFlagBits = 8 + QueryResultWithStatusBit QueryResultFlagBits = 16 QueryResultFlagBitsMaxEnum QueryResultFlagBits = 2147483647 ) @@ -3317,12 +3556,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 - BufferCreateDeviceAddressCaptureReplayBit BufferCreateFlagBits = 16 - 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 @@ -3340,12 +3580,21 @@ const ( 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 ) @@ -3355,9 +3604,10 @@ type ImageViewCreateFlagBits int32 // ImageViewCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCreateFlagBits.html const ( - ImageViewCreateFragmentDensityMapDynamicBit ImageViewCreateFlagBits = 1 - ImageViewCreateFragmentDensityMapDeferredBit ImageViewCreateFlagBits = 2 - ImageViewCreateFlagBitsMaxEnum ImageViewCreateFlagBits = 2147483647 + 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 @@ -3407,9 +3657,15 @@ const ( 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 @@ -3445,15 +3701,18 @@ const ( ShaderStageMissBit ShaderStageFlagBits = 2048 ShaderStageIntersectionBit ShaderStageFlagBits = 4096 ShaderStageCallableBit ShaderStageFlagBits = 8192 - ShaderStageTaskBitNv ShaderStageFlagBits = 64 - ShaderStageMeshBitNv ShaderStageFlagBits = 128 + 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 ) @@ -3474,6 +3733,8 @@ type PipelineDepthStencilStateCreateFlagBits int32 // PipelineDepthStencilStateCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDepthStencilStateCreateFlagBits.html const ( + PipelineDepthStencilStateCreateRasterizationOrderAttachmentDepthAccessBit PipelineDepthStencilStateCreateFlagBits = 1 + PipelineDepthStencilStateCreateRasterizationOrderAttachmentStencilAccessBit PipelineDepthStencilStateCreateFlagBits = 2 PipelineDepthStencilStateCreateRasterizationOrderAttachmentDepthAccessBitArm PipelineDepthStencilStateCreateFlagBits = 1 PipelineDepthStencilStateCreateRasterizationOrderAttachmentStencilAccessBitArm PipelineDepthStencilStateCreateFlagBits = 2 PipelineDepthStencilStateCreateFlagBitsMaxEnum PipelineDepthStencilStateCreateFlagBits = 2147483647 @@ -3484,6 +3745,7 @@ type PipelineColorBlendStateCreateFlagBits int32 // 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 ) @@ -3504,6 +3766,9 @@ type SamplerCreateFlagBits int32 const ( SamplerCreateSubsampledBit SamplerCreateFlagBits = 1 SamplerCreateSubsampledCoarseReconstructionBit SamplerCreateFlagBits = 2 + SamplerCreateDescriptorBufferCaptureReplayBit SamplerCreateFlagBits = 8 + SamplerCreateNonSeamlessCubeMapBit SamplerCreateFlagBits = 4 + SamplerCreateImageProcessingBitQcom SamplerCreateFlagBits = 16 SamplerCreateFlagBitsMaxEnum SamplerCreateFlagBits = 2147483647 ) @@ -3514,6 +3779,7 @@ type DescriptorPoolCreateFlagBits int32 const ( DescriptorPoolCreateFreeDescriptorSetBit DescriptorPoolCreateFlagBits = 1 DescriptorPoolCreateUpdateAfterBindBit DescriptorPoolCreateFlagBits = 2 + DescriptorPoolCreateHostOnlyBit DescriptorPoolCreateFlagBits = 4 DescriptorPoolCreateHostOnlyBitValve DescriptorPoolCreateFlagBits = 4 DescriptorPoolCreateFlagBitsMaxEnum DescriptorPoolCreateFlagBits = 2147483647 ) @@ -3523,10 +3789,13 @@ 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 - DescriptorSetLayoutCreateHostOnlyPoolBitValve DescriptorSetLayoutCreateFlagBits = 4 - DescriptorSetLayoutCreateFlagBitsMaxEnum DescriptorSetLayoutCreateFlagBits = 2147483647 + 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 @@ -3546,6 +3815,7 @@ const ( DependencyByRegionBit DependencyFlagBits = 1 DependencyDeviceGroupBit DependencyFlagBits = 4 DependencyViewLocalBit DependencyFlagBits = 2 + DependencyFeedbackLoopBit DependencyFlagBits = 8 DependencyFlagBitsMaxEnum DependencyFlagBits = 2147483647 ) @@ -3576,6 +3846,10 @@ const ( 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 @@ -3848,29 +4122,32 @@ 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 - DriverIdMaxEnum DriverId = 2147483647 + 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 @@ -3982,6 +4259,7 @@ const ( RenderingContentsSecondaryCommandBuffersBit RenderingFlagBits = 1 RenderingSuspendingBit RenderingFlagBits = 2 RenderingResumingBit RenderingFlagBits = 4 + RenderingEnableLegacyDitheringBit RenderingFlagBits = 8 RenderingFlagBitsMaxEnum RenderingFlagBits = 2147483647 ) @@ -4062,6 +4340,7 @@ const ( SwapchainCreateSplitInstanceBindRegionsBit SwapchainCreateFlagBits = 1 SwapchainCreateProtectedBit SwapchainCreateFlagBits = 2 SwapchainCreateMutableFormatBit SwapchainCreateFlagBits = 4 + SwapchainCreateDeferredMemoryAllocationBit SwapchainCreateFlagBits = 8 SwapchainCreateFlagBitsMaxEnum SwapchainCreateFlagBits = 2147483647 ) @@ -4089,6 +4368,118 @@ const ( DisplayPlaneAlphaFlagBitsMaxEnum DisplayPlaneAlphaFlagBits = 2147483647 ) +// 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 +) + +// 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 +) + +// VideoDecodeH264PictureLayoutFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagBitsKHR +type VideoDecodeH264PictureLayoutFlagBits int32 + +// VideoDecodeH264PictureLayoutFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagBitsKHR +const ( + VideoDecodeH264PictureLayoutProgressive VideoDecodeH264PictureLayoutFlagBits = iota + VideoDecodeH264PictureLayoutInterlacedInterleavedLinesBit VideoDecodeH264PictureLayoutFlagBits = 1 + VideoDecodeH264PictureLayoutInterlacedSeparatePlanesBit VideoDecodeH264PictureLayoutFlagBits = 2 + VideoDecodeH264PictureLayoutFlagBitsMaxEnum VideoDecodeH264PictureLayoutFlagBits = 2147483647 +) + // PerformanceCounterUnit as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR type PerformanceCounterUnit int32 @@ -4311,6 +4702,30 @@ const ( ValidationCheckMaxEnum ValidationCheck = 2147483647 ) +// PipelineRobustnessBufferBehavior as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessBufferBehaviorEXT.html +type PipelineRobustnessBufferBehavior int32 + +// PipelineRobustnessBufferBehavior enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessBufferBehaviorEXT.html +const ( + PipelineRobustnessBufferBehaviorDeviceDefault PipelineRobustnessBufferBehavior = iota + PipelineRobustnessBufferBehaviorDisabled PipelineRobustnessBufferBehavior = 1 + PipelineRobustnessBufferBehaviorRobustBufferAccess PipelineRobustnessBufferBehavior = 2 + PipelineRobustnessBufferBehaviorRobustBufferAccess2 PipelineRobustnessBufferBehavior = 3 + PipelineRobustnessBufferBehaviorMaxEnum PipelineRobustnessBufferBehavior = 2147483647 +) + +// PipelineRobustnessImageBehavior as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessImageBehaviorEXT.html +type PipelineRobustnessImageBehavior int32 + +// PipelineRobustnessImageBehavior enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessImageBehaviorEXT.html +const ( + PipelineRobustnessImageBehaviorDeviceDefault PipelineRobustnessImageBehavior = iota + PipelineRobustnessImageBehaviorDisabled PipelineRobustnessImageBehavior = 1 + PipelineRobustnessImageBehaviorRobustImageAccess PipelineRobustnessImageBehavior = 2 + PipelineRobustnessImageBehaviorRobustImageAccess2 PipelineRobustnessImageBehavior = 3 + PipelineRobustnessImageBehaviorMaxEnum PipelineRobustnessImageBehavior = 2147483647 +) + // ConditionalRenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html type ConditionalRenderingFlagBits int32 @@ -4413,10 +4828,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 + 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 @@ -4665,20 +5081,43 @@ const ( 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 - IndirectCommandsTokenTypeMaxEnumNv IndirectCommandsTokenTypeNV = 2147483647 + 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 @@ -4722,6 +5161,7 @@ const ( DeviceDiagnosticsConfigEnableShaderDebugInfoBitNv DeviceDiagnosticsConfigFlagBitsNV = 1 DeviceDiagnosticsConfigEnableResourceTrackingBitNv DeviceDiagnosticsConfigFlagBitsNV = 2 DeviceDiagnosticsConfigEnableAutomaticCheckpointsBitNv DeviceDiagnosticsConfigFlagBitsNV = 4 + DeviceDiagnosticsConfigEnableShaderErrorReportingBitNv DeviceDiagnosticsConfigFlagBitsNV = 8 DeviceDiagnosticsConfigFlagBitsMaxEnumNv DeviceDiagnosticsConfigFlagBitsNV = 2147483647 ) @@ -4766,3 +5206,262 @@ const ( 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 +) + +// VideoEncodeTuningMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeTuningModeKHR +type VideoEncodeTuningMode int32 + +// VideoEncodeTuningMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeTuningModeKHR +const ( + VideoEncodeTuningModeDefault VideoEncodeTuningMode = iota + VideoEncodeTuningModeHighQuality VideoEncodeTuningMode = 1 + VideoEncodeTuningModeLowLatency VideoEncodeTuningMode = 2 + VideoEncodeTuningModeUltraLowLatency VideoEncodeTuningMode = 3 + VideoEncodeTuningModeLossless VideoEncodeTuningMode = 4 + VideoEncodeTuningModeMaxEnum VideoEncodeTuningMode = 2147483647 +) + +// VideoEncodeCapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR +type VideoEncodeCapabilityFlagBits int32 + +// VideoEncodeCapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR +const ( + VideoEncodeCapabilityPrecedingExternallyEncodedBytesBit VideoEncodeCapabilityFlagBits = 1 + VideoEncodeCapabilityFlagBitsMaxEnum VideoEncodeCapabilityFlagBits = 2147483647 +) + +// VideoEncodeRateControlModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagBitsKHR +type VideoEncodeRateControlModeFlagBits int32 + +// VideoEncodeRateControlModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagBitsKHR +const ( + VideoEncodeRateControlModeNoneBit VideoEncodeRateControlModeFlagBits = iota + VideoEncodeRateControlModeCbrBit VideoEncodeRateControlModeFlagBits = 1 + VideoEncodeRateControlModeVbrBit VideoEncodeRateControlModeFlagBits = 2 + VideoEncodeRateControlModeFlagBitsMaxEnum VideoEncodeRateControlModeFlagBits = 2147483647 +) + +// VideoEncodeUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagBitsKHR +type VideoEncodeUsageFlagBits int32 + +// VideoEncodeUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagBitsKHR +const ( + VideoEncodeUsageDefault VideoEncodeUsageFlagBits = iota + VideoEncodeUsageTranscodingBit VideoEncodeUsageFlagBits = 1 + VideoEncodeUsageStreamingBit VideoEncodeUsageFlagBits = 2 + VideoEncodeUsageRecordingBit VideoEncodeUsageFlagBits = 4 + VideoEncodeUsageConferencingBit VideoEncodeUsageFlagBits = 8 + VideoEncodeUsageFlagBitsMaxEnum VideoEncodeUsageFlagBits = 2147483647 +) + +// VideoEncodeContentFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagBitsKHR +type VideoEncodeContentFlagBits int32 + +// VideoEncodeContentFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagBitsKHR +const ( + VideoEncodeContentDefault VideoEncodeContentFlagBits = iota + VideoEncodeContentCameraBit VideoEncodeContentFlagBits = 1 + VideoEncodeContentDesktopBit VideoEncodeContentFlagBits = 2 + VideoEncodeContentRenderedBit VideoEncodeContentFlagBits = 4 + VideoEncodeContentFlagBitsMaxEnum VideoEncodeContentFlagBits = 2147483647 +) + +// VideoEncodeH264RateControlStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlStructureEXT.html +type VideoEncodeH264RateControlStructure int32 + +// VideoEncodeH264RateControlStructure enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlStructureEXT.html +const ( + VideoEncodeH264RateControlStructureUnknown VideoEncodeH264RateControlStructure = iota + VideoEncodeH264RateControlStructureFlat VideoEncodeH264RateControlStructure = 1 + VideoEncodeH264RateControlStructureDyadic VideoEncodeH264RateControlStructure = 2 + VideoEncodeH264RateControlStructureMaxEnum VideoEncodeH264RateControlStructure = 2147483647 +) + +// VideoEncodeH264CapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagBitsEXT.html +type VideoEncodeH264CapabilityFlagBits int32 + +// VideoEncodeH264CapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagBitsEXT.html +const ( + VideoEncodeH264CapabilityDirect8x8InferenceEnabledBit VideoEncodeH264CapabilityFlagBits = 1 + VideoEncodeH264CapabilityDirect8x8InferenceDisabledBit VideoEncodeH264CapabilityFlagBits = 2 + VideoEncodeH264CapabilitySeparateColourPlaneBit VideoEncodeH264CapabilityFlagBits = 4 + VideoEncodeH264CapabilityQpprimeYZeroTransformBypassBit VideoEncodeH264CapabilityFlagBits = 8 + VideoEncodeH264CapabilityScalingListsBit VideoEncodeH264CapabilityFlagBits = 16 + VideoEncodeH264CapabilityHrdComplianceBit VideoEncodeH264CapabilityFlagBits = 32 + VideoEncodeH264CapabilityChromaQpOffsetBit VideoEncodeH264CapabilityFlagBits = 64 + VideoEncodeH264CapabilitySecondChromaQpOffsetBit VideoEncodeH264CapabilityFlagBits = 128 + VideoEncodeH264CapabilityPicInitQpMinus26Bit VideoEncodeH264CapabilityFlagBits = 256 + VideoEncodeH264CapabilityWeightedPredBit VideoEncodeH264CapabilityFlagBits = 512 + VideoEncodeH264CapabilityWeightedBipredExplicitBit VideoEncodeH264CapabilityFlagBits = 1024 + VideoEncodeH264CapabilityWeightedBipredImplicitBit VideoEncodeH264CapabilityFlagBits = 2048 + VideoEncodeH264CapabilityWeightedPredNoTableBit VideoEncodeH264CapabilityFlagBits = 4096 + VideoEncodeH264CapabilityTransform8x8Bit VideoEncodeH264CapabilityFlagBits = 8192 + VideoEncodeH264CapabilityCabacBit VideoEncodeH264CapabilityFlagBits = 16384 + VideoEncodeH264CapabilityCavlcBit VideoEncodeH264CapabilityFlagBits = 32768 + VideoEncodeH264CapabilityDeblockingFilterDisabledBit VideoEncodeH264CapabilityFlagBits = 65536 + VideoEncodeH264CapabilityDeblockingFilterEnabledBit VideoEncodeH264CapabilityFlagBits = 131072 + VideoEncodeH264CapabilityDeblockingFilterPartialBit VideoEncodeH264CapabilityFlagBits = 262144 + VideoEncodeH264CapabilityDisableDirectSpatialMvPredBit VideoEncodeH264CapabilityFlagBits = 524288 + VideoEncodeH264CapabilityMultipleSlicePerFrameBit VideoEncodeH264CapabilityFlagBits = 1048576 + VideoEncodeH264CapabilitySliceMbCountBit VideoEncodeH264CapabilityFlagBits = 2097152 + VideoEncodeH264CapabilityRowUnalignedSliceBit VideoEncodeH264CapabilityFlagBits = 4194304 + VideoEncodeH264CapabilityDifferentSliceTypeBit VideoEncodeH264CapabilityFlagBits = 8388608 + VideoEncodeH264CapabilityBFrameInL1ListBit VideoEncodeH264CapabilityFlagBits = 16777216 + VideoEncodeH264CapabilityFlagBitsMaxEnum VideoEncodeH264CapabilityFlagBits = 2147483647 +) + +// VideoEncodeH264InputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagBitsEXT.html +type VideoEncodeH264InputModeFlagBits int32 + +// VideoEncodeH264InputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagBitsEXT.html +const ( + VideoEncodeH264InputModeFrameBit VideoEncodeH264InputModeFlagBits = 1 + VideoEncodeH264InputModeSliceBit VideoEncodeH264InputModeFlagBits = 2 + VideoEncodeH264InputModeNonVclBit VideoEncodeH264InputModeFlagBits = 4 + VideoEncodeH264InputModeFlagBitsMaxEnum VideoEncodeH264InputModeFlagBits = 2147483647 +) + +// VideoEncodeH264OutputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagBitsEXT.html +type VideoEncodeH264OutputModeFlagBits int32 + +// VideoEncodeH264OutputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagBitsEXT.html +const ( + VideoEncodeH264OutputModeFrameBit VideoEncodeH264OutputModeFlagBits = 1 + VideoEncodeH264OutputModeSliceBit VideoEncodeH264OutputModeFlagBits = 2 + VideoEncodeH264OutputModeNonVclBit VideoEncodeH264OutputModeFlagBits = 4 + VideoEncodeH264OutputModeFlagBitsMaxEnum VideoEncodeH264OutputModeFlagBits = 2147483647 +) + +// VideoEncodeH265RateControlStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlStructureEXT.html +type VideoEncodeH265RateControlStructure int32 + +// VideoEncodeH265RateControlStructure enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlStructureEXT.html +const ( + VideoEncodeH265RateControlStructureUnknown VideoEncodeH265RateControlStructure = iota + VideoEncodeH265RateControlStructureFlat VideoEncodeH265RateControlStructure = 1 + VideoEncodeH265RateControlStructureDyadic VideoEncodeH265RateControlStructure = 2 + VideoEncodeH265RateControlStructureMaxEnum VideoEncodeH265RateControlStructure = 2147483647 +) + +// VideoEncodeH265CapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagBitsEXT.html +type VideoEncodeH265CapabilityFlagBits int32 + +// VideoEncodeH265CapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagBitsEXT.html +const ( + VideoEncodeH265CapabilitySeparateColourPlaneBit VideoEncodeH265CapabilityFlagBits = 1 + VideoEncodeH265CapabilityScalingListsBit VideoEncodeH265CapabilityFlagBits = 2 + VideoEncodeH265CapabilitySampleAdaptiveOffsetEnabledBit VideoEncodeH265CapabilityFlagBits = 4 + VideoEncodeH265CapabilityPcmEnableBit VideoEncodeH265CapabilityFlagBits = 8 + VideoEncodeH265CapabilitySpsTemporalMvpEnabledBit VideoEncodeH265CapabilityFlagBits = 16 + VideoEncodeH265CapabilityHrdComplianceBit VideoEncodeH265CapabilityFlagBits = 32 + VideoEncodeH265CapabilityInitQpMinus26Bit VideoEncodeH265CapabilityFlagBits = 64 + VideoEncodeH265CapabilityLog2ParallelMergeLevelMinus2Bit VideoEncodeH265CapabilityFlagBits = 128 + VideoEncodeH265CapabilitySignDataHidingEnabledBit VideoEncodeH265CapabilityFlagBits = 256 + VideoEncodeH265CapabilityTransformSkipEnabledBit VideoEncodeH265CapabilityFlagBits = 512 + VideoEncodeH265CapabilityTransformSkipDisabledBit VideoEncodeH265CapabilityFlagBits = 1024 + VideoEncodeH265CapabilityPpsSliceChromaQpOffsetsPresentBit VideoEncodeH265CapabilityFlagBits = 2048 + VideoEncodeH265CapabilityWeightedPredBit VideoEncodeH265CapabilityFlagBits = 4096 + VideoEncodeH265CapabilityWeightedBipredBit VideoEncodeH265CapabilityFlagBits = 8192 + VideoEncodeH265CapabilityWeightedPredNoTableBit VideoEncodeH265CapabilityFlagBits = 16384 + VideoEncodeH265CapabilityTransquantBypassEnabledBit VideoEncodeH265CapabilityFlagBits = 32768 + VideoEncodeH265CapabilityEntropyCodingSyncEnabledBit VideoEncodeH265CapabilityFlagBits = 65536 + VideoEncodeH265CapabilityDeblockingFilterOverrideEnabledBit VideoEncodeH265CapabilityFlagBits = 131072 + VideoEncodeH265CapabilityMultipleTilePerFrameBit VideoEncodeH265CapabilityFlagBits = 262144 + VideoEncodeH265CapabilityMultipleSlicePerTileBit VideoEncodeH265CapabilityFlagBits = 524288 + VideoEncodeH265CapabilityMultipleTilePerSliceBit VideoEncodeH265CapabilityFlagBits = 1048576 + VideoEncodeH265CapabilitySliceSegmentCtbCountBit VideoEncodeH265CapabilityFlagBits = 2097152 + VideoEncodeH265CapabilityRowUnalignedSliceSegmentBit VideoEncodeH265CapabilityFlagBits = 4194304 + VideoEncodeH265CapabilityDependentSliceSegmentBit VideoEncodeH265CapabilityFlagBits = 8388608 + VideoEncodeH265CapabilityDifferentSliceTypeBit VideoEncodeH265CapabilityFlagBits = 16777216 + VideoEncodeH265CapabilityBFrameInL1ListBit VideoEncodeH265CapabilityFlagBits = 33554432 + VideoEncodeH265CapabilityFlagBitsMaxEnum VideoEncodeH265CapabilityFlagBits = 2147483647 +) + +// VideoEncodeH265InputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagBitsEXT.html +type VideoEncodeH265InputModeFlagBits int32 + +// VideoEncodeH265InputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagBitsEXT.html +const ( + VideoEncodeH265InputModeFrameBit VideoEncodeH265InputModeFlagBits = 1 + VideoEncodeH265InputModeSliceSegmentBit VideoEncodeH265InputModeFlagBits = 2 + VideoEncodeH265InputModeNonVclBit VideoEncodeH265InputModeFlagBits = 4 + VideoEncodeH265InputModeFlagBitsMaxEnum VideoEncodeH265InputModeFlagBits = 2147483647 +) + +// VideoEncodeH265OutputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagBitsEXT.html +type VideoEncodeH265OutputModeFlagBits int32 + +// VideoEncodeH265OutputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagBitsEXT.html +const ( + VideoEncodeH265OutputModeFrameBit VideoEncodeH265OutputModeFlagBits = 1 + VideoEncodeH265OutputModeSliceSegmentBit VideoEncodeH265OutputModeFlagBits = 2 + VideoEncodeH265OutputModeNonVclBit VideoEncodeH265OutputModeFlagBits = 4 + VideoEncodeH265OutputModeFlagBitsMaxEnum VideoEncodeH265OutputModeFlagBits = 2147483647 +) + +// VideoEncodeH265CtbSizeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagBitsEXT.html +type VideoEncodeH265CtbSizeFlagBits int32 + +// VideoEncodeH265CtbSizeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagBitsEXT.html +const ( + VideoEncodeH265CtbSize16Bit VideoEncodeH265CtbSizeFlagBits = 1 + VideoEncodeH265CtbSize32Bit VideoEncodeH265CtbSizeFlagBits = 2 + VideoEncodeH265CtbSize64Bit VideoEncodeH265CtbSizeFlagBits = 4 + VideoEncodeH265CtbSizeFlagBitsMaxEnum VideoEncodeH265CtbSizeFlagBits = 2147483647 +) + +// VideoEncodeH265TransformBlockSizeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.html +type VideoEncodeH265TransformBlockSizeFlagBits int32 + +// VideoEncodeH265TransformBlockSizeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.html +const ( + VideoEncodeH265TransformBlockSize4Bit VideoEncodeH265TransformBlockSizeFlagBits = 1 + VideoEncodeH265TransformBlockSize8Bit VideoEncodeH265TransformBlockSizeFlagBits = 2 + VideoEncodeH265TransformBlockSize16Bit VideoEncodeH265TransformBlockSizeFlagBits = 4 + VideoEncodeH265TransformBlockSize32Bit VideoEncodeH265TransformBlockSizeFlagBits = 8 + VideoEncodeH265TransformBlockSizeFlagBitsMaxEnum VideoEncodeH265TransformBlockSizeFlagBits = 2147483647 +) diff --git a/const_go.patch b/const_go.patch index 91bfce7..10b4fcb 100644 --- a/const_go.patch +++ b/const_go.patch @@ -1,24 +1,52 @@ ---- 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 +--- 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:125 + // False as defined in vulkan/vulkan_core.h:124 - False = uint32(0) + False = 0 - // LodClampNone as defined in vulkan/vulkan_core.h:126 + // LodClampNone as defined in vulkan/vulkan_core.h:125 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 + // 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:131 + // True as defined in vulkan/vulkan_core.h:130 - True = uint32(1) + True = 1 - // WholeSize as defined in vulkan/vulkan_core.h:132 + // WholeSize as defined in vulkan/vulkan_core.h:131 WholeSize = (^uint64(0)) - // MaxMemoryTypes as defined in vulkan/vulkan_core.h:133 -@@ -2221,7 +2221,7 @@ + // 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 ( diff --git a/doc.go b/doc.go index 5ea3044..25c2be5 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. /* diff --git a/go.mod b/go.mod index a015aea..3d3e666 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ module github.com/goki/vulkan -go 1.16 +go 1.18 diff --git a/moltenVK/vk_mvk_moltenvk.h b/moltenVK/vk_mvk_moltenvk.h index d4163a9..55d7476 100644 --- a/moltenVK/vk_mvk_moltenvk.h +++ b/moltenVK/vk_mvk_moltenvk.h @@ -1,7 +1,7 @@ /* * vk_mvk_moltenvk.h * - * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * 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. @@ -33,6 +33,7 @@ extern "C" { #import #else typedef unsigned long MTLLanguageVersion; +typedef unsigned long MTLArgumentBuffersTier; #endif @@ -49,13 +50,13 @@ typedef unsigned long MTLLanguageVersion; * - 401215 (version 4.12.15) */ #define MVK_VERSION_MAJOR 1 -#define MVK_VERSION_MINOR 1 -#define MVK_VERSION_PATCH 9 +#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 34 +#define VK_MVK_MOLTENVK_SPEC_VERSION 36 #define VK_MVK_MOLTENVK_EXTENSION_NAME "VK_MVK_moltenvk" /** Identifies the level of logging MoltenVK should be limited to outputting. */ @@ -95,6 +96,40 @@ typedef enum MVKConfigAdvertiseExtensionBits { } 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. * @@ -188,25 +223,31 @@ typedef struct { 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 + * 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 requires a dedicated Metal command buffer. + * this requires that each Vulkan command buffer have 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. + * 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. * - * 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. @@ -217,22 +258,27 @@ typedef struct { * 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 VkPhysicalDeviceDescriptorIndexingFeaturesEXT or - * VkPhysicalDeviceInlineUniformBlockFeaturesEXT have been enabled, the value of this + * *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 filling others. + * 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 false. + * If neither is set, the value of this parameter defaults to + * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL. */ - VkBool32 prefillMetalCommandBuffers; + MVKPrefillMetalCommandBuffersStyle prefillMetalCommandBuffers; /** * The maximum number of Metal command buffers that can be concurrently active per Vulkan queue. @@ -502,18 +548,30 @@ typedef struct { 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. + * 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. * - * Must be changed before creating a VkDevice, for the change to take effect. + * 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 true. + * If neither is set, the value of this parameter defaults to MVK_CONFIG_FAST_MATH_ALWAYS. */ - VkBool32 fastMathEnabled; + MVKConfigFastMath fastMathEnabled; /** * Controls the level of logging performned by MoltenVK. @@ -556,52 +614,39 @@ typedef struct { */ 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. - */ + /** Deprecated. Vulkan sempphores using MTLFence are no longer supported. Use semaphoreSupportStyle instead. */ VkBool32 semaphoreUseMTLFence; /** - * Use MTLEvent, if it is available on the device, for VkSemaphore synchronization behaviour. + * Determines the style used to implement Vulkan semaphore (VkSemaphore) functionality in Metal. + * See the documentation of the MVKVkSemaphoreSupportStyle for the options. * - * 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 value of this parameter. * - * 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, + * 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_ALLOW_METAL_EVENTS + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE * 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. + * 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. */ - VkBool32 semaphoreUseMTLEvent; + MVKVkSemaphoreSupportStyle semaphoreSupportStyle; +#define semaphoreUseMTLEvent semaphoreSupportStyle /** * Controls whether Metal should run an automatic GPU capture without the user having to @@ -744,6 +789,7 @@ typedef struct { * 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) * @@ -808,25 +854,26 @@ typedef struct { * 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. + * 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 VkInstance, + * 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 enabled by default, and MoltenVK will not - * use Metal argument buffers, and will bind resources to shaders discretely. + * 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. */ - VkBool32 useMetalArgumentBuffers; + MVKUseMetalArgumentBuffers useMetalArgumentBuffers; } MVKConfiguration; @@ -930,6 +977,9 @@ typedef struct { 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 performance of a particular type of activity. */ @@ -993,7 +1043,7 @@ typedef struct { #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_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); diff --git a/types.go b/types.go index 2be6913..4b3d852 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 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 @@ -4133,6 +4134,334 @@ type DisplayPresentInfo struct { allocs8d2571e4 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{} +} + +// 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 + VideoCodecOperations VideoCodecOperationFlags + refb21c87c4 *C.VkQueueFamilyVideoPropertiesKHR + allocsb21c87c4 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + +// 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 + Flags VideoDecodeCapabilityFlags + refc94faaf3 *C.VkVideoDecodeCapabilitiesKHR + allocsc94faaf3 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{} +} + +// 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 + Flags VideoDecodeFlags + SrcBuffer Buffer + SrcBufferOffset DeviceSize + SrcBufferRange DeviceSize + DstPictureResource VideoPictureResourceInfo + PSetupReferenceSlot []VideoReferenceSlotInfo + ReferenceSlotCount uint32 + PReferenceSlots []VideoReferenceSlotInfo + refbbf9d3b8 *C.VkVideoDecodeInfoKHR + allocsbbf9d3b8 interface{} +} + +// VideoDecodeH264PictureLayoutFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagsKHR +type VideoDecodeH264PictureLayoutFlags uint32 + +// VideoDecodeH264ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264ProfileInfoKHR +type VideoDecodeH264ProfileInfo struct { + SType StructureType + PNext unsafe.Pointer + PictureLayout VideoDecodeH264PictureLayoutFlagBits + ref5dfcb5c1 *C.VkVideoDecodeH264ProfileInfoKHR + allocs5dfcb5c1 interface{} +} + +// VideoDecodeH264Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264CapabilitiesKHR +type VideoDecodeH264Capabilities struct { + SType StructureType + PNext unsafe.Pointer + FieldOffsetGranularity Offset2D + ref7c1bc212 *C.VkVideoDecodeH264CapabilitiesKHR + allocs7c1bc212 interface{} +} + +// VideoDecodeH264SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoKHR +type VideoDecodeH264SessionParametersAddInfo struct { + SType StructureType + PNext unsafe.Pointer + StdSPSCount uint32 + StdPPSCount uint32 + refa7619eae *C.VkVideoDecodeH264SessionParametersAddInfoKHR + allocsa7619eae interface{} +} + +// VideoDecodeH264SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoKHR +type VideoDecodeH264SessionParametersCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MaxStdSPSCount uint32 + MaxStdPPSCount uint32 + PParametersAddInfo []VideoDecodeH264SessionParametersAddInfo + ref167a4ff4 *C.VkVideoDecodeH264SessionParametersCreateInfoKHR + allocs167a4ff4 interface{} +} + +// VideoDecodeH264PictureInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureInfoKHR +type VideoDecodeH264PictureInfo struct { + SType StructureType + PNext unsafe.Pointer + SliceCount uint32 + PSliceOffsets []uint32 + refa43264b6 *C.VkVideoDecodeH264PictureInfoKHR + allocsa43264b6 interface{} +} + +// VideoDecodeH264DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264DpbSlotInfoKHR +type VideoDecodeH264DpbSlotInfo struct { + SType StructureType + PNext unsafe.Pointer + refea999379 *C.VkVideoDecodeH264DpbSlotInfoKHR + allocsea999379 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 @@ -4481,6 +4810,63 @@ type PhysicalDeviceShaderClockFeatures struct { allocsab512283 interface{} } +// VideoDecodeH265ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265ProfileInfoKHR +type VideoDecodeH265ProfileInfo struct { + SType StructureType + PNext unsafe.Pointer + refe4076e29 *C.VkVideoDecodeH265ProfileInfoKHR + allocse4076e29 interface{} +} + +// VideoDecodeH265Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265CapabilitiesKHR +type VideoDecodeH265Capabilities struct { + SType StructureType + PNext unsafe.Pointer + refd2735383 *C.VkVideoDecodeH265CapabilitiesKHR + allocsd2735383 interface{} +} + +// VideoDecodeH265SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoKHR +type VideoDecodeH265SessionParametersAddInfo struct { + SType StructureType + PNext unsafe.Pointer + StdVPSCount uint32 + StdSPSCount uint32 + StdPPSCount uint32 + refa6d463b3 *C.VkVideoDecodeH265SessionParametersAddInfoKHR + allocsa6d463b3 interface{} +} + +// VideoDecodeH265SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoKHR +type VideoDecodeH265SessionParametersCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MaxStdVPSCount uint32 + MaxStdSPSCount uint32 + MaxStdPPSCount uint32 + PParametersAddInfo []VideoDecodeH265SessionParametersAddInfo + ref189da725 *C.VkVideoDecodeH265SessionParametersCreateInfoKHR + allocs189da725 interface{} +} + +// VideoDecodeH265PictureInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265PictureInfoKHR +type VideoDecodeH265PictureInfo struct { + SType StructureType + PNext unsafe.Pointer + SliceSegmentCount uint32 + PSliceSegmentOffsets []uint32 + ref1dc9bf5e *C.VkVideoDecodeH265PictureInfoKHR + allocs1dc9bf5e interface{} +} + +// VideoDecodeH265DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265DpbSlotInfoKHR +type VideoDecodeH265DpbSlotInfo struct { + SType StructureType + PNext unsafe.Pointer + ref53624891 *C.VkVideoDecodeH265DpbSlotInfoKHR + allocs53624891 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 @@ -4714,6 +5100,24 @@ type CheckpointData2NV struct { 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 + FragmentShaderBarycentric Bool32 + reff7f35e73 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + allocsf7f35e73 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{} +} + // PhysicalDeviceShaderSubgroupUniformControlFlowFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR type PhysicalDeviceShaderSubgroupUniformControlFlowFeatures struct { SType StructureType @@ -4735,13 +5139,43 @@ type PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures struct { 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{} +} + // 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:9587 +// DebugReportCallbackFunc type as declared in vulkan/vulkan_core.h:10232 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 @@ -4992,6 +5426,39 @@ type PhysicalDeviceASTCDecodeFeatures struct { 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{} +} + +// 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{} +} + +// 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 + StorageBuffers PipelineRobustnessBufferBehavior + UniformBuffers PipelineRobustnessBufferBehavior + VertexInputs PipelineRobustnessBufferBehavior + Images PipelineRobustnessImageBehavior + ref1e4549a1 *C.VkPipelineRobustnessCreateInfoEXT + allocs1e4549a1 interface{} +} + // ConditionalRenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagsEXT.html type ConditionalRenderingFlags uint32 @@ -5840,8 +6307,8 @@ type PhysicalDeviceFragmentShaderBarycentricFeaturesNV struct { SType StructureType PNext unsafe.Pointer FragmentShaderBarycentric Bool32 - ref191b97c6 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - allocs191b97c6 interface{} + reff7f35e73 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + allocsf7f35e73 interface{} } // PhysicalDeviceShaderImageFootprintFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html @@ -6366,6 +6833,105 @@ type PhysicalDeviceShaderAtomicFloat2Features struct { 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{} +} + +// 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{} +} + +// 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 + SwapchainMaintenance1 Bool32 + ref553fbea0 *C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + allocs553fbea0 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{} +} + +// 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{} +} + +// 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{} +} + +// 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 + ScalingBehavior PresentScalingFlags + PresentGravityX PresentGravityFlags + PresentGravityY PresentGravityFlags + ref69da29d7 *C.VkSwapchainPresentScalingCreateInfoEXT + allocs69da29d7 interface{} +} + +// 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 + 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 @@ -6608,7 +7174,7 @@ type DeviceMemoryReportCallbackData struct { allocs3150dbde interface{} } -// DeviceMemoryReportCallbackFunc type as declared in vulkan/vulkan_core.h:13063 +// DeviceMemoryReportCallbackFunc type as declared in vulkan/vulkan_core.h:13855 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 @@ -6672,6 +7238,33 @@ type PhysicalDeviceCustomBorderColorFeatures struct { allocs8a9c96e0 interface{} } +// 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 + PresentBarrier Bool32 + reff8c28ce8 *C.VkPhysicalDevicePresentBarrierFeaturesNV + allocsf8c28ce8 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{} +} + +// 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{} +} + // DeviceDiagnosticsConfigFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigFlagsNV.html type DeviceDiagnosticsConfigFlagsNV uint32 @@ -6693,6 +7286,161 @@ type DeviceDiagnosticsConfigCreateInfoNV struct { allocs856c966a 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{} +} + +// 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 + Address DeviceAddress + Range DeviceSize + Format Format + ref3f3c750d *C.VkDescriptorAddressInfoEXT + allocs3f3c750d interface{} +} + +// 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 + Address DeviceAddress + Usage BufferUsageFlags + refbfb2412f *C.VkDescriptorBufferBindingInfoEXT + allocsbfb2412f interface{} +} + +// 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 + Buffer Buffer + ref14f143c5 *C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + allocs14f143c5 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{} +} + +// 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 + Buffer Buffer + ref7d170bdd *C.VkBufferCaptureDescriptorDataInfoEXT + allocs7d170bdd 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{} +} + +// 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{} +} + +// 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{} +} + +// 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{} +} + // GraphicsPipelineLibraryFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryFlagsEXT.html type GraphicsPipelineLibraryFlags uint32 @@ -6724,6 +7472,15 @@ type GraphicsPipelineLibraryCreateInfo struct { allocsf164ebfc 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{} +} + // PhysicalDeviceFragmentShadingRateEnumsFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.html type PhysicalDeviceFragmentShadingRateEnumsFeaturesNV struct { SType StructureType @@ -6794,392 +7551,530 @@ type CopyCommandTransformInfoQCOM struct { allocseaa6777c 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 - FormatA4R4G4B4 Bool32 - FormatA4B4G4R4 Bool32 - ref51c957d0 *C.VkPhysicalDevice4444FormatsFeaturesEXT - allocs51c957d0 interface{} -} +// ImageCompressionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFlagsEXT.html +type ImageCompressionFlags uint32 -// PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.html -type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM struct { - SType StructureType - PNext unsafe.Pointer - RasterizationOrderColorAttachmentAccess Bool32 - RasterizationOrderDepthAttachmentAccess Bool32 - RasterizationOrderStencilAttachmentAccess Bool32 - ref139a6788 *C.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM - allocs139a6788 interface{} +// 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{} } -// PhysicalDeviceRGBA10X6FormatsFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.html -type PhysicalDeviceRGBA10X6FormatsFeatures struct { - SType StructureType - PNext unsafe.Pointer - FormatRgba10x6WithoutYCbCrSampler Bool32 - refb685ff38 *C.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - allocsb685ff38 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 + Flags ImageCompressionFlags + CompressionControlPlaneCount uint32 + PFixedRateFlags []ImageCompressionFixedRateFlags + ref37cbe96e *C.VkImageCompressionControlEXT + allocs37cbe96e interface{} } -// PhysicalDeviceMutableDescriptorTypeFeaturesVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.html -type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE struct { - SType StructureType - PNext unsafe.Pointer - MutableDescriptorType Bool32 - ref2b2ab5ea *C.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - allocs2b2ab5ea interface{} +// 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 + SubresourceLayout SubresourceLayout + ref63424f18 *C.VkSubresourceLayout2EXT + allocs63424f18 interface{} } -// MutableDescriptorTypeListVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMutableDescriptorTypeListVALVE.html -type MutableDescriptorTypeListVALVE struct { - DescriptorTypeCount uint32 - PDescriptorTypes []DescriptorType - ref957e9078 *C.VkMutableDescriptorTypeListVALVE - allocs957e9078 interface{} +// 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{} } -// MutableDescriptorTypeCreateInfoVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMutableDescriptorTypeCreateInfoVALVE.html -type MutableDescriptorTypeCreateInfoVALVE struct { +// 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 - MutableDescriptorTypeListCount uint32 - PMutableDescriptorTypeLists []MutableDescriptorTypeListVALVE - ref8ef4bbb3 *C.VkMutableDescriptorTypeCreateInfoVALVE - allocs8ef4bbb3 interface{} + ImageCompressionFlags ImageCompressionFlags + ImageCompressionFixedRateFlags ImageCompressionFixedRateFlags + ref6a3ccfa2 *C.VkImageCompressionPropertiesEXT + allocs6a3ccfa2 interface{} } -// PhysicalDeviceVertexInputDynamicStateFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.html -type PhysicalDeviceVertexInputDynamicStateFeatures struct { - SType StructureType - PNext unsafe.Pointer - VertexInputDynamicState Bool32 - ref69e7b956 *C.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - allocs69e7b956 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{} } -// VertexInputBindingDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDescription2EXT.html -type VertexInputBindingDescription2 struct { +// 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 - Binding uint32 - Stride uint32 - InputRate VertexInputRate - Divisor uint32 - refefc9e910 *C.VkVertexInputBindingDescription2EXT - allocsefc9e910 interface{} + FormatA4R4G4B4 Bool32 + FormatA4B4G4R4 Bool32 + ref51c957d0 *C.VkPhysicalDevice4444FormatsFeaturesEXT + allocs51c957d0 interface{} } -// VertexInputAttributeDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputAttributeDescription2EXT.html -type VertexInputAttributeDescription2 struct { - SType StructureType - PNext unsafe.Pointer - Location uint32 - Binding uint32 - Format Format - Offset uint32 - refc6b0b55a *C.VkVertexInputAttributeDescription2EXT - allocsc6b0b55a 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{} } -// PhysicalDeviceDrmProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDrmPropertiesEXT.html -type PhysicalDeviceDrmProperties struct { - SType StructureType - PNext unsafe.Pointer - HasPrimary Bool32 - HasRender Bool32 - PrimaryMajor int64 - PrimaryMinor int64 - RenderMajor int64 - RenderMinor int64 - refc94c064 *C.VkPhysicalDeviceDrmPropertiesEXT - allocsc94c064 interface{} -} - -// PhysicalDeviceDepthClipControlFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDepthClipControlFeaturesEXT.html -type PhysicalDeviceDepthClipControlFeatures struct { - SType StructureType - PNext unsafe.Pointer - DepthClipControl Bool32 - ref2632e03a *C.VkPhysicalDeviceDepthClipControlFeaturesEXT - allocs2632e03a interface{} -} +// VideoEncodeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeFlagsKHR +type VideoEncodeFlags uint32 -// PipelineViewportDepthClipControlCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportDepthClipControlCreateInfoEXT.html -type PipelineViewportDepthClipControlCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - NegativeOneToOne Bool32 - ref6e11056b *C.VkPipelineViewportDepthClipControlCreateInfoEXT - allocs6e11056b interface{} -} +// VideoEncodeCapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagsKHR +type VideoEncodeCapabilityFlags uint32 -// PhysicalDevicePrimitiveTopologyListRestartFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.html -type PhysicalDevicePrimitiveTopologyListRestartFeatures struct { - SType StructureType - PNext unsafe.Pointer - PrimitiveTopologyListRestart Bool32 - PrimitiveTopologyPatchListRestart Bool32 - ref620627bc *C.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - allocs620627bc interface{} -} +// VideoEncodeRateControlModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagsKHR +type VideoEncodeRateControlModeFlags uint32 -// SubpassShadingPipelineCreateInfoHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassShadingPipelineCreateInfoHUAWEI.html -type SubpassShadingPipelineCreateInfoHUAWEI struct { - SType StructureType - PNext unsafe.Pointer - RenderPass RenderPass - Subpass uint32 - ref991efdae *C.VkSubpassShadingPipelineCreateInfoHUAWEI - allocs991efdae interface{} -} +// VideoEncodeUsageFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagsKHR +type VideoEncodeUsageFlags uint32 -// PhysicalDeviceSubpassShadingFeaturesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.html -type PhysicalDeviceSubpassShadingFeaturesHUAWEI struct { - SType StructureType - PNext unsafe.Pointer - SubpassShading Bool32 - reff3cfce3e *C.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI - allocsf3cfce3e interface{} -} +// VideoEncodeContentFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagsKHR +type VideoEncodeContentFlags uint32 -// PhysicalDeviceSubpassShadingPropertiesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.html -type PhysicalDeviceSubpassShadingPropertiesHUAWEI struct { - SType StructureType - PNext unsafe.Pointer - MaxSubpassShadingWorkgroupSizeAspectRatio uint32 - ref68a800d6 *C.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI - allocs68a800d6 interface{} -} +// VideoEncodeRateControlFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlFlagsKHR +type VideoEncodeRateControlFlags uint32 -// PhysicalDeviceInvocationMaskFeaturesHUAWEI as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.html -type PhysicalDeviceInvocationMaskFeaturesHUAWEI struct { - SType StructureType - PNext unsafe.Pointer - InvocationMask Bool32 - reff5b64a1f *C.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI - allocsf5b64a1f interface{} +// VideoEncodeInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeInfoKHR +type VideoEncodeInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEncodeFlags + QualityLevel uint32 + DstBitstreamBuffer Buffer + DstBitstreamBufferOffset DeviceSize + DstBitstreamBufferMaxRange DeviceSize + SrcPictureResource VideoPictureResourceInfo + PSetupReferenceSlot []VideoReferenceSlotInfo + ReferenceSlotCount uint32 + PReferenceSlots []VideoReferenceSlotInfo + PrecedingExternallyEncodedBytes uint32 + ref17fdae33 *C.VkVideoEncodeInfoKHR + allocs17fdae33 interface{} +} + +// VideoEncodeCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilitiesKHR +type VideoEncodeCapabilities struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEncodeCapabilityFlags + RateControlModes VideoEncodeRateControlModeFlags + RateControlLayerCount byte + QualityLevelCount byte + InputImageDataFillAlignment Extent2D + ref64e7b215 *C.VkVideoEncodeCapabilitiesKHR + allocs64e7b215 interface{} } -// RemoteAddressNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRemoteAddressNV.html -type RemoteAddressNV unsafe.Pointer - -// MemoryGetRemoteAddressInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryGetRemoteAddressInfoNV.html -type MemoryGetRemoteAddressInfoNV struct { - SType StructureType - PNext unsafe.Pointer - Memory DeviceMemory - HandleType ExternalMemoryHandleTypeFlagBits - ref5106899c *C.VkMemoryGetRemoteAddressInfoNV - allocs5106899c interface{} +// VideoEncodeUsageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageInfoKHR +type VideoEncodeUsageInfo struct { + SType StructureType + PNext unsafe.Pointer + VideoUsageHints VideoEncodeUsageFlags + VideoContentHints VideoEncodeContentFlags + TuningMode VideoEncodeTuningMode + ref8df2e1f2 *C.VkVideoEncodeUsageInfoKHR + allocs8df2e1f2 interface{} } -// PhysicalDeviceExternalMemoryRDMAFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.html -type PhysicalDeviceExternalMemoryRDMAFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - ExternalMemoryRDMA Bool32 - ref9c69743b *C.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV - allocs9c69743b interface{} +// VideoEncodeRateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR +type VideoEncodeRateControlLayerInfo struct { + SType StructureType + PNext unsafe.Pointer + AverageBitrate uint32 + MaxBitrate uint32 + FrameRateNumerator uint32 + FrameRateDenominator uint32 + VirtualBufferSizeInMs uint32 + InitialVirtualBufferSizeInMs uint32 + refa859f41d *C.VkVideoEncodeRateControlLayerInfoKHR + allocsa859f41d interface{} +} + +// VideoEncodeRateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlInfoKHR +type VideoEncodeRateControlInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEncodeRateControlFlags + RateControlMode VideoEncodeRateControlModeFlagBits + LayerCount byte + PLayerConfigs []VideoEncodeRateControlLayerInfo + ref6cd9cba3 *C.VkVideoEncodeRateControlInfoKHR + allocs6cd9cba3 interface{} } -// PhysicalDeviceExtendedDynamicState2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html -type PhysicalDeviceExtendedDynamicState2Features struct { - SType StructureType - PNext unsafe.Pointer - ExtendedDynamicState2 Bool32 - ExtendedDynamicState2LogicOp Bool32 - ExtendedDynamicState2PatchControlPoints Bool32 - refbd0cffdd *C.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - allocsbd0cffdd interface{} -} +// VideoEncodeH264CapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagsEXT.html +type VideoEncodeH264CapabilityFlags uint32 -// PhysicalDeviceColorWriteEnableFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceColorWriteEnableFeaturesEXT.html -type PhysicalDeviceColorWriteEnableFeatures struct { - SType StructureType - PNext unsafe.Pointer - ColorWriteEnable Bool32 - refd894aa7b *C.VkPhysicalDeviceColorWriteEnableFeaturesEXT - allocsd894aa7b interface{} -} +// VideoEncodeH264InputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagsEXT.html +type VideoEncodeH264InputModeFlags uint32 -// PipelineColorWriteCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorWriteCreateInfoEXT.html -type PipelineColorWriteCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - AttachmentCount uint32 - PColorWriteEnables []Bool32 - refa0609dbc *C.VkPipelineColorWriteCreateInfoEXT - allocsa0609dbc interface{} -} +// VideoEncodeH264OutputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagsEXT.html +type VideoEncodeH264OutputModeFlags uint32 -// PhysicalDevicePrimitivesGeneratedQueryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.html -type PhysicalDevicePrimitivesGeneratedQueryFeatures struct { - SType StructureType - PNext unsafe.Pointer - PrimitivesGeneratedQuery Bool32 - PrimitivesGeneratedQueryWithRasterizerDiscard Bool32 - PrimitivesGeneratedQueryWithNonZeroStreams Bool32 - reff7d249a0 *C.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT - allocsf7d249a0 interface{} +// VideoEncodeH264Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilitiesEXT.html +type VideoEncodeH264Capabilities struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEncodeH264CapabilityFlags + InputModeFlags VideoEncodeH264InputModeFlags + OutputModeFlags VideoEncodeH264OutputModeFlags + MaxPPictureL0ReferenceCount byte + MaxBPictureL0ReferenceCount byte + MaxL1ReferenceCount byte + MotionVectorsOverPicBoundariesFlag Bool32 + MaxBytesPerPicDenom uint32 + MaxBitsPerMbDenom uint32 + Log2MaxMvLengthHorizontal uint32 + Log2MaxMvLengthVertical uint32 + reffabc5de4 *C.VkVideoEncodeH264CapabilitiesEXT + allocsfabc5de4 interface{} } -// PhysicalDeviceImageViewMinLodFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageViewMinLodFeaturesEXT.html -type PhysicalDeviceImageViewMinLodFeatures struct { +// VideoEncodeH264SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264SessionParametersAddInfoEXT.html +type VideoEncodeH264SessionParametersAddInfo struct { SType StructureType PNext unsafe.Pointer - MinLod Bool32 - refac392a2f *C.VkPhysicalDeviceImageViewMinLodFeaturesEXT - allocsac392a2f interface{} + StdSPSCount uint32 + StdPPSCount uint32 + ref9aeed90f *C.VkVideoEncodeH264SessionParametersAddInfoEXT + allocs9aeed90f interface{} } -// ImageViewMinLodCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewMinLodCreateInfoEXT.html -type ImageViewMinLodCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MinLod float32 - ref25a88d90 *C.VkImageViewMinLodCreateInfoEXT - allocs25a88d90 interface{} +// VideoEncodeH264SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264SessionParametersCreateInfoEXT.html +type VideoEncodeH264SessionParametersCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MaxStdSPSCount uint32 + MaxStdPPSCount uint32 + PParametersAddInfo []VideoEncodeH264SessionParametersAddInfo + refda410cad *C.VkVideoEncodeH264SessionParametersCreateInfoEXT + allocsda410cad interface{} } -// PhysicalDeviceMultiDrawFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiDrawFeaturesEXT.html -type PhysicalDeviceMultiDrawFeatures struct { +// VideoEncodeH264DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264DpbSlotInfoEXT.html +type VideoEncodeH264DpbSlotInfo struct { SType StructureType PNext unsafe.Pointer - MultiDraw Bool32 - reff54fe1a4 *C.VkPhysicalDeviceMultiDrawFeaturesEXT - allocsf54fe1a4 interface{} + SlotIndex byte + refb4df162b *C.VkVideoEncodeH264DpbSlotInfoEXT + allocsb4df162b interface{} } -// PhysicalDeviceMultiDrawProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiDrawPropertiesEXT.html -type PhysicalDeviceMultiDrawProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxMultiDrawCount uint32 - ref1116c280 *C.VkPhysicalDeviceMultiDrawPropertiesEXT - allocs1116c280 interface{} +// VideoEncodeH264ReferenceListsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264ReferenceListsInfoEXT.html +type VideoEncodeH264ReferenceListsInfo struct { + SType StructureType + PNext unsafe.Pointer + ReferenceList0EntryCount byte + PReferenceList0Entries []VideoEncodeH264DpbSlotInfo + ReferenceList1EntryCount byte + PReferenceList1Entries []VideoEncodeH264DpbSlotInfo + ref91fe5805 *C.VkVideoEncodeH264ReferenceListsInfoEXT + allocs91fe5805 interface{} } -// MultiDrawInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultiDrawInfoEXT.html -type MultiDrawInfo struct { - FirstVertex uint32 - VertexCount uint32 - refc79896ab *C.VkMultiDrawInfoEXT - allocsc79896ab interface{} +// VideoEncodeH264NaluSliceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264NaluSliceInfoEXT.html +type VideoEncodeH264NaluSliceInfo struct { + SType StructureType + PNext unsafe.Pointer + MbCount uint32 + PReferenceFinalLists []VideoEncodeH264ReferenceListsInfo + ref6f598496 *C.VkVideoEncodeH264NaluSliceInfoEXT + allocs6f598496 interface{} } -// MultiDrawIndexedInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultiDrawIndexedInfoEXT.html -type MultiDrawIndexedInfo struct { - FirstIndex uint32 - IndexCount uint32 - VertexOffset int32 - ref2e569a13 *C.VkMultiDrawIndexedInfoEXT - allocs2e569a13 interface{} +// VideoEncodeH264VclFrameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264VclFrameInfoEXT.html +type VideoEncodeH264VclFrameInfo struct { + SType StructureType + PNext unsafe.Pointer + PReferenceFinalLists []VideoEncodeH264ReferenceListsInfo + NaluSliceEntryCount uint32 + PNaluSliceEntries []VideoEncodeH264NaluSliceInfo + ref5a087635 *C.VkVideoEncodeH264VclFrameInfoEXT + allocs5a087635 interface{} } -// PhysicalDeviceImage2DViewOf3DFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.html -type PhysicalDeviceImage2DViewOf3DFeatures struct { - SType StructureType - PNext unsafe.Pointer - Image2DViewOf3D Bool32 - Sampler2DViewOf3D Bool32 - ref7b20322b *C.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT - allocs7b20322b interface{} +// VideoEncodeH264EmitPictureParametersInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264EmitPictureParametersInfoEXT.html +type VideoEncodeH264EmitPictureParametersInfo struct { + SType StructureType + PNext unsafe.Pointer + SpsId byte + EmitSpsEnable Bool32 + PpsIdEntryCount uint32 + PpsIdEntries string + ref6eca871f *C.VkVideoEncodeH264EmitPictureParametersInfoEXT + allocs6eca871f interface{} } -// PhysicalDeviceBorderColorSwizzleFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.html -type PhysicalDeviceBorderColorSwizzleFeatures struct { - SType StructureType - PNext unsafe.Pointer - BorderColorSwizzle Bool32 - BorderColorSwizzleFromImage Bool32 - ref8f8ce94c *C.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT - allocs8f8ce94c interface{} +// VideoEncodeH264ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264ProfileInfoEXT.html +type VideoEncodeH264ProfileInfo struct { + SType StructureType + PNext unsafe.Pointer + ref3ba3093 *C.VkVideoEncodeH264ProfileInfoEXT + allocs3ba3093 interface{} } -// SamplerBorderColorComponentMappingCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerBorderColorComponentMappingCreateInfoEXT.html -type SamplerBorderColorComponentMappingCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Components ComponentMapping - Srgb Bool32 - ref652e9666 *C.VkSamplerBorderColorComponentMappingCreateInfoEXT - allocs652e9666 interface{} +// VideoEncodeH264RateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlInfoEXT.html +type VideoEncodeH264RateControlInfo struct { + SType StructureType + PNext unsafe.Pointer + GopFrameCount uint32 + IdrPeriod uint32 + ConsecutiveBFrameCount uint32 + RateControlStructure VideoEncodeH264RateControlStructure + TemporalLayerCount byte + ref2b3e86c5 *C.VkVideoEncodeH264RateControlInfoEXT + allocs2b3e86c5 interface{} +} + +// VideoEncodeH264Qp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264QpEXT.html +type VideoEncodeH264Qp struct { + QpI int32 + QpP int32 + QpB int32 + refcc70a5bd *C.VkVideoEncodeH264QpEXT + allocscc70a5bd interface{} +} + +// VideoEncodeH264FrameSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264FrameSizeEXT.html +type VideoEncodeH264FrameSize struct { + FrameISize uint32 + FramePSize uint32 + FrameBSize uint32 + reff1a45729 *C.VkVideoEncodeH264FrameSizeEXT + allocsf1a45729 interface{} +} + +// VideoEncodeH264RateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlLayerInfoEXT.html +type VideoEncodeH264RateControlLayerInfo struct { + SType StructureType + PNext unsafe.Pointer + TemporalLayerId byte + UseInitialRcQp Bool32 + InitialRcQp VideoEncodeH264Qp + UseMinQp Bool32 + MinQp VideoEncodeH264Qp + UseMaxQp Bool32 + MaxQp VideoEncodeH264Qp + UseMaxFrameSize Bool32 + MaxFrameSize VideoEncodeH264FrameSize + refc9f21e78 *C.VkVideoEncodeH264RateControlLayerInfoEXT + allocsc9f21e78 interface{} } -// PhysicalDevicePageableDeviceLocalMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.html -type PhysicalDevicePageableDeviceLocalMemoryFeatures struct { - SType StructureType - PNext unsafe.Pointer - PageableDeviceLocalMemory Bool32 - ref837987f8 *C.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - allocs837987f8 interface{} -} +// VideoEncodeH265CapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagsEXT.html +type VideoEncodeH265CapabilityFlags uint32 -// PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE.html -type PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE struct { - SType StructureType - PNext unsafe.Pointer - DescriptorSetHostMapping Bool32 - refa6b51ca7 *C.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE - allocsa6b51ca7 interface{} -} +// VideoEncodeH265InputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagsEXT.html +type VideoEncodeH265InputModeFlags uint32 -// DescriptorSetBindingReferenceVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetBindingReferenceVALVE.html -type DescriptorSetBindingReferenceVALVE struct { - SType StructureType - PNext unsafe.Pointer - DescriptorSetLayout DescriptorSetLayout - Binding uint32 - refb8b72026 *C.VkDescriptorSetBindingReferenceVALVE - allocsb8b72026 interface{} +// VideoEncodeH265OutputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagsEXT.html +type VideoEncodeH265OutputModeFlags uint32 + +// VideoEncodeH265CtbSizeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagsEXT.html +type VideoEncodeH265CtbSizeFlags uint32 + +// VideoEncodeH265TransformBlockSizeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagsEXT.html +type VideoEncodeH265TransformBlockSizeFlags uint32 + +// VideoEncodeH265Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilitiesEXT.html +type VideoEncodeH265Capabilities struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEncodeH265CapabilityFlags + InputModeFlags VideoEncodeH265InputModeFlags + OutputModeFlags VideoEncodeH265OutputModeFlags + CtbSizes VideoEncodeH265CtbSizeFlags + TransformBlockSizes VideoEncodeH265TransformBlockSizeFlags + MaxPPictureL0ReferenceCount byte + MaxBPictureL0ReferenceCount byte + MaxL1ReferenceCount byte + MaxSubLayersCount byte + MinLog2MinLumaCodingBlockSizeMinus3 byte + MaxLog2MinLumaCodingBlockSizeMinus3 byte + MinLog2MinLumaTransformBlockSizeMinus2 byte + MaxLog2MinLumaTransformBlockSizeMinus2 byte + MinMaxTransformHierarchyDepthInter byte + MaxMaxTransformHierarchyDepthInter byte + MinMaxTransformHierarchyDepthIntra byte + MaxMaxTransformHierarchyDepthIntra byte + MaxDiffCuQpDeltaDepth byte + MinMaxNumMergeCand byte + MaxMaxNumMergeCand byte + ref54d4cc75 *C.VkVideoEncodeH265CapabilitiesEXT + allocs54d4cc75 interface{} +} + +// VideoEncodeH265SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265SessionParametersAddInfoEXT.html +type VideoEncodeH265SessionParametersAddInfo struct { + SType StructureType + PNext unsafe.Pointer + StdVPSCount uint32 + StdSPSCount uint32 + StdPPSCount uint32 + ref9b5b2412 *C.VkVideoEncodeH265SessionParametersAddInfoEXT + allocs9b5b2412 interface{} +} + +// VideoEncodeH265SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265SessionParametersCreateInfoEXT.html +type VideoEncodeH265SessionParametersCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MaxStdVPSCount uint32 + MaxStdSPSCount uint32 + MaxStdPPSCount uint32 + PParametersAddInfo []VideoEncodeH265SessionParametersAddInfo + refd4a6e47c *C.VkVideoEncodeH265SessionParametersCreateInfoEXT + allocsd4a6e47c interface{} } -// DescriptorSetLayoutHostMappingInfoVALVE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutHostMappingInfoVALVE.html -type DescriptorSetLayoutHostMappingInfoVALVE struct { - SType StructureType - PNext unsafe.Pointer - DescriptorOffset uint64 - DescriptorSize uint32 - ref21a3fbe4 *C.VkDescriptorSetLayoutHostMappingInfoVALVE - allocs21a3fbe4 interface{} +// VideoEncodeH265DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265DpbSlotInfoEXT.html +type VideoEncodeH265DpbSlotInfo struct { + SType StructureType + PNext unsafe.Pointer + SlotIndex byte + refd24cdc3 *C.VkVideoEncodeH265DpbSlotInfoEXT + allocsd24cdc3 interface{} } -// PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.html -type PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM struct { +// VideoEncodeH265ReferenceListsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265ReferenceListsInfoEXT.html +type VideoEncodeH265ReferenceListsInfo struct { SType StructureType PNext unsafe.Pointer - FragmentDensityMapOffset Bool32 - refbc16fceb *C.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - allocsbc16fceb interface{} + ReferenceList0EntryCount byte + PReferenceList0Entries []VideoEncodeH265DpbSlotInfo + ReferenceList1EntryCount byte + PReferenceList1Entries []VideoEncodeH265DpbSlotInfo + ref86d63cc5 *C.VkVideoEncodeH265ReferenceListsInfoEXT + allocs86d63cc5 interface{} } -// PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM.html -type PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM struct { - SType StructureType - PNext unsafe.Pointer - FragmentDensityOffsetGranularity Extent2D - refe9bba09c *C.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM - allocse9bba09c interface{} +// VideoEncodeH265NaluSliceSegmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265NaluSliceSegmentInfoEXT.html +type VideoEncodeH265NaluSliceSegmentInfo struct { + SType StructureType + PNext unsafe.Pointer + CtbCount uint32 + PReferenceFinalLists []VideoEncodeH265ReferenceListsInfo + refc6dca7f8 *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT + allocsc6dca7f8 interface{} } -// SubpassFragmentDensityMapOffsetEndInfoQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassFragmentDensityMapOffsetEndInfoQCOM.html -type SubpassFragmentDensityMapOffsetEndInfoQCOM struct { +// VideoEncodeH265VclFrameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265VclFrameInfoEXT.html +type VideoEncodeH265VclFrameInfo struct { SType StructureType PNext unsafe.Pointer - FragmentDensityOffsetCount uint32 - PFragmentDensityOffsets []Offset2D - ref17e4eb04 *C.VkSubpassFragmentDensityMapOffsetEndInfoQCOM - allocs17e4eb04 interface{} + PReferenceFinalLists []VideoEncodeH265ReferenceListsInfo + NaluSliceSegmentEntryCount uint32 + PNaluSliceSegmentEntries []VideoEncodeH265NaluSliceSegmentInfo + reff460e7a4 *C.VkVideoEncodeH265VclFrameInfoEXT + allocsf460e7a4 interface{} } -// PhysicalDeviceLinearColorAttachmentFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.html -type PhysicalDeviceLinearColorAttachmentFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - LinearColorAttachment Bool32 - ref32a130f5 *C.VkPhysicalDeviceLinearColorAttachmentFeaturesNV - allocs32a130f5 interface{} +// VideoEncodeH265EmitPictureParametersInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265EmitPictureParametersInfoEXT.html +type VideoEncodeH265EmitPictureParametersInfo struct { + SType StructureType + PNext unsafe.Pointer + VpsId byte + SpsId byte + EmitVpsEnable Bool32 + EmitSpsEnable Bool32 + PpsIdEntryCount uint32 + PpsIdEntries string + refdcd5e3b *C.VkVideoEncodeH265EmitPictureParametersInfoEXT + allocsdcd5e3b interface{} +} + +// VideoEncodeH265ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265ProfileInfoEXT.html +type VideoEncodeH265ProfileInfo struct { + SType StructureType + PNext unsafe.Pointer + refba41eb7b *C.VkVideoEncodeH265ProfileInfoEXT + allocsba41eb7b interface{} +} + +// VideoEncodeH265RateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlInfoEXT.html +type VideoEncodeH265RateControlInfo struct { + SType StructureType + PNext unsafe.Pointer + GopFrameCount uint32 + IdrPeriod uint32 + ConsecutiveBFrameCount uint32 + RateControlStructure VideoEncodeH265RateControlStructure + SubLayerCount byte + reffcdc069d *C.VkVideoEncodeH265RateControlInfoEXT + allocsfcdc069d interface{} +} + +// VideoEncodeH265Qp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265QpEXT.html +type VideoEncodeH265Qp struct { + QpI int32 + QpP int32 + QpB int32 + ref72c7618 *C.VkVideoEncodeH265QpEXT + allocs72c7618 interface{} +} + +// VideoEncodeH265FrameSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265FrameSizeEXT.html +type VideoEncodeH265FrameSize struct { + FrameISize uint32 + FramePSize uint32 + FrameBSize uint32 + ref2c328eac *C.VkVideoEncodeH265FrameSizeEXT + allocs2c328eac interface{} +} + +// VideoEncodeH265RateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlLayerInfoEXT.html +type VideoEncodeH265RateControlLayerInfo struct { + SType StructureType + PNext unsafe.Pointer + TemporalId byte + UseInitialRcQp Bool32 + InitialRcQp VideoEncodeH265Qp + UseMinQp Bool32 + MinQp VideoEncodeH265Qp + UseMaxQp Bool32 + MaxQp VideoEncodeH265Qp + UseMaxFrameSize Bool32 + MaxFrameSize VideoEncodeH265FrameSize + ref48d77b5f *C.VkVideoEncodeH265RateControlLayerInfoEXT + allocs48d77b5f interface{} } diff --git a/vk_wrapper.h b/vk_wrapper.h index 0df8b69..c2891d6 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; diff --git a/vulkan.go b/vulkan.go index 56203b8..2e70d04 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 Thu, 12 May 2022 02:50:37 PDT. +// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 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 diff --git a/vulkan.yml b/vulkan.yml index 4f16efe..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: @@ -18,11 +19,13 @@ PARSER: # 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 diff --git a/vulkan/vk_enum_string_helper.h b/vulkan/vk_enum_string_helper.h index 756fe28..ff6ab7e 100644 --- a/vulkan/vk_enum_string_helper.h +++ b/vulkan/vk_enum_string_helper.h @@ -4,10 +4,10 @@ /*************************************************************************** * - * Copyright (c) 2015-2022 The Khronos Group Inc. - * Copyright (c) 2015-2022 Valve Corporation - * Copyright (c) 2015-2022 LunarG, Inc. - * Copyright (c) 2015-2022 Google Inc. + * 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. @@ -44,6 +44,8 @@ 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: @@ -58,6 +60,8 @@ static inline const char* string_VkResult(VkResult input_value) 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: @@ -96,6 +100,16 @@ static inline const char* string_VkResult(VkResult input_value) 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: @@ -133,6 +147,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -155,12 +171,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -199,8 +219,12 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -281,6 +305,12 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -315,6 +345,14 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -337,6 +375,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -347,6 +387,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -381,6 +425,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -421,6 +469,22 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -489,6 +553,12 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -521,18 +591,24 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -553,6 +629,14 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -615,12 +699,34 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_VALVE: - return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE"; + 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: @@ -645,8 +751,14 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -657,6 +769,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -671,6 +787,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -681,12 +801,20 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -713,6 +841,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -727,6 +859,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -743,8 +877,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_NV: - return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"; + 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: @@ -773,10 +909,18 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -793,6 +937,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -807,26 +953,48 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_VALVE: - return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"; + 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: @@ -839,6 +1007,14 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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 @@ -849,6 +1025,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -871,10 +1049,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_ARM: - return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"; + 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: @@ -909,6 +1093,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -917,6 +1105,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -929,6 +1119,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -951,12 +1145,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -965,6 +1163,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -985,10 +1185,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS 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: @@ -1057,6 +1255,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1075,10 +1275,14 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1131,10 +1335,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR: - return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS + 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: @@ -1145,6 +1349,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1161,6 +1367,10 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1169,12 +1379,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1209,6 +1423,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1235,20 +1451,32 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1257,10 +1485,22 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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: @@ -1273,82 +1513,42 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS + 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"; -#endif // VK_ENABLE_BETA_EXTENSIONS + 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"; @@ -1362,16 +1562,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT"; + 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT"; + 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT"; + 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: @@ -1382,8 +1582,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT"; + 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: @@ -1406,16 +1606,16 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT"; + 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT"; + 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT"; + 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: @@ -1426,8 +1626,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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_EXT: - return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT"; + 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: @@ -1454,49 +1654,29 @@ static inline const char* string_VkStructureType(VkStructureType input_value) 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"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR: - return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS + 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"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS + 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"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS 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: @@ -1524,6 +1704,17 @@ static inline const char* string_VkStructureType(VkStructureType input_value) } } +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) @@ -1611,6 +1802,8 @@ 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: @@ -1653,18 +1846,12 @@ static inline const char* string_VkImageLayout(VkImageLayout input_value) return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"; case VK_IMAGE_LAYOUT_UNDEFINED: return "VK_IMAGE_LAYOUT_UNDEFINED"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR: return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR: return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR: return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR: return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR"; @@ -1789,6 +1976,10 @@ static inline const char* string_VkObjectType(VkObjectType input_value) 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: @@ -1823,30 +2014,15 @@ static inline const char* string_VkObjectType(VkObjectType input_value) return "VK_OBJECT_TYPE_UNKNOWN"; case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT: return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_OBJECT_TYPE_VIDEO_SESSION_KHR: return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR: return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS default: return "Unhandled VkObjectType"; } } -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_VkVendorId(VkVendorId input_value) { switch (input_value) @@ -2250,6 +2426,8 @@ static inline const char* string_VkFormat(VkFormat input_value) 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: @@ -2429,8 +2607,8 @@ static inline const char* string_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits 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_IMG: - return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"; + 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: @@ -2459,14 +2637,10 @@ static inline const char* string_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits return "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"; case VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT: return "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR: return "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR: return "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR: return "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"; @@ -2512,12 +2686,16 @@ static inline const char* string_VkImageCreateFlagBits(VkImageCreateFlagBits inp 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: @@ -2628,6 +2806,8 @@ static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input { 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: @@ -2642,6 +2822,10 @@ static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input 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: @@ -2650,18 +2834,12 @@ static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input return "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"; case VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: return "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR: return "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR: return "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR: return "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR: return "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"; @@ -2821,16 +2999,16 @@ static inline const char* string_VkQueueFlagBits(VkQueueFlagBits input_value) 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_QUEUE_VIDEO_DECODE_BIT_KHR: return "VK_QUEUE_VIDEO_DECODE_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_QUEUE_VIDEO_ENCODE_BIT_KHR: return "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"; @@ -2919,14 +3097,14 @@ static inline const char* string_VkPipelineStageFlagBits(VkPipelineStageFlagBits 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_NV: - return "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"; + 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_NV: - return "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"; + 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: @@ -3082,6 +3260,8 @@ static inline const char* string_VkQueryPipelineStatisticFlagBits(VkQueryPipelin 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: @@ -3094,6 +3274,10 @@ static inline const char* string_VkQueryPipelineStatisticFlagBits(VkQueryPipelin 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: @@ -3129,8 +3313,18 @@ static inline const char* string_VkQueryType(VkQueryType input_value) 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: @@ -3141,10 +3335,8 @@ static inline const char* string_VkQueryType(VkQueryType input_value) return "VK_QUERY_TYPE_PIPELINE_STATISTICS"; case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR: return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS case VK_QUERY_TYPE_TIMESTAMP: return "VK_QUERY_TYPE_TIMESTAMP"; case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: @@ -3170,10 +3362,8 @@ static inline const char* string_VkQueryResultFlagBits(VkQueryResultFlagBits inp return "VK_QUERY_RESULT_WAIT_BIT"; case VK_QUERY_RESULT_WITH_AVAILABILITY_BIT: return "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_QUERY_RESULT_WITH_STATUS_BIT_KHR: return "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS default: return "Unhandled VkQueryResultFlagBits"; } @@ -3199,6 +3389,8 @@ static inline const char* string_VkBufferCreateFlagBits(VkBufferCreateFlagBits i { 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: @@ -3244,6 +3436,16 @@ static inline const char* string_VkBufferUsageFlagBits(VkBufferUsageFlagBits inp 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: @@ -3266,14 +3468,10 @@ static inline const char* string_VkBufferUsageFlagBits(VkBufferUsageFlagBits inp return "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"; case VK_BUFFER_USAGE_VERTEX_BUFFER_BIT: return "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR: return "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR: return "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR: return "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"; @@ -3343,6 +3541,8 @@ static inline const char* string_VkImageViewCreateFlagBits(VkImageViewCreateFlag { 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: @@ -3644,10 +3844,16 @@ static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBi 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: @@ -3662,6 +3868,10 @@ static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBi 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: @@ -3672,6 +3882,8 @@ static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBi 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: @@ -3750,6 +3962,8 @@ static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits inp 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: @@ -3758,16 +3972,16 @@ static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits inp 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_NV: - return "VK_SHADER_STAGE_MESH_BIT_NV"; + 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_NV: - return "VK_SHADER_STAGE_TASK_BIT_NV"; + 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: @@ -3781,6 +3995,8 @@ static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits inp 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) { @@ -3832,10 +4048,36 @@ 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: @@ -3846,6 +4088,12 @@ static inline const char* string_VkDynamicState(VkDynamicState input_value) 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: @@ -3856,32 +4104,56 @@ static inline const char* string_VkDynamicState(VkDynamicState input_value) 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: @@ -3892,6 +4164,8 @@ static inline const char* string_VkDynamicState(VkDynamicState input_value) 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: @@ -3902,8 +4176,12 @@ static inline const char* string_VkDynamicState(VkDynamicState input_value) 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: @@ -3989,10 +4267,10 @@ static inline const char* string_VkPipelineDepthStencilStateCreateFlagBits(VkPip { switch (input_value) { - case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM: - return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"; - case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: - return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"; + 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"; } @@ -4043,8 +4321,8 @@ static inline const char* string_VkPipelineColorBlendStateCreateFlagBits(VkPipel { switch (input_value) { - case VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM: - return "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"; + 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"; } @@ -4163,8 +4441,8 @@ static inline const char* string_VkFilter(VkFilter input_value) { switch (input_value) { - case VK_FILTER_CUBIC_IMG: - return "VK_FILTER_CUBIC_IMG"; + case VK_FILTER_CUBIC_EXT: + return "VK_FILTER_CUBIC_EXT"; case VK_FILTER_LINEAR: return "VK_FILTER_LINEAR"; case VK_FILTER_NEAREST: @@ -4197,6 +4475,12 @@ static inline const char* string_VkSamplerCreateFlagBits(VkSamplerCreateFlagBits { 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: @@ -4241,8 +4525,8 @@ static inline const char* string_VkDescriptorPoolCreateFlagBits(VkDescriptorPool { 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_VALVE: - return "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"; + 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: @@ -4274,18 +4558,22 @@ static inline const char* string_VkDescriptorType(VkDescriptorType input_value) 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_VALVE: - return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE"; + 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: @@ -4309,8 +4597,12 @@ static inline const char* string_VkDescriptorSetLayoutCreateFlagBits(VkDescripto { switch (input_value) { - case VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE: - return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"; + 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: @@ -4403,6 +4695,8 @@ static inline const char* string_VkDependencyFlagBits(VkDependencyFlagBits input 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: @@ -4501,18 +4795,20 @@ static inline const char* string_VkSubpassDescriptionFlagBits(VkSubpassDescripti { 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_ARM: - return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"; - case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM: - return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"; - case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: - return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"; + 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: @@ -5226,6 +5522,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) 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: @@ -5234,8 +5532,12 @@ static inline const char* string_VkDriverId(VkDriverId input_value) 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: @@ -5475,6 +5777,8 @@ static inline const char* string_VkPipelineStageFlagBits2(uint64_t 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: @@ -5487,6 +5791,8 @@ static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) 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: @@ -5517,10 +5823,14 @@ static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) 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_NV: - return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"; + 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: @@ -5529,8 +5839,8 @@ static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) 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_NV: - return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"; + 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: @@ -5545,10 +5855,8 @@ static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"; case VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT: return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR: return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"; @@ -5598,6 +5906,8 @@ static inline const char* string_VkAccessFlagBits2(uint64_t input_value) 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: @@ -5618,8 +5928,18 @@ static inline const char* string_VkAccessFlagBits2(uint64_t input_value) 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: @@ -5644,14 +5964,10 @@ static inline const char* string_VkAccessFlagBits2(uint64_t input_value) return "VK_ACCESS_2_UNIFORM_READ_BIT"; case VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT: return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR: return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"; @@ -5714,6 +6030,8 @@ static inline const char* string_VkRenderingFlagBits(VkRenderingFlagBits input_v { 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: @@ -5749,6 +6067,10 @@ static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) 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: @@ -5767,6 +6089,12 @@ static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) 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: @@ -5805,14 +6133,10 @@ static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #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"; @@ -5821,6 +6145,10 @@ static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) 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"; } @@ -5984,6 +6312,8 @@ static inline const char* string_VkSwapchainCreateFlagBitsKHR(VkSwapchainCreateF { 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: @@ -6077,21 +6407,14 @@ static inline std::string string_VkDisplayPlaneAlphaFlagsKHR(VkDisplayPlaneAlpha return ret; } - -#ifdef VK_ENABLE_BETA_EXTENSIONS - static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOperationFlagBitsKHR input_value) { switch (input_value) { -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT: - return "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS - case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT: - return "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"; -#endif // VK_ENABLE_BETA_EXTENSIONS + 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"; @@ -6100,8 +6423,8 @@ static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOp 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_INVALID_BIT_KHR: - return "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"; + case VK_VIDEO_CODEC_OPERATION_NONE_KHR: + return "VK_VIDEO_CODEC_OPERATION_NONE_KHR"; default: return "Unhandled VkVideoCodecOperationFlagBitsKHR"; } @@ -6122,10 +6445,6 @@ static inline std::string string_VkVideoCodecOperationFlagsKHR(VkVideoCodecOpera if( ret.empty()) ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoChromaSubsamplingFlagBitsKHR(VkVideoChromaSubsamplingFlagBitsKHR input_value) { @@ -6137,8 +6456,8 @@ static inline const char* string_VkVideoChromaSubsamplingFlagBitsKHR(VkVideoChro 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_BIT_KHR: - return "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_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: @@ -6161,10 +6480,6 @@ static inline std::string string_VkVideoChromaSubsamplingFlagsKHR(VkVideoChromaS if( ret.empty()) ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoComponentBitDepthFlagBitsKHR(VkVideoComponentBitDepthFlagBitsKHR input_value) { @@ -6198,10 +6513,6 @@ static inline std::string string_VkVideoComponentBitDepthFlagsKHR(VkVideoCompone if( ret.empty()) ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoCapabilityFlagBitsKHR(VkVideoCapabilityFlagBitsKHR input_value) { @@ -6231,17 +6542,11 @@ static inline std::string string_VkVideoCapabilityFlagsKHR(VkVideoCapabilityFlag if( ret.empty()) ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoSessionCreateFlagBitsKHR(VkVideoSessionCreateFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_SESSION_CREATE_DEFAULT_KHR: - return "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"; case VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR: return "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"; default: @@ -6264,17 +6569,19 @@ static inline std::string string_VkVideoSessionCreateFlagsKHR(VkVideoSessionCrea if( ret.empty()) ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoCodingControlFlagBitsKHR(VkVideoCodingControlFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_CODING_CONTROL_DEFAULT_KHR: - return "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"; +#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: @@ -6297,45 +6604,6 @@ static inline std::string string_VkVideoCodingControlFlagsKHR(VkVideoCodingContr if( ret.empty()) ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS - -static inline const char* string_VkVideoCodingQualityPresetFlagBitsKHR(VkVideoCodingQualityPresetFlagBitsKHR input_value) -{ - switch (input_value) - { - case VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR: - return "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"; - case VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR: - return "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"; - case VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR: - return "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"; - default: - return "Unhandled VkVideoCodingQualityPresetFlagBitsKHR"; - } -} - -static inline std::string string_VkVideoCodingQualityPresetFlagsKHR(VkVideoCodingQualityPresetFlagsKHR input_value) -{ - std::string ret; - int index = 0; - while(input_value) { - if (input_value & 1) { - if( !ret.empty()) ret.append("|"); - ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(1U << index))); - } - ++index; - input_value >>= 1; - } - if( ret.empty()) ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(0))); - return ret; -} -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkQueryResultStatusKHR(VkQueryResultStatusKHR input_value) { @@ -6351,17 +6619,11 @@ static inline const char* string_VkQueryResultStatusKHR(VkQueryResultStatusKHR i return "Unhandled VkQueryResultStatusKHR"; } } -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkVideoDecodeCapabilityFlagBitsKHR(VkVideoDecodeCapabilityFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR: - return "VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR"; 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: @@ -6386,40 +6648,70 @@ static inline std::string string_VkVideoDecodeCapabilityFlagsKHR(VkVideoDecodeCa if( ret.empty()) ret.append(string_VkVideoDecodeCapabilityFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS +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"; + } +} -#ifdef VK_ENABLE_BETA_EXTENSIONS +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_VkVideoDecodeFlagBitsKHR(VkVideoDecodeFlagBitsKHR input_value) +static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(VkVideoDecodeH264PictureLayoutFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_DECODE_DEFAULT_KHR: - return "VK_VIDEO_DECODE_DEFAULT_KHR"; - case VK_VIDEO_DECODE_RESERVED_0_BIT_KHR: - return "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"; + 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 VkVideoDecodeFlagBitsKHR"; + return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsKHR"; } } -static inline std::string string_VkVideoDecodeFlagsKHR(VkVideoDecodeFlagsKHR input_value) +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_VkVideoDecodeFlagBitsKHR(static_cast(1U << index))); + ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(static_cast(1U << index))); } ++index; input_value >>= 1; } - if( ret.empty()) ret.append(string_VkVideoDecodeFlagBitsKHR(static_cast(0))); + if( ret.empty()) ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(static_cast(0))); return ret; } -#endif // VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkRenderingFlagBitsKHR(VkRenderingFlagBitsKHR input_value) { @@ -6427,6 +6719,8 @@ static inline const char* string_VkRenderingFlagBitsKHR(VkRenderingFlagBitsKHR i { 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: @@ -6995,6 +7289,8 @@ static inline const char* string_VkDriverIdKHR(VkDriverIdKHR input_value) 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: @@ -7003,8 +7299,12 @@ static inline const char* string_VkDriverIdKHR(VkDriverIdKHR input_value) 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: @@ -7159,32 +7459,30 @@ static inline const char* string_VkPipelineExecutableStatisticFormatKHR(VkPipeli #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeFlagBitsKHR(VkVideoEncodeFlagBitsKHR input_value) +static inline const char* string_VkVideoEncodeCapabilityFlagBitsKHR(VkVideoEncodeCapabilityFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_ENCODE_DEFAULT_KHR: - return "VK_VIDEO_ENCODE_DEFAULT_KHR"; - case VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR: - return "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"; + 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 VkVideoEncodeFlagBitsKHR"; + return "Unhandled VkVideoEncodeCapabilityFlagBitsKHR"; } } -static inline std::string string_VkVideoEncodeFlagsKHR(VkVideoEncodeFlagsKHR input_value) +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_VkVideoEncodeFlagBitsKHR(static_cast(1U << index))); + ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(1U << index))); } ++index; input_value >>= 1; } - if( ret.empty()) ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast(0))); + if( ret.empty()) ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(0))); return ret; } #endif // VK_ENABLE_BETA_EXTENSIONS @@ -7192,32 +7490,34 @@ static inline std::string string_VkVideoEncodeFlagsKHR(VkVideoEncodeFlagsKHR inp #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeCapabilityFlagBitsKHR(VkVideoEncodeCapabilityFlagBitsKHR input_value) +static inline const char* string_VkVideoEncodeRateControlModeFlagBitsKHR(VkVideoEncodeRateControlModeFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR: - return "VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"; - case VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR: - return "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"; + 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 VkVideoEncodeCapabilityFlagBitsKHR"; + return "Unhandled VkVideoEncodeRateControlModeFlagBitsKHR"; } } -static inline std::string string_VkVideoEncodeCapabilityFlagsKHR(VkVideoEncodeCapabilityFlagsKHR input_value) +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_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(1U << index))); + ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(1U << index))); } ++index; input_value >>= 1; } - if( ret.empty()) ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(0))); + if( ret.empty()) ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(0))); return ret; } #endif // VK_ENABLE_BETA_EXTENSIONS @@ -7225,34 +7525,38 @@ static inline std::string string_VkVideoEncodeCapabilityFlagsKHR(VkVideoEncodeCa #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeRateControlModeFlagBitsKHR(VkVideoEncodeRateControlModeFlagBitsKHR input_value) +static inline const char* string_VkVideoEncodeUsageFlagBitsKHR(VkVideoEncodeUsageFlagBitsKHR 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"; + 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 VkVideoEncodeRateControlModeFlagBitsKHR"; + return "Unhandled VkVideoEncodeUsageFlagBitsKHR"; } } -static inline std::string string_VkVideoEncodeRateControlModeFlagsKHR(VkVideoEncodeRateControlModeFlagsKHR input_value) +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_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(1U << index))); + ret.append(string_VkVideoEncodeUsageFlagBitsKHR(static_cast(1U << index))); } ++index; input_value >>= 1; } - if( ret.empty()) ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(0))); + if( ret.empty()) ret.append(string_VkVideoEncodeUsageFlagBitsKHR(static_cast(0))); return ret; } #endif // VK_ENABLE_BETA_EXTENSIONS @@ -7260,46 +7564,75 @@ static inline std::string string_VkVideoEncodeRateControlModeFlagsKHR(VkVideoEnc #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeRateControlFlagBitsKHR(VkVideoEncodeRateControlFlagBitsKHR input_value) +static inline const char* string_VkVideoEncodeContentFlagBitsKHR(VkVideoEncodeContentFlagBitsKHR input_value) { switch (input_value) { - case VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR: - return "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"; - case VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR: - return "VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"; + 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 VkVideoEncodeRateControlFlagBitsKHR"; + return "Unhandled VkVideoEncodeContentFlagBitsKHR"; } } -static inline std::string string_VkVideoEncodeRateControlFlagsKHR(VkVideoEncodeRateControlFlagsKHR input_value) +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_VkVideoEncodeRateControlFlagBitsKHR(static_cast(1U << index))); + ret.append(string_VkVideoEncodeContentFlagBitsKHR(static_cast(1U << index))); } ++index; input_value >>= 1; } - if( ret.empty()) ret.append(string_VkVideoEncodeRateControlFlagBitsKHR(static_cast(0))); + if( ret.empty()) ret.append(string_VkVideoEncodeContentFlagBitsKHR(static_cast(0))); return ret; } #endif // VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_value) + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeTuningModeKHR(VkVideoEncodeTuningModeKHR 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_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_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: @@ -7308,6 +7641,8 @@ static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_valu 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: @@ -7338,10 +7673,14 @@ static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_valu 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_NV: - return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"; + 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: @@ -7350,8 +7689,8 @@ static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_valu 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_NV: - return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"; + 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: @@ -7366,10 +7705,8 @@ static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_valu return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"; case VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT: return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR: return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"; @@ -7419,6 +7756,8 @@ static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value) 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: @@ -7439,8 +7778,18 @@ static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value) 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: @@ -7465,14 +7814,10 @@ static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value) return "VK_ACCESS_2_UNIFORM_READ_BIT"; case VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT: return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS case VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR: return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"; @@ -7539,6 +7884,10 @@ static inline const char* string_VkFormatFeatureFlagBits2KHR(uint64_t input_valu 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: @@ -7557,6 +7906,12 @@ static inline const char* string_VkFormatFeatureFlagBits2KHR(uint64_t input_valu 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: @@ -7595,14 +7950,10 @@ static inline const char* string_VkFormatFeatureFlagBits2KHR(uint64_t input_valu 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"; -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; -#endif // VK_ENABLE_BETA_EXTENSIONS #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"; @@ -7611,6 +7962,10 @@ static inline const char* string_VkFormatFeatureFlagBits2KHR(uint64_t input_valu 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"; } @@ -7774,6 +8129,8 @@ static inline const char* string_VkVideoEncodeH264CapabilityFlagBitsEXT(VkVideoE { 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: @@ -7788,8 +8145,10 @@ static inline const char* string_VkVideoEncodeH264CapabilityFlagBitsEXT(VkVideoE 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_BIT_EXT: - return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_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: @@ -7915,35 +8274,19 @@ static inline std::string string_VkVideoEncodeH264OutputModeFlagsEXT(VkVideoEnco #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeH264RateControlStructureFlagBitsEXT(VkVideoEncodeH264RateControlStructureFlagBitsEXT input_value) +static inline const char* string_VkVideoEncodeH264RateControlStructureEXT(VkVideoEncodeH264RateControlStructureEXT input_value) { switch (input_value) { - case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT: - return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"; - case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT: - return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"; + 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 VkVideoEncodeH264RateControlStructureFlagBitsEXT"; - } -} - -static inline std::string string_VkVideoEncodeH264RateControlStructureFlagsEXT(VkVideoEncodeH264RateControlStructureFlagsEXT input_value) -{ - std::string ret; - int index = 0; - while(input_value) { - if (input_value & 1) { - if( !ret.empty()) ret.append("|"); - ret.append(string_VkVideoEncodeH264RateControlStructureFlagBitsEXT(static_cast(1U << index))); - } - ++index; - input_value >>= 1; + return "Unhandled VkVideoEncodeH264RateControlStructureEXT"; } - if( ret.empty()) ret.append(string_VkVideoEncodeH264RateControlStructureFlagBitsEXT(static_cast(0))); - return ret; } #endif // VK_ENABLE_BETA_EXTENSIONS @@ -8173,71 +8516,20 @@ static inline std::string string_VkVideoEncodeH265TransformBlockSizeFlagsEXT(VkV #ifdef VK_ENABLE_BETA_EXTENSIONS -static inline const char* string_VkVideoEncodeH265RateControlStructureFlagBitsEXT(VkVideoEncodeH265RateControlStructureFlagBitsEXT input_value) +static inline const char* string_VkVideoEncodeH265RateControlStructureEXT(VkVideoEncodeH265RateControlStructureEXT input_value) { switch (input_value) { - case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT: - return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"; - case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT: - return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"; + 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 VkVideoEncodeH265RateControlStructureFlagBitsEXT"; - } -} - -static inline std::string string_VkVideoEncodeH265RateControlStructureFlagsEXT(VkVideoEncodeH265RateControlStructureFlagsEXT input_value) -{ - std::string ret; - int index = 0; - while(input_value) { - if (input_value & 1) { - if( !ret.empty()) ret.append("|"); - ret.append(string_VkVideoEncodeH265RateControlStructureFlagBitsEXT(static_cast(1U << index))); - } - ++index; - input_value >>= 1; - } - if( ret.empty()) ret.append(string_VkVideoEncodeH265RateControlStructureFlagBitsEXT(static_cast(0))); - return ret; -} -#endif // VK_ENABLE_BETA_EXTENSIONS - - -#ifdef VK_ENABLE_BETA_EXTENSIONS - -static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(VkVideoDecodeH264PictureLayoutFlagBitsEXT input_value) -{ - switch (input_value) - { - case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT: - return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"; - case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT: - return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"; - case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT: - return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"; - default: - return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsEXT"; + return "Unhandled VkVideoEncodeH265RateControlStructureEXT"; } } - -static inline std::string string_VkVideoDecodeH264PictureLayoutFlagsEXT(VkVideoDecodeH264PictureLayoutFlagsEXT input_value) -{ - std::string ret; - int index = 0; - while(input_value) { - if (input_value & 1) { - if( !ret.empty()) ret.append("|"); - ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast(1U << index))); - } - ++index; - input_value >>= 1; - } - if( ret.empty()) ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsEXT(static_cast(0))); - return ret; -} #endif // VK_ENABLE_BETA_EXTENSIONS static inline const char* string_VkShaderInfoTypeAMD(VkShaderInfoTypeAMD input_value) @@ -8332,6 +8624,40 @@ static inline const char* string_VkValidationCheckEXT(VkValidationCheckEXT input } } +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) @@ -8513,6 +8839,8 @@ static inline const char* string_VkDebugUtilsMessageTypeFlagBitsEXT(VkDebugUtils { 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: @@ -8833,8 +9161,12 @@ static inline const char* string_VkGeometryInstanceFlagBitsKHR(VkGeometryInstanc { 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: @@ -8866,8 +9198,12 @@ static inline const char* string_VkGeometryInstanceFlagBitsNV(VkGeometryInstance { 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: @@ -8901,6 +9237,12 @@ static inline const char* string_VkBuildAccelerationStructureFlagBitsKHR(VkBuild { 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: @@ -8938,6 +9280,12 @@ static inline const char* string_VkBuildAccelerationStructureFlagBitsNV(VkBuildA { 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: @@ -9360,6 +9708,68 @@ static inline const char* string_VkLineRasterizationModeEXT(VkLineRasterizationM } } +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) @@ -9393,6 +9803,8 @@ static inline const char* string_VkIndirectCommandsTokenTypeNV(VkIndirectCommand { 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: @@ -9472,6 +9884,8 @@ static inline const char* string_VkDeviceDiagnosticsConfigFlagBitsNV(VkDeviceDia 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"; } @@ -9493,6 +9907,47 @@ static inline std::string string_VkDeviceDiagnosticsConfigFlagsNV(VkDeviceDiagno 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) @@ -9587,6 +10042,188 @@ static inline const char* string_VkAccelerationStructureMotionInstanceTypeNV(VkA } } +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 @@ -9626,16 +10263,143 @@ static inline std::string string_VkImageConstraintsInfoFlagsFUCHSIA(VkImageConst } #endif // VK_USE_PLATFORM_FUCHSIA -static inline const char* string_VkBuildAccelerationStructureModeKHR(VkBuildAccelerationStructureModeKHR input_value) +static inline const char* string_VkMicromapTypeEXT(VkMicromapTypeEXT 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"; + case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT: + return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT"; default: - return "Unhandled VkBuildAccelerationStructureModeKHR"; + 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"; } } @@ -9654,10 +10418,293 @@ static inline const char* string_VkAccelerationStructureBuildTypeKHR(VkAccelerat } } +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: @@ -9683,19 +10730,6 @@ static inline std::string string_VkAccelerationStructureCreateFlagsKHR(VkAcceler return ret; } -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_VkShaderGroupShaderKHR(VkShaderGroupShaderKHR input_value) { switch (input_value) @@ -9782,6 +10816,13 @@ static inline bool IsDuplicatePnext(VkStructureType 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 index 41989ee..1133fa3 100644 --- a/vulkan/vk_icd.h +++ b/vulkan/vk_icd.h @@ -2,9 +2,9 @@ // File: vk_icd.h // /* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. + * 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. @@ -19,9 +19,7 @@ * limitations under the License. * */ - -#ifndef VKICD_H -#define VKICD_H +#pragma once #include "vulkan.h" #include @@ -42,7 +40,17 @@ // 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. -#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6 +// 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 @@ -123,6 +131,7 @@ typedef enum { VK_ICD_WSI_PLATFORM_VI, VK_ICD_WSI_PLATFORM_GGP, VK_ICD_WSI_PLATFORM_SCREEN, + VK_ICD_WSI_PLATFORM_FUCHSIA, } VkIcdWsiPlatform; typedef struct { @@ -242,4 +251,8 @@ typedef struct { } VkIcdSurfaceScreen; #endif // VK_USE_PLATFORM_SCREEN_QNX -#endif // VKICD_H +#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 index 0651870..6bd1c9a 100644 --- a/vulkan/vk_layer.h +++ b/vulkan/vk_layer.h @@ -2,9 +2,9 @@ // File: vk_layer.h // /* - * Copyright (c) 2015-2017 The Khronos Group Inc. - * Copyright (c) 2015-2017 Valve Corporation - * Copyright (c) 2015-2017 LunarG, Inc. + * 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. @@ -19,14 +19,15 @@ * 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 */ -#pragma once -#include "vulkan.h" +#include "vulkan_core.h" + #if defined(__GNUC__) && __GNUC__ >= 4 #define VK_LAYER_EXPORT __attribute__((visibility("default"))) #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) diff --git a/vulkan/vk_sdk_platform.h b/vulkan/vk_sdk_platform.h index 96d8676..3bdf505 100644 --- a/vulkan/vk_sdk_platform.h +++ b/vulkan/vk_sdk_platform.h @@ -2,9 +2,9 @@ // File: vk_sdk_platform.h // /* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. + * 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. @@ -18,12 +18,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#pragma once -#ifndef VK_SDK_PLATFORM_H -#define VK_SDK_PLATFORM_H +// 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 @@ -65,5 +79,3 @@ #define NOEXCEPT #endif #endif - -#endif // VK_SDK_PLATFORM_H diff --git a/vulkan/vulkan.h b/vulkan/vulkan.h index 004fa70..3510ac9 100644 --- a/vulkan/vulkan.h +++ b/vulkan/vulkan.h @@ -38,7 +38,6 @@ #ifdef VK_USE_PLATFORM_WAYLAND_KHR -#include #include "vulkan_wayland.h" #endif diff --git a/vulkan/vulkan_beta.h b/vulkan/vulkan_beta.h index 3d25baa..cfeda0e 100644 --- a/vulkan/vulkan_beta.h +++ b/vulkan/vulkan_beta.h @@ -19,347 +19,6 @@ extern "C" { -#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 3 -#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_INVALID_BIT_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 -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002, -#endif - VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoCodecOperationFlagBitsKHR; -typedef VkFlags VkVideoCodecOperationFlagsKHR; - -typedef enum VkVideoChromaSubsamplingFlagBitsKHR { - VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_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_DEFAULT_KHR = 0, - 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 VkVideoBeginCodingFlagsKHR; -typedef VkFlags VkVideoEndCodingFlagsKHR; - -typedef enum VkVideoCodingControlFlagBitsKHR { - VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0, - VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, - VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoCodingControlFlagBitsKHR; -typedef VkFlags VkVideoCodingControlFlagsKHR; - -typedef enum VkVideoCodingQualityPresetFlagBitsKHR { - VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001, - VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002, - VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004, - VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoCodingQualityPresetFlagBitsKHR; -typedef VkFlags VkVideoCodingQualityPresetFlagsKHR; -typedef struct VkQueueFamilyQueryResultStatusProperties2KHR { - VkStructureType sType; - void* pNext; - VkBool32 supported; -} VkQueueFamilyQueryResultStatusProperties2KHR; - -typedef struct VkVideoQueueFamilyProperties2KHR { - VkStructureType sType; - void* pNext; - VkVideoCodecOperationFlagsKHR videoCodecOperations; -} VkVideoQueueFamilyProperties2KHR; - -typedef struct VkVideoProfileKHR { - VkStructureType sType; - void* pNext; - VkVideoCodecOperationFlagBitsKHR videoCodecOperation; - VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; - VkVideoComponentBitDepthFlagsKHR lumaBitDepth; - VkVideoComponentBitDepthFlagsKHR chromaBitDepth; -} VkVideoProfileKHR; - -typedef struct VkVideoProfilesKHR { - VkStructureType sType; - void* pNext; - uint32_t profileCount; - const VkVideoProfileKHR* pProfiles; -} VkVideoProfilesKHR; - -typedef struct VkVideoCapabilitiesKHR { - VkStructureType sType; - void* pNext; - VkVideoCapabilityFlagsKHR capabilityFlags; - VkDeviceSize minBitstreamBufferOffsetAlignment; - VkDeviceSize minBitstreamBufferSizeAlignment; - VkExtent2D videoPictureExtentGranularity; - VkExtent2D minExtent; - VkExtent2D maxExtent; - uint32_t maxReferencePicturesSlotsCount; - uint32_t maxReferencePicturesActiveCount; - VkExtensionProperties stdHeaderVersion; -} VkVideoCapabilitiesKHR; - -typedef struct VkPhysicalDeviceVideoFormatInfoKHR { - VkStructureType sType; - void* pNext; - VkImageUsageFlags imageUsage; - const VkVideoProfilesKHR* pVideoProfiles; -} VkPhysicalDeviceVideoFormatInfoKHR; - -typedef struct VkVideoFormatPropertiesKHR { - VkStructureType sType; - void* pNext; - VkFormat format; -} VkVideoFormatPropertiesKHR; - -typedef struct VkVideoPictureResourceKHR { - VkStructureType sType; - const void* pNext; - VkOffset2D codedOffset; - VkExtent2D codedExtent; - uint32_t baseArrayLayer; - VkImageView imageViewBinding; -} VkVideoPictureResourceKHR; - -typedef struct VkVideoReferenceSlotKHR { - VkStructureType sType; - const void* pNext; - int8_t slotIndex; - const VkVideoPictureResourceKHR* pPictureResource; -} VkVideoReferenceSlotKHR; - -typedef struct VkVideoGetMemoryPropertiesKHR { - VkStructureType sType; - const void* pNext; - uint32_t memoryBindIndex; - VkMemoryRequirements2* pMemoryRequirements; -} VkVideoGetMemoryPropertiesKHR; - -typedef struct VkVideoBindMemoryKHR { - VkStructureType sType; - const void* pNext; - uint32_t memoryBindIndex; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - VkDeviceSize memorySize; -} VkVideoBindMemoryKHR; - -typedef struct VkVideoSessionCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t queueFamilyIndex; - VkVideoSessionCreateFlagsKHR flags; - const VkVideoProfileKHR* pVideoProfile; - VkFormat pictureFormat; - VkExtent2D maxCodedExtent; - VkFormat referencePicturesFormat; - uint32_t maxReferencePicturesSlotsCount; - uint32_t maxReferencePicturesActiveCount; - const VkExtensionProperties* pStdHeaderVersion; -} VkVideoSessionCreateInfoKHR; - -typedef struct VkVideoSessionParametersCreateInfoKHR { - VkStructureType sType; - const void* pNext; - 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; - VkVideoCodingQualityPresetFlagsKHR codecQualityPreset; - VkVideoSessionKHR videoSession; - VkVideoSessionParametersKHR videoSessionParameters; - uint32_t referenceSlotCount; - const VkVideoReferenceSlotKHR* 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 VkVideoProfileKHR* 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* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); -typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories); -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 VkVideoProfileKHR* 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* pVideoSessionMemoryRequirementsCount, - VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( - VkDevice device, - VkVideoSessionKHR videoSession, - uint32_t videoSessionBindMemoryCount, - const VkVideoBindMemoryKHR* pVideoSessionBindMemories); - -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 4 -#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" - -typedef enum VkVideoDecodeCapabilityFlagBitsKHR { - VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR = 0, - 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 VkVideoDecodeFlagBitsKHR { - VK_VIDEO_DECODE_DEFAULT_KHR = 0, - VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001, - VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoDecodeFlagBitsKHR; -typedef VkFlags VkVideoDecodeFlagsKHR; -typedef struct VkVideoDecodeCapabilitiesKHR { - VkStructureType sType; - void* pNext; - VkVideoDecodeCapabilityFlagsKHR flags; -} VkVideoDecodeCapabilitiesKHR; - -typedef struct VkVideoDecodeInfoKHR { - VkStructureType sType; - const void* pNext; - VkVideoDecodeFlagsKHR flags; - VkBuffer srcBuffer; - VkDeviceSize srcBufferOffset; - VkDeviceSize srcBufferRange; - VkVideoPictureResourceKHR dstPictureResource; - const VkVideoReferenceSlotKHR* pSetupReferenceSlot; - uint32_t referenceSlotCount; - const VkVideoReferenceSlotKHR* pReferenceSlots; -} VkVideoDecodeInfoKHR; - -typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( - VkCommandBuffer commandBuffer, - const VkVideoDecodeInfoKHR* pFrameInfo); -#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" @@ -392,18 +51,20 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { #define VK_KHR_video_encode_queue 1 -#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 5 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" -typedef enum VkVideoEncodeFlagBitsKHR { - VK_VIDEO_ENCODE_DEFAULT_KHR = 0, - VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001, - VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoEncodeFlagBitsKHR; +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_DEFAULT_KHR = 0, VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkVideoEncodeCapabilityFlagBitsKHR; @@ -417,25 +78,38 @@ typedef enum VkVideoEncodeRateControlModeFlagBitsKHR { } VkVideoEncodeRateControlModeFlagBitsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; -typedef enum VkVideoEncodeRateControlFlagBitsKHR { - VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0, - VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001, - VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkVideoEncodeRateControlFlagBitsKHR; +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; - VkVideoPictureResourceKHR srcPictureResource; - const VkVideoReferenceSlotKHR* pSetupReferenceSlot; - uint32_t referenceSlotCount; - const VkVideoReferenceSlotKHR* pReferenceSlots; - uint32_t precedingExternallyEncodedBytes; + 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 { @@ -448,6 +122,14 @@ typedef struct VkVideoEncodeCapabilitiesKHR { 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; @@ -480,33 +162,42 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( #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 6 +#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_BIT_EXT = 0x00000001, - VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000002, - VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000004, - VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000008, - VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000010, - VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020, - VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040, - VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000080, - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000100, - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000200, - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000400, - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00000800, - VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00001000, - VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00002000, - VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00004000, - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00008000, - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00010000, - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00020000, - VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00040000, - VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00080000, - VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00100000, - VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00200000, - VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00400000, + 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; @@ -526,14 +217,6 @@ typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT { VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkVideoEncodeH264OutputModeFlagBitsEXT; typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; - -typedef enum VkVideoEncodeH264RateControlStructureFlagBitsEXT { - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001, - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002, - VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkVideoEncodeH264RateControlStructureFlagBitsEXT; -typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT; typedef struct VkVideoEncodeH264CapabilitiesEXT { VkStructureType sType; void* pNext; @@ -553,17 +236,17 @@ typedef struct VkVideoEncodeH264CapabilitiesEXT { typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { VkStructureType sType; const void* pNext; - uint32_t spsStdCount; - const StdVideoH264SequenceParameterSet* pSpsStd; - uint32_t ppsStdCount; - const StdVideoH264PictureParameterSet* pPpsStd; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet* pStdPPSs; } VkVideoEncodeH264SessionParametersAddInfoEXT; typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { VkStructureType sType; const void* pNext; - uint32_t maxSpsStdCount; - uint32_t maxPpsStdCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; } VkVideoEncodeH264SessionParametersCreateInfoEXT; @@ -574,7 +257,7 @@ typedef struct VkVideoEncodeH264DpbSlotInfoEXT { const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; } VkVideoEncodeH264DpbSlotInfoEXT; -typedef struct VkVideoEncodeH264ReferenceListsEXT { +typedef struct VkVideoEncodeH264ReferenceListsInfoEXT { VkStructureType sType; const void* pNext; uint8_t referenceList0EntryCount; @@ -582,48 +265,48 @@ typedef struct VkVideoEncodeH264ReferenceListsEXT { uint8_t referenceList1EntryCount; const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries; const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations; -} VkVideoEncodeH264ReferenceListsEXT; +} VkVideoEncodeH264ReferenceListsInfoEXT; -typedef struct VkVideoEncodeH264NaluSliceEXT { - VkStructureType sType; - const void* pNext; - uint32_t mbCount; - const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; - const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; -} VkVideoEncodeH264NaluSliceEXT; +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 VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; - uint32_t naluSliceEntryCount; - const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries; - const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries; + const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; } VkVideoEncodeH264VclFrameInfoEXT; -typedef struct VkVideoEncodeH264EmitPictureParametersEXT { +typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT { VkStructureType sType; const void* pNext; uint8_t spsId; VkBool32 emitSpsEnable; uint32_t ppsIdEntryCount; const uint8_t* ppsIdEntries; -} VkVideoEncodeH264EmitPictureParametersEXT; +} VkVideoEncodeH264EmitPictureParametersInfoEXT; -typedef struct VkVideoEncodeH264ProfileEXT { +typedef struct VkVideoEncodeH264ProfileInfoEXT { VkStructureType sType; const void* pNext; StdVideoH264ProfileIdc stdProfileIdc; -} VkVideoEncodeH264ProfileEXT; +} VkVideoEncodeH264ProfileInfoEXT; typedef struct VkVideoEncodeH264RateControlInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t gopFrameCount; - uint32_t idrPeriod; - uint32_t consecutiveBFrameCount; - VkVideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure; - uint8_t temporalLayerCount; + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH264RateControlStructureEXT rateControlStructure; + uint8_t temporalLayerCount; } VkVideoEncodeH264RateControlInfoEXT; typedef struct VkVideoEncodeH264QpEXT { @@ -657,9 +340,16 @@ typedef struct 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 7 +#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, @@ -723,14 +413,6 @@ typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT { VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkVideoEncodeH265TransformBlockSizeFlagBitsEXT; typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; - -typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT { - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001, - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002, - VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkVideoEncodeH265RateControlStructureFlagBitsEXT; -typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT; typedef struct VkVideoEncodeH265CapabilitiesEXT { VkStructureType sType; void* pNext; @@ -759,20 +441,20 @@ typedef struct VkVideoEncodeH265CapabilitiesEXT { typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT { VkStructureType sType; const void* pNext; - uint32_t vpsStdCount; - const StdVideoH265VideoParameterSet* pVpsStd; - uint32_t spsStdCount; - const StdVideoH265SequenceParameterSet* pSpsStd; - uint32_t ppsStdCount; - const StdVideoH265PictureParameterSet* pPpsStd; + 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 maxVpsStdCount; - uint32_t maxSpsStdCount; - uint32_t maxPpsStdCount; + uint32_t maxStdVPSCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo; } VkVideoEncodeH265SessionParametersCreateInfoEXT; @@ -783,7 +465,7 @@ typedef struct VkVideoEncodeH265DpbSlotInfoEXT { const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; } VkVideoEncodeH265DpbSlotInfoEXT; -typedef struct VkVideoEncodeH265ReferenceListsEXT { +typedef struct VkVideoEncodeH265ReferenceListsInfoEXT { VkStructureType sType; const void* pNext; uint8_t referenceList0EntryCount; @@ -791,26 +473,26 @@ typedef struct VkVideoEncodeH265ReferenceListsEXT { uint8_t referenceList1EntryCount; const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries; const StdVideoEncodeH265ReferenceModifications* pReferenceModifications; -} VkVideoEncodeH265ReferenceListsEXT; +} VkVideoEncodeH265ReferenceListsInfoEXT; -typedef struct VkVideoEncodeH265NaluSliceSegmentEXT { - VkStructureType sType; - const void* pNext; - uint32_t ctbCount; - const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; - const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd; -} VkVideoEncodeH265NaluSliceSegmentEXT; +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 VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; - uint32_t naluSliceSegmentEntryCount; - const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries; - const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists; + uint32_t naluSliceSegmentEntryCount; + const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries; + const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; } VkVideoEncodeH265VclFrameInfoEXT; -typedef struct VkVideoEncodeH265EmitPictureParametersEXT { +typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT { VkStructureType sType; const void* pNext; uint8_t vpsId; @@ -819,22 +501,22 @@ typedef struct VkVideoEncodeH265EmitPictureParametersEXT { VkBool32 emitSpsEnable; uint32_t ppsIdEntryCount; const uint8_t* ppsIdEntries; -} VkVideoEncodeH265EmitPictureParametersEXT; +} VkVideoEncodeH265EmitPictureParametersInfoEXT; -typedef struct VkVideoEncodeH265ProfileEXT { +typedef struct VkVideoEncodeH265ProfileInfoEXT { VkStructureType sType; const void* pNext; StdVideoH265ProfileIdc stdProfileIdc; -} VkVideoEncodeH265ProfileEXT; +} VkVideoEncodeH265ProfileInfoEXT; typedef struct VkVideoEncodeH265RateControlInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t gopFrameCount; - uint32_t idrPeriod; - uint32_t consecutiveBFrameCount; - VkVideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure; - uint8_t subLayerCount; + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH265RateControlStructureEXT rateControlStructure; + uint8_t subLayerCount; } VkVideoEncodeH265RateControlInfoEXT; typedef struct VkVideoEncodeH265QpEXT { @@ -864,123 +546,6 @@ typedef struct VkVideoEncodeH265RateControlLayerInfoEXT { } VkVideoEncodeH265RateControlLayerInfoEXT; - -#define VK_EXT_video_decode_h264 1 -#include "vk_video/vulkan_video_codec_h264std_decode.h" -#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 5 -#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264" - -typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT { - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0, - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001, - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002, - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkVideoDecodeH264PictureLayoutFlagBitsEXT; -typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; -typedef struct VkVideoDecodeH264ProfileEXT { - VkStructureType sType; - const void* pNext; - StdVideoH264ProfileIdc stdProfileIdc; - VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout; -} VkVideoDecodeH264ProfileEXT; - -typedef struct VkVideoDecodeH264CapabilitiesEXT { - VkStructureType sType; - void* pNext; - StdVideoH264Level maxLevel; - VkOffset2D fieldOffsetGranularity; -} VkVideoDecodeH264CapabilitiesEXT; - -typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t spsStdCount; - const StdVideoH264SequenceParameterSet* pSpsStd; - uint32_t ppsStdCount; - const StdVideoH264PictureParameterSet* pPpsStd; -} VkVideoDecodeH264SessionParametersAddInfoEXT; - -typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t maxSpsStdCount; - uint32_t maxPpsStdCount; - const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo; -} VkVideoDecodeH264SessionParametersCreateInfoEXT; - -typedef struct VkVideoDecodeH264PictureInfoEXT { - VkStructureType sType; - const void* pNext; - const StdVideoDecodeH264PictureInfo* pStdPictureInfo; - uint32_t slicesCount; - const uint32_t* pSlicesDataOffsets; -} VkVideoDecodeH264PictureInfoEXT; - -typedef struct VkVideoDecodeH264MvcEXT { - VkStructureType sType; - const void* pNext; - const StdVideoDecodeH264Mvc* pStdMvc; -} VkVideoDecodeH264MvcEXT; - -typedef struct VkVideoDecodeH264DpbSlotInfoEXT { - VkStructureType sType; - const void* pNext; - const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; -} VkVideoDecodeH264DpbSlotInfoEXT; - - - -#define VK_EXT_video_decode_h265 1 -#include "vk_video/vulkan_video_codec_h265std_decode.h" -#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 3 -#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265" -typedef struct VkVideoDecodeH265ProfileEXT { - VkStructureType sType; - const void* pNext; - StdVideoH265ProfileIdc stdProfileIdc; -} VkVideoDecodeH265ProfileEXT; - -typedef struct VkVideoDecodeH265CapabilitiesEXT { - VkStructureType sType; - void* pNext; - StdVideoH265Level maxLevel; -} VkVideoDecodeH265CapabilitiesEXT; - -typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t vpsStdCount; - const StdVideoH265VideoParameterSet* pVpsStd; - uint32_t spsStdCount; - const StdVideoH265SequenceParameterSet* pSpsStd; - uint32_t ppsStdCount; - const StdVideoH265PictureParameterSet* pPpsStd; -} VkVideoDecodeH265SessionParametersAddInfoEXT; - -typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t maxVpsStdCount; - uint32_t maxSpsStdCount; - uint32_t maxPpsStdCount; - const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo; -} VkVideoDecodeH265SessionParametersCreateInfoEXT; - -typedef struct VkVideoDecodeH265PictureInfoEXT { - VkStructureType sType; - const void* pNext; - StdVideoDecodeH265PictureInfo* pStdPictureInfo; - uint32_t slicesCount; - const uint32_t* pSlicesDataOffsets; -} VkVideoDecodeH265PictureInfoEXT; - -typedef struct VkVideoDecodeH265DpbSlotInfoEXT { - VkStructureType sType; - const void* pNext; - const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; -} VkVideoDecodeH265DpbSlotInfoEXT; - - #ifdef __cplusplus } #endif diff --git a/vulkan/vulkan_core.h b/vulkan/vulkan_core.h index 1de68f8..1bdb3a7 100644 --- a/vulkan/vulkan_core.h +++ b/vulkan/vulkan_core.h @@ -72,7 +72,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 211 +#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) @@ -120,7 +120,6 @@ 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_UUID_SIZE 16U #define VK_ATTACHMENT_UNUSED (~0U) #define VK_FALSE 0U #define VK_LOD_CLAMP_NONE 1000.0F @@ -131,10 +130,11 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) #define VK_TRUE 1U #define VK_WHOLE_SIZE (~0ULL) #define VK_MAX_MEMORY_TYPES 32U -#define VK_MAX_MEMORY_HEAPS 16U #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, @@ -168,6 +168,12 @@ 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_NOT_PERMITTED_KHR = -1000174001, VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, @@ -175,6 +181,7 @@ typedef enum VkResult { 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_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, @@ -424,63 +431,26 @@ 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, -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000, VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS + 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, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS + 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, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR = 1000023016, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016, VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001, -#endif + 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, @@ -508,13 +478,13 @@ typedef enum VkStructureType { 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_EXT = 1000038005, + 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_EXT = 1000038006, + 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_EXT = 1000038007, + 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, @@ -523,7 +493,7 @@ typedef enum VkStructureType { 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_EXT = 1000038010, + 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, @@ -541,16 +511,16 @@ typedef enum VkStructureType { 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_EXT = 1000039005, + 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_EXT = 1000039006, + 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_EXT = 1000039007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039008, + 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, @@ -558,27 +528,12 @@ typedef enum VkStructureType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010, #endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040002, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040003, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006, -#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, @@ -595,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, @@ -738,24 +696,12 @@ typedef enum VkStructureType { 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, -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187003, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005, -#endif + 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, @@ -767,7 +713,6 @@ typedef enum VkStructureType { 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, @@ -833,6 +778,15 @@ typedef enum VkStructureType { 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, @@ -855,6 +809,9 @@ typedef enum VkStructureType { 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 @@ -868,14 +825,45 @@ typedef enum VkStructureType { #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, @@ -883,21 +871,31 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001, VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000, + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001, + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002, + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003, + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000, + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001, + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000, VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000, + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, @@ -922,26 +920,87 @@ typedef enum VkStructureType { 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, @@ -1047,6 +1106,7 @@ typedef enum VkStructureType { 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, @@ -1103,7 +1163,11 @@ typedef enum VkStructureType { 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, @@ -1113,6 +1177,11 @@ typedef enum VkStructureType { 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, @@ -1132,15 +1201,9 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000, VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, -#endif 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, @@ -1153,6 +1216,7 @@ typedef enum VkImageLayout { #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, @@ -1200,12 +1264,8 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, -#endif VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000, VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001, VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, @@ -1216,17 +1276,14 @@ typedef enum VkObjectType { 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 VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; - typedef enum VkVendorId { VK_VENDOR_ID_VIV = 0x10001, VK_VENDOR_ID_VSI = 0x10002, @@ -1499,6 +1556,7 @@ 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, @@ -1583,9 +1641,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, -#endif VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, @@ -1595,7 +1651,12 @@ typedef enum VkQueryType { #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; @@ -1755,6 +1816,37 @@ typedef enum VkDynamicState { 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, @@ -1855,8 +1947,8 @@ typedef enum VkBorderColor { typedef enum VkFilter { VK_FILTER_NEAREST = 0, VK_FILTER_LINEAR = 1, - VK_FILTER_CUBIC_IMG = 1000015000, - VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, + VK_FILTER_CUBIC_EXT = 1000015000, + VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT, VK_FILTER_MAX_ENUM = 0x7FFFFFFF } VkFilter; @@ -1891,8 +1983,11 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000, + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000, + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001, + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000, VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT, VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; @@ -2027,14 +2122,10 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, -#endif 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 @@ -2043,6 +2134,7 @@ typedef enum VkFormatFeatureFlagBits { #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, @@ -2053,7 +2145,6 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkFormatFeatureFlagBits; typedef VkFlags VkFormatFeatureFlags; @@ -2074,6 +2165,8 @@ typedef enum VkImageCreateFlagBits { 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, @@ -2107,15 +2200,9 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, -#endif VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, #ifdef VK_ENABLE_BETA_EXTENSIONS @@ -2127,7 +2214,10 @@ typedef enum VkImageUsageFlagBits { #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; @@ -2167,12 +2257,11 @@ typedef enum VkQueueFlagBits { VK_QUEUE_TRANSFER_BIT = 0x00000004, VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, VK_QUEUE_PROTECTED_BIT = 0x00000010, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, -#endif #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; @@ -2207,14 +2296,16 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, 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; @@ -2261,6 +2352,9 @@ 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; @@ -2271,9 +2365,7 @@ typedef enum VkQueryResultFlagBits { VK_QUERY_RESULT_WAIT_BIT = 0x00000002, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, -#endif VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryResultFlagBits; typedef VkFlags VkQueryResultFlags; @@ -2284,6 +2376,7 @@ typedef enum VkBufferCreateFlagBits { 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 @@ -2301,12 +2394,8 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, -#endif 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, @@ -2319,6 +2408,11 @@ typedef enum VkBufferUsageFlagBits { #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, @@ -2329,6 +2423,7 @@ 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; @@ -2373,9 +2468,15 @@ typedef enum VkPipelineCreateFlagBits { 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, @@ -2411,15 +2512,18 @@ typedef enum VkShaderStageFlagBits { 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_NV = 0x00000040, - VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + 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; @@ -2439,14 +2543,17 @@ typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef VkFlags VkPipelineMultisampleStateCreateFlags; typedef enum VkPipelineDepthStencilStateCreateFlagBits { - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000001, - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000002, + 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 enum VkPipelineColorBlendStateCreateFlagBits { - VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 0x00000001, + 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; @@ -2462,6 +2569,9 @@ typedef VkFlags VkShaderStageFlags; 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; @@ -2469,8 +2579,9 @@ typedef VkFlags VkSamplerCreateFlags; typedef enum VkDescriptorPoolCreateFlagBits { VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 0x00000004, + 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; @@ -2479,8 +2590,11 @@ typedef VkFlags VkDescriptorPoolResetFlags; 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_HOST_ONLY_POOL_BIT_VALVE = 0x00000004, + 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; @@ -2495,6 +2609,7 @@ 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 @@ -2519,9 +2634,13 @@ typedef enum VkSubpassDescriptionFlagBits { 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_ARM = 0x00000010, - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000020, - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000040, + 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; @@ -5524,6 +5643,9 @@ typedef enum VkDriverId { 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, @@ -6336,9 +6458,7 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT 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; -#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; -#endif #ifdef VK_ENABLE_BETA_EXTENSIONS static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; #endif @@ -6354,8 +6474,14 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE 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; @@ -6403,12 +6529,8 @@ static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000 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; -#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; -#endif #ifdef VK_ENABLE_BETA_EXTENSIONS static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; #endif @@ -6429,7 +6551,13 @@ static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 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 { @@ -6443,6 +6571,7 @@ 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, @@ -6507,12 +6636,8 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_ 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; -#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; -#endif 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; @@ -6523,6 +6648,13 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT 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; @@ -7399,6 +7531,7 @@ 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; @@ -7702,6 +7835,412 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( #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 + + +#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; + + + #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" @@ -8815,15 +9354,68 @@ typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { -#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" +#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 enum VkQueueGlobalPriorityKHR { - VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128, - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256, - VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512, +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; + + + +#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, @@ -9382,6 +9974,23 @@ VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( #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" @@ -9474,7 +10083,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( #define VK_KHR_format_feature_flags2 1 -#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 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; @@ -9484,6 +10093,42 @@ 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" @@ -10174,6 +10819,51 @@ typedef struct 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" @@ -10629,6 +11319,7 @@ 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; @@ -11301,6 +11992,8 @@ typedef enum VkGeometryInstanceFlagBitsKHR { 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, @@ -11321,6 +12014,9 @@ typedef enum VkBuildAccelerationStructureFlagBitsKHR { 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, @@ -11907,11 +12603,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( #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 struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 fragmentShaderBarycentric; -} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; +typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; @@ -12782,6 +13474,105 @@ typedef struct 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; + +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; + + + +#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; + void* pNext; + VkBool32 swapchainMaintenance1; +} VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT; + +typedef struct VkSwapchainPresentFenceInfoEXT { + VkStructureType sType; + void* pNext; + uint32_t swapchainCount; + const VkFence* pFences; +} VkSwapchainPresentFenceInfoEXT; + +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; + VkSwapchainKHR swapchain; + uint32_t imageIndexCount; + const uint32_t* pImageIndices; +} VkReleaseSwapchainImagesInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT( + VkDevice device, + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); +#endif + + #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" @@ -12803,6 +13594,7 @@ typedef enum VkIndirectCommandsTokenTypeNV { 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; @@ -13012,7 +13804,7 @@ typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBuff #define VK_QCOM_render_pass_transform 1 -#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2 +#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; @@ -13144,6 +13936,29 @@ typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" +#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 struct VkSurfaceCapabilitiesPresentBarrierNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierSupported; +} VkSurfaceCapabilitiesPresentBarrierNV; + +typedef struct VkSwapchainPresentBarrierCreateInfoNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierEnable; +} VkSwapchainPresentBarrierCreateInfoNV; + + + #define VK_EXT_private_data 1 typedef VkPrivateDataSlot VkPrivateDataSlotEXT; @@ -13198,13 +14013,14 @@ typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePip #define VK_NV_device_diagnostics_config 1 -#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" 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; @@ -13227,6 +14043,225 @@ typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" +#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 VkPhysicalDeviceDescriptorBufferFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 descriptorBuffer; + VkBool32 descriptorBufferCaptureReplay; + VkBool32 descriptorBufferImageLayoutIgnored; + VkBool32 descriptorBufferPushDescriptors; +} VkPhysicalDeviceDescriptorBufferFeaturesEXT; + +typedef struct VkDescriptorAddressInfoEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddress address; + VkDeviceSize range; + VkFormat format; +} VkDescriptorAddressInfoEXT; + +typedef struct VkDescriptorBufferBindingInfoEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddress address; + VkBufferUsageFlags usage; +} VkDescriptorBufferBindingInfoEXT; + +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; + +typedef struct VkBufferCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferCaptureDescriptorDataInfoEXT; + +typedef struct VkImageCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageCaptureDescriptorDataInfoEXT; + +typedef struct VkImageViewCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; +} VkImageViewCaptureDescriptorDataInfoEXT; + +typedef struct VkSamplerCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkSampler sampler; +} VkSamplerCaptureDescriptorDataInfoEXT; + +typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT { + VkStructureType sType; + const void* pNext; + const void* opaqueCaptureDescriptorData; +} VkOpaqueCaptureDescriptorDataCreateInfoEXT; + +#ifdef GO_INCLUDE_NV_ray_tracing + +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 + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT( + VkDevice device, + VkDescriptorSetLayout layout, + VkDeviceSize* pLayoutSizeInBytes); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT( + VkDevice device, + VkDescriptorSetLayout layout, + uint32_t binding, + VkDeviceSize* pOffset); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT( + VkDevice device, + const VkDescriptorGetInfoEXT* pDescriptorInfo, + size_t dataSize, + void* pDescriptor); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t bufferCount, + const VkDescriptorBufferBindingInfoEXT* pBindingInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t setCount, + const uint32_t* pBufferIndices, + const VkDeviceSize* pOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkBufferCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkImageCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, + void* pData); +#endif + + #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" @@ -13260,6 +14295,17 @@ typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { +#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" @@ -13457,6 +14503,103 @@ typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessF +#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 VkImageCompressionControlEXT { + VkStructureType sType; + const void* pNext; + VkImageCompressionFlagsEXT flags; + uint32_t compressionControlPlaneCount; + VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags; +} VkImageCompressionControlEXT; + +typedef struct VkSubresourceLayout2EXT { + VkStructureType sType; + void* pNext; + VkSubresourceLayout subresourceLayout; +} VkSubresourceLayout2EXT; + +typedef struct VkImageSubresource2EXT { + VkStructureType sType; + void* pNext; + VkImageSubresource imageSubresource; +} VkImageSubresource2EXT; + +typedef struct VkImageCompressionPropertiesEXT { + VkStructureType sType; + void* pNext; + VkImageCompressionFlagsEXT imageCompressionFlags; + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags; +} VkImageCompressionPropertiesEXT; + +typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT( + VkDevice device, + VkImage image, + const VkImageSubresource2EXT* pSubresource, + VkSubresourceLayout2EXT* pLayout); +#endif + + +#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_EXT_4444_formats 1 #define VK_EXT_4444_FORMATS_SPEC_VERSION 1 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" @@ -13468,17 +14611,97 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { } 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); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT( + VkDevice device, + VkDeviceFaultCountsEXT* pFaultCounts, + VkDeviceFaultInfoEXT* pFaultInfo); +#endif + #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 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { +typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT { VkStructureType sType; void* pNext; VkBool32 rasterizationOrderColorAttachmentAccess; VkBool32 rasterizationOrderDepthAttachmentAccess; VkBool32 rasterizationOrderStencilAttachmentAccess; -} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT; + +typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; @@ -13493,48 +14716,36 @@ typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { -#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 - - #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 VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { +typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT { VkStructureType sType; void* pNext; VkBool32 mutableDescriptorType; -} VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; -typedef struct VkMutableDescriptorTypeListVALVE { +typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + +typedef struct VkMutableDescriptorTypeListEXT { uint32_t descriptorTypeCount; const VkDescriptorType* pDescriptorTypes; -} VkMutableDescriptorTypeListVALVE; +} VkMutableDescriptorTypeListEXT; -typedef struct VkMutableDescriptorTypeCreateInfoVALVE { - VkStructureType sType; - const void* pNext; - uint32_t mutableDescriptorTypeListCount; - const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists; -} VkMutableDescriptorTypeCreateInfoVALVE; +typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE; +typedef struct VkMutableDescriptorTypeCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoEXT; +typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE; -#define VK_EXT_vertex_input_dynamic_state 1 + + +#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 { @@ -13589,6 +14800,38 @@ typedef struct 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; + + + #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" @@ -13700,6 +14943,57 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( #endif +#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 VkPipelinePropertiesIdentifierEXT { + VkStructureType sType; + void* pNext; + uint8_t pipelineIdentifier[VK_UUID_SIZE]; +} VkPipelinePropertiesIdentifierEXT; + +typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelinePropertiesIdentifier; +} VkPhysicalDevicePipelinePropertiesFeaturesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT( + VkDevice device, + const VkPipelineInfoEXT* pPipelineInfo, + VkBaseOutStructure* pPipelineProperties); +#endif + + +#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 struct VkSubpassResolvePerformanceQueryEXT { + VkStructureType sType; + void* pNext; + VkBool32 optimal; +} VkSubpassResolvePerformanceQueryEXT; + +typedef struct VkMultisampledRenderToSingleSampledInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 multisampledRenderToSingleSampledEnable; + VkSampleCountFlagBits rasterizationSamples; +} VkMultisampledRenderToSingleSampledInfoEXT; + + + #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" @@ -13867,11 +15161,314 @@ typedef struct 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; + VkBool32 micromap; + VkBool32 micromapCaptureReplay; + VkBool32 micromapHostCommands; +} VkPhysicalDeviceOpacityMicromapFeaturesEXT; + +typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxOpacity2StateSubdivisionLevel; + uint32_t maxOpacity4StateSubdivisionLevel; +} VkPhysicalDeviceOpacityMicromapPropertiesEXT; + +typedef struct VkMicromapVersionInfoEXT { + VkStructureType sType; + const void* pNext; + 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; + +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; + +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); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT( + VkDevice device, + const VkMicromapCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkMicromapEXT* pMicromap); + +VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT( + VkDevice device, + VkMicromapEXT micromap, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapInfoEXT* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapToMemoryInfoEXT* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToMicromapInfoEXT* pInfo); + +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); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT( + VkCommandBuffer commandBuffer, + const VkCopyMicromapToMemoryInfoEXT* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToMicromapInfoEXT* pInfo); + +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_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" +#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 clustercullingShader; + VkBool32 multiviewClusterCullingShader; +} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI; + +typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + 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); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset); +#endif + + #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" @@ -13949,6 +15546,28 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( #endif +#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; + VkBool32 depthClampZeroOne; +} VkPhysicalDeviceDepthClampZeroOneFeaturesEXT; + + + +#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_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" @@ -13973,6 +15592,104 @@ typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM { +#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 struct VkCopyMemoryToImageIndirectCommandNV { + VkDeviceAddress srcAddress; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkCopyMemoryToImageIndirectCommandNV; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 indirectCopy; +} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { + VkStructureType sType; + void* pNext; + VkQueueFlags supportedQueues; +} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; + +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); + +#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_NV_memory_decompression 1 +#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1 +#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression" + +// Flag bits for VkMemoryDecompressionMethodFlagBitsNV +typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV; +static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL; + +typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV; +typedef struct VkDecompressMemoryRegionNV { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize compressedSize; + VkDeviceSize decompressedSize; + VkMemoryDecompressionMethodFlagsNV decompressionMethod; +} VkDecompressMemoryRegionNV; + +typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 memoryDecompression; +} VkPhysicalDeviceMemoryDecompressionFeaturesNV; + +typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV { + VkStructureType sType; + void* pNext; + VkMemoryDecompressionMethodFlagsNV decompressionMethods; + uint64_t maxDecompressionIndirectCount; +} VkPhysicalDeviceMemoryDecompressionPropertiesNV; + +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 + + #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" @@ -13985,13 +15702,719 @@ typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV { #define VK_GOOGLE_surfaceless_query 1 -#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1 +#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" -#ifdef GO_INCLUDE_NV_ray_tracing + +#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; + + + +#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 VkPhysicalDeviceImageProcessingFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 textureSampleWeighted; + VkBool32 textureBoxFilter; + VkBool32 textureBlockMatch; +} VkPhysicalDeviceImageProcessingFeaturesQCOM; + +typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM { + VkStructureType sType; + void* pNext; + uint32_t maxWeightFilterPhases; + VkExtent2D maxWeightFilterDimension; + VkExtent2D maxBlockMatchRegion; + VkExtent2D maxBoxFilterBlockSize; +} VkPhysicalDeviceImageProcessingPropertiesQCOM; + + + +#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; + 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); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT( + VkCommandBuffer commandBuffer, + VkTessellationDomainOrigin domainOrigin); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClampEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT( + VkCommandBuffer commandBuffer, + VkPolygonMode polygonMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits rasterizationSamples); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits samples, + const VkSampleMask* pSampleMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 alphaToCoverageEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 alphaToOneEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT( + VkCommandBuffer commandBuffer, + 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); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT( + VkCommandBuffer commandBuffer, + uint32_t rasterizationStream); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkConservativeRasterizationModeEXT conservativeRasterizationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT( + VkCommandBuffer commandBuffer, + float extraPrimitiveOverestimationSize); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClipEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 sampleLocationsEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorBlendAdvancedEXT* pColorBlendAdvanced); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT( + VkCommandBuffer commandBuffer, + VkProvokingVertexModeEXT provokingVertexMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkLineRasterizationModeEXT lineRasterizationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stippledLineEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT( + VkCommandBuffer commandBuffer, + VkBool32 negativeOneToOne); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 viewportWScalingEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportSwizzleNV* pViewportSwizzles); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 coverageToColorEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV( + VkCommandBuffer commandBuffer, + uint32_t coverageToColorLocation); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV( + VkCommandBuffer commandBuffer, + VkCoverageModulationModeNV coverageModulationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 coverageModulationTableEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV( + VkCommandBuffer commandBuffer, + uint32_t coverageModulationTableCount, + const float* pCoverageModulationTable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 shadingRateImageEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 representativeFragmentTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV( + VkCommandBuffer commandBuffer, + VkCoverageReductionModeNV coverageReductionMode); +#endif + + +#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 subpassMergeFeedback; +} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT; + +typedef struct VkRenderPassCreationControlEXT { + VkStructureType sType; + const void* pNext; + VkBool32 disallowMerging; +} VkRenderPassCreationControlEXT; + +typedef struct VkRenderPassCreationFeedbackInfoEXT { + uint32_t postMergeSubpassCount; +} VkRenderPassCreationFeedbackInfoEXT; + +typedef struct VkRenderPassCreationFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback; +} VkRenderPassCreationFeedbackCreateInfoEXT; + +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; + + + +#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); + +typedef struct VkDirectDriverLoadingInfoLUNARG { + VkStructureType sType; + void* pNext; + VkDirectDriverLoadingFlagsLUNARG flags; + PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr; +} VkDirectDriverLoadingInfoLUNARG; + +typedef struct VkDirectDriverLoadingListLUNARG { + VkStructureType sType; + void* pNext; + VkDirectDriverLoadingModeLUNARG mode; + uint32_t driverCount; + const VkDirectDriverLoadingInfoLUNARG* pDrivers; +} VkDirectDriverLoadingListLUNARG; + + + +#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; + VkBool32 shaderModuleIdentifier; +} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; +} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; + +typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t identifierSize; + const uint8_t* pIdentifier; +} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; + +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 void VKAPI_CALL vkGetShaderModuleIdentifierEXT( + VkDevice device, + VkShaderModule shaderModule, + VkShaderModuleIdentifierEXT* pIdentifier); + +VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo, + VkShaderModuleIdentifierEXT* pIdentifier); +#endif + + +#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 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, + VkOpticalFlowSessionNV session, + const VkOpticalFlowExecuteInfoNV* pExecuteInfo); +#endif + + +#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; + + + +#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; + void* pNext; + VkBool32 pipelineProtectedAccess; +} VkPhysicalDevicePipelineProtectedAccessFeaturesEXT; + + + +#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 vkGetFramebufferTilePropertiesQCOM( + VkDevice device, + VkFramebuffer framebuffer, + uint32_t* pPropertiesCount, + VkTilePropertiesQCOM* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM( + VkDevice device, + const VkRenderingInfo* pRenderingInfo, + VkTilePropertiesQCOM* pProperties); +#endif + + +#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; + VkBool32 amigoProfiling; +} VkPhysicalDeviceAmigoProfilingFeaturesSEC; + +typedef struct VkAmigoProfilingSubmitInfoSEC { + VkStructureType sType; + const void* pNext; + uint64_t firstDrawTimestamp; + uint64_t swapBufferTimestamp; +} VkAmigoProfilingSubmitInfoSEC; + + + +#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; + VkBool32 multiviewPerViewViewports; +} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM; + + + +#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 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 rayTracingInvocationReorder; +} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; + + + +#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_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 VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM { + VkStructureType sType; + void* pNext; + uint64_t shaderCoreMask; + uint32_t shaderCoreCount; + uint32_t shaderWarpsPerCore; +} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM; + + #define VK_KHR_acceleration_structure 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" @@ -14001,30 +16424,13 @@ typedef enum VkBuildAccelerationStructureModeKHR { VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF } VkBuildAccelerationStructureModeKHR; -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 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 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 union VkDeviceOrHostAddressKHR { - VkDeviceAddress deviceAddress; - void* hostAddress; -} VkDeviceOrHostAddressKHR; - typedef struct VkAccelerationStructureBuildRangeInfoKHR { uint32_t primitiveCount; uint32_t primitiveOffset; @@ -14429,6 +16835,87 @@ typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { } VkPhysicalDeviceRayQueryFeaturesKHR; + +#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); + +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 diff --git a/vulkan/vulkan_core_h.patch b/vulkan/vulkan_core_h.patch index 7277e9d..336d292 100644 --- a/vulkan/vulkan_core_h.patch +++ b/vulkan/vulkan_core_h.patch @@ -1,6 +1,6 @@ ---- /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 @@ +--- vulkan_core.h.orig 2023-02-09 22:12:19 ++++ vulkan_core.h 2023-02-09 22:25:00 +@@ -10488,7 +10488,7 @@ uint32_t vertexStride); #endif @@ -9,16 +9,17 @@ #define VK_NVX_binary_import 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) -@@ -9913,7 +9913,7 @@ +@@ -10558,8 +10558,8 @@ 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 @@ + #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +@@ -11911,6 +11911,8 @@ const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); #endif @@ -27,7 +28,7 @@ #define VK_NV_ray_tracing 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) -@@ -11589,6 +11591,7 @@ +@@ -12285,6 +12287,7 @@ uint32_t shader); #endif @@ -35,7 +36,36 @@ #define VK_NV_representative_fragment_test 1 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 -@@ -13313,6 +13316,7 @@ +@@ -14168,6 +14171,8 @@ + const void* opaqueCaptureDescriptorData; + } VkOpaqueCaptureDescriptorDataCreateInfoEXT; + ++#ifdef GO_INCLUDE_NV_ray_tracing ++ + typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; +@@ -14175,6 +14180,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 +14192,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 +14362,7 @@ const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); #endif @@ -43,24 +73,25 @@ #define VK_NV_ray_tracing_motion_blur 1 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 -@@ -13402,7 +13406,7 @@ +@@ -14441,8 +14452,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 -@@ -13984,6 +13988,7 @@ - #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1 - #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" + #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +@@ -14600,6 +14611,7 @@ + } VkPhysicalDevice4444FormatsFeaturesEXT; + +#ifdef GO_INCLUDE_NV_ray_tracing - #define VK_KHR_acceleration_structure 1 - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) -@@ -14429,3 +14434,6 @@ + #define VK_EXT_device_fault 1 + #define VK_EXT_DEVICE_FAULT_SPEC_VERSION 1 +@@ -16909,3 +16921,6 @@ #endif #endif diff --git a/vulkan/vulkan_metal.h b/vulkan/vulkan_metal.h index 3631f12..11b9640 100644 --- a/vulkan/vulkan_metal.h +++ b/vulkan/vulkan_metal.h @@ -20,7 +20,6 @@ extern "C" { #define VK_EXT_metal_surface 1 - #ifdef __OBJC__ @class CAMetalLayer; #else @@ -47,6 +46,146 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( 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 diff --git a/vulkan/vulkan_win32.h b/vulkan/vulkan_win32.h index affe0c0..a8e46c8 100644 --- a/vulkan/vulkan_win32.h +++ b/vulkan/vulkan_win32.h @@ -308,6 +308,24 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( 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 From 7305916b49c8e790b20ac8f56a993d742f028091 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:26:22 -0800 Subject: [PATCH 07/25] starting to update from changes on base version but realized that might just screw up PR merge.. --- .gitignore | 5 ++++- Makefile | 2 +- README.md | 6 ++++-- android/dummy.go | 5 +++++ 4 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 android/dummy.go diff --git a/.gitignore b/.gitignore index a6ef824..38fa562 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -/bazel-* +# JetBrains IDE +.idea/ +*.iml + diff --git a/Makefile b/Makefile index dafe91c..92512a0 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.18 +VERS=v1.0.0 PACKAGE=vgpu GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/README.md b/README.md index 4fbeb7a..b31548e 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,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] @@ -93,8 +93,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/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 From 7de5f41de531dd93124b62efbdf755ce999025a3 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:27:03 -0800 Subject: [PATCH 08/25] v1.0.1 release -- version.go updated --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 92512a0..e0074d7 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.0 +VERS=v1.0.1 PACKAGE=vgpu GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` From e19bb1cd836b387f913ff35aae48e70f7dd6714d Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:27:23 -0800 Subject: [PATCH 09/25] add version.go --- version.go | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 version.go diff --git a/version.go b/version.go new file mode 100644 index 0000000..d5aa249 --- /dev/null +++ b/version.go @@ -0,0 +1,9 @@ +// WARNING: auto-generated by Makefile release target -- run 'make release' to update + +package vgpu + +const ( + Version = "v1.0.1" + GitCommit = "7305916" // the commit JUST BEFORE the release + VersionDate = "2023-02-10 08:27" // UTC +) From 4525e5a3f6facfa09b75bd7c333b8d72470ec6be Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:52:35 -0800 Subject: [PATCH 10/25] fix broken version.go stuff --- Makefile | 4 ++-- version.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index e0074d7..dbeddff 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ test: # NOTE: MUST update version number here prior to running 'make release' VERS=v1.0.1 -PACKAGE=vgpu +PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` VERS_FILE=version.go @@ -23,7 +23,7 @@ release: @echo "package $(PACKAGE)" >> $(VERS_FILE) @echo "" >> $(VERS_FILE) @echo "const (" >> $(VERS_FILE) - @echo " Version = \"$(VERS)\"" >> $(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) diff --git a/version.go b/version.go index d5aa249..d3380da 100644 --- a/version.go +++ b/version.go @@ -1,9 +1,9 @@ // WARNING: auto-generated by Makefile release target -- run 'make release' to update -package vgpu +package vulkan const ( - Version = "v1.0.1" + GoVersion = "v1.0.1" GitCommit = "7305916" // the commit JUST BEFORE the release VersionDate = "2023-02-10 08:27" // UTC ) From 4d9639343f6155e484ee0cb18d8de9797e807067 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 00:52:45 -0800 Subject: [PATCH 11/25] v1.0.2 release -- version.go updated --- Makefile | 2 +- version.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index dbeddff..633cc68 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.1 +VERS=v1.0.2 PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/version.go b/version.go index d3380da..904de20 100644 --- a/version.go +++ b/version.go @@ -3,7 +3,7 @@ package vulkan const ( - GoVersion = "v1.0.1" - GitCommit = "7305916" // the commit JUST BEFORE the release - VersionDate = "2023-02-10 08:27" // UTC + GoVersion = "v1.0.2" + GitCommit = "4525e5a" // the commit JUST BEFORE the release + VersionDate = "2023-02-10 08:52" // UTC ) From 1c25b5b1aa8146c338e9de3b4bc7d90e17779f00 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 04:28:20 -0800 Subject: [PATCH 12/25] remove video H246 decoding as it is not perhaps widely supported. --- cgo_helpers.go | 603 ------------------------------------------- types.go | 60 ----- vulkan/vulkan_core.h | 3 +- 3 files changed, 2 insertions(+), 664 deletions(-) diff --git a/cgo_helpers.go b/cgo_helpers.go index 6b7479d..2d4a5c4 100644 --- a/cgo_helpers.go +++ b/cgo_helpers.go @@ -36864,609 +36864,6 @@ func (x *VideoDecodeInfo) Deref() { packSVideoReferenceSlotInfo(x.PReferenceSlots, x.refbbf9d3b8.pReferenceSlots) } -// allocVideoDecodeH264ProfileInfoMemory allocates memory for type C.VkVideoDecodeH264ProfileInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264ProfileInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264ProfileInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264ProfileInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264ProfileInfo) Ref() *C.VkVideoDecodeH264ProfileInfoKHR { - if x == nil { - return nil - } - return x.ref5dfcb5c1 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264ProfileInfo) Free() { - if x != nil && x.allocs5dfcb5c1 != nil { - x.allocs5dfcb5c1.(*cgoAllocMap).Free() - x.ref5dfcb5c1 = nil - } -} - -// NewVideoDecodeH264ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264ProfileInfoRef(ref unsafe.Pointer) *VideoDecodeH264ProfileInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264ProfileInfo) - obj.ref5dfcb5c1 = (*C.VkVideoDecodeH264ProfileInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264ProfileInfo) PassRef() (*C.VkVideoDecodeH264ProfileInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref5dfcb5c1 != nil { - return x.ref5dfcb5c1, nil - } - mem5dfcb5c1 := allocVideoDecodeH264ProfileInfoMemory(1) - ref5dfcb5c1 := (*C.VkVideoDecodeH264ProfileInfoKHR)(mem5dfcb5c1) - allocs5dfcb5c1 := new(cgoAllocMap) - allocs5dfcb5c1.Add(mem5dfcb5c1) - - var csType_allocs *cgoAllocMap - ref5dfcb5c1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5dfcb5c1.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref5dfcb5c1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5dfcb5c1.Borrow(cpNext_allocs) - - var cpictureLayout_allocs *cgoAllocMap - ref5dfcb5c1.pictureLayout, cpictureLayout_allocs = (C.VkVideoDecodeH264PictureLayoutFlagBitsKHR)(x.PictureLayout), cgoAllocsUnknown - allocs5dfcb5c1.Borrow(cpictureLayout_allocs) - - x.ref5dfcb5c1 = ref5dfcb5c1 - x.allocs5dfcb5c1 = allocs5dfcb5c1 - return ref5dfcb5c1, allocs5dfcb5c1 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264ProfileInfo) PassValue() (C.VkVideoDecodeH264ProfileInfoKHR, *cgoAllocMap) { - if x.ref5dfcb5c1 != nil { - return *x.ref5dfcb5c1, 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 *VideoDecodeH264ProfileInfo) Deref() { - if x.ref5dfcb5c1 == nil { - return - } - x.SType = (StructureType)(x.ref5dfcb5c1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5dfcb5c1.pNext)) - x.PictureLayout = (VideoDecodeH264PictureLayoutFlagBits)(x.ref5dfcb5c1.pictureLayout) -} - -// allocVideoDecodeH264CapabilitiesMemory allocates memory for type C.VkVideoDecodeH264CapabilitiesKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264CapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264CapabilitiesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeH264CapabilitiesKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264Capabilities) Ref() *C.VkVideoDecodeH264CapabilitiesKHR { - if x == nil { - return nil - } - return x.ref7c1bc212 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264Capabilities) Free() { - if x != nil && x.allocs7c1bc212 != nil { - x.allocs7c1bc212.(*cgoAllocMap).Free() - x.ref7c1bc212 = nil - } -} - -// NewVideoDecodeH264CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264CapabilitiesRef(ref unsafe.Pointer) *VideoDecodeH264Capabilities { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264Capabilities) - obj.ref7c1bc212 = (*C.VkVideoDecodeH264CapabilitiesKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264Capabilities) PassRef() (*C.VkVideoDecodeH264CapabilitiesKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref7c1bc212 != nil { - return x.ref7c1bc212, nil - } - mem7c1bc212 := allocVideoDecodeH264CapabilitiesMemory(1) - ref7c1bc212 := (*C.VkVideoDecodeH264CapabilitiesKHR)(mem7c1bc212) - allocs7c1bc212 := new(cgoAllocMap) - allocs7c1bc212.Add(mem7c1bc212) - - var csType_allocs *cgoAllocMap - ref7c1bc212.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7c1bc212.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref7c1bc212.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7c1bc212.Borrow(cpNext_allocs) - - var cfieldOffsetGranularity_allocs *cgoAllocMap - ref7c1bc212.fieldOffsetGranularity, cfieldOffsetGranularity_allocs = x.FieldOffsetGranularity.PassValue() - allocs7c1bc212.Borrow(cfieldOffsetGranularity_allocs) - - x.ref7c1bc212 = ref7c1bc212 - x.allocs7c1bc212 = allocs7c1bc212 - return ref7c1bc212, allocs7c1bc212 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264Capabilities) PassValue() (C.VkVideoDecodeH264CapabilitiesKHR, *cgoAllocMap) { - if x.ref7c1bc212 != nil { - return *x.ref7c1bc212, 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 *VideoDecodeH264Capabilities) Deref() { - if x.ref7c1bc212 == nil { - return - } - x.SType = (StructureType)(x.ref7c1bc212.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7c1bc212.pNext)) - x.FieldOffsetGranularity = *NewOffset2DRef(unsafe.Pointer(&x.ref7c1bc212.fieldOffsetGranularity)) -} - -// allocVideoDecodeH264SessionParametersAddInfoMemory allocates memory for type C.VkVideoDecodeH264SessionParametersAddInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264SessionParametersAddInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264SessionParametersAddInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264SessionParametersAddInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264SessionParametersAddInfo) Ref() *C.VkVideoDecodeH264SessionParametersAddInfoKHR { - if x == nil { - return nil - } - return x.refa7619eae -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264SessionParametersAddInfo) Free() { - if x != nil && x.allocsa7619eae != nil { - x.allocsa7619eae.(*cgoAllocMap).Free() - x.refa7619eae = nil - } -} - -// NewVideoDecodeH264SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoDecodeH264SessionParametersAddInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264SessionParametersAddInfo) - obj.refa7619eae = (*C.VkVideoDecodeH264SessionParametersAddInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264SessionParametersAddInfo) PassRef() (*C.VkVideoDecodeH264SessionParametersAddInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refa7619eae != nil { - return x.refa7619eae, nil - } - mema7619eae := allocVideoDecodeH264SessionParametersAddInfoMemory(1) - refa7619eae := (*C.VkVideoDecodeH264SessionParametersAddInfoKHR)(mema7619eae) - allocsa7619eae := new(cgoAllocMap) - allocsa7619eae.Add(mema7619eae) - - var csType_allocs *cgoAllocMap - refa7619eae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa7619eae.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa7619eae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa7619eae.Borrow(cpNext_allocs) - - var cstdSPSCount_allocs *cgoAllocMap - refa7619eae.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown - allocsa7619eae.Borrow(cstdSPSCount_allocs) - - var cstdPPSCount_allocs *cgoAllocMap - refa7619eae.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown - allocsa7619eae.Borrow(cstdPPSCount_allocs) - - x.refa7619eae = refa7619eae - x.allocsa7619eae = allocsa7619eae - return refa7619eae, allocsa7619eae - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264SessionParametersAddInfo) PassValue() (C.VkVideoDecodeH264SessionParametersAddInfoKHR, *cgoAllocMap) { - if x.refa7619eae != nil { - return *x.refa7619eae, 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 *VideoDecodeH264SessionParametersAddInfo) Deref() { - if x.refa7619eae == nil { - return - } - x.SType = (StructureType)(x.refa7619eae.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa7619eae.pNext)) - x.StdSPSCount = (uint32)(x.refa7619eae.stdSPSCount) - x.StdPPSCount = (uint32)(x.refa7619eae.stdPPSCount) -} - -// allocVideoDecodeH264SessionParametersCreateInfoMemory allocates memory for type C.VkVideoDecodeH264SessionParametersCreateInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264SessionParametersCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264SessionParametersCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264SessionParametersCreateInfoKHR{}) - -// unpackSVideoDecodeH264SessionParametersAddInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoDecodeH264SessionParametersAddInfo(x []VideoDecodeH264SessionParametersAddInfo) (unpacked *C.VkVideoDecodeH264SessionParametersAddInfoKHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoDecodeH264SessionParametersAddInfoKHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoDecodeH264SessionParametersAddInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoDecodeH264SessionParametersAddInfoKHR)(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.VkVideoDecodeH264SessionParametersAddInfoKHR)(h.Data) - return -} - -// packSVideoDecodeH264SessionParametersAddInfo reads sliced Go data structure out from plain C format. -func packSVideoDecodeH264SessionParametersAddInfo(v []VideoDecodeH264SessionParametersAddInfo, ptr0 *C.VkVideoDecodeH264SessionParametersAddInfoKHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoDecodeH264SessionParametersAddInfoValue]C.VkVideoDecodeH264SessionParametersAddInfoKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoDecodeH264SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264SessionParametersCreateInfo) Ref() *C.VkVideoDecodeH264SessionParametersCreateInfoKHR { - if x == nil { - return nil - } - return x.ref167a4ff4 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264SessionParametersCreateInfo) Free() { - if x != nil && x.allocs167a4ff4 != nil { - x.allocs167a4ff4.(*cgoAllocMap).Free() - x.ref167a4ff4 = nil - } -} - -// NewVideoDecodeH264SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoDecodeH264SessionParametersCreateInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264SessionParametersCreateInfo) - obj.ref167a4ff4 = (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264SessionParametersCreateInfo) PassRef() (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref167a4ff4 != nil { - return x.ref167a4ff4, nil - } - mem167a4ff4 := allocVideoDecodeH264SessionParametersCreateInfoMemory(1) - ref167a4ff4 := (*C.VkVideoDecodeH264SessionParametersCreateInfoKHR)(mem167a4ff4) - allocs167a4ff4 := new(cgoAllocMap) - allocs167a4ff4.Add(mem167a4ff4) - - var csType_allocs *cgoAllocMap - ref167a4ff4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs167a4ff4.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref167a4ff4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs167a4ff4.Borrow(cpNext_allocs) - - var cmaxStdSPSCount_allocs *cgoAllocMap - ref167a4ff4.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown - allocs167a4ff4.Borrow(cmaxStdSPSCount_allocs) - - var cmaxStdPPSCount_allocs *cgoAllocMap - ref167a4ff4.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown - allocs167a4ff4.Borrow(cmaxStdPPSCount_allocs) - - var cpParametersAddInfo_allocs *cgoAllocMap - ref167a4ff4.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoDecodeH264SessionParametersAddInfo(x.PParametersAddInfo) - allocs167a4ff4.Borrow(cpParametersAddInfo_allocs) - - x.ref167a4ff4 = ref167a4ff4 - x.allocs167a4ff4 = allocs167a4ff4 - return ref167a4ff4, allocs167a4ff4 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264SessionParametersCreateInfo) PassValue() (C.VkVideoDecodeH264SessionParametersCreateInfoKHR, *cgoAllocMap) { - if x.ref167a4ff4 != nil { - return *x.ref167a4ff4, 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 *VideoDecodeH264SessionParametersCreateInfo) Deref() { - if x.ref167a4ff4 == nil { - return - } - x.SType = (StructureType)(x.ref167a4ff4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref167a4ff4.pNext)) - x.MaxStdSPSCount = (uint32)(x.ref167a4ff4.maxStdSPSCount) - x.MaxStdPPSCount = (uint32)(x.ref167a4ff4.maxStdPPSCount) - packSVideoDecodeH264SessionParametersAddInfo(x.PParametersAddInfo, x.ref167a4ff4.pParametersAddInfo) -} - -// allocVideoDecodeH264PictureInfoMemory allocates memory for type C.VkVideoDecodeH264PictureInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264PictureInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264PictureInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264PictureInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264PictureInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264PictureInfo) Ref() *C.VkVideoDecodeH264PictureInfoKHR { - if x == nil { - return nil - } - return x.refa43264b6 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264PictureInfo) Free() { - if x != nil && x.allocsa43264b6 != nil { - x.allocsa43264b6.(*cgoAllocMap).Free() - x.refa43264b6 = nil - } -} - -// NewVideoDecodeH264PictureInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264PictureInfoRef(ref unsafe.Pointer) *VideoDecodeH264PictureInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264PictureInfo) - obj.refa43264b6 = (*C.VkVideoDecodeH264PictureInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264PictureInfo) PassRef() (*C.VkVideoDecodeH264PictureInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refa43264b6 != nil { - return x.refa43264b6, nil - } - mema43264b6 := allocVideoDecodeH264PictureInfoMemory(1) - refa43264b6 := (*C.VkVideoDecodeH264PictureInfoKHR)(mema43264b6) - allocsa43264b6 := new(cgoAllocMap) - allocsa43264b6.Add(mema43264b6) - - var csType_allocs *cgoAllocMap - refa43264b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa43264b6.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa43264b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa43264b6.Borrow(cpNext_allocs) - - var csliceCount_allocs *cgoAllocMap - refa43264b6.sliceCount, csliceCount_allocs = (C.uint32_t)(x.SliceCount), cgoAllocsUnknown - allocsa43264b6.Borrow(csliceCount_allocs) - - var cpSliceOffsets_allocs *cgoAllocMap - refa43264b6.pSliceOffsets, cpSliceOffsets_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSliceOffsets)).Data)), cgoAllocsUnknown - allocsa43264b6.Borrow(cpSliceOffsets_allocs) - - x.refa43264b6 = refa43264b6 - x.allocsa43264b6 = allocsa43264b6 - return refa43264b6, allocsa43264b6 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264PictureInfo) PassValue() (C.VkVideoDecodeH264PictureInfoKHR, *cgoAllocMap) { - if x.refa43264b6 != nil { - return *x.refa43264b6, 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 *VideoDecodeH264PictureInfo) Deref() { - if x.refa43264b6 == nil { - return - } - x.SType = (StructureType)(x.refa43264b6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa43264b6.pNext)) - x.SliceCount = (uint32)(x.refa43264b6.sliceCount) - hxf9aab83 := (*sliceHeader)(unsafe.Pointer(&x.PSliceOffsets)) - hxf9aab83.Data = unsafe.Pointer(x.refa43264b6.pSliceOffsets) - hxf9aab83.Cap = 0x7fffffff - // hxf9aab83.Len = ? - -} - -// allocVideoDecodeH264DpbSlotInfoMemory allocates memory for type C.VkVideoDecodeH264DpbSlotInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH264DpbSlotInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH264DpbSlotInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH264DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH264DpbSlotInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH264DpbSlotInfo) Ref() *C.VkVideoDecodeH264DpbSlotInfoKHR { - if x == nil { - return nil - } - return x.refea999379 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH264DpbSlotInfo) Free() { - if x != nil && x.allocsea999379 != nil { - x.allocsea999379.(*cgoAllocMap).Free() - x.refea999379 = nil - } -} - -// NewVideoDecodeH264DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH264DpbSlotInfoRef(ref unsafe.Pointer) *VideoDecodeH264DpbSlotInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH264DpbSlotInfo) - obj.refea999379 = (*C.VkVideoDecodeH264DpbSlotInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH264DpbSlotInfo) PassRef() (*C.VkVideoDecodeH264DpbSlotInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refea999379 != nil { - return x.refea999379, nil - } - memea999379 := allocVideoDecodeH264DpbSlotInfoMemory(1) - refea999379 := (*C.VkVideoDecodeH264DpbSlotInfoKHR)(memea999379) - allocsea999379 := new(cgoAllocMap) - allocsea999379.Add(memea999379) - - var csType_allocs *cgoAllocMap - refea999379.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea999379.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refea999379.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea999379.Borrow(cpNext_allocs) - - x.refea999379 = refea999379 - x.allocsea999379 = allocsea999379 - return refea999379, allocsea999379 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH264DpbSlotInfo) PassValue() (C.VkVideoDecodeH264DpbSlotInfoKHR, *cgoAllocMap) { - if x.refea999379 != nil { - return *x.refea999379, 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 *VideoDecodeH264DpbSlotInfo) Deref() { - if x.refea999379 == nil { - return - } - x.SType = (StructureType)(x.refea999379.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea999379.pNext)) -} - // allocRenderingFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentShadingRateAttachmentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. func allocRenderingFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { diff --git a/types.go b/types.go index 4b3d852..960f937 100644 --- a/types.go +++ b/types.go @@ -4402,66 +4402,6 @@ type VideoDecodeInfo struct { allocsbbf9d3b8 interface{} } -// VideoDecodeH264PictureLayoutFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagsKHR -type VideoDecodeH264PictureLayoutFlags uint32 - -// VideoDecodeH264ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264ProfileInfoKHR -type VideoDecodeH264ProfileInfo struct { - SType StructureType - PNext unsafe.Pointer - PictureLayout VideoDecodeH264PictureLayoutFlagBits - ref5dfcb5c1 *C.VkVideoDecodeH264ProfileInfoKHR - allocs5dfcb5c1 interface{} -} - -// VideoDecodeH264Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264CapabilitiesKHR -type VideoDecodeH264Capabilities struct { - SType StructureType - PNext unsafe.Pointer - FieldOffsetGranularity Offset2D - ref7c1bc212 *C.VkVideoDecodeH264CapabilitiesKHR - allocs7c1bc212 interface{} -} - -// VideoDecodeH264SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoKHR -type VideoDecodeH264SessionParametersAddInfo struct { - SType StructureType - PNext unsafe.Pointer - StdSPSCount uint32 - StdPPSCount uint32 - refa7619eae *C.VkVideoDecodeH264SessionParametersAddInfoKHR - allocsa7619eae interface{} -} - -// VideoDecodeH264SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoKHR -type VideoDecodeH264SessionParametersCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MaxStdSPSCount uint32 - MaxStdPPSCount uint32 - PParametersAddInfo []VideoDecodeH264SessionParametersAddInfo - ref167a4ff4 *C.VkVideoDecodeH264SessionParametersCreateInfoKHR - allocs167a4ff4 interface{} -} - -// VideoDecodeH264PictureInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureInfoKHR -type VideoDecodeH264PictureInfo struct { - SType StructureType - PNext unsafe.Pointer - SliceCount uint32 - PSliceOffsets []uint32 - refa43264b6 *C.VkVideoDecodeH264PictureInfoKHR - allocsa43264b6 interface{} -} - -// VideoDecodeH264DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264DpbSlotInfoKHR -type VideoDecodeH264DpbSlotInfo struct { - SType StructureType - PNext unsafe.Pointer - refea999379 *C.VkVideoDecodeH264DpbSlotInfoKHR - allocsea999379 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 diff --git a/vulkan/vulkan_core.h b/vulkan/vulkan_core.h index 1bdb3a7..c51c8aa 100644 --- a/vulkan/vulkan_core.h +++ b/vulkan/vulkan_core.h @@ -8180,6 +8180,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( 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,7 +8240,7 @@ typedef struct VkVideoDecodeH264DpbSlotInfoKHR { const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; } VkVideoDecodeH264DpbSlotInfoKHR; - +#endif // GO_INCLUDE_video_decode #define VK_KHR_dynamic_rendering 1 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 From 040226d28e6f31a19c22f23da4a4843f2c15a412 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 04:28:37 -0800 Subject: [PATCH 13/25] v1.0.3 release -- version.go updated --- Makefile | 2 +- version.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 633cc68..faa8b23 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.2 +VERS=v1.0.3 PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/version.go b/version.go index 904de20..1a303fd 100644 --- a/version.go +++ b/version.go @@ -3,7 +3,7 @@ package vulkan const ( - GoVersion = "v1.0.2" - GitCommit = "4525e5a" // the commit JUST BEFORE the release - VersionDate = "2023-02-10 08:52" // UTC + GoVersion = "v1.0.3" + GitCommit = "1c25b5b" // the commit JUST BEFORE the release + VersionDate = "2023-02-10 12:28" // UTC ) From 125cabe2b117f584978ba1e3c2fbcb9dc1628ae9 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 11:49:10 -0800 Subject: [PATCH 14/25] and remove h265 video too --- cgo_helpers.go | 603 ------------------------------------------- types.go | 57 ---- vulkan/vulkan_core.h | 3 +- 3 files changed, 2 insertions(+), 661 deletions(-) diff --git a/cgo_helpers.go b/cgo_helpers.go index 2d4a5c4..fca22e5 100644 --- a/cgo_helpers.go +++ b/cgo_helpers.go @@ -40177,609 +40177,6 @@ func (x *PhysicalDeviceShaderClockFeatures) Deref() { x.ShaderDeviceClock = (Bool32)(x.refab512283.shaderDeviceClock) } -// allocVideoDecodeH265ProfileInfoMemory allocates memory for type C.VkVideoDecodeH265ProfileInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265ProfileInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265ProfileInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265ProfileInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265ProfileInfo) Ref() *C.VkVideoDecodeH265ProfileInfoKHR { - if x == nil { - return nil - } - return x.refe4076e29 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265ProfileInfo) Free() { - if x != nil && x.allocse4076e29 != nil { - x.allocse4076e29.(*cgoAllocMap).Free() - x.refe4076e29 = nil - } -} - -// NewVideoDecodeH265ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265ProfileInfoRef(ref unsafe.Pointer) *VideoDecodeH265ProfileInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265ProfileInfo) - obj.refe4076e29 = (*C.VkVideoDecodeH265ProfileInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265ProfileInfo) PassRef() (*C.VkVideoDecodeH265ProfileInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refe4076e29 != nil { - return x.refe4076e29, nil - } - meme4076e29 := allocVideoDecodeH265ProfileInfoMemory(1) - refe4076e29 := (*C.VkVideoDecodeH265ProfileInfoKHR)(meme4076e29) - allocse4076e29 := new(cgoAllocMap) - allocse4076e29.Add(meme4076e29) - - var csType_allocs *cgoAllocMap - refe4076e29.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse4076e29.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refe4076e29.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse4076e29.Borrow(cpNext_allocs) - - x.refe4076e29 = refe4076e29 - x.allocse4076e29 = allocse4076e29 - return refe4076e29, allocse4076e29 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265ProfileInfo) PassValue() (C.VkVideoDecodeH265ProfileInfoKHR, *cgoAllocMap) { - if x.refe4076e29 != nil { - return *x.refe4076e29, 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 *VideoDecodeH265ProfileInfo) Deref() { - if x.refe4076e29 == nil { - return - } - x.SType = (StructureType)(x.refe4076e29.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe4076e29.pNext)) -} - -// allocVideoDecodeH265CapabilitiesMemory allocates memory for type C.VkVideoDecodeH265CapabilitiesKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265CapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265CapabilitiesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeH265CapabilitiesKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265Capabilities) Ref() *C.VkVideoDecodeH265CapabilitiesKHR { - if x == nil { - return nil - } - return x.refd2735383 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265Capabilities) Free() { - if x != nil && x.allocsd2735383 != nil { - x.allocsd2735383.(*cgoAllocMap).Free() - x.refd2735383 = nil - } -} - -// NewVideoDecodeH265CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265CapabilitiesRef(ref unsafe.Pointer) *VideoDecodeH265Capabilities { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265Capabilities) - obj.refd2735383 = (*C.VkVideoDecodeH265CapabilitiesKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265Capabilities) PassRef() (*C.VkVideoDecodeH265CapabilitiesKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refd2735383 != nil { - return x.refd2735383, nil - } - memd2735383 := allocVideoDecodeH265CapabilitiesMemory(1) - refd2735383 := (*C.VkVideoDecodeH265CapabilitiesKHR)(memd2735383) - allocsd2735383 := new(cgoAllocMap) - allocsd2735383.Add(memd2735383) - - var csType_allocs *cgoAllocMap - refd2735383.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd2735383.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refd2735383.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd2735383.Borrow(cpNext_allocs) - - x.refd2735383 = refd2735383 - x.allocsd2735383 = allocsd2735383 - return refd2735383, allocsd2735383 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265Capabilities) PassValue() (C.VkVideoDecodeH265CapabilitiesKHR, *cgoAllocMap) { - if x.refd2735383 != nil { - return *x.refd2735383, 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 *VideoDecodeH265Capabilities) Deref() { - if x.refd2735383 == nil { - return - } - x.SType = (StructureType)(x.refd2735383.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd2735383.pNext)) -} - -// allocVideoDecodeH265SessionParametersAddInfoMemory allocates memory for type C.VkVideoDecodeH265SessionParametersAddInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265SessionParametersAddInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265SessionParametersAddInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265SessionParametersAddInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265SessionParametersAddInfo) Ref() *C.VkVideoDecodeH265SessionParametersAddInfoKHR { - if x == nil { - return nil - } - return x.refa6d463b3 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265SessionParametersAddInfo) Free() { - if x != nil && x.allocsa6d463b3 != nil { - x.allocsa6d463b3.(*cgoAllocMap).Free() - x.refa6d463b3 = nil - } -} - -// NewVideoDecodeH265SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoDecodeH265SessionParametersAddInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265SessionParametersAddInfo) - obj.refa6d463b3 = (*C.VkVideoDecodeH265SessionParametersAddInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265SessionParametersAddInfo) PassRef() (*C.VkVideoDecodeH265SessionParametersAddInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refa6d463b3 != nil { - return x.refa6d463b3, nil - } - mema6d463b3 := allocVideoDecodeH265SessionParametersAddInfoMemory(1) - refa6d463b3 := (*C.VkVideoDecodeH265SessionParametersAddInfoKHR)(mema6d463b3) - allocsa6d463b3 := new(cgoAllocMap) - allocsa6d463b3.Add(mema6d463b3) - - var csType_allocs *cgoAllocMap - refa6d463b3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa6d463b3.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa6d463b3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa6d463b3.Borrow(cpNext_allocs) - - var cstdVPSCount_allocs *cgoAllocMap - refa6d463b3.stdVPSCount, cstdVPSCount_allocs = (C.uint32_t)(x.StdVPSCount), cgoAllocsUnknown - allocsa6d463b3.Borrow(cstdVPSCount_allocs) - - var cstdSPSCount_allocs *cgoAllocMap - refa6d463b3.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown - allocsa6d463b3.Borrow(cstdSPSCount_allocs) - - var cstdPPSCount_allocs *cgoAllocMap - refa6d463b3.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown - allocsa6d463b3.Borrow(cstdPPSCount_allocs) - - x.refa6d463b3 = refa6d463b3 - x.allocsa6d463b3 = allocsa6d463b3 - return refa6d463b3, allocsa6d463b3 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265SessionParametersAddInfo) PassValue() (C.VkVideoDecodeH265SessionParametersAddInfoKHR, *cgoAllocMap) { - if x.refa6d463b3 != nil { - return *x.refa6d463b3, 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 *VideoDecodeH265SessionParametersAddInfo) Deref() { - if x.refa6d463b3 == nil { - return - } - x.SType = (StructureType)(x.refa6d463b3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6d463b3.pNext)) - x.StdVPSCount = (uint32)(x.refa6d463b3.stdVPSCount) - x.StdSPSCount = (uint32)(x.refa6d463b3.stdSPSCount) - x.StdPPSCount = (uint32)(x.refa6d463b3.stdPPSCount) -} - -// allocVideoDecodeH265SessionParametersCreateInfoMemory allocates memory for type C.VkVideoDecodeH265SessionParametersCreateInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265SessionParametersCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265SessionParametersCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265SessionParametersCreateInfoKHR{}) - -// unpackSVideoDecodeH265SessionParametersAddInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoDecodeH265SessionParametersAddInfo(x []VideoDecodeH265SessionParametersAddInfo) (unpacked *C.VkVideoDecodeH265SessionParametersAddInfoKHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoDecodeH265SessionParametersAddInfoKHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoDecodeH265SessionParametersAddInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoDecodeH265SessionParametersAddInfoKHR)(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.VkVideoDecodeH265SessionParametersAddInfoKHR)(h.Data) - return -} - -// packSVideoDecodeH265SessionParametersAddInfo reads sliced Go data structure out from plain C format. -func packSVideoDecodeH265SessionParametersAddInfo(v []VideoDecodeH265SessionParametersAddInfo, ptr0 *C.VkVideoDecodeH265SessionParametersAddInfoKHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoDecodeH265SessionParametersAddInfoValue]C.VkVideoDecodeH265SessionParametersAddInfoKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoDecodeH265SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265SessionParametersCreateInfo) Ref() *C.VkVideoDecodeH265SessionParametersCreateInfoKHR { - if x == nil { - return nil - } - return x.ref189da725 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265SessionParametersCreateInfo) Free() { - if x != nil && x.allocs189da725 != nil { - x.allocs189da725.(*cgoAllocMap).Free() - x.ref189da725 = nil - } -} - -// NewVideoDecodeH265SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoDecodeH265SessionParametersCreateInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265SessionParametersCreateInfo) - obj.ref189da725 = (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265SessionParametersCreateInfo) PassRef() (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref189da725 != nil { - return x.ref189da725, nil - } - mem189da725 := allocVideoDecodeH265SessionParametersCreateInfoMemory(1) - ref189da725 := (*C.VkVideoDecodeH265SessionParametersCreateInfoKHR)(mem189da725) - allocs189da725 := new(cgoAllocMap) - allocs189da725.Add(mem189da725) - - var csType_allocs *cgoAllocMap - ref189da725.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs189da725.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref189da725.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs189da725.Borrow(cpNext_allocs) - - var cmaxStdVPSCount_allocs *cgoAllocMap - ref189da725.maxStdVPSCount, cmaxStdVPSCount_allocs = (C.uint32_t)(x.MaxStdVPSCount), cgoAllocsUnknown - allocs189da725.Borrow(cmaxStdVPSCount_allocs) - - var cmaxStdSPSCount_allocs *cgoAllocMap - ref189da725.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown - allocs189da725.Borrow(cmaxStdSPSCount_allocs) - - var cmaxStdPPSCount_allocs *cgoAllocMap - ref189da725.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown - allocs189da725.Borrow(cmaxStdPPSCount_allocs) - - var cpParametersAddInfo_allocs *cgoAllocMap - ref189da725.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoDecodeH265SessionParametersAddInfo(x.PParametersAddInfo) - allocs189da725.Borrow(cpParametersAddInfo_allocs) - - x.ref189da725 = ref189da725 - x.allocs189da725 = allocs189da725 - return ref189da725, allocs189da725 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265SessionParametersCreateInfo) PassValue() (C.VkVideoDecodeH265SessionParametersCreateInfoKHR, *cgoAllocMap) { - if x.ref189da725 != nil { - return *x.ref189da725, 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 *VideoDecodeH265SessionParametersCreateInfo) Deref() { - if x.ref189da725 == nil { - return - } - x.SType = (StructureType)(x.ref189da725.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref189da725.pNext)) - x.MaxStdVPSCount = (uint32)(x.ref189da725.maxStdVPSCount) - x.MaxStdSPSCount = (uint32)(x.ref189da725.maxStdSPSCount) - x.MaxStdPPSCount = (uint32)(x.ref189da725.maxStdPPSCount) - packSVideoDecodeH265SessionParametersAddInfo(x.PParametersAddInfo, x.ref189da725.pParametersAddInfo) -} - -// allocVideoDecodeH265PictureInfoMemory allocates memory for type C.VkVideoDecodeH265PictureInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265PictureInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265PictureInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265PictureInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265PictureInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265PictureInfo) Ref() *C.VkVideoDecodeH265PictureInfoKHR { - if x == nil { - return nil - } - return x.ref1dc9bf5e -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265PictureInfo) Free() { - if x != nil && x.allocs1dc9bf5e != nil { - x.allocs1dc9bf5e.(*cgoAllocMap).Free() - x.ref1dc9bf5e = nil - } -} - -// NewVideoDecodeH265PictureInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265PictureInfoRef(ref unsafe.Pointer) *VideoDecodeH265PictureInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265PictureInfo) - obj.ref1dc9bf5e = (*C.VkVideoDecodeH265PictureInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265PictureInfo) PassRef() (*C.VkVideoDecodeH265PictureInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref1dc9bf5e != nil { - return x.ref1dc9bf5e, nil - } - mem1dc9bf5e := allocVideoDecodeH265PictureInfoMemory(1) - ref1dc9bf5e := (*C.VkVideoDecodeH265PictureInfoKHR)(mem1dc9bf5e) - allocs1dc9bf5e := new(cgoAllocMap) - allocs1dc9bf5e.Add(mem1dc9bf5e) - - var csType_allocs *cgoAllocMap - ref1dc9bf5e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1dc9bf5e.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref1dc9bf5e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1dc9bf5e.Borrow(cpNext_allocs) - - var csliceSegmentCount_allocs *cgoAllocMap - ref1dc9bf5e.sliceSegmentCount, csliceSegmentCount_allocs = (C.uint32_t)(x.SliceSegmentCount), cgoAllocsUnknown - allocs1dc9bf5e.Borrow(csliceSegmentCount_allocs) - - var cpSliceSegmentOffsets_allocs *cgoAllocMap - ref1dc9bf5e.pSliceSegmentOffsets, cpSliceSegmentOffsets_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSliceSegmentOffsets)).Data)), cgoAllocsUnknown - allocs1dc9bf5e.Borrow(cpSliceSegmentOffsets_allocs) - - x.ref1dc9bf5e = ref1dc9bf5e - x.allocs1dc9bf5e = allocs1dc9bf5e - return ref1dc9bf5e, allocs1dc9bf5e - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265PictureInfo) PassValue() (C.VkVideoDecodeH265PictureInfoKHR, *cgoAllocMap) { - if x.ref1dc9bf5e != nil { - return *x.ref1dc9bf5e, 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 *VideoDecodeH265PictureInfo) Deref() { - if x.ref1dc9bf5e == nil { - return - } - x.SType = (StructureType)(x.ref1dc9bf5e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1dc9bf5e.pNext)) - x.SliceSegmentCount = (uint32)(x.ref1dc9bf5e.sliceSegmentCount) - hxf7d15a2 := (*sliceHeader)(unsafe.Pointer(&x.PSliceSegmentOffsets)) - hxf7d15a2.Data = unsafe.Pointer(x.ref1dc9bf5e.pSliceSegmentOffsets) - hxf7d15a2.Cap = 0x7fffffff - // hxf7d15a2.Len = ? - -} - -// allocVideoDecodeH265DpbSlotInfoMemory allocates memory for type C.VkVideoDecodeH265DpbSlotInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoDecodeH265DpbSlotInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeH265DpbSlotInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoDecodeH265DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeH265DpbSlotInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoDecodeH265DpbSlotInfo) Ref() *C.VkVideoDecodeH265DpbSlotInfoKHR { - if x == nil { - return nil - } - return x.ref53624891 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoDecodeH265DpbSlotInfo) Free() { - if x != nil && x.allocs53624891 != nil { - x.allocs53624891.(*cgoAllocMap).Free() - x.ref53624891 = nil - } -} - -// NewVideoDecodeH265DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoDecodeH265DpbSlotInfoRef(ref unsafe.Pointer) *VideoDecodeH265DpbSlotInfo { - if ref == nil { - return nil - } - obj := new(VideoDecodeH265DpbSlotInfo) - obj.ref53624891 = (*C.VkVideoDecodeH265DpbSlotInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoDecodeH265DpbSlotInfo) PassRef() (*C.VkVideoDecodeH265DpbSlotInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref53624891 != nil { - return x.ref53624891, nil - } - mem53624891 := allocVideoDecodeH265DpbSlotInfoMemory(1) - ref53624891 := (*C.VkVideoDecodeH265DpbSlotInfoKHR)(mem53624891) - allocs53624891 := new(cgoAllocMap) - allocs53624891.Add(mem53624891) - - var csType_allocs *cgoAllocMap - ref53624891.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs53624891.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref53624891.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs53624891.Borrow(cpNext_allocs) - - x.ref53624891 = ref53624891 - x.allocs53624891 = allocs53624891 - return ref53624891, allocs53624891 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoDecodeH265DpbSlotInfo) PassValue() (C.VkVideoDecodeH265DpbSlotInfoKHR, *cgoAllocMap) { - if x.ref53624891 != nil { - return *x.ref53624891, 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 *VideoDecodeH265DpbSlotInfo) Deref() { - if x.ref53624891 == nil { - return - } - x.SType = (StructureType)(x.ref53624891.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref53624891.pNext)) -} - // allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. func allocDeviceQueueGlobalPriorityCreateInfoMemory(n int) unsafe.Pointer { diff --git a/types.go b/types.go index 960f937..1a2d901 100644 --- a/types.go +++ b/types.go @@ -4750,63 +4750,6 @@ type PhysicalDeviceShaderClockFeatures struct { allocsab512283 interface{} } -// VideoDecodeH265ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265ProfileInfoKHR -type VideoDecodeH265ProfileInfo struct { - SType StructureType - PNext unsafe.Pointer - refe4076e29 *C.VkVideoDecodeH265ProfileInfoKHR - allocse4076e29 interface{} -} - -// VideoDecodeH265Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265CapabilitiesKHR -type VideoDecodeH265Capabilities struct { - SType StructureType - PNext unsafe.Pointer - refd2735383 *C.VkVideoDecodeH265CapabilitiesKHR - allocsd2735383 interface{} -} - -// VideoDecodeH265SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoKHR -type VideoDecodeH265SessionParametersAddInfo struct { - SType StructureType - PNext unsafe.Pointer - StdVPSCount uint32 - StdSPSCount uint32 - StdPPSCount uint32 - refa6d463b3 *C.VkVideoDecodeH265SessionParametersAddInfoKHR - allocsa6d463b3 interface{} -} - -// VideoDecodeH265SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoKHR -type VideoDecodeH265SessionParametersCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MaxStdVPSCount uint32 - MaxStdSPSCount uint32 - MaxStdPPSCount uint32 - PParametersAddInfo []VideoDecodeH265SessionParametersAddInfo - ref189da725 *C.VkVideoDecodeH265SessionParametersCreateInfoKHR - allocs189da725 interface{} -} - -// VideoDecodeH265PictureInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265PictureInfoKHR -type VideoDecodeH265PictureInfo struct { - SType StructureType - PNext unsafe.Pointer - SliceSegmentCount uint32 - PSliceSegmentOffsets []uint32 - ref1dc9bf5e *C.VkVideoDecodeH265PictureInfoKHR - allocs1dc9bf5e interface{} -} - -// VideoDecodeH265DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH265DpbSlotInfoKHR -type VideoDecodeH265DpbSlotInfo struct { - SType StructureType - PNext unsafe.Pointer - ref53624891 *C.VkVideoDecodeH265DpbSlotInfoKHR - allocs53624891 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 diff --git a/vulkan/vulkan_core.h b/vulkan/vulkan_core.h index c51c8aa..b8c1a46 100644 --- a/vulkan/vulkan_core.h +++ b/vulkan/vulkan_core.h @@ -9354,6 +9354,7 @@ typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { } VkPhysicalDeviceShaderClockFeaturesKHR; +#ifdef GO_INCLUDE_video_decode #define VK_KHR_video_decode_h265 1 #include "vk_video/vulkan_video_codec_h265std.h" @@ -9406,7 +9407,7 @@ typedef struct VkVideoDecodeH265DpbSlotInfoKHR { const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; } VkVideoDecodeH265DpbSlotInfoKHR; - +#endif // GO_INCLUDE_video_decode #define VK_KHR_global_priority 1 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U From 40622d30dca477896390c185b7dd104020706f55 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 11:50:24 -0800 Subject: [PATCH 15/25] v1.0.4 release -- version.go updated --- Makefile | 2 +- version.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index faa8b23..1f3b9fd 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.3 +VERS=v1.0.4 PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/version.go b/version.go index 1a303fd..45a722c 100644 --- a/version.go +++ b/version.go @@ -3,7 +3,7 @@ package vulkan const ( - GoVersion = "v1.0.3" - GitCommit = "1c25b5b" // the commit JUST BEFORE the release - VersionDate = "2023-02-10 12:28" // UTC + GoVersion = "v1.0.4" + GitCommit = "125cabe" // the commit JUST BEFORE the release + VersionDate = "2023-02-10 19:50" // UTC ) From 5ab406f0fb63d9be98e4897311752a20eda8c433 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 11:58:25 -0800 Subject: [PATCH 16/25] encoder was also in beta.. too bad mac doesn't fail -- big loop testing here.. --- cgo_helpers.c | 2 +- cgo_helpers.go | 3870 +----------------------------------- cgo_helpers.h | 2 +- const.go | 1583 ++++++--------- doc.go | 2 +- types.go | 429 +--- vulkan.go | 2 +- vulkan/vulkan_beta.h | 3 +- vulkan/vulkan_beta_h.patch | 26 + vulkan/vulkan_core_h.patch | 62 +- 10 files changed, 829 insertions(+), 5152 deletions(-) create mode 100644 vulkan/vulkan_beta_h.patch diff --git a/cgo_helpers.c b/cgo_helpers.c index 9d25463..1819924 100644 --- a/cgo_helpers.c +++ b/cgo_helpers.c @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 PST. +// 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" diff --git a/cgo_helpers.go b/cgo_helpers.go index fca22e5..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 Thu, 09 Feb 2023 23:47:41 PST. +// 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 @@ -37158,10 +37158,10 @@ func (x *AttachmentSampleCountInfoAMD) Deref() { 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 = ? + hxf9aab83 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf9aab83.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf9aab83.Cap = 0x7fffffff + // hxf9aab83.Len = ? x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } @@ -37251,10 +37251,10 @@ func (x *AttachmentSampleCountInfoNV) Deref() { x.SType = (StructureType)(x.refeef56262.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeef56262.pNext)) x.ColorAttachmentCount = (uint32)(x.refeef56262.colorAttachmentCount) - hxf8959c2 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) - hxf8959c2.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) - hxf8959c2.Cap = 0x7fffffff - // hxf8959c2.Len = ? + hxf8b35a8 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf8b35a8.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf8b35a8.Cap = 0x7fffffff + // hxf8b35a8.Len = ? x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } @@ -39154,10 +39154,10 @@ func (x *QueryPoolPerformanceCreateInfo) Deref() { x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref55afa561.pNext)) x.QueueFamilyIndex = (uint32)(x.ref55afa561.queueFamilyIndex) x.CounterIndexCount = (uint32)(x.ref55afa561.counterIndexCount) - hxfb029a7 := (*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)) - hxfb029a7.Data = unsafe.Pointer(x.ref55afa561.pCounterIndices) - hxfb029a7.Cap = 0x7fffffff - // hxfb029a7.Len = ? + hxf8959c2 := (*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)) + hxf8959c2.Data = unsafe.Pointer(x.ref55afa561.pCounterIndices) + hxf8959c2.Cap = 0x7fffffff + // hxf8959c2.Len = ? } @@ -41891,10 +41891,10 @@ func (x *PipelineLibraryCreateInfo) Deref() { x.SType = (StructureType)(x.ref6bb7541b.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bb7541b.pNext)) x.LibraryCount = (uint32)(x.ref6bb7541b.libraryCount) - hxf8dbbe5 := (*sliceHeader)(unsafe.Pointer(&x.PLibraries)) - hxf8dbbe5.Data = unsafe.Pointer(x.ref6bb7541b.pLibraries) - hxf8dbbe5.Cap = 0x7fffffff - // hxf8dbbe5.Len = ? + hxfb029a7 := (*sliceHeader)(unsafe.Pointer(&x.PLibraries)) + hxfb029a7.Data = unsafe.Pointer(x.ref6bb7541b.pLibraries) + hxfb029a7.Cap = 0x7fffffff + // hxfb029a7.Len = ? } @@ -41991,10 +41991,10 @@ func (x *PresentId) Deref() { x.SType = (StructureType)(x.ref70010623.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70010623.pNext)) x.SwapchainCount = (uint32)(x.ref70010623.swapchainCount) - hxf766ff8 := (*sliceHeader)(unsafe.Pointer(&x.PPresentIds)) - hxf766ff8.Data = unsafe.Pointer(x.ref70010623.pPresentIds) - hxf766ff8.Cap = 0x7fffffff - // hxf766ff8.Len = ? + hxf7d15a2 := (*sliceHeader)(unsafe.Pointer(&x.PPresentIds)) + hxf7d15a2.Data = unsafe.Pointer(x.ref70010623.pPresentIds) + hxf7d15a2.Cap = 0x7fffffff + // hxf7d15a2.Len = ? } @@ -45009,10 +45009,10 @@ func (x *ValidationFlags) Deref() { x.SType = (StructureType)(x.refffe080ad.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe080ad.pNext)) x.DisabledValidationCheckCount = (uint32)(x.refffe080ad.disabledValidationCheckCount) - hxf9b1633 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)) - hxf9b1633.Data = unsafe.Pointer(x.refffe080ad.pDisabledValidationChecks) - hxf9b1633.Cap = 0x7fffffff - // hxf9b1633.Len = ? + hxf8dbbe5 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)) + hxf8dbbe5.Data = unsafe.Pointer(x.refffe080ad.pDisabledValidationChecks) + hxf8dbbe5.Cap = 0x7fffffff + // hxf8dbbe5.Len = ? } @@ -49641,10 +49641,10 @@ func (x *PipelineCoverageModulationStateCreateInfoNV) Deref() { x.CoverageModulationMode = (CoverageModulationModeNV)(x.refa081b0ea.coverageModulationMode) x.CoverageModulationTableEnable = (Bool32)(x.refa081b0ea.coverageModulationTableEnable) x.CoverageModulationTableCount = (uint32)(x.refa081b0ea.coverageModulationTableCount) - hxf502c9a := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) - hxf502c9a.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) - hxf502c9a.Cap = 0x7fffffff - // hxf502c9a.Len = ? + hxf766ff8 := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) + hxf766ff8.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) + hxf766ff8.Cap = 0x7fffffff + // hxf766ff8.Len = ? } @@ -50163,10 +50163,10 @@ func (x *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { x.DrmFormatModifier = (uint64)(x.refd7abef44.drmFormatModifier) x.SharingMode = (SharingMode)(x.refd7abef44.sharingMode) x.QueueFamilyIndexCount = (uint32)(x.refd7abef44.queueFamilyIndexCount) - hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxf4a9453.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) - hxf4a9453.Cap = 0x7fffffff - // hxf4a9453.Len = ? + hxf9b1633 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf9b1633.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) + hxf9b1633.Cap = 0x7fffffff + // hxf9b1633.Len = ? } @@ -50263,10 +50263,10 @@ func (x *ImageDrmFormatModifierListCreateInfo) Deref() { x.SType = (StructureType)(x.ref544538ab.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref544538ab.pNext)) x.DrmFormatModifierCount = (uint32)(x.ref544538ab.drmFormatModifierCount) - hxf1a1416 := (*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)) - hxf1a1416.Data = unsafe.Pointer(x.ref544538ab.pDrmFormatModifiers) - hxf1a1416.Cap = 0x7fffffff - // hxf1a1416.Len = ? + hxf502c9a := (*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)) + hxf502c9a.Data = unsafe.Pointer(x.ref544538ab.pDrmFormatModifiers) + hxf502c9a.Cap = 0x7fffffff + // hxf502c9a.Len = ? } @@ -51000,10 +51000,10 @@ func (x *ShadingRatePaletteNV) Deref() { return } x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) - hxf92be66 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) - hxf92be66.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) - hxf92be66.Cap = 0x7fffffff - // hxf92be66.Len = ? + hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) + hxf4a9453.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) + hxf4a9453.Cap = 0x7fffffff + // hxf4a9453.Len = ? } @@ -56489,16 +56489,16 @@ func (x *ValidationFeatures) Deref() { x.SType = (StructureType)(x.refcd8794ea.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd8794ea.pNext)) x.EnabledValidationFeatureCount = (uint32)(x.refcd8794ea.enabledValidationFeatureCount) - hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)) - hxf4b5187.Data = unsafe.Pointer(x.refcd8794ea.pEnabledValidationFeatures) - hxf4b5187.Cap = 0x7fffffff - // hxf4b5187.Len = ? + hxf1a1416 := (*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)) + hxf1a1416.Data = unsafe.Pointer(x.refcd8794ea.pEnabledValidationFeatures) + hxf1a1416.Cap = 0x7fffffff + // hxf1a1416.Len = ? x.DisabledValidationFeatureCount = (uint32)(x.refcd8794ea.disabledValidationFeatureCount) - hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)) - hxf177f79.Data = unsafe.Pointer(x.refcd8794ea.pDisabledValidationFeatures) - hxf177f79.Cap = 0x7fffffff - // hxf177f79.Len = ? + hxf92be66 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)) + hxf92be66.Data = unsafe.Pointer(x.refcd8794ea.pDisabledValidationFeatures) + hxf92be66.Cap = 0x7fffffff + // hxf92be66.Len = ? } @@ -58756,10 +58756,10 @@ func (x *SurfacePresentModeCompatibility) Deref() { x.SType = (StructureType)(x.ref61fb395d.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref61fb395d.pNext)) x.PresentModeCount = (uint32)(x.ref61fb395d.presentModeCount) - hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) - hxfaa359c.Data = unsafe.Pointer(x.ref61fb395d.pPresentModes) - hxfaa359c.Cap = 0x7fffffff - // hxfaa359c.Len = ? + hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxf4b5187.Data = unsafe.Pointer(x.ref61fb395d.pPresentModes) + hxf4b5187.Cap = 0x7fffffff + // hxf4b5187.Len = ? } @@ -58947,10 +58947,10 @@ func (x *SwapchainPresentFenceInfo) Deref() { x.SType = (StructureType)(x.reff3a3ddf9.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3a3ddf9.pNext)) x.SwapchainCount = (uint32)(x.reff3a3ddf9.swapchainCount) - hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PFences)) - hxfa897de.Data = unsafe.Pointer(x.reff3a3ddf9.pFences) - hxfa897de.Cap = 0x7fffffff - // hxfa897de.Len = ? + hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PFences)) + hxf177f79.Data = unsafe.Pointer(x.reff3a3ddf9.pFences) + hxf177f79.Cap = 0x7fffffff + // hxf177f79.Len = ? } @@ -59047,10 +59047,10 @@ func (x *SwapchainPresentModesCreateInfo) Deref() { x.SType = (StructureType)(x.ref27b56519.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref27b56519.pNext)) x.PresentModeCount = (uint32)(x.ref27b56519.presentModeCount) - hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) - hxfe33f90.Data = unsafe.Pointer(x.ref27b56519.pPresentModes) - hxfe33f90.Cap = 0x7fffffff - // hxfe33f90.Len = ? + hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfaa359c.Data = unsafe.Pointer(x.ref27b56519.pPresentModes) + hxfaa359c.Cap = 0x7fffffff + // hxfaa359c.Len = ? } @@ -59147,10 +59147,10 @@ func (x *SwapchainPresentModeInfo) Deref() { x.SType = (StructureType)(x.refee48d4d8.sType) x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee48d4d8.pNext)) x.SwapchainCount = (uint32)(x.refee48d4d8.swapchainCount) - hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) - hxf08bba9.Data = unsafe.Pointer(x.refee48d4d8.pPresentModes) - hxf08bba9.Cap = 0x7fffffff - // hxf08bba9.Len = ? + hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfa897de.Data = unsafe.Pointer(x.refee48d4d8.pPresentModes) + hxfa897de.Cap = 0x7fffffff + // hxfa897de.Len = ? } @@ -59353,10 +59353,10 @@ func (x *ReleaseSwapchainImagesInfo) Deref() { x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6c053bf.pNext)) x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref6c053bf.swapchain)) x.ImageIndexCount = (uint32)(x.ref6c053bf.imageIndexCount) - hxfd3aa9c := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) - hxfd3aa9c.Data = unsafe.Pointer(x.ref6c053bf.pImageIndices) - hxfd3aa9c.Cap = 0x7fffffff - // hxfd3aa9c.Len = ? + hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) + hxfe33f90.Data = unsafe.Pointer(x.ref6c053bf.pImageIndices) + hxfe33f90.Cap = 0x7fffffff + // hxfe33f90.Len = ? } @@ -59905,10 +59905,10 @@ func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { x.GroupCount = (uint32)(x.refabf1b7d9.groupCount) packSGraphicsShaderGroupCreateInfoNV(x.PGroups, x.refabf1b7d9.pGroups) x.PipelineCount = (uint32)(x.refabf1b7d9.pipelineCount) - hxfb2f596 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) - hxfb2f596.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) - hxfb2f596.Cap = 0x7fffffff - // hxfb2f596.Len = ? + hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) + hxf08bba9.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) + hxf08bba9.Cap = 0x7fffffff + // hxf08bba9.Len = ? } @@ -60489,15 +60489,15 @@ func (x *IndirectCommandsLayoutTokenNV) Deref() { x.PushconstantSize = (uint32)(x.ref96f52b76.pushconstantSize) x.IndirectStateFlags = (IndirectStateFlagsNV)(x.ref96f52b76.indirectStateFlags) x.IndexTypeCount = (uint32)(x.ref96f52b76.indexTypeCount) - hxf11683e := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) - hxf11683e.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) - hxf11683e.Cap = 0x7fffffff - // hxf11683e.Len = ? + hxfd3aa9c := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) + hxfd3aa9c.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) + hxfd3aa9c.Cap = 0x7fffffff + // hxfd3aa9c.Len = ? - hxfd9261b := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) - hxfd9261b.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) - hxfd9261b.Cap = 0x7fffffff - // hxfd9261b.Len = ? + hxfb2f596 := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) + hxfb2f596.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) + hxfb2f596.Cap = 0x7fffffff + // hxfb2f596.Len = ? } @@ -60652,10 +60652,10 @@ func (x *IndirectCommandsLayoutCreateInfoNV) Deref() { x.TokenCount = (uint32)(x.ref48273185.tokenCount) packSIndirectCommandsLayoutTokenNV(x.PTokens, x.ref48273185.pTokens) x.StreamCount = (uint32)(x.ref48273185.streamCount) - hxf77d2ac := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) - hxf77d2ac.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) - hxf77d2ac.Cap = 0x7fffffff - // hxf77d2ac.Len = ? + hxf11683e := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) + hxf11683e.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) + hxf11683e.Cap = 0x7fffffff + // hxf11683e.Len = ? } @@ -65236,10 +65236,10 @@ func (x *ImageCompressionControl) Deref() { x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref37cbe96e.pNext)) x.Flags = (ImageCompressionFlags)(x.ref37cbe96e.flags) x.CompressionControlPlaneCount = (uint32)(x.ref37cbe96e.compressionControlPlaneCount) - hxff6a91e := (*sliceHeader)(unsafe.Pointer(&x.PFixedRateFlags)) - hxff6a91e.Data = unsafe.Pointer(x.ref37cbe96e.pFixedRateFlags) - hxff6a91e.Cap = 0x7fffffff - // hxff6a91e.Len = ? + hxfd9261b := (*sliceHeader)(unsafe.Pointer(&x.PFixedRateFlags)) + hxfd9261b.Data = unsafe.Pointer(x.ref37cbe96e.pFixedRateFlags) + hxfd9261b.Cap = 0x7fffffff + // hxfd9261b.Len = ? } @@ -65960,3698 +65960,6 @@ func (x *PhysicalDevicePortabilitySubsetProperties) Deref() { x.MinVertexInputBindingStrideAlignment = (uint32)(x.ref8babbd5c.minVertexInputBindingStrideAlignment) } -// allocVideoEncodeInfoMemory allocates memory for type C.VkVideoEncodeInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeInfo) Ref() *C.VkVideoEncodeInfoKHR { - if x == nil { - return nil - } - return x.ref17fdae33 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeInfo) Free() { - if x != nil && x.allocs17fdae33 != nil { - x.allocs17fdae33.(*cgoAllocMap).Free() - x.ref17fdae33 = nil - } -} - -// NewVideoEncodeInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeInfoRef(ref unsafe.Pointer) *VideoEncodeInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeInfo) - obj.ref17fdae33 = (*C.VkVideoEncodeInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeInfo) PassRef() (*C.VkVideoEncodeInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref17fdae33 != nil { - return x.ref17fdae33, nil - } - mem17fdae33 := allocVideoEncodeInfoMemory(1) - ref17fdae33 := (*C.VkVideoEncodeInfoKHR)(mem17fdae33) - allocs17fdae33 := new(cgoAllocMap) - allocs17fdae33.Add(mem17fdae33) - - var csType_allocs *cgoAllocMap - ref17fdae33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs17fdae33.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref17fdae33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs17fdae33.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref17fdae33.flags, cflags_allocs = (C.VkVideoEncodeFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs17fdae33.Borrow(cflags_allocs) - - var cqualityLevel_allocs *cgoAllocMap - ref17fdae33.qualityLevel, cqualityLevel_allocs = (C.uint32_t)(x.QualityLevel), cgoAllocsUnknown - allocs17fdae33.Borrow(cqualityLevel_allocs) - - var cdstBitstreamBuffer_allocs *cgoAllocMap - ref17fdae33.dstBitstreamBuffer, cdstBitstreamBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.DstBitstreamBuffer)), cgoAllocsUnknown - allocs17fdae33.Borrow(cdstBitstreamBuffer_allocs) - - var cdstBitstreamBufferOffset_allocs *cgoAllocMap - ref17fdae33.dstBitstreamBufferOffset, cdstBitstreamBufferOffset_allocs = (C.VkDeviceSize)(x.DstBitstreamBufferOffset), cgoAllocsUnknown - allocs17fdae33.Borrow(cdstBitstreamBufferOffset_allocs) - - var cdstBitstreamBufferMaxRange_allocs *cgoAllocMap - ref17fdae33.dstBitstreamBufferMaxRange, cdstBitstreamBufferMaxRange_allocs = (C.VkDeviceSize)(x.DstBitstreamBufferMaxRange), cgoAllocsUnknown - allocs17fdae33.Borrow(cdstBitstreamBufferMaxRange_allocs) - - var csrcPictureResource_allocs *cgoAllocMap - ref17fdae33.srcPictureResource, csrcPictureResource_allocs = x.SrcPictureResource.PassValue() - allocs17fdae33.Borrow(csrcPictureResource_allocs) - - var cpSetupReferenceSlot_allocs *cgoAllocMap - ref17fdae33.pSetupReferenceSlot, cpSetupReferenceSlot_allocs = unpackSVideoReferenceSlotInfo(x.PSetupReferenceSlot) - allocs17fdae33.Borrow(cpSetupReferenceSlot_allocs) - - var creferenceSlotCount_allocs *cgoAllocMap - ref17fdae33.referenceSlotCount, creferenceSlotCount_allocs = (C.uint32_t)(x.ReferenceSlotCount), cgoAllocsUnknown - allocs17fdae33.Borrow(creferenceSlotCount_allocs) - - var cpReferenceSlots_allocs *cgoAllocMap - ref17fdae33.pReferenceSlots, cpReferenceSlots_allocs = unpackSVideoReferenceSlotInfo(x.PReferenceSlots) - allocs17fdae33.Borrow(cpReferenceSlots_allocs) - - var cprecedingExternallyEncodedBytes_allocs *cgoAllocMap - ref17fdae33.precedingExternallyEncodedBytes, cprecedingExternallyEncodedBytes_allocs = (C.uint32_t)(x.PrecedingExternallyEncodedBytes), cgoAllocsUnknown - allocs17fdae33.Borrow(cprecedingExternallyEncodedBytes_allocs) - - x.ref17fdae33 = ref17fdae33 - x.allocs17fdae33 = allocs17fdae33 - return ref17fdae33, allocs17fdae33 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeInfo) PassValue() (C.VkVideoEncodeInfoKHR, *cgoAllocMap) { - if x.ref17fdae33 != nil { - return *x.ref17fdae33, 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 *VideoEncodeInfo) Deref() { - if x.ref17fdae33 == nil { - return - } - x.SType = (StructureType)(x.ref17fdae33.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17fdae33.pNext)) - x.Flags = (VideoEncodeFlags)(x.ref17fdae33.flags) - x.QualityLevel = (uint32)(x.ref17fdae33.qualityLevel) - x.DstBitstreamBuffer = *(*Buffer)(unsafe.Pointer(&x.ref17fdae33.dstBitstreamBuffer)) - x.DstBitstreamBufferOffset = (DeviceSize)(x.ref17fdae33.dstBitstreamBufferOffset) - x.DstBitstreamBufferMaxRange = (DeviceSize)(x.ref17fdae33.dstBitstreamBufferMaxRange) - x.SrcPictureResource = *NewVideoPictureResourceInfoRef(unsafe.Pointer(&x.ref17fdae33.srcPictureResource)) - packSVideoReferenceSlotInfo(x.PSetupReferenceSlot, x.ref17fdae33.pSetupReferenceSlot) - x.ReferenceSlotCount = (uint32)(x.ref17fdae33.referenceSlotCount) - packSVideoReferenceSlotInfo(x.PReferenceSlots, x.ref17fdae33.pReferenceSlots) - x.PrecedingExternallyEncodedBytes = (uint32)(x.ref17fdae33.precedingExternallyEncodedBytes) -} - -// allocVideoEncodeCapabilitiesMemory allocates memory for type C.VkVideoEncodeCapabilitiesKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeCapabilitiesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeCapabilitiesKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeCapabilities) Ref() *C.VkVideoEncodeCapabilitiesKHR { - if x == nil { - return nil - } - return x.ref64e7b215 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeCapabilities) Free() { - if x != nil && x.allocs64e7b215 != nil { - x.allocs64e7b215.(*cgoAllocMap).Free() - x.ref64e7b215 = nil - } -} - -// NewVideoEncodeCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeCapabilitiesRef(ref unsafe.Pointer) *VideoEncodeCapabilities { - if ref == nil { - return nil - } - obj := new(VideoEncodeCapabilities) - obj.ref64e7b215 = (*C.VkVideoEncodeCapabilitiesKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeCapabilities) PassRef() (*C.VkVideoEncodeCapabilitiesKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref64e7b215 != nil { - return x.ref64e7b215, nil - } - mem64e7b215 := allocVideoEncodeCapabilitiesMemory(1) - ref64e7b215 := (*C.VkVideoEncodeCapabilitiesKHR)(mem64e7b215) - allocs64e7b215 := new(cgoAllocMap) - allocs64e7b215.Add(mem64e7b215) - - var csType_allocs *cgoAllocMap - ref64e7b215.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64e7b215.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref64e7b215.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64e7b215.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref64e7b215.flags, cflags_allocs = (C.VkVideoEncodeCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs64e7b215.Borrow(cflags_allocs) - - var crateControlModes_allocs *cgoAllocMap - ref64e7b215.rateControlModes, crateControlModes_allocs = (C.VkVideoEncodeRateControlModeFlagsKHR)(x.RateControlModes), cgoAllocsUnknown - allocs64e7b215.Borrow(crateControlModes_allocs) - - var crateControlLayerCount_allocs *cgoAllocMap - ref64e7b215.rateControlLayerCount, crateControlLayerCount_allocs = (C.uint8_t)(x.RateControlLayerCount), cgoAllocsUnknown - allocs64e7b215.Borrow(crateControlLayerCount_allocs) - - var cqualityLevelCount_allocs *cgoAllocMap - ref64e7b215.qualityLevelCount, cqualityLevelCount_allocs = (C.uint8_t)(x.QualityLevelCount), cgoAllocsUnknown - allocs64e7b215.Borrow(cqualityLevelCount_allocs) - - var cinputImageDataFillAlignment_allocs *cgoAllocMap - ref64e7b215.inputImageDataFillAlignment, cinputImageDataFillAlignment_allocs = x.InputImageDataFillAlignment.PassValue() - allocs64e7b215.Borrow(cinputImageDataFillAlignment_allocs) - - x.ref64e7b215 = ref64e7b215 - x.allocs64e7b215 = allocs64e7b215 - return ref64e7b215, allocs64e7b215 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeCapabilities) PassValue() (C.VkVideoEncodeCapabilitiesKHR, *cgoAllocMap) { - if x.ref64e7b215 != nil { - return *x.ref64e7b215, 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 *VideoEncodeCapabilities) Deref() { - if x.ref64e7b215 == nil { - return - } - x.SType = (StructureType)(x.ref64e7b215.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64e7b215.pNext)) - x.Flags = (VideoEncodeCapabilityFlags)(x.ref64e7b215.flags) - x.RateControlModes = (VideoEncodeRateControlModeFlags)(x.ref64e7b215.rateControlModes) - x.RateControlLayerCount = (byte)(x.ref64e7b215.rateControlLayerCount) - x.QualityLevelCount = (byte)(x.ref64e7b215.qualityLevelCount) - x.InputImageDataFillAlignment = *NewExtent2DRef(unsafe.Pointer(&x.ref64e7b215.inputImageDataFillAlignment)) -} - -// allocVideoEncodeUsageInfoMemory allocates memory for type C.VkVideoEncodeUsageInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeUsageInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeUsageInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeUsageInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeUsageInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeUsageInfo) Ref() *C.VkVideoEncodeUsageInfoKHR { - if x == nil { - return nil - } - return x.ref8df2e1f2 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeUsageInfo) Free() { - if x != nil && x.allocs8df2e1f2 != nil { - x.allocs8df2e1f2.(*cgoAllocMap).Free() - x.ref8df2e1f2 = nil - } -} - -// NewVideoEncodeUsageInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeUsageInfoRef(ref unsafe.Pointer) *VideoEncodeUsageInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeUsageInfo) - obj.ref8df2e1f2 = (*C.VkVideoEncodeUsageInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeUsageInfo) PassRef() (*C.VkVideoEncodeUsageInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref8df2e1f2 != nil { - return x.ref8df2e1f2, nil - } - mem8df2e1f2 := allocVideoEncodeUsageInfoMemory(1) - ref8df2e1f2 := (*C.VkVideoEncodeUsageInfoKHR)(mem8df2e1f2) - allocs8df2e1f2 := new(cgoAllocMap) - allocs8df2e1f2.Add(mem8df2e1f2) - - var csType_allocs *cgoAllocMap - ref8df2e1f2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8df2e1f2.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref8df2e1f2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8df2e1f2.Borrow(cpNext_allocs) - - var cvideoUsageHints_allocs *cgoAllocMap - ref8df2e1f2.videoUsageHints, cvideoUsageHints_allocs = (C.VkVideoEncodeUsageFlagsKHR)(x.VideoUsageHints), cgoAllocsUnknown - allocs8df2e1f2.Borrow(cvideoUsageHints_allocs) - - var cvideoContentHints_allocs *cgoAllocMap - ref8df2e1f2.videoContentHints, cvideoContentHints_allocs = (C.VkVideoEncodeContentFlagsKHR)(x.VideoContentHints), cgoAllocsUnknown - allocs8df2e1f2.Borrow(cvideoContentHints_allocs) - - var ctuningMode_allocs *cgoAllocMap - ref8df2e1f2.tuningMode, ctuningMode_allocs = (C.VkVideoEncodeTuningModeKHR)(x.TuningMode), cgoAllocsUnknown - allocs8df2e1f2.Borrow(ctuningMode_allocs) - - x.ref8df2e1f2 = ref8df2e1f2 - x.allocs8df2e1f2 = allocs8df2e1f2 - return ref8df2e1f2, allocs8df2e1f2 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeUsageInfo) PassValue() (C.VkVideoEncodeUsageInfoKHR, *cgoAllocMap) { - if x.ref8df2e1f2 != nil { - return *x.ref8df2e1f2, 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 *VideoEncodeUsageInfo) Deref() { - if x.ref8df2e1f2 == nil { - return - } - x.SType = (StructureType)(x.ref8df2e1f2.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8df2e1f2.pNext)) - x.VideoUsageHints = (VideoEncodeUsageFlags)(x.ref8df2e1f2.videoUsageHints) - x.VideoContentHints = (VideoEncodeContentFlags)(x.ref8df2e1f2.videoContentHints) - x.TuningMode = (VideoEncodeTuningMode)(x.ref8df2e1f2.tuningMode) -} - -// allocVideoEncodeRateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeRateControlLayerInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeRateControlLayerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeRateControlLayerInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeRateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeRateControlLayerInfoKHR{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeRateControlLayerInfo) Ref() *C.VkVideoEncodeRateControlLayerInfoKHR { - if x == nil { - return nil - } - return x.refa859f41d -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeRateControlLayerInfo) Free() { - if x != nil && x.allocsa859f41d != nil { - x.allocsa859f41d.(*cgoAllocMap).Free() - x.refa859f41d = nil - } -} - -// NewVideoEncodeRateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeRateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeRateControlLayerInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeRateControlLayerInfo) - obj.refa859f41d = (*C.VkVideoEncodeRateControlLayerInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeRateControlLayerInfo) PassRef() (*C.VkVideoEncodeRateControlLayerInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refa859f41d != nil { - return x.refa859f41d, nil - } - mema859f41d := allocVideoEncodeRateControlLayerInfoMemory(1) - refa859f41d := (*C.VkVideoEncodeRateControlLayerInfoKHR)(mema859f41d) - allocsa859f41d := new(cgoAllocMap) - allocsa859f41d.Add(mema859f41d) - - var csType_allocs *cgoAllocMap - refa859f41d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa859f41d.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa859f41d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa859f41d.Borrow(cpNext_allocs) - - var caverageBitrate_allocs *cgoAllocMap - refa859f41d.averageBitrate, caverageBitrate_allocs = (C.uint32_t)(x.AverageBitrate), cgoAllocsUnknown - allocsa859f41d.Borrow(caverageBitrate_allocs) - - var cmaxBitrate_allocs *cgoAllocMap - refa859f41d.maxBitrate, cmaxBitrate_allocs = (C.uint32_t)(x.MaxBitrate), cgoAllocsUnknown - allocsa859f41d.Borrow(cmaxBitrate_allocs) - - var cframeRateNumerator_allocs *cgoAllocMap - refa859f41d.frameRateNumerator, cframeRateNumerator_allocs = (C.uint32_t)(x.FrameRateNumerator), cgoAllocsUnknown - allocsa859f41d.Borrow(cframeRateNumerator_allocs) - - var cframeRateDenominator_allocs *cgoAllocMap - refa859f41d.frameRateDenominator, cframeRateDenominator_allocs = (C.uint32_t)(x.FrameRateDenominator), cgoAllocsUnknown - allocsa859f41d.Borrow(cframeRateDenominator_allocs) - - var cvirtualBufferSizeInMs_allocs *cgoAllocMap - refa859f41d.virtualBufferSizeInMs, cvirtualBufferSizeInMs_allocs = (C.uint32_t)(x.VirtualBufferSizeInMs), cgoAllocsUnknown - allocsa859f41d.Borrow(cvirtualBufferSizeInMs_allocs) - - var cinitialVirtualBufferSizeInMs_allocs *cgoAllocMap - refa859f41d.initialVirtualBufferSizeInMs, cinitialVirtualBufferSizeInMs_allocs = (C.uint32_t)(x.InitialVirtualBufferSizeInMs), cgoAllocsUnknown - allocsa859f41d.Borrow(cinitialVirtualBufferSizeInMs_allocs) - - x.refa859f41d = refa859f41d - x.allocsa859f41d = allocsa859f41d - return refa859f41d, allocsa859f41d - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeRateControlLayerInfo) PassValue() (C.VkVideoEncodeRateControlLayerInfoKHR, *cgoAllocMap) { - if x.refa859f41d != nil { - return *x.refa859f41d, 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 *VideoEncodeRateControlLayerInfo) Deref() { - if x.refa859f41d == nil { - return - } - x.SType = (StructureType)(x.refa859f41d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa859f41d.pNext)) - x.AverageBitrate = (uint32)(x.refa859f41d.averageBitrate) - x.MaxBitrate = (uint32)(x.refa859f41d.maxBitrate) - x.FrameRateNumerator = (uint32)(x.refa859f41d.frameRateNumerator) - x.FrameRateDenominator = (uint32)(x.refa859f41d.frameRateDenominator) - x.VirtualBufferSizeInMs = (uint32)(x.refa859f41d.virtualBufferSizeInMs) - x.InitialVirtualBufferSizeInMs = (uint32)(x.refa859f41d.initialVirtualBufferSizeInMs) -} - -// allocVideoEncodeRateControlInfoMemory allocates memory for type C.VkVideoEncodeRateControlInfoKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeRateControlInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeRateControlInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeRateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeRateControlInfoKHR{}) - -// unpackSVideoEncodeRateControlLayerInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeRateControlLayerInfo(x []VideoEncodeRateControlLayerInfo) (unpacked *C.VkVideoEncodeRateControlLayerInfoKHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeRateControlLayerInfoKHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeRateControlLayerInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeRateControlLayerInfoKHR)(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.VkVideoEncodeRateControlLayerInfoKHR)(h.Data) - return -} - -// packSVideoEncodeRateControlLayerInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeRateControlLayerInfo(v []VideoEncodeRateControlLayerInfo, ptr0 *C.VkVideoEncodeRateControlLayerInfoKHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeRateControlLayerInfoValue]C.VkVideoEncodeRateControlLayerInfoKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeRateControlLayerInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeRateControlInfo) Ref() *C.VkVideoEncodeRateControlInfoKHR { - if x == nil { - return nil - } - return x.ref6cd9cba3 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeRateControlInfo) Free() { - if x != nil && x.allocs6cd9cba3 != nil { - x.allocs6cd9cba3.(*cgoAllocMap).Free() - x.ref6cd9cba3 = nil - } -} - -// NewVideoEncodeRateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeRateControlInfoRef(ref unsafe.Pointer) *VideoEncodeRateControlInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeRateControlInfo) - obj.ref6cd9cba3 = (*C.VkVideoEncodeRateControlInfoKHR)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeRateControlInfo) PassRef() (*C.VkVideoEncodeRateControlInfoKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref6cd9cba3 != nil { - return x.ref6cd9cba3, nil - } - mem6cd9cba3 := allocVideoEncodeRateControlInfoMemory(1) - ref6cd9cba3 := (*C.VkVideoEncodeRateControlInfoKHR)(mem6cd9cba3) - allocs6cd9cba3 := new(cgoAllocMap) - allocs6cd9cba3.Add(mem6cd9cba3) - - var csType_allocs *cgoAllocMap - ref6cd9cba3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6cd9cba3.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref6cd9cba3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6cd9cba3.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref6cd9cba3.flags, cflags_allocs = (C.VkVideoEncodeRateControlFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs6cd9cba3.Borrow(cflags_allocs) - - var crateControlMode_allocs *cgoAllocMap - ref6cd9cba3.rateControlMode, crateControlMode_allocs = (C.VkVideoEncodeRateControlModeFlagBitsKHR)(x.RateControlMode), cgoAllocsUnknown - allocs6cd9cba3.Borrow(crateControlMode_allocs) - - var clayerCount_allocs *cgoAllocMap - ref6cd9cba3.layerCount, clayerCount_allocs = (C.uint8_t)(x.LayerCount), cgoAllocsUnknown - allocs6cd9cba3.Borrow(clayerCount_allocs) - - var cpLayerConfigs_allocs *cgoAllocMap - ref6cd9cba3.pLayerConfigs, cpLayerConfigs_allocs = unpackSVideoEncodeRateControlLayerInfo(x.PLayerConfigs) - allocs6cd9cba3.Borrow(cpLayerConfigs_allocs) - - x.ref6cd9cba3 = ref6cd9cba3 - x.allocs6cd9cba3 = allocs6cd9cba3 - return ref6cd9cba3, allocs6cd9cba3 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeRateControlInfo) PassValue() (C.VkVideoEncodeRateControlInfoKHR, *cgoAllocMap) { - if x.ref6cd9cba3 != nil { - return *x.ref6cd9cba3, 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 *VideoEncodeRateControlInfo) Deref() { - if x.ref6cd9cba3 == nil { - return - } - x.SType = (StructureType)(x.ref6cd9cba3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6cd9cba3.pNext)) - x.Flags = (VideoEncodeRateControlFlags)(x.ref6cd9cba3.flags) - x.RateControlMode = (VideoEncodeRateControlModeFlagBits)(x.ref6cd9cba3.rateControlMode) - x.LayerCount = (byte)(x.ref6cd9cba3.layerCount) - packSVideoEncodeRateControlLayerInfo(x.PLayerConfigs, x.ref6cd9cba3.pLayerConfigs) -} - -// allocVideoEncodeH264CapabilitiesMemory allocates memory for type C.VkVideoEncodeH264CapabilitiesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264CapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264CapabilitiesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeH264CapabilitiesEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264Capabilities) Ref() *C.VkVideoEncodeH264CapabilitiesEXT { - if x == nil { - return nil - } - return x.reffabc5de4 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264Capabilities) Free() { - if x != nil && x.allocsfabc5de4 != nil { - x.allocsfabc5de4.(*cgoAllocMap).Free() - x.reffabc5de4 = nil - } -} - -// NewVideoEncodeH264CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264CapabilitiesRef(ref unsafe.Pointer) *VideoEncodeH264Capabilities { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264Capabilities) - obj.reffabc5de4 = (*C.VkVideoEncodeH264CapabilitiesEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264Capabilities) PassRef() (*C.VkVideoEncodeH264CapabilitiesEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reffabc5de4 != nil { - return x.reffabc5de4, nil - } - memfabc5de4 := allocVideoEncodeH264CapabilitiesMemory(1) - reffabc5de4 := (*C.VkVideoEncodeH264CapabilitiesEXT)(memfabc5de4) - allocsfabc5de4 := new(cgoAllocMap) - allocsfabc5de4.Add(memfabc5de4) - - var csType_allocs *cgoAllocMap - reffabc5de4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfabc5de4.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reffabc5de4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfabc5de4.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - reffabc5de4.flags, cflags_allocs = (C.VkVideoEncodeH264CapabilityFlagsEXT)(x.Flags), cgoAllocsUnknown - allocsfabc5de4.Borrow(cflags_allocs) - - var cinputModeFlags_allocs *cgoAllocMap - reffabc5de4.inputModeFlags, cinputModeFlags_allocs = (C.VkVideoEncodeH264InputModeFlagsEXT)(x.InputModeFlags), cgoAllocsUnknown - allocsfabc5de4.Borrow(cinputModeFlags_allocs) - - var coutputModeFlags_allocs *cgoAllocMap - reffabc5de4.outputModeFlags, coutputModeFlags_allocs = (C.VkVideoEncodeH264OutputModeFlagsEXT)(x.OutputModeFlags), cgoAllocsUnknown - allocsfabc5de4.Borrow(coutputModeFlags_allocs) - - var cmaxPPictureL0ReferenceCount_allocs *cgoAllocMap - reffabc5de4.maxPPictureL0ReferenceCount, cmaxPPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxPPictureL0ReferenceCount), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmaxPPictureL0ReferenceCount_allocs) - - var cmaxBPictureL0ReferenceCount_allocs *cgoAllocMap - reffabc5de4.maxBPictureL0ReferenceCount, cmaxBPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxBPictureL0ReferenceCount), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmaxBPictureL0ReferenceCount_allocs) - - var cmaxL1ReferenceCount_allocs *cgoAllocMap - reffabc5de4.maxL1ReferenceCount, cmaxL1ReferenceCount_allocs = (C.uint8_t)(x.MaxL1ReferenceCount), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmaxL1ReferenceCount_allocs) - - var cmotionVectorsOverPicBoundariesFlag_allocs *cgoAllocMap - reffabc5de4.motionVectorsOverPicBoundariesFlag, cmotionVectorsOverPicBoundariesFlag_allocs = (C.VkBool32)(x.MotionVectorsOverPicBoundariesFlag), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmotionVectorsOverPicBoundariesFlag_allocs) - - var cmaxBytesPerPicDenom_allocs *cgoAllocMap - reffabc5de4.maxBytesPerPicDenom, cmaxBytesPerPicDenom_allocs = (C.uint32_t)(x.MaxBytesPerPicDenom), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmaxBytesPerPicDenom_allocs) - - var cmaxBitsPerMbDenom_allocs *cgoAllocMap - reffabc5de4.maxBitsPerMbDenom, cmaxBitsPerMbDenom_allocs = (C.uint32_t)(x.MaxBitsPerMbDenom), cgoAllocsUnknown - allocsfabc5de4.Borrow(cmaxBitsPerMbDenom_allocs) - - var clog2MaxMvLengthHorizontal_allocs *cgoAllocMap - reffabc5de4.log2MaxMvLengthHorizontal, clog2MaxMvLengthHorizontal_allocs = (C.uint32_t)(x.Log2MaxMvLengthHorizontal), cgoAllocsUnknown - allocsfabc5de4.Borrow(clog2MaxMvLengthHorizontal_allocs) - - var clog2MaxMvLengthVertical_allocs *cgoAllocMap - reffabc5de4.log2MaxMvLengthVertical, clog2MaxMvLengthVertical_allocs = (C.uint32_t)(x.Log2MaxMvLengthVertical), cgoAllocsUnknown - allocsfabc5de4.Borrow(clog2MaxMvLengthVertical_allocs) - - x.reffabc5de4 = reffabc5de4 - x.allocsfabc5de4 = allocsfabc5de4 - return reffabc5de4, allocsfabc5de4 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264Capabilities) PassValue() (C.VkVideoEncodeH264CapabilitiesEXT, *cgoAllocMap) { - if x.reffabc5de4 != nil { - return *x.reffabc5de4, 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 *VideoEncodeH264Capabilities) Deref() { - if x.reffabc5de4 == nil { - return - } - x.SType = (StructureType)(x.reffabc5de4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffabc5de4.pNext)) - x.Flags = (VideoEncodeH264CapabilityFlags)(x.reffabc5de4.flags) - x.InputModeFlags = (VideoEncodeH264InputModeFlags)(x.reffabc5de4.inputModeFlags) - x.OutputModeFlags = (VideoEncodeH264OutputModeFlags)(x.reffabc5de4.outputModeFlags) - x.MaxPPictureL0ReferenceCount = (byte)(x.reffabc5de4.maxPPictureL0ReferenceCount) - x.MaxBPictureL0ReferenceCount = (byte)(x.reffabc5de4.maxBPictureL0ReferenceCount) - x.MaxL1ReferenceCount = (byte)(x.reffabc5de4.maxL1ReferenceCount) - x.MotionVectorsOverPicBoundariesFlag = (Bool32)(x.reffabc5de4.motionVectorsOverPicBoundariesFlag) - x.MaxBytesPerPicDenom = (uint32)(x.reffabc5de4.maxBytesPerPicDenom) - x.MaxBitsPerMbDenom = (uint32)(x.reffabc5de4.maxBitsPerMbDenom) - x.Log2MaxMvLengthHorizontal = (uint32)(x.reffabc5de4.log2MaxMvLengthHorizontal) - x.Log2MaxMvLengthVertical = (uint32)(x.reffabc5de4.log2MaxMvLengthVertical) -} - -// allocVideoEncodeH264SessionParametersAddInfoMemory allocates memory for type C.VkVideoEncodeH264SessionParametersAddInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264SessionParametersAddInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264SessionParametersAddInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264SessionParametersAddInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264SessionParametersAddInfo) Ref() *C.VkVideoEncodeH264SessionParametersAddInfoEXT { - if x == nil { - return nil - } - return x.ref9aeed90f -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264SessionParametersAddInfo) Free() { - if x != nil && x.allocs9aeed90f != nil { - x.allocs9aeed90f.(*cgoAllocMap).Free() - x.ref9aeed90f = nil - } -} - -// NewVideoEncodeH264SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoEncodeH264SessionParametersAddInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264SessionParametersAddInfo) - obj.ref9aeed90f = (*C.VkVideoEncodeH264SessionParametersAddInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264SessionParametersAddInfo) PassRef() (*C.VkVideoEncodeH264SessionParametersAddInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref9aeed90f != nil { - return x.ref9aeed90f, nil - } - mem9aeed90f := allocVideoEncodeH264SessionParametersAddInfoMemory(1) - ref9aeed90f := (*C.VkVideoEncodeH264SessionParametersAddInfoEXT)(mem9aeed90f) - allocs9aeed90f := new(cgoAllocMap) - allocs9aeed90f.Add(mem9aeed90f) - - var csType_allocs *cgoAllocMap - ref9aeed90f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9aeed90f.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9aeed90f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9aeed90f.Borrow(cpNext_allocs) - - var cstdSPSCount_allocs *cgoAllocMap - ref9aeed90f.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown - allocs9aeed90f.Borrow(cstdSPSCount_allocs) - - var cstdPPSCount_allocs *cgoAllocMap - ref9aeed90f.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown - allocs9aeed90f.Borrow(cstdPPSCount_allocs) - - x.ref9aeed90f = ref9aeed90f - x.allocs9aeed90f = allocs9aeed90f - return ref9aeed90f, allocs9aeed90f - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264SessionParametersAddInfo) PassValue() (C.VkVideoEncodeH264SessionParametersAddInfoEXT, *cgoAllocMap) { - if x.ref9aeed90f != nil { - return *x.ref9aeed90f, 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 *VideoEncodeH264SessionParametersAddInfo) Deref() { - if x.ref9aeed90f == nil { - return - } - x.SType = (StructureType)(x.ref9aeed90f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9aeed90f.pNext)) - x.StdSPSCount = (uint32)(x.ref9aeed90f.stdSPSCount) - x.StdPPSCount = (uint32)(x.ref9aeed90f.stdPPSCount) -} - -// allocVideoEncodeH264SessionParametersCreateInfoMemory allocates memory for type C.VkVideoEncodeH264SessionParametersCreateInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264SessionParametersCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264SessionParametersCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264SessionParametersCreateInfoEXT{}) - -// unpackSVideoEncodeH264SessionParametersAddInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH264SessionParametersAddInfo(x []VideoEncodeH264SessionParametersAddInfo) (unpacked *C.VkVideoEncodeH264SessionParametersAddInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264SessionParametersAddInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH264SessionParametersAddInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH264SessionParametersAddInfoEXT)(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.VkVideoEncodeH264SessionParametersAddInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH264SessionParametersAddInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH264SessionParametersAddInfo(v []VideoEncodeH264SessionParametersAddInfo, ptr0 *C.VkVideoEncodeH264SessionParametersAddInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH264SessionParametersAddInfoValue]C.VkVideoEncodeH264SessionParametersAddInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH264SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264SessionParametersCreateInfo) Ref() *C.VkVideoEncodeH264SessionParametersCreateInfoEXT { - if x == nil { - return nil - } - return x.refda410cad -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264SessionParametersCreateInfo) Free() { - if x != nil && x.allocsda410cad != nil { - x.allocsda410cad.(*cgoAllocMap).Free() - x.refda410cad = nil - } -} - -// NewVideoEncodeH264SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoEncodeH264SessionParametersCreateInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264SessionParametersCreateInfo) - obj.refda410cad = (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264SessionParametersCreateInfo) PassRef() (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refda410cad != nil { - return x.refda410cad, nil - } - memda410cad := allocVideoEncodeH264SessionParametersCreateInfoMemory(1) - refda410cad := (*C.VkVideoEncodeH264SessionParametersCreateInfoEXT)(memda410cad) - allocsda410cad := new(cgoAllocMap) - allocsda410cad.Add(memda410cad) - - var csType_allocs *cgoAllocMap - refda410cad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsda410cad.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refda410cad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsda410cad.Borrow(cpNext_allocs) - - var cmaxStdSPSCount_allocs *cgoAllocMap - refda410cad.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown - allocsda410cad.Borrow(cmaxStdSPSCount_allocs) - - var cmaxStdPPSCount_allocs *cgoAllocMap - refda410cad.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown - allocsda410cad.Borrow(cmaxStdPPSCount_allocs) - - var cpParametersAddInfo_allocs *cgoAllocMap - refda410cad.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoEncodeH264SessionParametersAddInfo(x.PParametersAddInfo) - allocsda410cad.Borrow(cpParametersAddInfo_allocs) - - x.refda410cad = refda410cad - x.allocsda410cad = allocsda410cad - return refda410cad, allocsda410cad - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264SessionParametersCreateInfo) PassValue() (C.VkVideoEncodeH264SessionParametersCreateInfoEXT, *cgoAllocMap) { - if x.refda410cad != nil { - return *x.refda410cad, 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 *VideoEncodeH264SessionParametersCreateInfo) Deref() { - if x.refda410cad == nil { - return - } - x.SType = (StructureType)(x.refda410cad.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refda410cad.pNext)) - x.MaxStdSPSCount = (uint32)(x.refda410cad.maxStdSPSCount) - x.MaxStdPPSCount = (uint32)(x.refda410cad.maxStdPPSCount) - packSVideoEncodeH264SessionParametersAddInfo(x.PParametersAddInfo, x.refda410cad.pParametersAddInfo) -} - -// allocVideoEncodeH264DpbSlotInfoMemory allocates memory for type C.VkVideoEncodeH264DpbSlotInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264DpbSlotInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264DpbSlotInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264DpbSlotInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264DpbSlotInfo) Ref() *C.VkVideoEncodeH264DpbSlotInfoEXT { - if x == nil { - return nil - } - return x.refb4df162b -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264DpbSlotInfo) Free() { - if x != nil && x.allocsb4df162b != nil { - x.allocsb4df162b.(*cgoAllocMap).Free() - x.refb4df162b = nil - } -} - -// NewVideoEncodeH264DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264DpbSlotInfoRef(ref unsafe.Pointer) *VideoEncodeH264DpbSlotInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264DpbSlotInfo) - obj.refb4df162b = (*C.VkVideoEncodeH264DpbSlotInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264DpbSlotInfo) PassRef() (*C.VkVideoEncodeH264DpbSlotInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refb4df162b != nil { - return x.refb4df162b, nil - } - memb4df162b := allocVideoEncodeH264DpbSlotInfoMemory(1) - refb4df162b := (*C.VkVideoEncodeH264DpbSlotInfoEXT)(memb4df162b) - allocsb4df162b := new(cgoAllocMap) - allocsb4df162b.Add(memb4df162b) - - var csType_allocs *cgoAllocMap - refb4df162b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb4df162b.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refb4df162b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb4df162b.Borrow(cpNext_allocs) - - var cslotIndex_allocs *cgoAllocMap - refb4df162b.slotIndex, cslotIndex_allocs = (C.int8_t)(x.SlotIndex), cgoAllocsUnknown - allocsb4df162b.Borrow(cslotIndex_allocs) - - x.refb4df162b = refb4df162b - x.allocsb4df162b = allocsb4df162b - return refb4df162b, allocsb4df162b - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264DpbSlotInfo) PassValue() (C.VkVideoEncodeH264DpbSlotInfoEXT, *cgoAllocMap) { - if x.refb4df162b != nil { - return *x.refb4df162b, 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 *VideoEncodeH264DpbSlotInfo) Deref() { - if x.refb4df162b == nil { - return - } - x.SType = (StructureType)(x.refb4df162b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb4df162b.pNext)) - x.SlotIndex = (byte)(x.refb4df162b.slotIndex) -} - -// allocVideoEncodeH264ReferenceListsInfoMemory allocates memory for type C.VkVideoEncodeH264ReferenceListsInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264ReferenceListsInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264ReferenceListsInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264ReferenceListsInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264ReferenceListsInfoEXT{}) - -// unpackSVideoEncodeH264DpbSlotInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH264DpbSlotInfo(x []VideoEncodeH264DpbSlotInfo) (unpacked *C.VkVideoEncodeH264DpbSlotInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264DpbSlotInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH264DpbSlotInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH264DpbSlotInfoEXT)(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.VkVideoEncodeH264DpbSlotInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH264DpbSlotInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH264DpbSlotInfo(v []VideoEncodeH264DpbSlotInfo, ptr0 *C.VkVideoEncodeH264DpbSlotInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH264DpbSlotInfoValue]C.VkVideoEncodeH264DpbSlotInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH264DpbSlotInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264ReferenceListsInfo) Ref() *C.VkVideoEncodeH264ReferenceListsInfoEXT { - if x == nil { - return nil - } - return x.ref91fe5805 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264ReferenceListsInfo) Free() { - if x != nil && x.allocs91fe5805 != nil { - x.allocs91fe5805.(*cgoAllocMap).Free() - x.ref91fe5805 = nil - } -} - -// NewVideoEncodeH264ReferenceListsInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264ReferenceListsInfoRef(ref unsafe.Pointer) *VideoEncodeH264ReferenceListsInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264ReferenceListsInfo) - obj.ref91fe5805 = (*C.VkVideoEncodeH264ReferenceListsInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264ReferenceListsInfo) PassRef() (*C.VkVideoEncodeH264ReferenceListsInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref91fe5805 != nil { - return x.ref91fe5805, nil - } - mem91fe5805 := allocVideoEncodeH264ReferenceListsInfoMemory(1) - ref91fe5805 := (*C.VkVideoEncodeH264ReferenceListsInfoEXT)(mem91fe5805) - allocs91fe5805 := new(cgoAllocMap) - allocs91fe5805.Add(mem91fe5805) - - var csType_allocs *cgoAllocMap - ref91fe5805.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs91fe5805.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref91fe5805.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs91fe5805.Borrow(cpNext_allocs) - - var creferenceList0EntryCount_allocs *cgoAllocMap - ref91fe5805.referenceList0EntryCount, creferenceList0EntryCount_allocs = (C.uint8_t)(x.ReferenceList0EntryCount), cgoAllocsUnknown - allocs91fe5805.Borrow(creferenceList0EntryCount_allocs) - - var cpReferenceList0Entries_allocs *cgoAllocMap - ref91fe5805.pReferenceList0Entries, cpReferenceList0Entries_allocs = unpackSVideoEncodeH264DpbSlotInfo(x.PReferenceList0Entries) - allocs91fe5805.Borrow(cpReferenceList0Entries_allocs) - - var creferenceList1EntryCount_allocs *cgoAllocMap - ref91fe5805.referenceList1EntryCount, creferenceList1EntryCount_allocs = (C.uint8_t)(x.ReferenceList1EntryCount), cgoAllocsUnknown - allocs91fe5805.Borrow(creferenceList1EntryCount_allocs) - - var cpReferenceList1Entries_allocs *cgoAllocMap - ref91fe5805.pReferenceList1Entries, cpReferenceList1Entries_allocs = unpackSVideoEncodeH264DpbSlotInfo(x.PReferenceList1Entries) - allocs91fe5805.Borrow(cpReferenceList1Entries_allocs) - - x.ref91fe5805 = ref91fe5805 - x.allocs91fe5805 = allocs91fe5805 - return ref91fe5805, allocs91fe5805 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264ReferenceListsInfo) PassValue() (C.VkVideoEncodeH264ReferenceListsInfoEXT, *cgoAllocMap) { - if x.ref91fe5805 != nil { - return *x.ref91fe5805, 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 *VideoEncodeH264ReferenceListsInfo) Deref() { - if x.ref91fe5805 == nil { - return - } - x.SType = (StructureType)(x.ref91fe5805.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref91fe5805.pNext)) - x.ReferenceList0EntryCount = (byte)(x.ref91fe5805.referenceList0EntryCount) - packSVideoEncodeH264DpbSlotInfo(x.PReferenceList0Entries, x.ref91fe5805.pReferenceList0Entries) - x.ReferenceList1EntryCount = (byte)(x.ref91fe5805.referenceList1EntryCount) - packSVideoEncodeH264DpbSlotInfo(x.PReferenceList1Entries, x.ref91fe5805.pReferenceList1Entries) -} - -// allocVideoEncodeH264NaluSliceInfoMemory allocates memory for type C.VkVideoEncodeH264NaluSliceInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264NaluSliceInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264NaluSliceInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264NaluSliceInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264NaluSliceInfoEXT{}) - -// unpackSVideoEncodeH264ReferenceListsInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH264ReferenceListsInfo(x []VideoEncodeH264ReferenceListsInfo) (unpacked *C.VkVideoEncodeH264ReferenceListsInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264ReferenceListsInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH264ReferenceListsInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH264ReferenceListsInfoEXT)(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.VkVideoEncodeH264ReferenceListsInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH264ReferenceListsInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH264ReferenceListsInfo(v []VideoEncodeH264ReferenceListsInfo, ptr0 *C.VkVideoEncodeH264ReferenceListsInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH264ReferenceListsInfoValue]C.VkVideoEncodeH264ReferenceListsInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH264ReferenceListsInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264NaluSliceInfo) Ref() *C.VkVideoEncodeH264NaluSliceInfoEXT { - if x == nil { - return nil - } - return x.ref6f598496 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264NaluSliceInfo) Free() { - if x != nil && x.allocs6f598496 != nil { - x.allocs6f598496.(*cgoAllocMap).Free() - x.ref6f598496 = nil - } -} - -// NewVideoEncodeH264NaluSliceInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264NaluSliceInfoRef(ref unsafe.Pointer) *VideoEncodeH264NaluSliceInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264NaluSliceInfo) - obj.ref6f598496 = (*C.VkVideoEncodeH264NaluSliceInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264NaluSliceInfo) PassRef() (*C.VkVideoEncodeH264NaluSliceInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref6f598496 != nil { - return x.ref6f598496, nil - } - mem6f598496 := allocVideoEncodeH264NaluSliceInfoMemory(1) - ref6f598496 := (*C.VkVideoEncodeH264NaluSliceInfoEXT)(mem6f598496) - allocs6f598496 := new(cgoAllocMap) - allocs6f598496.Add(mem6f598496) - - var csType_allocs *cgoAllocMap - ref6f598496.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6f598496.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref6f598496.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6f598496.Borrow(cpNext_allocs) - - var cmbCount_allocs *cgoAllocMap - ref6f598496.mbCount, cmbCount_allocs = (C.uint32_t)(x.MbCount), cgoAllocsUnknown - allocs6f598496.Borrow(cmbCount_allocs) - - var cpReferenceFinalLists_allocs *cgoAllocMap - ref6f598496.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists) - allocs6f598496.Borrow(cpReferenceFinalLists_allocs) - - x.ref6f598496 = ref6f598496 - x.allocs6f598496 = allocs6f598496 - return ref6f598496, allocs6f598496 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264NaluSliceInfo) PassValue() (C.VkVideoEncodeH264NaluSliceInfoEXT, *cgoAllocMap) { - if x.ref6f598496 != nil { - return *x.ref6f598496, 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 *VideoEncodeH264NaluSliceInfo) Deref() { - if x.ref6f598496 == nil { - return - } - x.SType = (StructureType)(x.ref6f598496.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6f598496.pNext)) - x.MbCount = (uint32)(x.ref6f598496.mbCount) - packSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists, x.ref6f598496.pReferenceFinalLists) -} - -// allocVideoEncodeH264VclFrameInfoMemory allocates memory for type C.VkVideoEncodeH264VclFrameInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264VclFrameInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264VclFrameInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264VclFrameInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264VclFrameInfoEXT{}) - -// unpackSVideoEncodeH264NaluSliceInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH264NaluSliceInfo(x []VideoEncodeH264NaluSliceInfo) (unpacked *C.VkVideoEncodeH264NaluSliceInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH264NaluSliceInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH264NaluSliceInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH264NaluSliceInfoEXT)(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.VkVideoEncodeH264NaluSliceInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH264NaluSliceInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH264NaluSliceInfo(v []VideoEncodeH264NaluSliceInfo, ptr0 *C.VkVideoEncodeH264NaluSliceInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH264NaluSliceInfoValue]C.VkVideoEncodeH264NaluSliceInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH264NaluSliceInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264VclFrameInfo) Ref() *C.VkVideoEncodeH264VclFrameInfoEXT { - if x == nil { - return nil - } - return x.ref5a087635 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264VclFrameInfo) Free() { - if x != nil && x.allocs5a087635 != nil { - x.allocs5a087635.(*cgoAllocMap).Free() - x.ref5a087635 = nil - } -} - -// NewVideoEncodeH264VclFrameInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264VclFrameInfoRef(ref unsafe.Pointer) *VideoEncodeH264VclFrameInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264VclFrameInfo) - obj.ref5a087635 = (*C.VkVideoEncodeH264VclFrameInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264VclFrameInfo) PassRef() (*C.VkVideoEncodeH264VclFrameInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref5a087635 != nil { - return x.ref5a087635, nil - } - mem5a087635 := allocVideoEncodeH264VclFrameInfoMemory(1) - ref5a087635 := (*C.VkVideoEncodeH264VclFrameInfoEXT)(mem5a087635) - allocs5a087635 := new(cgoAllocMap) - allocs5a087635.Add(mem5a087635) - - var csType_allocs *cgoAllocMap - ref5a087635.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5a087635.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref5a087635.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5a087635.Borrow(cpNext_allocs) - - var cpReferenceFinalLists_allocs *cgoAllocMap - ref5a087635.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists) - allocs5a087635.Borrow(cpReferenceFinalLists_allocs) - - var cnaluSliceEntryCount_allocs *cgoAllocMap - ref5a087635.naluSliceEntryCount, cnaluSliceEntryCount_allocs = (C.uint32_t)(x.NaluSliceEntryCount), cgoAllocsUnknown - allocs5a087635.Borrow(cnaluSliceEntryCount_allocs) - - var cpNaluSliceEntries_allocs *cgoAllocMap - ref5a087635.pNaluSliceEntries, cpNaluSliceEntries_allocs = unpackSVideoEncodeH264NaluSliceInfo(x.PNaluSliceEntries) - allocs5a087635.Borrow(cpNaluSliceEntries_allocs) - - x.ref5a087635 = ref5a087635 - x.allocs5a087635 = allocs5a087635 - return ref5a087635, allocs5a087635 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264VclFrameInfo) PassValue() (C.VkVideoEncodeH264VclFrameInfoEXT, *cgoAllocMap) { - if x.ref5a087635 != nil { - return *x.ref5a087635, 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 *VideoEncodeH264VclFrameInfo) Deref() { - if x.ref5a087635 == nil { - return - } - x.SType = (StructureType)(x.ref5a087635.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5a087635.pNext)) - packSVideoEncodeH264ReferenceListsInfo(x.PReferenceFinalLists, x.ref5a087635.pReferenceFinalLists) - x.NaluSliceEntryCount = (uint32)(x.ref5a087635.naluSliceEntryCount) - packSVideoEncodeH264NaluSliceInfo(x.PNaluSliceEntries, x.ref5a087635.pNaluSliceEntries) -} - -// allocVideoEncodeH264EmitPictureParametersInfoMemory allocates memory for type C.VkVideoEncodeH264EmitPictureParametersInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264EmitPictureParametersInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264EmitPictureParametersInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264EmitPictureParametersInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264EmitPictureParametersInfoEXT{}) - -// unpackPUint8_tString represents the data from Go string as *C.uint8_t and avoids copying. -func unpackPUint8_tString(str string) (*C.uint8_t, *cgoAllocMap) { - h := (*stringHeader)(unsafe.Pointer(&str)) - return (*C.uint8_t)(h.Data), cgoAllocsUnknown -} - -// packPUint8_tString creates a Go string backed by *C.uint8_t and avoids copying. -func packPUint8_tString(p *C.uint8_t) (raw string) { - if p != nil && *p != 0 { - h := (*stringHeader)(unsafe.Pointer(&raw)) - h.Data = unsafe.Pointer(p) - for *p != 0 { - p = (*C.uint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + 1)) // p++ - } - h.Len = int(uintptr(unsafe.Pointer(p)) - uintptr(h.Data)) - } - return -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264EmitPictureParametersInfo) Ref() *C.VkVideoEncodeH264EmitPictureParametersInfoEXT { - if x == nil { - return nil - } - return x.ref6eca871f -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264EmitPictureParametersInfo) Free() { - if x != nil && x.allocs6eca871f != nil { - x.allocs6eca871f.(*cgoAllocMap).Free() - x.ref6eca871f = nil - } -} - -// NewVideoEncodeH264EmitPictureParametersInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264EmitPictureParametersInfoRef(ref unsafe.Pointer) *VideoEncodeH264EmitPictureParametersInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264EmitPictureParametersInfo) - obj.ref6eca871f = (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264EmitPictureParametersInfo) PassRef() (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref6eca871f != nil { - return x.ref6eca871f, nil - } - mem6eca871f := allocVideoEncodeH264EmitPictureParametersInfoMemory(1) - ref6eca871f := (*C.VkVideoEncodeH264EmitPictureParametersInfoEXT)(mem6eca871f) - allocs6eca871f := new(cgoAllocMap) - allocs6eca871f.Add(mem6eca871f) - - var csType_allocs *cgoAllocMap - ref6eca871f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6eca871f.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref6eca871f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6eca871f.Borrow(cpNext_allocs) - - var cspsId_allocs *cgoAllocMap - ref6eca871f.spsId, cspsId_allocs = (C.uint8_t)(x.SpsId), cgoAllocsUnknown - allocs6eca871f.Borrow(cspsId_allocs) - - var cemitSpsEnable_allocs *cgoAllocMap - ref6eca871f.emitSpsEnable, cemitSpsEnable_allocs = (C.VkBool32)(x.EmitSpsEnable), cgoAllocsUnknown - allocs6eca871f.Borrow(cemitSpsEnable_allocs) - - var cppsIdEntryCount_allocs *cgoAllocMap - ref6eca871f.ppsIdEntryCount, cppsIdEntryCount_allocs = (C.uint32_t)(x.PpsIdEntryCount), cgoAllocsUnknown - allocs6eca871f.Borrow(cppsIdEntryCount_allocs) - - var cppsIdEntries_allocs *cgoAllocMap - ref6eca871f.ppsIdEntries, cppsIdEntries_allocs = unpackPUint8_tString(x.PpsIdEntries) - allocs6eca871f.Borrow(cppsIdEntries_allocs) - - x.ref6eca871f = ref6eca871f - x.allocs6eca871f = allocs6eca871f - return ref6eca871f, allocs6eca871f - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264EmitPictureParametersInfo) PassValue() (C.VkVideoEncodeH264EmitPictureParametersInfoEXT, *cgoAllocMap) { - if x.ref6eca871f != nil { - return *x.ref6eca871f, 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 *VideoEncodeH264EmitPictureParametersInfo) Deref() { - if x.ref6eca871f == nil { - return - } - x.SType = (StructureType)(x.ref6eca871f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6eca871f.pNext)) - x.SpsId = (byte)(x.ref6eca871f.spsId) - x.EmitSpsEnable = (Bool32)(x.ref6eca871f.emitSpsEnable) - x.PpsIdEntryCount = (uint32)(x.ref6eca871f.ppsIdEntryCount) - x.PpsIdEntries = packPUint8_tString(x.ref6eca871f.ppsIdEntries) -} - -// allocVideoEncodeH264ProfileInfoMemory allocates memory for type C.VkVideoEncodeH264ProfileInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264ProfileInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264ProfileInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264ProfileInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264ProfileInfo) Ref() *C.VkVideoEncodeH264ProfileInfoEXT { - if x == nil { - return nil - } - return x.ref3ba3093 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264ProfileInfo) Free() { - if x != nil && x.allocs3ba3093 != nil { - x.allocs3ba3093.(*cgoAllocMap).Free() - x.ref3ba3093 = nil - } -} - -// NewVideoEncodeH264ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264ProfileInfoRef(ref unsafe.Pointer) *VideoEncodeH264ProfileInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264ProfileInfo) - obj.ref3ba3093 = (*C.VkVideoEncodeH264ProfileInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264ProfileInfo) PassRef() (*C.VkVideoEncodeH264ProfileInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref3ba3093 != nil { - return x.ref3ba3093, nil - } - mem3ba3093 := allocVideoEncodeH264ProfileInfoMemory(1) - ref3ba3093 := (*C.VkVideoEncodeH264ProfileInfoEXT)(mem3ba3093) - allocs3ba3093 := new(cgoAllocMap) - allocs3ba3093.Add(mem3ba3093) - - var csType_allocs *cgoAllocMap - ref3ba3093.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3ba3093.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref3ba3093.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3ba3093.Borrow(cpNext_allocs) - - x.ref3ba3093 = ref3ba3093 - x.allocs3ba3093 = allocs3ba3093 - return ref3ba3093, allocs3ba3093 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264ProfileInfo) PassValue() (C.VkVideoEncodeH264ProfileInfoEXT, *cgoAllocMap) { - if x.ref3ba3093 != nil { - return *x.ref3ba3093, 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 *VideoEncodeH264ProfileInfo) Deref() { - if x.ref3ba3093 == nil { - return - } - x.SType = (StructureType)(x.ref3ba3093.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ba3093.pNext)) -} - -// allocVideoEncodeH264RateControlInfoMemory allocates memory for type C.VkVideoEncodeH264RateControlInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264RateControlInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264RateControlInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264RateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264RateControlInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264RateControlInfo) Ref() *C.VkVideoEncodeH264RateControlInfoEXT { - if x == nil { - return nil - } - return x.ref2b3e86c5 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264RateControlInfo) Free() { - if x != nil && x.allocs2b3e86c5 != nil { - x.allocs2b3e86c5.(*cgoAllocMap).Free() - x.ref2b3e86c5 = nil - } -} - -// NewVideoEncodeH264RateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264RateControlInfoRef(ref unsafe.Pointer) *VideoEncodeH264RateControlInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264RateControlInfo) - obj.ref2b3e86c5 = (*C.VkVideoEncodeH264RateControlInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264RateControlInfo) PassRef() (*C.VkVideoEncodeH264RateControlInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref2b3e86c5 != nil { - return x.ref2b3e86c5, nil - } - mem2b3e86c5 := allocVideoEncodeH264RateControlInfoMemory(1) - ref2b3e86c5 := (*C.VkVideoEncodeH264RateControlInfoEXT)(mem2b3e86c5) - allocs2b3e86c5 := new(cgoAllocMap) - allocs2b3e86c5.Add(mem2b3e86c5) - - var csType_allocs *cgoAllocMap - ref2b3e86c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2b3e86c5.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref2b3e86c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2b3e86c5.Borrow(cpNext_allocs) - - var cgopFrameCount_allocs *cgoAllocMap - ref2b3e86c5.gopFrameCount, cgopFrameCount_allocs = (C.uint32_t)(x.GopFrameCount), cgoAllocsUnknown - allocs2b3e86c5.Borrow(cgopFrameCount_allocs) - - var cidrPeriod_allocs *cgoAllocMap - ref2b3e86c5.idrPeriod, cidrPeriod_allocs = (C.uint32_t)(x.IdrPeriod), cgoAllocsUnknown - allocs2b3e86c5.Borrow(cidrPeriod_allocs) - - var cconsecutiveBFrameCount_allocs *cgoAllocMap - ref2b3e86c5.consecutiveBFrameCount, cconsecutiveBFrameCount_allocs = (C.uint32_t)(x.ConsecutiveBFrameCount), cgoAllocsUnknown - allocs2b3e86c5.Borrow(cconsecutiveBFrameCount_allocs) - - var crateControlStructure_allocs *cgoAllocMap - ref2b3e86c5.rateControlStructure, crateControlStructure_allocs = (C.VkVideoEncodeH264RateControlStructureEXT)(x.RateControlStructure), cgoAllocsUnknown - allocs2b3e86c5.Borrow(crateControlStructure_allocs) - - var ctemporalLayerCount_allocs *cgoAllocMap - ref2b3e86c5.temporalLayerCount, ctemporalLayerCount_allocs = (C.uint8_t)(x.TemporalLayerCount), cgoAllocsUnknown - allocs2b3e86c5.Borrow(ctemporalLayerCount_allocs) - - x.ref2b3e86c5 = ref2b3e86c5 - x.allocs2b3e86c5 = allocs2b3e86c5 - return ref2b3e86c5, allocs2b3e86c5 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264RateControlInfo) PassValue() (C.VkVideoEncodeH264RateControlInfoEXT, *cgoAllocMap) { - if x.ref2b3e86c5 != nil { - return *x.ref2b3e86c5, 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 *VideoEncodeH264RateControlInfo) Deref() { - if x.ref2b3e86c5 == nil { - return - } - x.SType = (StructureType)(x.ref2b3e86c5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2b3e86c5.pNext)) - x.GopFrameCount = (uint32)(x.ref2b3e86c5.gopFrameCount) - x.IdrPeriod = (uint32)(x.ref2b3e86c5.idrPeriod) - x.ConsecutiveBFrameCount = (uint32)(x.ref2b3e86c5.consecutiveBFrameCount) - x.RateControlStructure = (VideoEncodeH264RateControlStructure)(x.ref2b3e86c5.rateControlStructure) - x.TemporalLayerCount = (byte)(x.ref2b3e86c5.temporalLayerCount) -} - -// allocVideoEncodeH264QpMemory allocates memory for type C.VkVideoEncodeH264QpEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264QpMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264QpValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264QpValue = unsafe.Sizeof([1]C.VkVideoEncodeH264QpEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264Qp) Ref() *C.VkVideoEncodeH264QpEXT { - if x == nil { - return nil - } - return x.refcc70a5bd -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264Qp) Free() { - if x != nil && x.allocscc70a5bd != nil { - x.allocscc70a5bd.(*cgoAllocMap).Free() - x.refcc70a5bd = nil - } -} - -// NewVideoEncodeH264QpRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264QpRef(ref unsafe.Pointer) *VideoEncodeH264Qp { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264Qp) - obj.refcc70a5bd = (*C.VkVideoEncodeH264QpEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264Qp) PassRef() (*C.VkVideoEncodeH264QpEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refcc70a5bd != nil { - return x.refcc70a5bd, nil - } - memcc70a5bd := allocVideoEncodeH264QpMemory(1) - refcc70a5bd := (*C.VkVideoEncodeH264QpEXT)(memcc70a5bd) - allocscc70a5bd := new(cgoAllocMap) - allocscc70a5bd.Add(memcc70a5bd) - - var cqpI_allocs *cgoAllocMap - refcc70a5bd.qpI, cqpI_allocs = (C.int32_t)(x.QpI), cgoAllocsUnknown - allocscc70a5bd.Borrow(cqpI_allocs) - - var cqpP_allocs *cgoAllocMap - refcc70a5bd.qpP, cqpP_allocs = (C.int32_t)(x.QpP), cgoAllocsUnknown - allocscc70a5bd.Borrow(cqpP_allocs) - - var cqpB_allocs *cgoAllocMap - refcc70a5bd.qpB, cqpB_allocs = (C.int32_t)(x.QpB), cgoAllocsUnknown - allocscc70a5bd.Borrow(cqpB_allocs) - - x.refcc70a5bd = refcc70a5bd - x.allocscc70a5bd = allocscc70a5bd - return refcc70a5bd, allocscc70a5bd - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264Qp) PassValue() (C.VkVideoEncodeH264QpEXT, *cgoAllocMap) { - if x.refcc70a5bd != nil { - return *x.refcc70a5bd, 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 *VideoEncodeH264Qp) Deref() { - if x.refcc70a5bd == nil { - return - } - x.QpI = (int32)(x.refcc70a5bd.qpI) - x.QpP = (int32)(x.refcc70a5bd.qpP) - x.QpB = (int32)(x.refcc70a5bd.qpB) -} - -// allocVideoEncodeH264FrameSizeMemory allocates memory for type C.VkVideoEncodeH264FrameSizeEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264FrameSizeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264FrameSizeValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264FrameSizeValue = unsafe.Sizeof([1]C.VkVideoEncodeH264FrameSizeEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264FrameSize) Ref() *C.VkVideoEncodeH264FrameSizeEXT { - if x == nil { - return nil - } - return x.reff1a45729 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264FrameSize) Free() { - if x != nil && x.allocsf1a45729 != nil { - x.allocsf1a45729.(*cgoAllocMap).Free() - x.reff1a45729 = nil - } -} - -// NewVideoEncodeH264FrameSizeRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264FrameSizeRef(ref unsafe.Pointer) *VideoEncodeH264FrameSize { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264FrameSize) - obj.reff1a45729 = (*C.VkVideoEncodeH264FrameSizeEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264FrameSize) PassRef() (*C.VkVideoEncodeH264FrameSizeEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reff1a45729 != nil { - return x.reff1a45729, nil - } - memf1a45729 := allocVideoEncodeH264FrameSizeMemory(1) - reff1a45729 := (*C.VkVideoEncodeH264FrameSizeEXT)(memf1a45729) - allocsf1a45729 := new(cgoAllocMap) - allocsf1a45729.Add(memf1a45729) - - var cframeISize_allocs *cgoAllocMap - reff1a45729.frameISize, cframeISize_allocs = (C.uint32_t)(x.FrameISize), cgoAllocsUnknown - allocsf1a45729.Borrow(cframeISize_allocs) - - var cframePSize_allocs *cgoAllocMap - reff1a45729.framePSize, cframePSize_allocs = (C.uint32_t)(x.FramePSize), cgoAllocsUnknown - allocsf1a45729.Borrow(cframePSize_allocs) - - var cframeBSize_allocs *cgoAllocMap - reff1a45729.frameBSize, cframeBSize_allocs = (C.uint32_t)(x.FrameBSize), cgoAllocsUnknown - allocsf1a45729.Borrow(cframeBSize_allocs) - - x.reff1a45729 = reff1a45729 - x.allocsf1a45729 = allocsf1a45729 - return reff1a45729, allocsf1a45729 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264FrameSize) PassValue() (C.VkVideoEncodeH264FrameSizeEXT, *cgoAllocMap) { - if x.reff1a45729 != nil { - return *x.reff1a45729, 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 *VideoEncodeH264FrameSize) Deref() { - if x.reff1a45729 == nil { - return - } - x.FrameISize = (uint32)(x.reff1a45729.frameISize) - x.FramePSize = (uint32)(x.reff1a45729.framePSize) - x.FrameBSize = (uint32)(x.reff1a45729.frameBSize) -} - -// allocVideoEncodeH264RateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeH264RateControlLayerInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH264RateControlLayerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH264RateControlLayerInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH264RateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH264RateControlLayerInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH264RateControlLayerInfo) Ref() *C.VkVideoEncodeH264RateControlLayerInfoEXT { - if x == nil { - return nil - } - return x.refc9f21e78 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH264RateControlLayerInfo) Free() { - if x != nil && x.allocsc9f21e78 != nil { - x.allocsc9f21e78.(*cgoAllocMap).Free() - x.refc9f21e78 = nil - } -} - -// NewVideoEncodeH264RateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH264RateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeH264RateControlLayerInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH264RateControlLayerInfo) - obj.refc9f21e78 = (*C.VkVideoEncodeH264RateControlLayerInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH264RateControlLayerInfo) PassRef() (*C.VkVideoEncodeH264RateControlLayerInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refc9f21e78 != nil { - return x.refc9f21e78, nil - } - memc9f21e78 := allocVideoEncodeH264RateControlLayerInfoMemory(1) - refc9f21e78 := (*C.VkVideoEncodeH264RateControlLayerInfoEXT)(memc9f21e78) - allocsc9f21e78 := new(cgoAllocMap) - allocsc9f21e78.Add(memc9f21e78) - - var csType_allocs *cgoAllocMap - refc9f21e78.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc9f21e78.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refc9f21e78.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc9f21e78.Borrow(cpNext_allocs) - - var ctemporalLayerId_allocs *cgoAllocMap - refc9f21e78.temporalLayerId, ctemporalLayerId_allocs = (C.uint8_t)(x.TemporalLayerId), cgoAllocsUnknown - allocsc9f21e78.Borrow(ctemporalLayerId_allocs) - - var cuseInitialRcQp_allocs *cgoAllocMap - refc9f21e78.useInitialRcQp, cuseInitialRcQp_allocs = (C.VkBool32)(x.UseInitialRcQp), cgoAllocsUnknown - allocsc9f21e78.Borrow(cuseInitialRcQp_allocs) - - var cinitialRcQp_allocs *cgoAllocMap - refc9f21e78.initialRcQp, cinitialRcQp_allocs = x.InitialRcQp.PassValue() - allocsc9f21e78.Borrow(cinitialRcQp_allocs) - - var cuseMinQp_allocs *cgoAllocMap - refc9f21e78.useMinQp, cuseMinQp_allocs = (C.VkBool32)(x.UseMinQp), cgoAllocsUnknown - allocsc9f21e78.Borrow(cuseMinQp_allocs) - - var cminQp_allocs *cgoAllocMap - refc9f21e78.minQp, cminQp_allocs = x.MinQp.PassValue() - allocsc9f21e78.Borrow(cminQp_allocs) - - var cuseMaxQp_allocs *cgoAllocMap - refc9f21e78.useMaxQp, cuseMaxQp_allocs = (C.VkBool32)(x.UseMaxQp), cgoAllocsUnknown - allocsc9f21e78.Borrow(cuseMaxQp_allocs) - - var cmaxQp_allocs *cgoAllocMap - refc9f21e78.maxQp, cmaxQp_allocs = x.MaxQp.PassValue() - allocsc9f21e78.Borrow(cmaxQp_allocs) - - var cuseMaxFrameSize_allocs *cgoAllocMap - refc9f21e78.useMaxFrameSize, cuseMaxFrameSize_allocs = (C.VkBool32)(x.UseMaxFrameSize), cgoAllocsUnknown - allocsc9f21e78.Borrow(cuseMaxFrameSize_allocs) - - var cmaxFrameSize_allocs *cgoAllocMap - refc9f21e78.maxFrameSize, cmaxFrameSize_allocs = x.MaxFrameSize.PassValue() - allocsc9f21e78.Borrow(cmaxFrameSize_allocs) - - x.refc9f21e78 = refc9f21e78 - x.allocsc9f21e78 = allocsc9f21e78 - return refc9f21e78, allocsc9f21e78 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH264RateControlLayerInfo) PassValue() (C.VkVideoEncodeH264RateControlLayerInfoEXT, *cgoAllocMap) { - if x.refc9f21e78 != nil { - return *x.refc9f21e78, 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 *VideoEncodeH264RateControlLayerInfo) Deref() { - if x.refc9f21e78 == nil { - return - } - x.SType = (StructureType)(x.refc9f21e78.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc9f21e78.pNext)) - x.TemporalLayerId = (byte)(x.refc9f21e78.temporalLayerId) - x.UseInitialRcQp = (Bool32)(x.refc9f21e78.useInitialRcQp) - x.InitialRcQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.initialRcQp)) - x.UseMinQp = (Bool32)(x.refc9f21e78.useMinQp) - x.MinQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.minQp)) - x.UseMaxQp = (Bool32)(x.refc9f21e78.useMaxQp) - x.MaxQp = *NewVideoEncodeH264QpRef(unsafe.Pointer(&x.refc9f21e78.maxQp)) - x.UseMaxFrameSize = (Bool32)(x.refc9f21e78.useMaxFrameSize) - x.MaxFrameSize = *NewVideoEncodeH264FrameSizeRef(unsafe.Pointer(&x.refc9f21e78.maxFrameSize)) -} - -// allocVideoEncodeH265CapabilitiesMemory allocates memory for type C.VkVideoEncodeH265CapabilitiesEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265CapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265CapabilitiesValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265CapabilitiesValue = unsafe.Sizeof([1]C.VkVideoEncodeH265CapabilitiesEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265Capabilities) Ref() *C.VkVideoEncodeH265CapabilitiesEXT { - if x == nil { - return nil - } - return x.ref54d4cc75 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265Capabilities) Free() { - if x != nil && x.allocs54d4cc75 != nil { - x.allocs54d4cc75.(*cgoAllocMap).Free() - x.ref54d4cc75 = nil - } -} - -// NewVideoEncodeH265CapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265CapabilitiesRef(ref unsafe.Pointer) *VideoEncodeH265Capabilities { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265Capabilities) - obj.ref54d4cc75 = (*C.VkVideoEncodeH265CapabilitiesEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265Capabilities) PassRef() (*C.VkVideoEncodeH265CapabilitiesEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref54d4cc75 != nil { - return x.ref54d4cc75, nil - } - mem54d4cc75 := allocVideoEncodeH265CapabilitiesMemory(1) - ref54d4cc75 := (*C.VkVideoEncodeH265CapabilitiesEXT)(mem54d4cc75) - allocs54d4cc75 := new(cgoAllocMap) - allocs54d4cc75.Add(mem54d4cc75) - - var csType_allocs *cgoAllocMap - ref54d4cc75.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs54d4cc75.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref54d4cc75.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs54d4cc75.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref54d4cc75.flags, cflags_allocs = (C.VkVideoEncodeH265CapabilityFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs54d4cc75.Borrow(cflags_allocs) - - var cinputModeFlags_allocs *cgoAllocMap - ref54d4cc75.inputModeFlags, cinputModeFlags_allocs = (C.VkVideoEncodeH265InputModeFlagsEXT)(x.InputModeFlags), cgoAllocsUnknown - allocs54d4cc75.Borrow(cinputModeFlags_allocs) - - var coutputModeFlags_allocs *cgoAllocMap - ref54d4cc75.outputModeFlags, coutputModeFlags_allocs = (C.VkVideoEncodeH265OutputModeFlagsEXT)(x.OutputModeFlags), cgoAllocsUnknown - allocs54d4cc75.Borrow(coutputModeFlags_allocs) - - var cctbSizes_allocs *cgoAllocMap - ref54d4cc75.ctbSizes, cctbSizes_allocs = (C.VkVideoEncodeH265CtbSizeFlagsEXT)(x.CtbSizes), cgoAllocsUnknown - allocs54d4cc75.Borrow(cctbSizes_allocs) - - var ctransformBlockSizes_allocs *cgoAllocMap - ref54d4cc75.transformBlockSizes, ctransformBlockSizes_allocs = (C.VkVideoEncodeH265TransformBlockSizeFlagsEXT)(x.TransformBlockSizes), cgoAllocsUnknown - allocs54d4cc75.Borrow(ctransformBlockSizes_allocs) - - var cmaxPPictureL0ReferenceCount_allocs *cgoAllocMap - ref54d4cc75.maxPPictureL0ReferenceCount, cmaxPPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxPPictureL0ReferenceCount), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxPPictureL0ReferenceCount_allocs) - - var cmaxBPictureL0ReferenceCount_allocs *cgoAllocMap - ref54d4cc75.maxBPictureL0ReferenceCount, cmaxBPictureL0ReferenceCount_allocs = (C.uint8_t)(x.MaxBPictureL0ReferenceCount), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxBPictureL0ReferenceCount_allocs) - - var cmaxL1ReferenceCount_allocs *cgoAllocMap - ref54d4cc75.maxL1ReferenceCount, cmaxL1ReferenceCount_allocs = (C.uint8_t)(x.MaxL1ReferenceCount), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxL1ReferenceCount_allocs) - - var cmaxSubLayersCount_allocs *cgoAllocMap - ref54d4cc75.maxSubLayersCount, cmaxSubLayersCount_allocs = (C.uint8_t)(x.MaxSubLayersCount), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxSubLayersCount_allocs) - - var cminLog2MinLumaCodingBlockSizeMinus3_allocs *cgoAllocMap - ref54d4cc75.minLog2MinLumaCodingBlockSizeMinus3, cminLog2MinLumaCodingBlockSizeMinus3_allocs = (C.uint8_t)(x.MinLog2MinLumaCodingBlockSizeMinus3), cgoAllocsUnknown - allocs54d4cc75.Borrow(cminLog2MinLumaCodingBlockSizeMinus3_allocs) - - var cmaxLog2MinLumaCodingBlockSizeMinus3_allocs *cgoAllocMap - ref54d4cc75.maxLog2MinLumaCodingBlockSizeMinus3, cmaxLog2MinLumaCodingBlockSizeMinus3_allocs = (C.uint8_t)(x.MaxLog2MinLumaCodingBlockSizeMinus3), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxLog2MinLumaCodingBlockSizeMinus3_allocs) - - var cminLog2MinLumaTransformBlockSizeMinus2_allocs *cgoAllocMap - ref54d4cc75.minLog2MinLumaTransformBlockSizeMinus2, cminLog2MinLumaTransformBlockSizeMinus2_allocs = (C.uint8_t)(x.MinLog2MinLumaTransformBlockSizeMinus2), cgoAllocsUnknown - allocs54d4cc75.Borrow(cminLog2MinLumaTransformBlockSizeMinus2_allocs) - - var cmaxLog2MinLumaTransformBlockSizeMinus2_allocs *cgoAllocMap - ref54d4cc75.maxLog2MinLumaTransformBlockSizeMinus2, cmaxLog2MinLumaTransformBlockSizeMinus2_allocs = (C.uint8_t)(x.MaxLog2MinLumaTransformBlockSizeMinus2), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxLog2MinLumaTransformBlockSizeMinus2_allocs) - - var cminMaxTransformHierarchyDepthInter_allocs *cgoAllocMap - ref54d4cc75.minMaxTransformHierarchyDepthInter, cminMaxTransformHierarchyDepthInter_allocs = (C.uint8_t)(x.MinMaxTransformHierarchyDepthInter), cgoAllocsUnknown - allocs54d4cc75.Borrow(cminMaxTransformHierarchyDepthInter_allocs) - - var cmaxMaxTransformHierarchyDepthInter_allocs *cgoAllocMap - ref54d4cc75.maxMaxTransformHierarchyDepthInter, cmaxMaxTransformHierarchyDepthInter_allocs = (C.uint8_t)(x.MaxMaxTransformHierarchyDepthInter), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxMaxTransformHierarchyDepthInter_allocs) - - var cminMaxTransformHierarchyDepthIntra_allocs *cgoAllocMap - ref54d4cc75.minMaxTransformHierarchyDepthIntra, cminMaxTransformHierarchyDepthIntra_allocs = (C.uint8_t)(x.MinMaxTransformHierarchyDepthIntra), cgoAllocsUnknown - allocs54d4cc75.Borrow(cminMaxTransformHierarchyDepthIntra_allocs) - - var cmaxMaxTransformHierarchyDepthIntra_allocs *cgoAllocMap - ref54d4cc75.maxMaxTransformHierarchyDepthIntra, cmaxMaxTransformHierarchyDepthIntra_allocs = (C.uint8_t)(x.MaxMaxTransformHierarchyDepthIntra), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxMaxTransformHierarchyDepthIntra_allocs) - - var cmaxDiffCuQpDeltaDepth_allocs *cgoAllocMap - ref54d4cc75.maxDiffCuQpDeltaDepth, cmaxDiffCuQpDeltaDepth_allocs = (C.uint8_t)(x.MaxDiffCuQpDeltaDepth), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxDiffCuQpDeltaDepth_allocs) - - var cminMaxNumMergeCand_allocs *cgoAllocMap - ref54d4cc75.minMaxNumMergeCand, cminMaxNumMergeCand_allocs = (C.uint8_t)(x.MinMaxNumMergeCand), cgoAllocsUnknown - allocs54d4cc75.Borrow(cminMaxNumMergeCand_allocs) - - var cmaxMaxNumMergeCand_allocs *cgoAllocMap - ref54d4cc75.maxMaxNumMergeCand, cmaxMaxNumMergeCand_allocs = (C.uint8_t)(x.MaxMaxNumMergeCand), cgoAllocsUnknown - allocs54d4cc75.Borrow(cmaxMaxNumMergeCand_allocs) - - x.ref54d4cc75 = ref54d4cc75 - x.allocs54d4cc75 = allocs54d4cc75 - return ref54d4cc75, allocs54d4cc75 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265Capabilities) PassValue() (C.VkVideoEncodeH265CapabilitiesEXT, *cgoAllocMap) { - if x.ref54d4cc75 != nil { - return *x.ref54d4cc75, 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 *VideoEncodeH265Capabilities) Deref() { - if x.ref54d4cc75 == nil { - return - } - x.SType = (StructureType)(x.ref54d4cc75.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref54d4cc75.pNext)) - x.Flags = (VideoEncodeH265CapabilityFlags)(x.ref54d4cc75.flags) - x.InputModeFlags = (VideoEncodeH265InputModeFlags)(x.ref54d4cc75.inputModeFlags) - x.OutputModeFlags = (VideoEncodeH265OutputModeFlags)(x.ref54d4cc75.outputModeFlags) - x.CtbSizes = (VideoEncodeH265CtbSizeFlags)(x.ref54d4cc75.ctbSizes) - x.TransformBlockSizes = (VideoEncodeH265TransformBlockSizeFlags)(x.ref54d4cc75.transformBlockSizes) - x.MaxPPictureL0ReferenceCount = (byte)(x.ref54d4cc75.maxPPictureL0ReferenceCount) - x.MaxBPictureL0ReferenceCount = (byte)(x.ref54d4cc75.maxBPictureL0ReferenceCount) - x.MaxL1ReferenceCount = (byte)(x.ref54d4cc75.maxL1ReferenceCount) - x.MaxSubLayersCount = (byte)(x.ref54d4cc75.maxSubLayersCount) - x.MinLog2MinLumaCodingBlockSizeMinus3 = (byte)(x.ref54d4cc75.minLog2MinLumaCodingBlockSizeMinus3) - x.MaxLog2MinLumaCodingBlockSizeMinus3 = (byte)(x.ref54d4cc75.maxLog2MinLumaCodingBlockSizeMinus3) - x.MinLog2MinLumaTransformBlockSizeMinus2 = (byte)(x.ref54d4cc75.minLog2MinLumaTransformBlockSizeMinus2) - x.MaxLog2MinLumaTransformBlockSizeMinus2 = (byte)(x.ref54d4cc75.maxLog2MinLumaTransformBlockSizeMinus2) - x.MinMaxTransformHierarchyDepthInter = (byte)(x.ref54d4cc75.minMaxTransformHierarchyDepthInter) - x.MaxMaxTransformHierarchyDepthInter = (byte)(x.ref54d4cc75.maxMaxTransformHierarchyDepthInter) - x.MinMaxTransformHierarchyDepthIntra = (byte)(x.ref54d4cc75.minMaxTransformHierarchyDepthIntra) - x.MaxMaxTransformHierarchyDepthIntra = (byte)(x.ref54d4cc75.maxMaxTransformHierarchyDepthIntra) - x.MaxDiffCuQpDeltaDepth = (byte)(x.ref54d4cc75.maxDiffCuQpDeltaDepth) - x.MinMaxNumMergeCand = (byte)(x.ref54d4cc75.minMaxNumMergeCand) - x.MaxMaxNumMergeCand = (byte)(x.ref54d4cc75.maxMaxNumMergeCand) -} - -// allocVideoEncodeH265SessionParametersAddInfoMemory allocates memory for type C.VkVideoEncodeH265SessionParametersAddInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265SessionParametersAddInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265SessionParametersAddInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265SessionParametersAddInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265SessionParametersAddInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265SessionParametersAddInfo) Ref() *C.VkVideoEncodeH265SessionParametersAddInfoEXT { - if x == nil { - return nil - } - return x.ref9b5b2412 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265SessionParametersAddInfo) Free() { - if x != nil && x.allocs9b5b2412 != nil { - x.allocs9b5b2412.(*cgoAllocMap).Free() - x.ref9b5b2412 = nil - } -} - -// NewVideoEncodeH265SessionParametersAddInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265SessionParametersAddInfoRef(ref unsafe.Pointer) *VideoEncodeH265SessionParametersAddInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265SessionParametersAddInfo) - obj.ref9b5b2412 = (*C.VkVideoEncodeH265SessionParametersAddInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265SessionParametersAddInfo) PassRef() (*C.VkVideoEncodeH265SessionParametersAddInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref9b5b2412 != nil { - return x.ref9b5b2412, nil - } - mem9b5b2412 := allocVideoEncodeH265SessionParametersAddInfoMemory(1) - ref9b5b2412 := (*C.VkVideoEncodeH265SessionParametersAddInfoEXT)(mem9b5b2412) - allocs9b5b2412 := new(cgoAllocMap) - allocs9b5b2412.Add(mem9b5b2412) - - var csType_allocs *cgoAllocMap - ref9b5b2412.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9b5b2412.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9b5b2412.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9b5b2412.Borrow(cpNext_allocs) - - var cstdVPSCount_allocs *cgoAllocMap - ref9b5b2412.stdVPSCount, cstdVPSCount_allocs = (C.uint32_t)(x.StdVPSCount), cgoAllocsUnknown - allocs9b5b2412.Borrow(cstdVPSCount_allocs) - - var cstdSPSCount_allocs *cgoAllocMap - ref9b5b2412.stdSPSCount, cstdSPSCount_allocs = (C.uint32_t)(x.StdSPSCount), cgoAllocsUnknown - allocs9b5b2412.Borrow(cstdSPSCount_allocs) - - var cstdPPSCount_allocs *cgoAllocMap - ref9b5b2412.stdPPSCount, cstdPPSCount_allocs = (C.uint32_t)(x.StdPPSCount), cgoAllocsUnknown - allocs9b5b2412.Borrow(cstdPPSCount_allocs) - - x.ref9b5b2412 = ref9b5b2412 - x.allocs9b5b2412 = allocs9b5b2412 - return ref9b5b2412, allocs9b5b2412 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265SessionParametersAddInfo) PassValue() (C.VkVideoEncodeH265SessionParametersAddInfoEXT, *cgoAllocMap) { - if x.ref9b5b2412 != nil { - return *x.ref9b5b2412, 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 *VideoEncodeH265SessionParametersAddInfo) Deref() { - if x.ref9b5b2412 == nil { - return - } - x.SType = (StructureType)(x.ref9b5b2412.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9b5b2412.pNext)) - x.StdVPSCount = (uint32)(x.ref9b5b2412.stdVPSCount) - x.StdSPSCount = (uint32)(x.ref9b5b2412.stdSPSCount) - x.StdPPSCount = (uint32)(x.ref9b5b2412.stdPPSCount) -} - -// allocVideoEncodeH265SessionParametersCreateInfoMemory allocates memory for type C.VkVideoEncodeH265SessionParametersCreateInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265SessionParametersCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265SessionParametersCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265SessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265SessionParametersCreateInfoEXT{}) - -// unpackSVideoEncodeH265SessionParametersAddInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH265SessionParametersAddInfo(x []VideoEncodeH265SessionParametersAddInfo) (unpacked *C.VkVideoEncodeH265SessionParametersAddInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265SessionParametersAddInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH265SessionParametersAddInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH265SessionParametersAddInfoEXT)(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.VkVideoEncodeH265SessionParametersAddInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH265SessionParametersAddInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH265SessionParametersAddInfo(v []VideoEncodeH265SessionParametersAddInfo, ptr0 *C.VkVideoEncodeH265SessionParametersAddInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH265SessionParametersAddInfoValue]C.VkVideoEncodeH265SessionParametersAddInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH265SessionParametersAddInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265SessionParametersCreateInfo) Ref() *C.VkVideoEncodeH265SessionParametersCreateInfoEXT { - if x == nil { - return nil - } - return x.refd4a6e47c -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265SessionParametersCreateInfo) Free() { - if x != nil && x.allocsd4a6e47c != nil { - x.allocsd4a6e47c.(*cgoAllocMap).Free() - x.refd4a6e47c = nil - } -} - -// NewVideoEncodeH265SessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265SessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoEncodeH265SessionParametersCreateInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265SessionParametersCreateInfo) - obj.refd4a6e47c = (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265SessionParametersCreateInfo) PassRef() (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refd4a6e47c != nil { - return x.refd4a6e47c, nil - } - memd4a6e47c := allocVideoEncodeH265SessionParametersCreateInfoMemory(1) - refd4a6e47c := (*C.VkVideoEncodeH265SessionParametersCreateInfoEXT)(memd4a6e47c) - allocsd4a6e47c := new(cgoAllocMap) - allocsd4a6e47c.Add(memd4a6e47c) - - var csType_allocs *cgoAllocMap - refd4a6e47c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd4a6e47c.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refd4a6e47c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd4a6e47c.Borrow(cpNext_allocs) - - var cmaxStdVPSCount_allocs *cgoAllocMap - refd4a6e47c.maxStdVPSCount, cmaxStdVPSCount_allocs = (C.uint32_t)(x.MaxStdVPSCount), cgoAllocsUnknown - allocsd4a6e47c.Borrow(cmaxStdVPSCount_allocs) - - var cmaxStdSPSCount_allocs *cgoAllocMap - refd4a6e47c.maxStdSPSCount, cmaxStdSPSCount_allocs = (C.uint32_t)(x.MaxStdSPSCount), cgoAllocsUnknown - allocsd4a6e47c.Borrow(cmaxStdSPSCount_allocs) - - var cmaxStdPPSCount_allocs *cgoAllocMap - refd4a6e47c.maxStdPPSCount, cmaxStdPPSCount_allocs = (C.uint32_t)(x.MaxStdPPSCount), cgoAllocsUnknown - allocsd4a6e47c.Borrow(cmaxStdPPSCount_allocs) - - var cpParametersAddInfo_allocs *cgoAllocMap - refd4a6e47c.pParametersAddInfo, cpParametersAddInfo_allocs = unpackSVideoEncodeH265SessionParametersAddInfo(x.PParametersAddInfo) - allocsd4a6e47c.Borrow(cpParametersAddInfo_allocs) - - x.refd4a6e47c = refd4a6e47c - x.allocsd4a6e47c = allocsd4a6e47c - return refd4a6e47c, allocsd4a6e47c - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265SessionParametersCreateInfo) PassValue() (C.VkVideoEncodeH265SessionParametersCreateInfoEXT, *cgoAllocMap) { - if x.refd4a6e47c != nil { - return *x.refd4a6e47c, 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 *VideoEncodeH265SessionParametersCreateInfo) Deref() { - if x.refd4a6e47c == nil { - return - } - x.SType = (StructureType)(x.refd4a6e47c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd4a6e47c.pNext)) - x.MaxStdVPSCount = (uint32)(x.refd4a6e47c.maxStdVPSCount) - x.MaxStdSPSCount = (uint32)(x.refd4a6e47c.maxStdSPSCount) - x.MaxStdPPSCount = (uint32)(x.refd4a6e47c.maxStdPPSCount) - packSVideoEncodeH265SessionParametersAddInfo(x.PParametersAddInfo, x.refd4a6e47c.pParametersAddInfo) -} - -// allocVideoEncodeH265DpbSlotInfoMemory allocates memory for type C.VkVideoEncodeH265DpbSlotInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265DpbSlotInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265DpbSlotInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265DpbSlotInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265DpbSlotInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265DpbSlotInfo) Ref() *C.VkVideoEncodeH265DpbSlotInfoEXT { - if x == nil { - return nil - } - return x.refd24cdc3 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265DpbSlotInfo) Free() { - if x != nil && x.allocsd24cdc3 != nil { - x.allocsd24cdc3.(*cgoAllocMap).Free() - x.refd24cdc3 = nil - } -} - -// NewVideoEncodeH265DpbSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265DpbSlotInfoRef(ref unsafe.Pointer) *VideoEncodeH265DpbSlotInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265DpbSlotInfo) - obj.refd24cdc3 = (*C.VkVideoEncodeH265DpbSlotInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265DpbSlotInfo) PassRef() (*C.VkVideoEncodeH265DpbSlotInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refd24cdc3 != nil { - return x.refd24cdc3, nil - } - memd24cdc3 := allocVideoEncodeH265DpbSlotInfoMemory(1) - refd24cdc3 := (*C.VkVideoEncodeH265DpbSlotInfoEXT)(memd24cdc3) - allocsd24cdc3 := new(cgoAllocMap) - allocsd24cdc3.Add(memd24cdc3) - - var csType_allocs *cgoAllocMap - refd24cdc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd24cdc3.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refd24cdc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd24cdc3.Borrow(cpNext_allocs) - - var cslotIndex_allocs *cgoAllocMap - refd24cdc3.slotIndex, cslotIndex_allocs = (C.int8_t)(x.SlotIndex), cgoAllocsUnknown - allocsd24cdc3.Borrow(cslotIndex_allocs) - - x.refd24cdc3 = refd24cdc3 - x.allocsd24cdc3 = allocsd24cdc3 - return refd24cdc3, allocsd24cdc3 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265DpbSlotInfo) PassValue() (C.VkVideoEncodeH265DpbSlotInfoEXT, *cgoAllocMap) { - if x.refd24cdc3 != nil { - return *x.refd24cdc3, 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 *VideoEncodeH265DpbSlotInfo) Deref() { - if x.refd24cdc3 == nil { - return - } - x.SType = (StructureType)(x.refd24cdc3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd24cdc3.pNext)) - x.SlotIndex = (byte)(x.refd24cdc3.slotIndex) -} - -// allocVideoEncodeH265ReferenceListsInfoMemory allocates memory for type C.VkVideoEncodeH265ReferenceListsInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265ReferenceListsInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265ReferenceListsInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265ReferenceListsInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265ReferenceListsInfoEXT{}) - -// unpackSVideoEncodeH265DpbSlotInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH265DpbSlotInfo(x []VideoEncodeH265DpbSlotInfo) (unpacked *C.VkVideoEncodeH265DpbSlotInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265DpbSlotInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH265DpbSlotInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH265DpbSlotInfoEXT)(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.VkVideoEncodeH265DpbSlotInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH265DpbSlotInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH265DpbSlotInfo(v []VideoEncodeH265DpbSlotInfo, ptr0 *C.VkVideoEncodeH265DpbSlotInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH265DpbSlotInfoValue]C.VkVideoEncodeH265DpbSlotInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH265DpbSlotInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265ReferenceListsInfo) Ref() *C.VkVideoEncodeH265ReferenceListsInfoEXT { - if x == nil { - return nil - } - return x.ref86d63cc5 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265ReferenceListsInfo) Free() { - if x != nil && x.allocs86d63cc5 != nil { - x.allocs86d63cc5.(*cgoAllocMap).Free() - x.ref86d63cc5 = nil - } -} - -// NewVideoEncodeH265ReferenceListsInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265ReferenceListsInfoRef(ref unsafe.Pointer) *VideoEncodeH265ReferenceListsInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265ReferenceListsInfo) - obj.ref86d63cc5 = (*C.VkVideoEncodeH265ReferenceListsInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265ReferenceListsInfo) PassRef() (*C.VkVideoEncodeH265ReferenceListsInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref86d63cc5 != nil { - return x.ref86d63cc5, nil - } - mem86d63cc5 := allocVideoEncodeH265ReferenceListsInfoMemory(1) - ref86d63cc5 := (*C.VkVideoEncodeH265ReferenceListsInfoEXT)(mem86d63cc5) - allocs86d63cc5 := new(cgoAllocMap) - allocs86d63cc5.Add(mem86d63cc5) - - var csType_allocs *cgoAllocMap - ref86d63cc5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86d63cc5.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref86d63cc5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86d63cc5.Borrow(cpNext_allocs) - - var creferenceList0EntryCount_allocs *cgoAllocMap - ref86d63cc5.referenceList0EntryCount, creferenceList0EntryCount_allocs = (C.uint8_t)(x.ReferenceList0EntryCount), cgoAllocsUnknown - allocs86d63cc5.Borrow(creferenceList0EntryCount_allocs) - - var cpReferenceList0Entries_allocs *cgoAllocMap - ref86d63cc5.pReferenceList0Entries, cpReferenceList0Entries_allocs = unpackSVideoEncodeH265DpbSlotInfo(x.PReferenceList0Entries) - allocs86d63cc5.Borrow(cpReferenceList0Entries_allocs) - - var creferenceList1EntryCount_allocs *cgoAllocMap - ref86d63cc5.referenceList1EntryCount, creferenceList1EntryCount_allocs = (C.uint8_t)(x.ReferenceList1EntryCount), cgoAllocsUnknown - allocs86d63cc5.Borrow(creferenceList1EntryCount_allocs) - - var cpReferenceList1Entries_allocs *cgoAllocMap - ref86d63cc5.pReferenceList1Entries, cpReferenceList1Entries_allocs = unpackSVideoEncodeH265DpbSlotInfo(x.PReferenceList1Entries) - allocs86d63cc5.Borrow(cpReferenceList1Entries_allocs) - - x.ref86d63cc5 = ref86d63cc5 - x.allocs86d63cc5 = allocs86d63cc5 - return ref86d63cc5, allocs86d63cc5 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265ReferenceListsInfo) PassValue() (C.VkVideoEncodeH265ReferenceListsInfoEXT, *cgoAllocMap) { - if x.ref86d63cc5 != nil { - return *x.ref86d63cc5, 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 *VideoEncodeH265ReferenceListsInfo) Deref() { - if x.ref86d63cc5 == nil { - return - } - x.SType = (StructureType)(x.ref86d63cc5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86d63cc5.pNext)) - x.ReferenceList0EntryCount = (byte)(x.ref86d63cc5.referenceList0EntryCount) - packSVideoEncodeH265DpbSlotInfo(x.PReferenceList0Entries, x.ref86d63cc5.pReferenceList0Entries) - x.ReferenceList1EntryCount = (byte)(x.ref86d63cc5.referenceList1EntryCount) - packSVideoEncodeH265DpbSlotInfo(x.PReferenceList1Entries, x.ref86d63cc5.pReferenceList1Entries) -} - -// allocVideoEncodeH265NaluSliceSegmentInfoMemory allocates memory for type C.VkVideoEncodeH265NaluSliceSegmentInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265NaluSliceSegmentInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265NaluSliceSegmentInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265NaluSliceSegmentInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT{}) - -// unpackSVideoEncodeH265ReferenceListsInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH265ReferenceListsInfo(x []VideoEncodeH265ReferenceListsInfo) (unpacked *C.VkVideoEncodeH265ReferenceListsInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265ReferenceListsInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH265ReferenceListsInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH265ReferenceListsInfoEXT)(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.VkVideoEncodeH265ReferenceListsInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH265ReferenceListsInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH265ReferenceListsInfo(v []VideoEncodeH265ReferenceListsInfo, ptr0 *C.VkVideoEncodeH265ReferenceListsInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH265ReferenceListsInfoValue]C.VkVideoEncodeH265ReferenceListsInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH265ReferenceListsInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265NaluSliceSegmentInfo) Ref() *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT { - if x == nil { - return nil - } - return x.refc6dca7f8 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265NaluSliceSegmentInfo) Free() { - if x != nil && x.allocsc6dca7f8 != nil { - x.allocsc6dca7f8.(*cgoAllocMap).Free() - x.refc6dca7f8 = nil - } -} - -// NewVideoEncodeH265NaluSliceSegmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265NaluSliceSegmentInfoRef(ref unsafe.Pointer) *VideoEncodeH265NaluSliceSegmentInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265NaluSliceSegmentInfo) - obj.refc6dca7f8 = (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265NaluSliceSegmentInfo) PassRef() (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refc6dca7f8 != nil { - return x.refc6dca7f8, nil - } - memc6dca7f8 := allocVideoEncodeH265NaluSliceSegmentInfoMemory(1) - refc6dca7f8 := (*C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(memc6dca7f8) - allocsc6dca7f8 := new(cgoAllocMap) - allocsc6dca7f8.Add(memc6dca7f8) - - var csType_allocs *cgoAllocMap - refc6dca7f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc6dca7f8.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refc6dca7f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc6dca7f8.Borrow(cpNext_allocs) - - var cctbCount_allocs *cgoAllocMap - refc6dca7f8.ctbCount, cctbCount_allocs = (C.uint32_t)(x.CtbCount), cgoAllocsUnknown - allocsc6dca7f8.Borrow(cctbCount_allocs) - - var cpReferenceFinalLists_allocs *cgoAllocMap - refc6dca7f8.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists) - allocsc6dca7f8.Borrow(cpReferenceFinalLists_allocs) - - x.refc6dca7f8 = refc6dca7f8 - x.allocsc6dca7f8 = allocsc6dca7f8 - return refc6dca7f8, allocsc6dca7f8 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265NaluSliceSegmentInfo) PassValue() (C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, *cgoAllocMap) { - if x.refc6dca7f8 != nil { - return *x.refc6dca7f8, 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 *VideoEncodeH265NaluSliceSegmentInfo) Deref() { - if x.refc6dca7f8 == nil { - return - } - x.SType = (StructureType)(x.refc6dca7f8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc6dca7f8.pNext)) - x.CtbCount = (uint32)(x.refc6dca7f8.ctbCount) - packSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists, x.refc6dca7f8.pReferenceFinalLists) -} - -// allocVideoEncodeH265VclFrameInfoMemory allocates memory for type C.VkVideoEncodeH265VclFrameInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265VclFrameInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265VclFrameInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265VclFrameInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265VclFrameInfoEXT{}) - -// unpackSVideoEncodeH265NaluSliceSegmentInfo transforms a sliced Go data structure into plain C format. -func unpackSVideoEncodeH265NaluSliceSegmentInfo(x []VideoEncodeH265NaluSliceSegmentInfo) (unpacked *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoEncodeH265NaluSliceSegmentInfoEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVideoEncodeH265NaluSliceSegmentInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(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.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(h.Data) - return -} - -// packSVideoEncodeH265NaluSliceSegmentInfo reads sliced Go data structure out from plain C format. -func packSVideoEncodeH265NaluSliceSegmentInfo(v []VideoEncodeH265NaluSliceSegmentInfo, ptr0 *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVideoEncodeH265NaluSliceSegmentInfoValue]C.VkVideoEncodeH265NaluSliceSegmentInfoEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVideoEncodeH265NaluSliceSegmentInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265VclFrameInfo) Ref() *C.VkVideoEncodeH265VclFrameInfoEXT { - if x == nil { - return nil - } - return x.reff460e7a4 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265VclFrameInfo) Free() { - if x != nil && x.allocsf460e7a4 != nil { - x.allocsf460e7a4.(*cgoAllocMap).Free() - x.reff460e7a4 = nil - } -} - -// NewVideoEncodeH265VclFrameInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265VclFrameInfoRef(ref unsafe.Pointer) *VideoEncodeH265VclFrameInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265VclFrameInfo) - obj.reff460e7a4 = (*C.VkVideoEncodeH265VclFrameInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265VclFrameInfo) PassRef() (*C.VkVideoEncodeH265VclFrameInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reff460e7a4 != nil { - return x.reff460e7a4, nil - } - memf460e7a4 := allocVideoEncodeH265VclFrameInfoMemory(1) - reff460e7a4 := (*C.VkVideoEncodeH265VclFrameInfoEXT)(memf460e7a4) - allocsf460e7a4 := new(cgoAllocMap) - allocsf460e7a4.Add(memf460e7a4) - - var csType_allocs *cgoAllocMap - reff460e7a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf460e7a4.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reff460e7a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf460e7a4.Borrow(cpNext_allocs) - - var cpReferenceFinalLists_allocs *cgoAllocMap - reff460e7a4.pReferenceFinalLists, cpReferenceFinalLists_allocs = unpackSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists) - allocsf460e7a4.Borrow(cpReferenceFinalLists_allocs) - - var cnaluSliceSegmentEntryCount_allocs *cgoAllocMap - reff460e7a4.naluSliceSegmentEntryCount, cnaluSliceSegmentEntryCount_allocs = (C.uint32_t)(x.NaluSliceSegmentEntryCount), cgoAllocsUnknown - allocsf460e7a4.Borrow(cnaluSliceSegmentEntryCount_allocs) - - var cpNaluSliceSegmentEntries_allocs *cgoAllocMap - reff460e7a4.pNaluSliceSegmentEntries, cpNaluSliceSegmentEntries_allocs = unpackSVideoEncodeH265NaluSliceSegmentInfo(x.PNaluSliceSegmentEntries) - allocsf460e7a4.Borrow(cpNaluSliceSegmentEntries_allocs) - - x.reff460e7a4 = reff460e7a4 - x.allocsf460e7a4 = allocsf460e7a4 - return reff460e7a4, allocsf460e7a4 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265VclFrameInfo) PassValue() (C.VkVideoEncodeH265VclFrameInfoEXT, *cgoAllocMap) { - if x.reff460e7a4 != nil { - return *x.reff460e7a4, 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 *VideoEncodeH265VclFrameInfo) Deref() { - if x.reff460e7a4 == nil { - return - } - x.SType = (StructureType)(x.reff460e7a4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff460e7a4.pNext)) - packSVideoEncodeH265ReferenceListsInfo(x.PReferenceFinalLists, x.reff460e7a4.pReferenceFinalLists) - x.NaluSliceSegmentEntryCount = (uint32)(x.reff460e7a4.naluSliceSegmentEntryCount) - packSVideoEncodeH265NaluSliceSegmentInfo(x.PNaluSliceSegmentEntries, x.reff460e7a4.pNaluSliceSegmentEntries) -} - -// allocVideoEncodeH265EmitPictureParametersInfoMemory allocates memory for type C.VkVideoEncodeH265EmitPictureParametersInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265EmitPictureParametersInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265EmitPictureParametersInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265EmitPictureParametersInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265EmitPictureParametersInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265EmitPictureParametersInfo) Ref() *C.VkVideoEncodeH265EmitPictureParametersInfoEXT { - if x == nil { - return nil - } - return x.refdcd5e3b -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265EmitPictureParametersInfo) Free() { - if x != nil && x.allocsdcd5e3b != nil { - x.allocsdcd5e3b.(*cgoAllocMap).Free() - x.refdcd5e3b = nil - } -} - -// NewVideoEncodeH265EmitPictureParametersInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265EmitPictureParametersInfoRef(ref unsafe.Pointer) *VideoEncodeH265EmitPictureParametersInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265EmitPictureParametersInfo) - obj.refdcd5e3b = (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265EmitPictureParametersInfo) PassRef() (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refdcd5e3b != nil { - return x.refdcd5e3b, nil - } - memdcd5e3b := allocVideoEncodeH265EmitPictureParametersInfoMemory(1) - refdcd5e3b := (*C.VkVideoEncodeH265EmitPictureParametersInfoEXT)(memdcd5e3b) - allocsdcd5e3b := new(cgoAllocMap) - allocsdcd5e3b.Add(memdcd5e3b) - - var csType_allocs *cgoAllocMap - refdcd5e3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdcd5e3b.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refdcd5e3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cpNext_allocs) - - var cvpsId_allocs *cgoAllocMap - refdcd5e3b.vpsId, cvpsId_allocs = (C.uint8_t)(x.VpsId), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cvpsId_allocs) - - var cspsId_allocs *cgoAllocMap - refdcd5e3b.spsId, cspsId_allocs = (C.uint8_t)(x.SpsId), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cspsId_allocs) - - var cemitVpsEnable_allocs *cgoAllocMap - refdcd5e3b.emitVpsEnable, cemitVpsEnable_allocs = (C.VkBool32)(x.EmitVpsEnable), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cemitVpsEnable_allocs) - - var cemitSpsEnable_allocs *cgoAllocMap - refdcd5e3b.emitSpsEnable, cemitSpsEnable_allocs = (C.VkBool32)(x.EmitSpsEnable), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cemitSpsEnable_allocs) - - var cppsIdEntryCount_allocs *cgoAllocMap - refdcd5e3b.ppsIdEntryCount, cppsIdEntryCount_allocs = (C.uint32_t)(x.PpsIdEntryCount), cgoAllocsUnknown - allocsdcd5e3b.Borrow(cppsIdEntryCount_allocs) - - var cppsIdEntries_allocs *cgoAllocMap - refdcd5e3b.ppsIdEntries, cppsIdEntries_allocs = unpackPUint8_tString(x.PpsIdEntries) - allocsdcd5e3b.Borrow(cppsIdEntries_allocs) - - x.refdcd5e3b = refdcd5e3b - x.allocsdcd5e3b = allocsdcd5e3b - return refdcd5e3b, allocsdcd5e3b - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265EmitPictureParametersInfo) PassValue() (C.VkVideoEncodeH265EmitPictureParametersInfoEXT, *cgoAllocMap) { - if x.refdcd5e3b != nil { - return *x.refdcd5e3b, 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 *VideoEncodeH265EmitPictureParametersInfo) Deref() { - if x.refdcd5e3b == nil { - return - } - x.SType = (StructureType)(x.refdcd5e3b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdcd5e3b.pNext)) - x.VpsId = (byte)(x.refdcd5e3b.vpsId) - x.SpsId = (byte)(x.refdcd5e3b.spsId) - x.EmitVpsEnable = (Bool32)(x.refdcd5e3b.emitVpsEnable) - x.EmitSpsEnable = (Bool32)(x.refdcd5e3b.emitSpsEnable) - x.PpsIdEntryCount = (uint32)(x.refdcd5e3b.ppsIdEntryCount) - x.PpsIdEntries = packPUint8_tString(x.refdcd5e3b.ppsIdEntries) -} - -// allocVideoEncodeH265ProfileInfoMemory allocates memory for type C.VkVideoEncodeH265ProfileInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265ProfileInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265ProfileInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265ProfileInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265ProfileInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265ProfileInfo) Ref() *C.VkVideoEncodeH265ProfileInfoEXT { - if x == nil { - return nil - } - return x.refba41eb7b -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265ProfileInfo) Free() { - if x != nil && x.allocsba41eb7b != nil { - x.allocsba41eb7b.(*cgoAllocMap).Free() - x.refba41eb7b = nil - } -} - -// NewVideoEncodeH265ProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265ProfileInfoRef(ref unsafe.Pointer) *VideoEncodeH265ProfileInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265ProfileInfo) - obj.refba41eb7b = (*C.VkVideoEncodeH265ProfileInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265ProfileInfo) PassRef() (*C.VkVideoEncodeH265ProfileInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refba41eb7b != nil { - return x.refba41eb7b, nil - } - memba41eb7b := allocVideoEncodeH265ProfileInfoMemory(1) - refba41eb7b := (*C.VkVideoEncodeH265ProfileInfoEXT)(memba41eb7b) - allocsba41eb7b := new(cgoAllocMap) - allocsba41eb7b.Add(memba41eb7b) - - var csType_allocs *cgoAllocMap - refba41eb7b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsba41eb7b.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refba41eb7b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsba41eb7b.Borrow(cpNext_allocs) - - x.refba41eb7b = refba41eb7b - x.allocsba41eb7b = allocsba41eb7b - return refba41eb7b, allocsba41eb7b - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265ProfileInfo) PassValue() (C.VkVideoEncodeH265ProfileInfoEXT, *cgoAllocMap) { - if x.refba41eb7b != nil { - return *x.refba41eb7b, 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 *VideoEncodeH265ProfileInfo) Deref() { - if x.refba41eb7b == nil { - return - } - x.SType = (StructureType)(x.refba41eb7b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba41eb7b.pNext)) -} - -// allocVideoEncodeH265RateControlInfoMemory allocates memory for type C.VkVideoEncodeH265RateControlInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265RateControlInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265RateControlInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265RateControlInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265RateControlInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265RateControlInfo) Ref() *C.VkVideoEncodeH265RateControlInfoEXT { - if x == nil { - return nil - } - return x.reffcdc069d -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265RateControlInfo) Free() { - if x != nil && x.allocsfcdc069d != nil { - x.allocsfcdc069d.(*cgoAllocMap).Free() - x.reffcdc069d = nil - } -} - -// NewVideoEncodeH265RateControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265RateControlInfoRef(ref unsafe.Pointer) *VideoEncodeH265RateControlInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265RateControlInfo) - obj.reffcdc069d = (*C.VkVideoEncodeH265RateControlInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265RateControlInfo) PassRef() (*C.VkVideoEncodeH265RateControlInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reffcdc069d != nil { - return x.reffcdc069d, nil - } - memfcdc069d := allocVideoEncodeH265RateControlInfoMemory(1) - reffcdc069d := (*C.VkVideoEncodeH265RateControlInfoEXT)(memfcdc069d) - allocsfcdc069d := new(cgoAllocMap) - allocsfcdc069d.Add(memfcdc069d) - - var csType_allocs *cgoAllocMap - reffcdc069d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfcdc069d.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reffcdc069d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfcdc069d.Borrow(cpNext_allocs) - - var cgopFrameCount_allocs *cgoAllocMap - reffcdc069d.gopFrameCount, cgopFrameCount_allocs = (C.uint32_t)(x.GopFrameCount), cgoAllocsUnknown - allocsfcdc069d.Borrow(cgopFrameCount_allocs) - - var cidrPeriod_allocs *cgoAllocMap - reffcdc069d.idrPeriod, cidrPeriod_allocs = (C.uint32_t)(x.IdrPeriod), cgoAllocsUnknown - allocsfcdc069d.Borrow(cidrPeriod_allocs) - - var cconsecutiveBFrameCount_allocs *cgoAllocMap - reffcdc069d.consecutiveBFrameCount, cconsecutiveBFrameCount_allocs = (C.uint32_t)(x.ConsecutiveBFrameCount), cgoAllocsUnknown - allocsfcdc069d.Borrow(cconsecutiveBFrameCount_allocs) - - var crateControlStructure_allocs *cgoAllocMap - reffcdc069d.rateControlStructure, crateControlStructure_allocs = (C.VkVideoEncodeH265RateControlStructureEXT)(x.RateControlStructure), cgoAllocsUnknown - allocsfcdc069d.Borrow(crateControlStructure_allocs) - - var csubLayerCount_allocs *cgoAllocMap - reffcdc069d.subLayerCount, csubLayerCount_allocs = (C.uint8_t)(x.SubLayerCount), cgoAllocsUnknown - allocsfcdc069d.Borrow(csubLayerCount_allocs) - - x.reffcdc069d = reffcdc069d - x.allocsfcdc069d = allocsfcdc069d - return reffcdc069d, allocsfcdc069d - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265RateControlInfo) PassValue() (C.VkVideoEncodeH265RateControlInfoEXT, *cgoAllocMap) { - if x.reffcdc069d != nil { - return *x.reffcdc069d, 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 *VideoEncodeH265RateControlInfo) Deref() { - if x.reffcdc069d == nil { - return - } - x.SType = (StructureType)(x.reffcdc069d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffcdc069d.pNext)) - x.GopFrameCount = (uint32)(x.reffcdc069d.gopFrameCount) - x.IdrPeriod = (uint32)(x.reffcdc069d.idrPeriod) - x.ConsecutiveBFrameCount = (uint32)(x.reffcdc069d.consecutiveBFrameCount) - x.RateControlStructure = (VideoEncodeH265RateControlStructure)(x.reffcdc069d.rateControlStructure) - x.SubLayerCount = (byte)(x.reffcdc069d.subLayerCount) -} - -// allocVideoEncodeH265QpMemory allocates memory for type C.VkVideoEncodeH265QpEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265QpMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265QpValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265QpValue = unsafe.Sizeof([1]C.VkVideoEncodeH265QpEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265Qp) Ref() *C.VkVideoEncodeH265QpEXT { - if x == nil { - return nil - } - return x.ref72c7618 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265Qp) Free() { - if x != nil && x.allocs72c7618 != nil { - x.allocs72c7618.(*cgoAllocMap).Free() - x.ref72c7618 = nil - } -} - -// NewVideoEncodeH265QpRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265QpRef(ref unsafe.Pointer) *VideoEncodeH265Qp { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265Qp) - obj.ref72c7618 = (*C.VkVideoEncodeH265QpEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265Qp) PassRef() (*C.VkVideoEncodeH265QpEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref72c7618 != nil { - return x.ref72c7618, nil - } - mem72c7618 := allocVideoEncodeH265QpMemory(1) - ref72c7618 := (*C.VkVideoEncodeH265QpEXT)(mem72c7618) - allocs72c7618 := new(cgoAllocMap) - allocs72c7618.Add(mem72c7618) - - var cqpI_allocs *cgoAllocMap - ref72c7618.qpI, cqpI_allocs = (C.int32_t)(x.QpI), cgoAllocsUnknown - allocs72c7618.Borrow(cqpI_allocs) - - var cqpP_allocs *cgoAllocMap - ref72c7618.qpP, cqpP_allocs = (C.int32_t)(x.QpP), cgoAllocsUnknown - allocs72c7618.Borrow(cqpP_allocs) - - var cqpB_allocs *cgoAllocMap - ref72c7618.qpB, cqpB_allocs = (C.int32_t)(x.QpB), cgoAllocsUnknown - allocs72c7618.Borrow(cqpB_allocs) - - x.ref72c7618 = ref72c7618 - x.allocs72c7618 = allocs72c7618 - return ref72c7618, allocs72c7618 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265Qp) PassValue() (C.VkVideoEncodeH265QpEXT, *cgoAllocMap) { - if x.ref72c7618 != nil { - return *x.ref72c7618, 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 *VideoEncodeH265Qp) Deref() { - if x.ref72c7618 == nil { - return - } - x.QpI = (int32)(x.ref72c7618.qpI) - x.QpP = (int32)(x.ref72c7618.qpP) - x.QpB = (int32)(x.ref72c7618.qpB) -} - -// allocVideoEncodeH265FrameSizeMemory allocates memory for type C.VkVideoEncodeH265FrameSizeEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265FrameSizeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265FrameSizeValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265FrameSizeValue = unsafe.Sizeof([1]C.VkVideoEncodeH265FrameSizeEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265FrameSize) Ref() *C.VkVideoEncodeH265FrameSizeEXT { - if x == nil { - return nil - } - return x.ref2c328eac -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265FrameSize) Free() { - if x != nil && x.allocs2c328eac != nil { - x.allocs2c328eac.(*cgoAllocMap).Free() - x.ref2c328eac = nil - } -} - -// NewVideoEncodeH265FrameSizeRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265FrameSizeRef(ref unsafe.Pointer) *VideoEncodeH265FrameSize { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265FrameSize) - obj.ref2c328eac = (*C.VkVideoEncodeH265FrameSizeEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265FrameSize) PassRef() (*C.VkVideoEncodeH265FrameSizeEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref2c328eac != nil { - return x.ref2c328eac, nil - } - mem2c328eac := allocVideoEncodeH265FrameSizeMemory(1) - ref2c328eac := (*C.VkVideoEncodeH265FrameSizeEXT)(mem2c328eac) - allocs2c328eac := new(cgoAllocMap) - allocs2c328eac.Add(mem2c328eac) - - var cframeISize_allocs *cgoAllocMap - ref2c328eac.frameISize, cframeISize_allocs = (C.uint32_t)(x.FrameISize), cgoAllocsUnknown - allocs2c328eac.Borrow(cframeISize_allocs) - - var cframePSize_allocs *cgoAllocMap - ref2c328eac.framePSize, cframePSize_allocs = (C.uint32_t)(x.FramePSize), cgoAllocsUnknown - allocs2c328eac.Borrow(cframePSize_allocs) - - var cframeBSize_allocs *cgoAllocMap - ref2c328eac.frameBSize, cframeBSize_allocs = (C.uint32_t)(x.FrameBSize), cgoAllocsUnknown - allocs2c328eac.Borrow(cframeBSize_allocs) - - x.ref2c328eac = ref2c328eac - x.allocs2c328eac = allocs2c328eac - return ref2c328eac, allocs2c328eac - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265FrameSize) PassValue() (C.VkVideoEncodeH265FrameSizeEXT, *cgoAllocMap) { - if x.ref2c328eac != nil { - return *x.ref2c328eac, 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 *VideoEncodeH265FrameSize) Deref() { - if x.ref2c328eac == nil { - return - } - x.FrameISize = (uint32)(x.ref2c328eac.frameISize) - x.FramePSize = (uint32)(x.ref2c328eac.framePSize) - x.FrameBSize = (uint32)(x.ref2c328eac.frameBSize) -} - -// allocVideoEncodeH265RateControlLayerInfoMemory allocates memory for type C.VkVideoEncodeH265RateControlLayerInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocVideoEncodeH265RateControlLayerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEncodeH265RateControlLayerInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfVideoEncodeH265RateControlLayerInfoValue = unsafe.Sizeof([1]C.VkVideoEncodeH265RateControlLayerInfoEXT{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VideoEncodeH265RateControlLayerInfo) Ref() *C.VkVideoEncodeH265RateControlLayerInfoEXT { - if x == nil { - return nil - } - return x.ref48d77b5f -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *VideoEncodeH265RateControlLayerInfo) Free() { - if x != nil && x.allocs48d77b5f != nil { - x.allocs48d77b5f.(*cgoAllocMap).Free() - x.ref48d77b5f = nil - } -} - -// NewVideoEncodeH265RateControlLayerInfoRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewVideoEncodeH265RateControlLayerInfoRef(ref unsafe.Pointer) *VideoEncodeH265RateControlLayerInfo { - if ref == nil { - return nil - } - obj := new(VideoEncodeH265RateControlLayerInfo) - obj.ref48d77b5f = (*C.VkVideoEncodeH265RateControlLayerInfoEXT)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *VideoEncodeH265RateControlLayerInfo) PassRef() (*C.VkVideoEncodeH265RateControlLayerInfoEXT, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref48d77b5f != nil { - return x.ref48d77b5f, nil - } - mem48d77b5f := allocVideoEncodeH265RateControlLayerInfoMemory(1) - ref48d77b5f := (*C.VkVideoEncodeH265RateControlLayerInfoEXT)(mem48d77b5f) - allocs48d77b5f := new(cgoAllocMap) - allocs48d77b5f.Add(mem48d77b5f) - - var csType_allocs *cgoAllocMap - ref48d77b5f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs48d77b5f.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref48d77b5f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs48d77b5f.Borrow(cpNext_allocs) - - var ctemporalId_allocs *cgoAllocMap - ref48d77b5f.temporalId, ctemporalId_allocs = (C.uint8_t)(x.TemporalId), cgoAllocsUnknown - allocs48d77b5f.Borrow(ctemporalId_allocs) - - var cuseInitialRcQp_allocs *cgoAllocMap - ref48d77b5f.useInitialRcQp, cuseInitialRcQp_allocs = (C.VkBool32)(x.UseInitialRcQp), cgoAllocsUnknown - allocs48d77b5f.Borrow(cuseInitialRcQp_allocs) - - var cinitialRcQp_allocs *cgoAllocMap - ref48d77b5f.initialRcQp, cinitialRcQp_allocs = x.InitialRcQp.PassValue() - allocs48d77b5f.Borrow(cinitialRcQp_allocs) - - var cuseMinQp_allocs *cgoAllocMap - ref48d77b5f.useMinQp, cuseMinQp_allocs = (C.VkBool32)(x.UseMinQp), cgoAllocsUnknown - allocs48d77b5f.Borrow(cuseMinQp_allocs) - - var cminQp_allocs *cgoAllocMap - ref48d77b5f.minQp, cminQp_allocs = x.MinQp.PassValue() - allocs48d77b5f.Borrow(cminQp_allocs) - - var cuseMaxQp_allocs *cgoAllocMap - ref48d77b5f.useMaxQp, cuseMaxQp_allocs = (C.VkBool32)(x.UseMaxQp), cgoAllocsUnknown - allocs48d77b5f.Borrow(cuseMaxQp_allocs) - - var cmaxQp_allocs *cgoAllocMap - ref48d77b5f.maxQp, cmaxQp_allocs = x.MaxQp.PassValue() - allocs48d77b5f.Borrow(cmaxQp_allocs) - - var cuseMaxFrameSize_allocs *cgoAllocMap - ref48d77b5f.useMaxFrameSize, cuseMaxFrameSize_allocs = (C.VkBool32)(x.UseMaxFrameSize), cgoAllocsUnknown - allocs48d77b5f.Borrow(cuseMaxFrameSize_allocs) - - var cmaxFrameSize_allocs *cgoAllocMap - ref48d77b5f.maxFrameSize, cmaxFrameSize_allocs = x.MaxFrameSize.PassValue() - allocs48d77b5f.Borrow(cmaxFrameSize_allocs) - - x.ref48d77b5f = ref48d77b5f - x.allocs48d77b5f = allocs48d77b5f - return ref48d77b5f, allocs48d77b5f - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VideoEncodeH265RateControlLayerInfo) PassValue() (C.VkVideoEncodeH265RateControlLayerInfoEXT, *cgoAllocMap) { - if x.ref48d77b5f != nil { - return *x.ref48d77b5f, 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 *VideoEncodeH265RateControlLayerInfo) Deref() { - if x.ref48d77b5f == nil { - return - } - x.SType = (StructureType)(x.ref48d77b5f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48d77b5f.pNext)) - x.TemporalId = (byte)(x.ref48d77b5f.temporalId) - x.UseInitialRcQp = (Bool32)(x.ref48d77b5f.useInitialRcQp) - x.InitialRcQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.initialRcQp)) - x.UseMinQp = (Bool32)(x.ref48d77b5f.useMinQp) - x.MinQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.minQp)) - x.UseMaxQp = (Bool32)(x.ref48d77b5f.useMaxQp) - x.MaxQp = *NewVideoEncodeH265QpRef(unsafe.Pointer(&x.ref48d77b5f.maxQp)) - x.UseMaxFrameSize = (Bool32)(x.ref48d77b5f.useMaxFrameSize) - x.MaxFrameSize = *NewVideoEncodeH265FrameSizeRef(unsafe.Pointer(&x.ref48d77b5f.maxFrameSize)) -} - // unpackArgSQueueFamilyProperties transforms a sliced Go data structure into plain C format. func unpackArgSQueueFamilyProperties(x []QueueFamilyProperties) (unpacked *C.VkQueueFamilyProperties, allocs *cgoAllocMap) { if x == nil { diff --git a/cgo_helpers.h b/cgo_helpers.h index 17806eb..4843e46 100644 --- a/cgo_helpers.h +++ b/cgo_helpers.h @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Thu, 09 Feb 2023 23:47:41 PST. +// 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" diff --git a/const.go b/const.go index 1028509..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 Thu, 09 Feb 2023 23:47:41 PST. +// 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 @@ -17,10 +17,10 @@ package vulkan import "C" const ( - // NoPrototypes as defined in vulkan/:24 - NoPrototypes = 1 - // EnableBetaExtensions as defined in vulkan/:25 + // EnableBetaExtensions as defined in vulkan/:24 EnableBetaExtensions = 1 + // NoPrototypes as defined in vulkan/:25 + NoPrototypes = 1 // Version10 as defined in vulkan/vulkan_core.h:22 Version10 = 1 // Use64BitPtrDefines as defined in vulkan/vulkan_core.h:30 @@ -115,1364 +115,1318 @@ const ( KhrVideoDecodeQueueSpecVersion = 7 // KhrVideoDecodeQueueExtensionName as defined in vulkan/vulkan_core.h:8132 KhrVideoDecodeQueueExtensionName = "VK_KHR_video_decode_queue" - // KhrVideoDecodeH264 as defined in vulkan/vulkan_core.h:8184 - KhrVideoDecodeH264 = 1 - // KhrVideoDecodeH264SpecVersion as defined in vulkan/vulkan_core.h:8187 - KhrVideoDecodeH264SpecVersion = 8 - // KhrVideoDecodeH264ExtensionName as defined in vulkan/vulkan_core.h:8188 - KhrVideoDecodeH264ExtensionName = "VK_KHR_video_decode_h264" - // KhrDynamicRendering as defined in vulkan/vulkan_core.h:8244 + // KhrDynamicRendering as defined in vulkan/vulkan_core.h:8245 KhrDynamicRendering = 1 - // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:8245 + // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:8246 KhrDynamicRenderingSpecVersion = 1 - // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:8246 + // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:8247 KhrDynamicRenderingExtensionName = "VK_KHR_dynamic_rendering" - // KhrMultiview as defined in vulkan/vulkan_core.h:8306 + // KhrMultiview as defined in vulkan/vulkan_core.h:8307 KhrMultiview = 1 - // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:8307 + // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:8308 KhrMultiviewSpecVersion = 1 - // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:8308 + // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:8309 KhrMultiviewExtensionName = "VK_KHR_multiview" - // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:8317 + // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:8318 KhrGetPhysicalDeviceProperties2 = 1 - // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:8318 + // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:8319 KhrGetPhysicalDeviceProperties2SpecVersion = 2 - // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:8319 + // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:8320 KhrGetPhysicalDeviceProperties2ExtensionName = "VK_KHR_get_physical_device_properties2" - // KhrDeviceGroup as defined in vulkan/vulkan_core.h:8382 + // KhrDeviceGroup as defined in vulkan/vulkan_core.h:8383 KhrDeviceGroup = 1 - // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:8383 + // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:8384 KhrDeviceGroupSpecVersion = 4 - // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:8384 + // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:8385 KhrDeviceGroupExtensionName = "VK_KHR_device_group" - // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:8434 + // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:8435 KhrShaderDrawParameters = 1 - // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:8435 + // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:8436 KhrShaderDrawParametersSpecVersion = 1 - // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:8436 + // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:8437 KhrShaderDrawParametersExtensionName = "VK_KHR_shader_draw_parameters" - // KhrMaintenance1 as defined in vulkan/vulkan_core.h:8439 + // KhrMaintenance1 as defined in vulkan/vulkan_core.h:8440 KhrMaintenance1 = 1 - // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:8440 + // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:8441 KhrMaintenance1SpecVersion = 2 - // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:8441 + // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:8442 KhrMaintenance1ExtensionName = "VK_KHR_maintenance1" - // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:8456 + // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:8457 KhrDeviceGroupCreation = 1 - // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:8457 + // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:8458 KhrDeviceGroupCreationSpecVersion = 1 - // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:8458 + // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:8459 KhrDeviceGroupCreationExtensionName = "VK_KHR_device_group_creation" - // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:8474 + // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:8475 KhrExternalMemoryCapabilities = 1 - // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8475 + // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8476 KhrExternalMemoryCapabilitiesSpecVersion = 1 - // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8476 + // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8477 KhrExternalMemoryCapabilitiesExtensionName = "VK_KHR_external_memory_capabilities" - // KhrExternalMemory as defined in vulkan/vulkan_core.h:8508 + // KhrExternalMemory as defined in vulkan/vulkan_core.h:8509 KhrExternalMemory = 1 - // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:8509 + // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:8510 KhrExternalMemorySpecVersion = 1 - // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:8510 + // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:8511 KhrExternalMemoryExtensionName = "VK_KHR_external_memory" - // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:8520 + // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:8521 KhrExternalMemoryFd = 1 - // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:8521 + // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:8522 KhrExternalMemoryFdSpecVersion = 1 - // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:8522 + // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:8523 KhrExternalMemoryFdExtensionName = "VK_KHR_external_memory_fd" - // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8560 + // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8561 KhrExternalSemaphoreCapabilities = 1 - // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8561 + // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8562 KhrExternalSemaphoreCapabilitiesSpecVersion = 1 - // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8562 + // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8563 KhrExternalSemaphoreCapabilitiesExtensionName = "VK_KHR_external_semaphore_capabilities" - // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8585 + // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8586 KhrExternalSemaphore = 1 - // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8586 + // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8587 KhrExternalSemaphoreSpecVersion = 1 - // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8587 + // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8588 KhrExternalSemaphoreExtensionName = "VK_KHR_external_semaphore" - // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8596 + // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8597 KhrExternalSemaphoreFd = 1 - // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8597 + // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8598 KhrExternalSemaphoreFdSpecVersion = 1 - // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8598 + // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8599 KhrExternalSemaphoreFdExtensionName = "VK_KHR_external_semaphore_fd" - // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8630 + // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8631 KhrPushDescriptor = 1 - // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8631 + // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8632 KhrPushDescriptorSpecVersion = 2 - // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8632 + // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8633 KhrPushDescriptorExtensionName = "VK_KHR_push_descriptor" - // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8660 + // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8661 KhrShaderFloat16Int8 = 1 - // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8661 + // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8662 KhrShaderFloat16Int8SpecVersion = 1 - // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8662 + // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8663 KhrShaderFloat16Int8ExtensionName = "VK_KHR_shader_float16_int8" - // Khr16bitStorage as defined in vulkan/vulkan_core.h:8669 + // Khr16bitStorage as defined in vulkan/vulkan_core.h:8670 Khr16bitStorage = 1 - // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8670 + // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8671 Khr16bitStorageSpecVersion = 1 - // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8671 + // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8672 Khr16bitStorageExtensionName = "VK_KHR_16bit_storage" - // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8676 + // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8677 KhrIncrementalPresent = 1 - // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:8677 + // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:8678 KhrIncrementalPresentSpecVersion = 2 - // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8678 + // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8679 KhrIncrementalPresentExtensionName = "VK_KHR_incremental_present" - // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8699 + // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8700 KhrDescriptorUpdateTemplate = 1 - // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8702 + // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8703 KhrDescriptorUpdateTemplateSpecVersion = 1 - // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8703 + // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8704 KhrDescriptorUpdateTemplateExtensionName = "VK_KHR_descriptor_update_template" - // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8736 + // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8737 KhrImagelessFramebuffer = 1 - // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8737 + // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8738 KhrImagelessFramebufferSpecVersion = 1 - // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8738 + // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8739 KhrImagelessFramebufferExtensionName = "VK_KHR_imageless_framebuffer" - // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8749 + // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8750 KhrCreateRenderpass2 = 1 - // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8750 + // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8751 KhrCreateRenderpass2SpecVersion = 1 - // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8751 + // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8752 KhrCreateRenderpass2ExtensionName = "VK_KHR_create_renderpass2" - // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8794 + // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8795 KhrSharedPresentableImage = 1 - // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8795 + // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8796 KhrSharedPresentableImageSpecVersion = 1 - // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8796 + // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8797 KhrSharedPresentableImageExtensionName = "VK_KHR_shared_presentable_image" - // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8812 + // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8813 KhrExternalFenceCapabilities = 1 - // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8813 + // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8814 KhrExternalFenceCapabilitiesSpecVersion = 1 - // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8814 + // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8815 KhrExternalFenceCapabilitiesExtensionName = "VK_KHR_external_fence_capabilities" - // KhrExternalFence as defined in vulkan/vulkan_core.h:8837 + // KhrExternalFence as defined in vulkan/vulkan_core.h:8838 KhrExternalFence = 1 - // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8838 + // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8839 KhrExternalFenceSpecVersion = 1 - // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8839 + // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8840 KhrExternalFenceExtensionName = "VK_KHR_external_fence" - // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8848 + // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8849 KhrExternalFenceFd = 1 - // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8849 + // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8850 KhrExternalFenceFdSpecVersion = 1 - // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8850 + // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8851 KhrExternalFenceFdExtensionName = "VK_KHR_external_fence_fd" - // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8882 + // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8883 KhrPerformanceQuery = 1 - // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8883 + // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8884 KhrPerformanceQuerySpecVersion = 1 - // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8884 + // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8885 KhrPerformanceQueryExtensionName = "VK_KHR_performance_query" - // KhrMaintenance2 as defined in vulkan/vulkan_core.h:9022 + // KhrMaintenance2 as defined in vulkan/vulkan_core.h:9023 KhrMaintenance2 = 1 - // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:9023 + // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:9024 KhrMaintenance2SpecVersion = 1 - // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:9024 + // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:9025 KhrMaintenance2ExtensionName = "VK_KHR_maintenance2" - // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:9043 + // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:9044 KhrGetSurfaceCapabilities2 = 1 - // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:9044 + // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:9045 KhrGetSurfaceCapabilities2SpecVersion = 1 - // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:9045 + // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:9046 KhrGetSurfaceCapabilities2ExtensionName = "VK_KHR_get_surface_capabilities2" - // KhrVariablePointers as defined in vulkan/vulkan_core.h:9081 + // KhrVariablePointers as defined in vulkan/vulkan_core.h:9082 KhrVariablePointers = 1 - // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:9082 + // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:9083 KhrVariablePointersSpecVersion = 1 - // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:9083 + // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:9084 KhrVariablePointersExtensionName = "VK_KHR_variable_pointers" - // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:9090 + // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:9091 KhrGetDisplayProperties2 = 1 - // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:9091 + // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:9092 KhrGetDisplayProperties2SpecVersion = 1 - // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:9092 + // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:9093 KhrGetDisplayProperties2ExtensionName = "VK_KHR_get_display_properties2" - // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:9153 + // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:9154 KhrDedicatedAllocation = 1 - // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9154 + // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9155 KhrDedicatedAllocationSpecVersion = 3 - // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9155 + // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9156 KhrDedicatedAllocationExtensionName = "VK_KHR_dedicated_allocation" - // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:9162 + // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:9163 KhrStorageBufferStorageClass = 1 - // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:9163 + // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:9164 KhrStorageBufferStorageClassSpecVersion = 1 - // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:9164 + // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:9165 KhrStorageBufferStorageClassExtensionName = "VK_KHR_storage_buffer_storage_class" - // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:9167 + // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:9168 KhrRelaxedBlockLayout = 1 - // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:9168 + // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:9169 KhrRelaxedBlockLayoutSpecVersion = 1 - // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:9169 + // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:9170 KhrRelaxedBlockLayoutExtensionName = "VK_KHR_relaxed_block_layout" - // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:9172 + // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:9173 KhrGetMemoryRequirements2 = 1 - // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:9173 + // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:9174 KhrGetMemoryRequirements2SpecVersion = 1 - // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:9174 + // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:9175 KhrGetMemoryRequirements2ExtensionName = "VK_KHR_get_memory_requirements2" - // KhrImageFormatList as defined in vulkan/vulkan_core.h:9208 + // KhrImageFormatList as defined in vulkan/vulkan_core.h:9209 KhrImageFormatList = 1 - // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:9209 + // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:9210 KhrImageFormatListSpecVersion = 1 - // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:9210 + // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:9211 KhrImageFormatListExtensionName = "VK_KHR_image_format_list" - // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:9215 + // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:9216 KhrSamplerYcbcrConversion = 1 - // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:9218 + // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:9219 KhrSamplerYcbcrConversionSpecVersion = 14 - // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:9219 + // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:9220 KhrSamplerYcbcrConversionExtensionName = "VK_KHR_sampler_ycbcr_conversion" - // KhrBindMemory2 as defined in vulkan/vulkan_core.h:9255 + // KhrBindMemory2 as defined in vulkan/vulkan_core.h:9256 KhrBindMemory2 = 1 - // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:9256 + // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:9257 KhrBindMemory2SpecVersion = 1 - // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:9257 + // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:9258 KhrBindMemory2ExtensionName = "VK_KHR_bind_memory2" - // KhrMaintenance3 as defined in vulkan/vulkan_core.h:9278 + // KhrMaintenance3 as defined in vulkan/vulkan_core.h:9279 KhrMaintenance3 = 1 - // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:9279 + // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:9280 KhrMaintenance3SpecVersion = 1 - // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:9280 + // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:9281 KhrMaintenance3ExtensionName = "VK_KHR_maintenance3" - // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:9297 + // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:9298 KhrDrawIndirectCount = 1 - // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:9298 + // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:9299 KhrDrawIndirectCountSpecVersion = 1 - // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9299 + // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9300 KhrDrawIndirectCountExtensionName = "VK_KHR_draw_indirect_count" - // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:9324 + // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:9325 KhrShaderSubgroupExtendedTypes = 1 - // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:9325 + // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:9326 KhrShaderSubgroupExtendedTypesSpecVersion = 1 - // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:9326 + // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:9327 KhrShaderSubgroupExtendedTypesExtensionName = "VK_KHR_shader_subgroup_extended_types" - // Khr8bitStorage as defined in vulkan/vulkan_core.h:9331 + // Khr8bitStorage as defined in vulkan/vulkan_core.h:9332 Khr8bitStorage = 1 - // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:9332 + // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:9333 Khr8bitStorageSpecVersion = 1 - // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:9333 + // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:9334 Khr8bitStorageExtensionName = "VK_KHR_8bit_storage" - // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:9338 + // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:9339 KhrShaderAtomicInt64 = 1 - // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:9339 + // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:9340 KhrShaderAtomicInt64SpecVersion = 1 - // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:9340 + // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:9341 KhrShaderAtomicInt64ExtensionName = "VK_KHR_shader_atomic_int64" - // KhrShaderClock as defined in vulkan/vulkan_core.h:9345 + // KhrShaderClock as defined in vulkan/vulkan_core.h:9346 KhrShaderClock = 1 - // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:9346 + // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:9347 KhrShaderClockSpecVersion = 1 - // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:9347 + // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:9348 KhrShaderClockExtensionName = "VK_KHR_shader_clock" - // KhrVideoDecodeH265 as defined in vulkan/vulkan_core.h:9357 - KhrVideoDecodeH265 = 1 - // KhrVideoDecodeH265SpecVersion as defined in vulkan/vulkan_core.h:9360 - KhrVideoDecodeH265SpecVersion = 7 - // KhrVideoDecodeH265ExtensionName as defined in vulkan/vulkan_core.h:9361 - KhrVideoDecodeH265ExtensionName = "VK_KHR_video_decode_h265" - // KhrGlobalPriority as defined in vulkan/vulkan_core.h:9410 + // 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:9412 + // KhrGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:9414 KhrGlobalPrioritySpecVersion = 1 - // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:9413 + // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:9415 KhrGlobalPriorityExtensionName = "VK_KHR_global_priority" - // KhrDriverProperties as defined in vulkan/vulkan_core.h:9447 + // KhrDriverProperties as defined in vulkan/vulkan_core.h:9449 KhrDriverProperties = 1 - // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:9448 + // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:9450 KhrDriverPropertiesSpecVersion = 1 - // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:9449 + // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:9451 KhrDriverPropertiesExtensionName = "VK_KHR_driver_properties" - // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:9460 + // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:9462 KhrShaderFloatControls = 1 - // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:9461 + // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:9463 KhrShaderFloatControlsSpecVersion = 4 - // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:9462 + // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:9464 KhrShaderFloatControlsExtensionName = "VK_KHR_shader_float_controls" - // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:9469 + // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:9471 KhrDepthStencilResolve = 1 - // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:9470 + // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:9472 KhrDepthStencilResolveSpecVersion = 1 - // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:9471 + // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:9473 KhrDepthStencilResolveExtensionName = "VK_KHR_depth_stencil_resolve" - // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:9482 + // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:9484 KhrSwapchainMutableFormat = 1 - // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:9483 + // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:9485 KhrSwapchainMutableFormatSpecVersion = 1 - // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:9484 + // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:9486 KhrSwapchainMutableFormatExtensionName = "VK_KHR_swapchain_mutable_format" - // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:9487 + // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:9489 KhrTimelineSemaphore = 1 - // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:9488 + // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:9490 KhrTimelineSemaphoreSpecVersion = 2 - // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:9489 + // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:9491 KhrTimelineSemaphoreExtensionName = "VK_KHR_timeline_semaphore" - // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:9529 + // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:9531 KhrVulkanMemoryModel = 1 - // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:9530 + // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:9532 KhrVulkanMemoryModelSpecVersion = 3 - // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:9531 + // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:9533 KhrVulkanMemoryModelExtensionName = "VK_KHR_vulkan_memory_model" - // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:9536 + // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:9538 KhrShaderTerminateInvocation = 1 - // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:9537 + // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:9539 KhrShaderTerminateInvocationSpecVersion = 1 - // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:9538 + // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:9540 KhrShaderTerminateInvocationExtensionName = "VK_KHR_shader_terminate_invocation" - // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:9543 + // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:9545 KhrFragmentShadingRate = 1 - // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:9544 + // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:9546 KhrFragmentShadingRateSpecVersion = 2 - // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:9545 + // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:9547 KhrFragmentShadingRateExtensionName = "VK_KHR_fragment_shading_rate" - // KhrSpirv14 as defined in vulkan/vulkan_core.h:9622 + // KhrSpirv14 as defined in vulkan/vulkan_core.h:9624 KhrSpirv14 = 1 - // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9623 + // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9625 KhrSpirv14SpecVersion = 1 - // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9624 + // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9626 KhrSpirv14ExtensionName = "VK_KHR_spirv_1_4" - // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9627 + // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9629 KhrSurfaceProtectedCapabilities = 1 - // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9628 + // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9630 KhrSurfaceProtectedCapabilitiesSpecVersion = 1 - // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9629 + // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9631 KhrSurfaceProtectedCapabilitiesExtensionName = "VK_KHR_surface_protected_capabilities" - // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9638 + // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9640 KhrSeparateDepthStencilLayouts = 1 - // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9639 + // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9641 KhrSeparateDepthStencilLayoutsSpecVersion = 1 - // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9640 + // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9642 KhrSeparateDepthStencilLayoutsExtensionName = "VK_KHR_separate_depth_stencil_layouts" - // KhrPresentWait as defined in vulkan/vulkan_core.h:9649 + // KhrPresentWait as defined in vulkan/vulkan_core.h:9651 KhrPresentWait = 1 - // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9650 + // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9652 KhrPresentWaitSpecVersion = 1 - // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9651 + // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9653 KhrPresentWaitExtensionName = "VK_KHR_present_wait" - // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9669 + // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9671 KhrUniformBufferStandardLayout = 1 - // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9670 + // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9672 KhrUniformBufferStandardLayoutSpecVersion = 1 - // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9671 + // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9673 KhrUniformBufferStandardLayoutExtensionName = "VK_KHR_uniform_buffer_standard_layout" - // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9676 + // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9678 KhrBufferDeviceAddress = 1 - // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9677 + // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9679 KhrBufferDeviceAddressSpecVersion = 1 - // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9678 + // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9680 KhrBufferDeviceAddressExtensionName = "VK_KHR_buffer_device_address" - // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9708 + // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9710 KhrDeferredHostOperations = 1 - // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9710 + // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9712 KhrDeferredHostOperationsSpecVersion = 4 - // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9711 + // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9713 KhrDeferredHostOperationsExtensionName = "VK_KHR_deferred_host_operations" - // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9743 + // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9745 KhrPipelineExecutableProperties = 1 - // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9744 + // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9746 KhrPipelineExecutablePropertiesSpecVersion = 1 - // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9745 + // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9747 KhrPipelineExecutablePropertiesExtensionName = "VK_KHR_pipeline_executable_properties" - // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9833 + // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9835 KhrShaderIntegerDotProduct = 1 - // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9834 + // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9836 KhrShaderIntegerDotProductSpecVersion = 1 - // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9835 + // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9837 KhrShaderIntegerDotProductExtensionName = "VK_KHR_shader_integer_dot_product" - // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9842 + // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9844 KhrPipelineLibrary = 1 - // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9843 + // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9845 KhrPipelineLibrarySpecVersion = 1 - // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9844 + // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9846 KhrPipelineLibraryExtensionName = "VK_KHR_pipeline_library" - // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9854 + // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9856 KhrShaderNonSemanticInfo = 1 - // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9855 + // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9857 KhrShaderNonSemanticInfoSpecVersion = 1 - // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9856 + // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9858 KhrShaderNonSemanticInfoExtensionName = "VK_KHR_shader_non_semantic_info" - // KhrPresentId as defined in vulkan/vulkan_core.h:9859 + // KhrPresentId as defined in vulkan/vulkan_core.h:9861 KhrPresentId = 1 - // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9860 + // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9862 KhrPresentIdSpecVersion = 1 - // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9861 + // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9863 KhrPresentIdExtensionName = "VK_KHR_present_id" - // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9877 + // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9879 KhrSynchronization2 = 1 - // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9878 + // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9880 KhrSynchronization2SpecVersion = 1 - // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9879 + // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9881 KhrSynchronization2ExtensionName = "VK_KHR_synchronization2" - // KhrFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:9977 + // KhrFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:9979 KhrFragmentShaderBarycentric = 1 - // KhrFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:9978 + // KhrFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:9980 KhrFragmentShaderBarycentricSpecVersion = 1 - // KhrFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:9979 + // KhrFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:9981 KhrFragmentShaderBarycentricExtensionName = "VK_KHR_fragment_shader_barycentric" - // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9994 + // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9996 KhrShaderSubgroupUniformControlFlow = 1 - // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9995 + // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9997 KhrShaderSubgroupUniformControlFlowSpecVersion = 1 - // KhrShaderSubgroupUniformControlFlowExtensionName as defined in vulkan/vulkan_core.h:9996 + // 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:10005 + // KhrZeroInitializeWorkgroupMemory as defined in vulkan/vulkan_core.h:10007 KhrZeroInitializeWorkgroupMemory = 1 - // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:10006 + // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:10008 KhrZeroInitializeWorkgroupMemorySpecVersion = 1 - // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:10007 + // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:10009 KhrZeroInitializeWorkgroupMemoryExtensionName = "VK_KHR_zero_initialize_workgroup_memory" - // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:10012 + // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:10014 KhrWorkgroupMemoryExplicitLayout = 1 - // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:10013 + // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:10015 KhrWorkgroupMemoryExplicitLayoutSpecVersion = 1 - // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:10014 + // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:10016 KhrWorkgroupMemoryExplicitLayoutExtensionName = "VK_KHR_workgroup_memory_explicit_layout" - // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:10026 + // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:10028 KhrCopyCommands2 = 1 - // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:10027 + // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:10029 KhrCopyCommands2SpecVersion = 1 - // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:10028 + // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:10030 KhrCopyCommands2ExtensionName = "VK_KHR_copy_commands2" - // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:10085 + // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:10087 KhrFormatFeatureFlags2 = 1 - // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:10086 + // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:10088 KhrFormatFeatureFlags2SpecVersion = 2 - // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:10087 + // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:10089 KhrFormatFeatureFlags2ExtensionName = "VK_KHR_format_feature_flags2" - // KhrRayTracingMaintenance1 as defined in vulkan/vulkan_core.h:10096 + // KhrRayTracingMaintenance1 as defined in vulkan/vulkan_core.h:10098 KhrRayTracingMaintenance1 = 1 - // KhrRayTracingMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:10097 + // KhrRayTracingMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:10099 KhrRayTracingMaintenance1SpecVersion = 1 - // KhrRayTracingMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:10098 + // KhrRayTracingMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:10100 KhrRayTracingMaintenance1ExtensionName = "VK_KHR_ray_tracing_maintenance1" - // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:10132 + // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:10134 KhrPortabilityEnumeration = 1 - // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:10133 + // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:10135 KhrPortabilityEnumerationSpecVersion = 1 - // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:10134 + // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:10136 KhrPortabilityEnumerationExtensionName = "VK_KHR_portability_enumeration" - // KhrMaintenance4 as defined in vulkan/vulkan_core.h:10137 + // KhrMaintenance4 as defined in vulkan/vulkan_core.h:10139 KhrMaintenance4 = 1 - // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:10138 + // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:10140 KhrMaintenance4SpecVersion = 2 - // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:10139 + // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:10141 KhrMaintenance4ExtensionName = "VK_KHR_maintenance4" - // ExtDebugReport as defined in vulkan/vulkan_core.h:10171 + // ExtDebugReport as defined in vulkan/vulkan_core.h:10173 ExtDebugReport = 1 - // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:10173 + // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:10175 ExtDebugReportSpecVersion = 10 - // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:10174 + // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:10176 ExtDebugReportExtensionName = "VK_EXT_debug_report" - // NvGlslShader as defined in vulkan/vulkan_core.h:10278 + // NvGlslShader as defined in vulkan/vulkan_core.h:10280 NvGlslShader = 1 - // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:10279 + // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:10281 NvGlslShaderSpecVersion = 1 - // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:10280 + // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:10282 NvGlslShaderExtensionName = "VK_NV_glsl_shader" - // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:10283 + // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:10285 ExtDepthRangeUnrestricted = 1 - // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:10284 + // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:10286 ExtDepthRangeUnrestrictedSpecVersion = 1 - // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:10285 + // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:10287 ExtDepthRangeUnrestrictedExtensionName = "VK_EXT_depth_range_unrestricted" - // ImgFilterCubic as defined in vulkan/vulkan_core.h:10288 + // ImgFilterCubic as defined in vulkan/vulkan_core.h:10290 ImgFilterCubic = 1 - // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:10289 + // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:10291 ImgFilterCubicSpecVersion = 1 - // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:10290 + // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:10292 ImgFilterCubicExtensionName = "VK_IMG_filter_cubic" - // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:10293 + // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:10295 AmdRasterizationOrder = 1 - // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:10294 + // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:10296 AmdRasterizationOrderSpecVersion = 1 - // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:10295 + // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:10297 AmdRasterizationOrderExtensionName = "VK_AMD_rasterization_order" - // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:10310 + // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:10312 AmdShaderTrinaryMinmax = 1 - // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:10311 + // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:10313 AmdShaderTrinaryMinmaxSpecVersion = 1 - // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:10312 + // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:10314 AmdShaderTrinaryMinmaxExtensionName = "VK_AMD_shader_trinary_minmax" - // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:10315 + // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:10317 AmdShaderExplicitVertexParameter = 1 - // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:10316 + // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:10318 AmdShaderExplicitVertexParameterSpecVersion = 1 - // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:10317 + // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:10319 AmdShaderExplicitVertexParameterExtensionName = "VK_AMD_shader_explicit_vertex_parameter" - // ExtDebugMarker as defined in vulkan/vulkan_core.h:10320 + // ExtDebugMarker as defined in vulkan/vulkan_core.h:10322 ExtDebugMarker = 1 - // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:10321 + // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:10323 ExtDebugMarkerSpecVersion = 4 - // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:10322 + // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:10324 ExtDebugMarkerExtensionName = "VK_EXT_debug_marker" - // AmdGcnShader as defined in vulkan/vulkan_core.h:10376 + // AmdGcnShader as defined in vulkan/vulkan_core.h:10378 AmdGcnShader = 1 - // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:10377 + // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:10379 AmdGcnShaderSpecVersion = 1 - // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:10378 + // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:10380 AmdGcnShaderExtensionName = "VK_AMD_gcn_shader" - // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:10381 + // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:10383 NvDedicatedAllocation = 1 - // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:10382 + // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:10384 NvDedicatedAllocationSpecVersion = 1 - // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:10383 + // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:10385 NvDedicatedAllocationExtensionName = "VK_NV_dedicated_allocation" - // ExtTransformFeedback as defined in vulkan/vulkan_core.h:10405 + // ExtTransformFeedback as defined in vulkan/vulkan_core.h:10407 ExtTransformFeedback = 1 - // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:10406 + // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:10408 ExtTransformFeedbackSpecVersion = 1 - // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:10407 + // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:10409 ExtTransformFeedbackExtensionName = "VK_EXT_transform_feedback" - // NvxImageViewHandle as defined in vulkan/vulkan_core.h:10563 + // NvxImageViewHandle as defined in vulkan/vulkan_core.h:10565 NvxImageViewHandle = 1 - // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:10564 + // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:10566 NvxImageViewHandleSpecVersion = 2 - // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:10565 + // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:10567 NvxImageViewHandleExtensionName = "VK_NVX_image_view_handle" - // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:10596 + // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:10598 AmdDrawIndirectCount = 1 - // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:10597 + // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:10599 AmdDrawIndirectCountSpecVersion = 2 - // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:10598 + // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:10600 AmdDrawIndirectCountExtensionName = "VK_AMD_draw_indirect_count" - // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:10623 + // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:10625 AmdNegativeViewportHeight = 1 - // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:10624 + // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:10626 AmdNegativeViewportHeightSpecVersion = 1 - // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:10625 + // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:10627 AmdNegativeViewportHeightExtensionName = "VK_AMD_negative_viewport_height" - // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:10628 + // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:10630 AmdGpuShaderHalfFloat = 1 - // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:10629 + // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:10631 AmdGpuShaderHalfFloatSpecVersion = 2 - // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:10630 + // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:10632 AmdGpuShaderHalfFloatExtensionName = "VK_AMD_gpu_shader_half_float" - // AmdShaderBallot as defined in vulkan/vulkan_core.h:10633 + // AmdShaderBallot as defined in vulkan/vulkan_core.h:10635 AmdShaderBallot = 1 - // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:10634 + // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:10636 AmdShaderBallotSpecVersion = 1 - // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:10635 + // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:10637 AmdShaderBallotExtensionName = "VK_AMD_shader_ballot" - // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:10638 + // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:10640 AmdTextureGatherBiasLod = 1 - // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:10639 + // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:10641 AmdTextureGatherBiasLodSpecVersion = 1 - // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:10640 + // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:10642 AmdTextureGatherBiasLodExtensionName = "VK_AMD_texture_gather_bias_lod" - // AmdShaderInfo as defined in vulkan/vulkan_core.h:10649 + // AmdShaderInfo as defined in vulkan/vulkan_core.h:10651 AmdShaderInfo = 1 - // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10650 + // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10652 AmdShaderInfoSpecVersion = 1 - // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10651 + // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10653 AmdShaderInfoExtensionName = "VK_AMD_shader_info" - // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10690 + // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10692 AmdShaderImageLoadStoreLod = 1 - // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10691 + // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10693 AmdShaderImageLoadStoreLodSpecVersion = 1 - // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:10692 + // 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:10695 + // NvCornerSampledImage as defined in vulkan/vulkan_core.h:10697 NvCornerSampledImage = 1 - // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10696 + // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10698 NvCornerSampledImageSpecVersion = 2 - // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10697 + // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10699 NvCornerSampledImageExtensionName = "VK_NV_corner_sampled_image" - // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10706 + // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10708 ImgFormatPvrtc = 1 - // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10707 + // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10709 ImgFormatPvrtcSpecVersion = 1 - // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10708 + // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10710 ImgFormatPvrtcExtensionName = "VK_IMG_format_pvrtc" - // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10711 + // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10713 NvExternalMemoryCapabilities = 1 - // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10712 + // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10714 NvExternalMemoryCapabilitiesSpecVersion = 1 - // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10713 + // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10715 NvExternalMemoryCapabilitiesExtensionName = "VK_NV_external_memory_capabilities" - // NvExternalMemory as defined in vulkan/vulkan_core.h:10753 + // NvExternalMemory as defined in vulkan/vulkan_core.h:10755 NvExternalMemory = 1 - // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10754 + // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10756 NvExternalMemorySpecVersion = 1 - // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10755 + // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10757 NvExternalMemoryExtensionName = "VK_NV_external_memory" - // ExtValidationFlags as defined in vulkan/vulkan_core.h:10770 + // ExtValidationFlags as defined in vulkan/vulkan_core.h:10772 ExtValidationFlags = 1 - // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:10771 + // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:10773 ExtValidationFlagsSpecVersion = 2 - // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10772 + // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10774 ExtValidationFlagsExtensionName = "VK_EXT_validation_flags" - // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10788 + // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10790 ExtShaderSubgroupBallot = 1 - // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10789 + // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10791 ExtShaderSubgroupBallotSpecVersion = 1 - // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10790 + // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10792 ExtShaderSubgroupBallotExtensionName = "VK_EXT_shader_subgroup_ballot" - // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10793 + // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10795 ExtShaderSubgroupVote = 1 - // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10794 + // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10796 ExtShaderSubgroupVoteSpecVersion = 1 - // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10795 + // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10797 ExtShaderSubgroupVoteExtensionName = "VK_EXT_shader_subgroup_vote" - // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10798 + // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10800 ExtTextureCompressionAstcHdr = 1 - // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10799 + // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10801 ExtTextureCompressionAstcHdrSpecVersion = 1 - // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10800 + // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10802 ExtTextureCompressionAstcHdrExtensionName = "VK_EXT_texture_compression_astc_hdr" - // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10805 + // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10807 ExtAstcDecodeMode = 1 - // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10806 + // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10808 ExtAstcDecodeModeSpecVersion = 1 - // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10807 + // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10809 ExtAstcDecodeModeExtensionName = "VK_EXT_astc_decode_mode" - // ExtPipelineRobustness as defined in vulkan/vulkan_core.h:10822 + // ExtPipelineRobustness as defined in vulkan/vulkan_core.h:10824 ExtPipelineRobustness = 1 - // ExtPipelineRobustnessSpecVersion as defined in vulkan/vulkan_core.h:10823 + // ExtPipelineRobustnessSpecVersion as defined in vulkan/vulkan_core.h:10825 ExtPipelineRobustnessSpecVersion = 1 - // ExtPipelineRobustnessExtensionName as defined in vulkan/vulkan_core.h:10824 + // ExtPipelineRobustnessExtensionName as defined in vulkan/vulkan_core.h:10826 ExtPipelineRobustnessExtensionName = "VK_EXT_pipeline_robustness" - // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10867 + // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10869 ExtConditionalRendering = 1 - // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:10868 + // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:10870 ExtConditionalRenderingSpecVersion = 2 - // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10869 + // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10871 ExtConditionalRenderingExtensionName = "VK_EXT_conditional_rendering" - // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:10910 + // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:10912 NvClipSpaceWScaling = 1 - // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10911 + // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10913 NvClipSpaceWScalingSpecVersion = 1 - // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10912 + // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10914 NvClipSpaceWScalingExtensionName = "VK_NV_clip_space_w_scaling" - // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10937 + // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10939 ExtDirectModeDisplay = 1 - // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10938 + // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10940 ExtDirectModeDisplaySpecVersion = 1 - // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10939 + // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10941 ExtDirectModeDisplayExtensionName = "VK_EXT_direct_mode_display" - // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10949 + // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10951 ExtDisplaySurfaceCounter = 1 - // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10950 + // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10952 ExtDisplaySurfaceCounterSpecVersion = 1 - // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10951 + // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10953 ExtDisplaySurfaceCounterExtensionName = "VK_EXT_display_surface_counter" - // ExtDisplayControl as defined in vulkan/vulkan_core.h:10985 + // ExtDisplayControl as defined in vulkan/vulkan_core.h:10987 ExtDisplayControl = 1 - // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10986 + // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10988 ExtDisplayControlSpecVersion = 1 - // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10987 + // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10989 ExtDisplayControlExtensionName = "VK_EXT_display_control" - // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:11061 + // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:11063 GoogleDisplayTiming = 1 - // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:11062 + // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:11064 GoogleDisplayTimingSpecVersion = 1 - // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:11063 + // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:11065 GoogleDisplayTimingExtensionName = "VK_GOOGLE_display_timing" - // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:11105 + // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:11107 NvSampleMaskOverrideCoverage = 1 - // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:11106 + // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:11108 NvSampleMaskOverrideCoverageSpecVersion = 1 - // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:11107 + // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:11109 NvSampleMaskOverrideCoverageExtensionName = "VK_NV_sample_mask_override_coverage" - // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:11110 + // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:11112 NvGeometryShaderPassthrough = 1 - // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:11111 + // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:11113 NvGeometryShaderPassthroughSpecVersion = 1 - // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:11112 + // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:11114 NvGeometryShaderPassthroughExtensionName = "VK_NV_geometry_shader_passthrough" - // NvViewportArray2 as defined in vulkan/vulkan_core.h:11115 + // NvViewportArray2 as defined in vulkan/vulkan_core.h:11117 NvViewportArray2 = 1 - // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:11116 + // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:11118 NvViewportArray2SpecVersion = 1 - // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:11117 + // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:11119 NvViewportArray2ExtensionName = "VK_NV_viewport_array2" - // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:11122 + // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:11124 NvxMultiviewPerViewAttributes = 1 - // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:11123 + // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:11125 NvxMultiviewPerViewAttributesSpecVersion = 1 - // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:11124 + // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:11126 NvxMultiviewPerViewAttributesExtensionName = "VK_NVX_multiview_per_view_attributes" - // NvViewportSwizzle as defined in vulkan/vulkan_core.h:11133 + // NvViewportSwizzle as defined in vulkan/vulkan_core.h:11135 NvViewportSwizzle = 1 - // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:11134 + // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:11136 NvViewportSwizzleSpecVersion = 1 - // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:11135 + // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:11137 NvViewportSwizzleExtensionName = "VK_NV_viewport_swizzle" - // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:11166 + // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:11168 ExtDiscardRectangles = 1 - // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:11167 + // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:11169 ExtDiscardRectanglesSpecVersion = 1 - // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:11168 + // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:11170 ExtDiscardRectanglesExtensionName = "VK_EXT_discard_rectangles" - // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:11202 + // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:11204 ExtConservativeRasterization = 1 - // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:11203 + // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:11205 ExtConservativeRasterizationSpecVersion = 1 - // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:11204 + // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:11206 ExtConservativeRasterizationExtensionName = "VK_EXT_conservative_rasterization" - // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:11237 + // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:11239 ExtDepthClipEnable = 1 - // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:11238 + // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:11240 ExtDepthClipEnableSpecVersion = 1 - // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:11239 + // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:11241 ExtDepthClipEnableExtensionName = "VK_EXT_depth_clip_enable" - // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:11256 + // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:11258 ExtSwapchainColorspace = 1 - // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:11257 + // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:11259 ExtSwapchainColorSpaceSpecVersion = 4 - // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:11258 + // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:11260 ExtSwapchainColorSpaceExtensionName = "VK_EXT_swapchain_colorspace" - // ExtHdrMetadata as defined in vulkan/vulkan_core.h:11261 + // ExtHdrMetadata as defined in vulkan/vulkan_core.h:11263 ExtHdrMetadata = 1 - // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:11262 + // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:11264 ExtHdrMetadataSpecVersion = 2 - // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:11263 + // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:11265 ExtHdrMetadataExtensionName = "VK_EXT_hdr_metadata" - // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:11293 + // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:11295 ExtExternalMemoryDmaBuf = 1 - // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:11294 + // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:11296 ExtExternalMemoryDmaBufSpecVersion = 1 - // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:11295 + // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:11297 ExtExternalMemoryDmaBufExtensionName = "VK_EXT_external_memory_dma_buf" - // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:11298 + // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:11300 ExtQueueFamilyForeign = 1 - // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:11299 + // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:11301 ExtQueueFamilyForeignSpecVersion = 1 - // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:11300 + // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:11302 ExtQueueFamilyForeignExtensionName = "VK_EXT_queue_family_foreign" - // QueueFamilyForeign as defined in vulkan/vulkan_core.h:11301 + // QueueFamilyForeign as defined in vulkan/vulkan_core.h:11303 QueueFamilyForeign = (^uint32(2)) - // ExtDebugUtils as defined in vulkan/vulkan_core.h:11304 + // ExtDebugUtils as defined in vulkan/vulkan_core.h:11306 ExtDebugUtils = 1 - // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:11306 + // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:11308 ExtDebugUtilsSpecVersion = 2 - // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:11307 + // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:11309 ExtDebugUtilsExtensionName = "VK_EXT_debug_utils" - // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:11446 + // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:11448 ExtSamplerFilterMinmax = 1 - // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:11447 + // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:11449 ExtSamplerFilterMinmaxSpecVersion = 2 - // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:11448 + // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:11450 ExtSamplerFilterMinmaxExtensionName = "VK_EXT_sampler_filter_minmax" - // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:11457 + // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:11459 AmdGpuShaderInt16 = 1 - // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:11458 + // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:11460 AmdGpuShaderInt16SpecVersion = 2 - // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:11459 + // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:11461 AmdGpuShaderInt16ExtensionName = "VK_AMD_gpu_shader_int16" - // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:11462 + // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:11464 AmdMixedAttachmentSamples = 1 - // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:11463 + // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:11465 AmdMixedAttachmentSamplesSpecVersion = 1 - // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:11464 + // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:11466 AmdMixedAttachmentSamplesExtensionName = "VK_AMD_mixed_attachment_samples" - // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:11467 + // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:11469 AmdShaderFragmentMask = 1 - // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:11468 + // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:11470 AmdShaderFragmentMaskSpecVersion = 1 - // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:11469 + // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:11471 AmdShaderFragmentMaskExtensionName = "VK_AMD_shader_fragment_mask" - // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:11472 + // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:11474 ExtInlineUniformBlock = 1 - // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:11473 + // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:11475 ExtInlineUniformBlockSpecVersion = 1 - // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:11474 + // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:11476 ExtInlineUniformBlockExtensionName = "VK_EXT_inline_uniform_block" - // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:11485 + // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:11487 ExtShaderStencilExport = 1 - // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:11486 + // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:11488 ExtShaderStencilExportSpecVersion = 1 - // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:11487 + // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:11489 ExtShaderStencilExportExtensionName = "VK_EXT_shader_stencil_export" - // ExtSampleLocations as defined in vulkan/vulkan_core.h:11490 + // ExtSampleLocations as defined in vulkan/vulkan_core.h:11492 ExtSampleLocations = 1 - // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:11491 + // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:11493 ExtSampleLocationsSpecVersion = 1 - // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:11492 + // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:11494 ExtSampleLocationsExtensionName = "VK_EXT_sample_locations" - // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:11564 + // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:11566 ExtBlendOperationAdvanced = 1 - // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:11565 + // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:11567 ExtBlendOperationAdvancedSpecVersion = 2 - // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:11566 + // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:11568 ExtBlendOperationAdvancedExtensionName = "VK_EXT_blend_operation_advanced" - // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:11601 + // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:11603 NvFragmentCoverageToColor = 1 - // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:11602 + // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:11604 NvFragmentCoverageToColorSpecVersion = 1 - // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:11603 + // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:11605 NvFragmentCoverageToColorExtensionName = "VK_NV_fragment_coverage_to_color" - // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:11615 + // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:11617 NvFramebufferMixedSamples = 1 - // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:11616 + // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:11618 NvFramebufferMixedSamplesSpecVersion = 1 - // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:11617 + // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:11619 NvFramebufferMixedSamplesExtensionName = "VK_NV_framebuffer_mixed_samples" - // NvFillRectangle as defined in vulkan/vulkan_core.h:11639 + // NvFillRectangle as defined in vulkan/vulkan_core.h:11641 NvFillRectangle = 1 - // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:11640 + // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:11642 NvFillRectangleSpecVersion = 1 - // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:11641 + // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:11643 NvFillRectangleExtensionName = "VK_NV_fill_rectangle" - // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:11644 + // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:11646 NvShaderSmBuiltins = 1 - // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:11645 + // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:11647 NvShaderSmBuiltinsSpecVersion = 1 - // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:11646 + // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:11648 NvShaderSmBuiltinsExtensionName = "VK_NV_shader_sm_builtins" - // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:11662 + // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:11664 ExtPostDepthCoverage = 1 - // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:11663 + // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:11665 ExtPostDepthCoverageSpecVersion = 1 - // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:11664 + // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:11666 ExtPostDepthCoverageExtensionName = "VK_EXT_post_depth_coverage" - // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:11667 + // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:11669 ExtImageDrmFormatModifier = 1 - // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:11668 + // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:11670 ExtImageDrmFormatModifierSpecVersion = 2 - // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:11669 + // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:11671 ExtImageDrmFormatModifierExtensionName = "VK_EXT_image_drm_format_modifier" - // ExtValidationCache as defined in vulkan/vulkan_core.h:11736 + // ExtValidationCache as defined in vulkan/vulkan_core.h:11738 ExtValidationCache = 1 - // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11738 + // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11740 ExtValidationCacheSpecVersion = 1 - // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11739 + // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11741 ExtValidationCacheExtensionName = "VK_EXT_validation_cache" - // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11791 + // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11793 ExtDescriptorIndexing = 1 - // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11792 + // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11794 ExtDescriptorIndexingSpecVersion = 2 - // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11793 + // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11795 ExtDescriptorIndexingExtensionName = "VK_EXT_descriptor_indexing" - // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11810 + // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11812 ExtShaderViewportIndexLayer = 1 - // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11811 + // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11813 ExtShaderViewportIndexLayerSpecVersion = 1 - // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11812 + // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11814 ExtShaderViewportIndexLayerExtensionName = "VK_EXT_shader_viewport_index_layer" - // NvShadingRateImage as defined in vulkan/vulkan_core.h:11815 + // NvShadingRateImage as defined in vulkan/vulkan_core.h:11817 NvShadingRateImage = 1 - // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11816 + // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11818 NvShadingRateImageSpecVersion = 3 - // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11817 + // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11819 NvShadingRateImageExtensionName = "VK_NV_shading_rate_image" - // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:12292 + // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:12294 NvRepresentativeFragmentTest = 1 - // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:12293 + // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:12295 NvRepresentativeFragmentTestSpecVersion = 2 - // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:12294 + // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:12296 NvRepresentativeFragmentTestExtensionName = "VK_NV_representative_fragment_test" - // ExtFilterCubic as defined in vulkan/vulkan_core.h:12309 + // ExtFilterCubic as defined in vulkan/vulkan_core.h:12311 ExtFilterCubic = 1 - // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:12310 + // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:12312 ExtFilterCubicSpecVersion = 3 - // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:12311 + // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:12313 ExtFilterCubicExtensionName = "VK_EXT_filter_cubic" - // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:12327 + // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:12329 QcomRenderPassShaderResolve = 1 - // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:12328 + // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:12330 QcomRenderPassShaderResolveSpecVersion = 4 - // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:12329 + // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:12331 QcomRenderPassShaderResolveExtensionName = "VK_QCOM_render_pass_shader_resolve" - // ExtGlobalPriority as defined in vulkan/vulkan_core.h:12332 + // ExtGlobalPriority as defined in vulkan/vulkan_core.h:12334 ExtGlobalPriority = 1 - // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:12333 + // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:12335 ExtGlobalPrioritySpecVersion = 2 - // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:12334 + // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:12336 ExtGlobalPriorityExtensionName = "VK_EXT_global_priority" - // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:12341 + // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:12343 ExtExternalMemoryHost = 1 - // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:12342 + // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:12344 ExtExternalMemoryHostSpecVersion = 1 - // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:12343 + // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:12345 ExtExternalMemoryHostExtensionName = "VK_EXT_external_memory_host" - // AmdBufferMarker as defined in vulkan/vulkan_core.h:12374 + // AmdBufferMarker as defined in vulkan/vulkan_core.h:12376 AmdBufferMarker = 1 - // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:12375 + // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:12377 AmdBufferMarkerSpecVersion = 1 - // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:12376 + // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:12378 AmdBufferMarkerExtensionName = "VK_AMD_buffer_marker" - // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:12389 + // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:12391 AmdPipelineCompilerControl = 1 - // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:12390 + // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:12392 AmdPipelineCompilerControlSpecVersion = 1 - // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:12391 + // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:12393 AmdPipelineCompilerControlExtensionName = "VK_AMD_pipeline_compiler_control" - // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:12405 + // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:12407 ExtCalibratedTimestamps = 1 - // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:12406 + // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:12408 ExtCalibratedTimestampsSpecVersion = 2 - // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:12407 + // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:12409 ExtCalibratedTimestampsExtensionName = "VK_EXT_calibrated_timestamps" - // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:12440 + // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:12442 AmdShaderCoreProperties = 1 - // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:12441 + // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:12443 AmdShaderCorePropertiesSpecVersion = 2 - // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:12442 + // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:12444 AmdShaderCorePropertiesExtensionName = "VK_AMD_shader_core_properties" - // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:12464 + // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:12466 AmdMemoryOverallocationBehavior = 1 - // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:12465 + // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:12467 AmdMemoryOverallocationBehaviorSpecVersion = 1 - // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:12466 + // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:12468 AmdMemoryOverallocationBehaviorExtensionName = "VK_AMD_memory_overallocation_behavior" - // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:12482 + // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:12484 ExtVertexAttributeDivisor = 1 - // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:12483 + // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:12485 ExtVertexAttributeDivisorSpecVersion = 3 - // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:12484 + // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:12486 ExtVertexAttributeDivisorExtensionName = "VK_EXT_vertex_attribute_divisor" - // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:12512 + // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:12514 ExtPipelineCreationFeedback = 1 - // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:12513 + // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:12515 ExtPipelineCreationFeedbackSpecVersion = 1 - // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:12514 + // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:12516 ExtPipelineCreationFeedbackExtensionName = "VK_EXT_pipeline_creation_feedback" - // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:12525 + // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:12527 NvShaderSubgroupPartitioned = 1 - // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:12526 + // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:12528 NvShaderSubgroupPartitionedSpecVersion = 1 - // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:12527 + // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:12529 NvShaderSubgroupPartitionedExtensionName = "VK_NV_shader_subgroup_partitioned" - // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:12530 + // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:12532 NvComputeShaderDerivatives = 1 - // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:12531 + // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:12533 NvComputeShaderDerivativesSpecVersion = 1 - // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:12532 + // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:12534 NvComputeShaderDerivativesExtensionName = "VK_NV_compute_shader_derivatives" - // NvMeshShader as defined in vulkan/vulkan_core.h:12542 + // NvMeshShader as defined in vulkan/vulkan_core.h:12544 NvMeshShader = 1 - // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:12543 + // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:12545 NvMeshShaderSpecVersion = 1 - // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:12544 + // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:12546 NvMeshShaderExtensionName = "VK_NV_mesh_shader" - // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:12603 + // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:12605 NvFragmentShaderBarycentric = 1 - // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:12604 + // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:12606 NvFragmentShaderBarycentricSpecVersion = 1 - // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:12605 + // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:12607 NvFragmentShaderBarycentricExtensionName = "VK_NV_fragment_shader_barycentric" - // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:12610 + // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:12612 NvShaderImageFootprint = 1 - // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:12611 + // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:12613 NvShaderImageFootprintSpecVersion = 2 - // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:12612 + // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:12614 NvShaderImageFootprintExtensionName = "VK_NV_shader_image_footprint" - // NvScissorExclusive as defined in vulkan/vulkan_core.h:12621 + // NvScissorExclusive as defined in vulkan/vulkan_core.h:12623 NvScissorExclusive = 1 - // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:12622 + // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:12624 NvScissorExclusiveSpecVersion = 1 - // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:12623 + // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:12625 NvScissorExclusiveExtensionName = "VK_NV_scissor_exclusive" - // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:12648 + // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:12650 NvDeviceDiagnosticCheckpoints = 1 - // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:12649 + // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:12651 NvDeviceDiagnosticCheckpointsSpecVersion = 2 - // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:12650 + // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:12652 NvDeviceDiagnosticCheckpointsExtensionName = "VK_NV_device_diagnostic_checkpoints" - // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:12679 + // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:12681 IntelShaderIntegerFunctions2 = 1 - // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:12680 + // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:12682 IntelShaderIntegerFunctions2SpecVersion = 1 - // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:12681 + // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:12683 IntelShaderIntegerFunctions2ExtensionName = "VK_INTEL_shader_integer_functions2" - // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:12690 + // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:12692 IntelPerformanceQuery = 1 - // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12692 + // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12694 IntelPerformanceQuerySpecVersion = 2 - // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12693 + // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12695 IntelPerformanceQueryExtensionName = "VK_INTEL_performance_query" - // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12828 + // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12830 ExtPciBusInfo = 1 - // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:12829 + // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:12831 ExtPciBusInfoSpecVersion = 2 - // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12830 + // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12832 ExtPciBusInfoExtensionName = "VK_EXT_pci_bus_info" - // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12842 + // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12844 AmdDisplayNativeHdr = 1 - // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12843 + // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12845 AmdDisplayNativeHdrSpecVersion = 1 - // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12844 + // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12846 AmdDisplayNativeHdrExtensionName = "VK_AMD_display_native_hdr" - // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12867 + // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12869 ExtFragmentDensityMap = 1 - // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12868 + // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12870 ExtFragmentDensityMapSpecVersion = 2 - // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12869 + // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12871 ExtFragmentDensityMapExtensionName = "VK_EXT_fragment_density_map" - // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12894 + // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12896 ExtScalarBlockLayout = 1 - // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12895 + // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12897 ExtScalarBlockLayoutSpecVersion = 1 - // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12896 + // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12898 ExtScalarBlockLayoutExtensionName = "VK_EXT_scalar_block_layout" - // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12901 + // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12903 GoogleHlslFunctionality1 = 1 - // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:12902 + // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:12904 GoogleHlslFunctionality1SpecVersion = 1 - // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12903 + // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12905 GoogleHlslFunctionality1ExtensionName = "VK_GOOGLE_hlsl_functionality1" - // GoogleDecorateString as defined in vulkan/vulkan_core.h:12908 + // GoogleDecorateString as defined in vulkan/vulkan_core.h:12910 GoogleDecorateString = 1 - // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:12909 + // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:12911 GoogleDecorateStringSpecVersion = 1 - // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12910 + // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12912 GoogleDecorateStringExtensionName = "VK_GOOGLE_decorate_string" - // ExtSubgroupSizeControl as defined in vulkan/vulkan_core.h:12913 + // ExtSubgroupSizeControl as defined in vulkan/vulkan_core.h:12915 ExtSubgroupSizeControl = 1 - // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12914 + // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12916 ExtSubgroupSizeControlSpecVersion = 2 - // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12915 + // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12917 ExtSubgroupSizeControlExtensionName = "VK_EXT_subgroup_size_control" - // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12924 + // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12926 AmdShaderCoreProperties2 = 1 - // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12925 + // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12927 AmdShaderCoreProperties2SpecVersion = 1 - // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12926 + // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12928 AmdShaderCoreProperties2ExtensionName = "VK_AMD_shader_core_properties2" - // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12941 + // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12943 AmdDeviceCoherentMemory = 1 - // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12942 + // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12944 AmdDeviceCoherentMemorySpecVersion = 1 - // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12943 + // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12945 AmdDeviceCoherentMemoryExtensionName = "VK_AMD_device_coherent_memory" - // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12952 + // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12954 ExtShaderImageAtomicInt64 = 1 - // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12953 + // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12955 ExtShaderImageAtomicInt64SpecVersion = 1 - // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12954 + // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12956 ExtShaderImageAtomicInt64ExtensionName = "VK_EXT_shader_image_atomic_int64" - // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12964 + // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12966 ExtMemoryBudget = 1 - // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12965 + // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12967 ExtMemoryBudgetSpecVersion = 1 - // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12966 + // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12968 ExtMemoryBudgetExtensionName = "VK_EXT_memory_budget" - // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12976 + // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12978 ExtMemoryPriority = 1 - // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12977 + // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12979 ExtMemoryPrioritySpecVersion = 1 - // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12978 + // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12980 ExtMemoryPriorityExtensionName = "VK_EXT_memory_priority" - // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12993 + // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12995 NvDedicatedAllocationImageAliasing = 1 - // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12994 + // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12996 NvDedicatedAllocationImageAliasingSpecVersion = 1 - // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12995 + // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12997 NvDedicatedAllocationImageAliasingExtensionName = "VK_NV_dedicated_allocation_image_aliasing" - // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:13004 + // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:13006 ExtBufferDeviceAddress = 1 - // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:13005 + // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:13007 ExtBufferDeviceAddressSpecVersion = 2 - // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:13006 + // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:13008 ExtBufferDeviceAddressExtensionName = "VK_EXT_buffer_device_address" - // ExtToolingInfo as defined in vulkan/vulkan_core.h:13034 + // ExtToolingInfo as defined in vulkan/vulkan_core.h:13036 ExtToolingInfo = 1 - // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:13035 + // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:13037 ExtToolingInfoSpecVersion = 1 - // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:13036 + // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:13038 ExtToolingInfoExtensionName = "VK_EXT_tooling_info" - // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:13053 + // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:13055 ExtSeparateStencilUsage = 1 - // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:13054 + // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:13056 ExtSeparateStencilUsageSpecVersion = 1 - // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:13055 + // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:13057 ExtSeparateStencilUsageExtensionName = "VK_EXT_separate_stencil_usage" - // ExtValidationFeatures as defined in vulkan/vulkan_core.h:13060 + // ExtValidationFeatures as defined in vulkan/vulkan_core.h:13062 ExtValidationFeatures = 1 - // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:13061 + // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:13063 ExtValidationFeaturesSpecVersion = 5 - // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:13062 + // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:13064 ExtValidationFeaturesExtensionName = "VK_EXT_validation_features" - // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:13095 + // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:13097 NvCooperativeMatrix = 1 - // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:13096 + // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:13098 NvCooperativeMatrixSpecVersion = 1 - // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:13097 + // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:13099 NvCooperativeMatrixExtensionName = "VK_NV_cooperative_matrix" - // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:13157 + // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:13159 NvCoverageReductionMode = 1 - // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:13158 + // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:13160 NvCoverageReductionModeSpecVersion = 1 - // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:13159 + // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:13161 NvCoverageReductionModeExtensionName = "VK_NV_coverage_reduction_mode" - // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:13199 + // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:13201 ExtFragmentShaderInterlock = 1 - // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:13200 + // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:13202 ExtFragmentShaderInterlockSpecVersion = 1 - // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:13201 + // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:13203 ExtFragmentShaderInterlockExtensionName = "VK_EXT_fragment_shader_interlock" - // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:13212 + // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:13214 ExtYcbcrImageArrays = 1 - // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:13213 + // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:13215 ExtYcbcrImageArraysSpecVersion = 1 - // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:13214 + // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:13216 ExtYcbcrImageArraysExtensionName = "VK_EXT_ycbcr_image_arrays" - // ExtProvokingVertex as defined in vulkan/vulkan_core.h:13223 + // ExtProvokingVertex as defined in vulkan/vulkan_core.h:13225 ExtProvokingVertex = 1 - // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:13224 + // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:13226 ExtProvokingVertexSpecVersion = 1 - // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:13225 + // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:13227 ExtProvokingVertexExtensionName = "VK_EXT_provoking_vertex" - // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:13254 + // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:13256 ExtHeadlessSurface = 1 - // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:13255 + // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:13257 ExtHeadlessSurfaceSpecVersion = 1 - // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:13256 + // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:13258 ExtHeadlessSurfaceExtensionName = "VK_EXT_headless_surface" - // ExtLineRasterization as defined in vulkan/vulkan_core.h:13275 + // ExtLineRasterization as defined in vulkan/vulkan_core.h:13277 ExtLineRasterization = 1 - // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:13276 + // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:13278 ExtLineRasterizationSpecVersion = 1 - // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:13277 + // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:13279 ExtLineRasterizationExtensionName = "VK_EXT_line_rasterization" - // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:13322 + // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:13324 ExtShaderAtomicFloat = 1 - // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:13323 + // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:13325 ExtShaderAtomicFloatSpecVersion = 1 - // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:13324 + // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:13326 ExtShaderAtomicFloatExtensionName = "VK_EXT_shader_atomic_float" - // ExtHostQueryReset as defined in vulkan/vulkan_core.h:13344 + // ExtHostQueryReset as defined in vulkan/vulkan_core.h:13346 ExtHostQueryReset = 1 - // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:13345 + // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:13347 ExtHostQueryResetSpecVersion = 1 - // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:13346 + // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:13348 ExtHostQueryResetExtensionName = "VK_EXT_host_query_reset" - // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:13360 + // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:13362 ExtIndexTypeUint8 = 1 - // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:13361 + // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:13363 ExtIndexTypeUint8SpecVersion = 1 - // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:13362 + // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:13364 ExtIndexTypeUint8ExtensionName = "VK_EXT_index_type_uint8" - // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:13371 + // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:13373 ExtExtendedDynamicState = 1 - // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13372 + // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13374 ExtExtendedDynamicStateSpecVersion = 1 - // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13373 + // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13375 ExtExtendedDynamicStateExtensionName = "VK_EXT_extended_dynamic_state" - // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:13455 + // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:13457 ExtShaderAtomicFloat2 = 1 - // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:13456 + // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:13458 ExtShaderAtomicFloat2SpecVersion = 1 - // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:13457 + // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:13459 ExtShaderAtomicFloat2ExtensionName = "VK_EXT_shader_atomic_float2" - // ExtSurfaceMaintenance1 as defined in vulkan/vulkan_core.h:13477 + // ExtSurfaceMaintenance1 as defined in vulkan/vulkan_core.h:13479 ExtSurfaceMaintenance1 = 1 - // ExtSurfaceMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13478 + // ExtSurfaceMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13480 ExtSurfaceMaintenance1SpecVersion = 1 - // ExtSurfaceMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13479 + // ExtSurfaceMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13481 ExtSurfaceMaintenance1ExtensionName = "VK_EXT_surface_maintenance1" - // ExtSwapchainMaintenance1 as defined in vulkan/vulkan_core.h:13521 + // ExtSwapchainMaintenance1 as defined in vulkan/vulkan_core.h:13523 ExtSwapchainMaintenance1 = 1 - // ExtSwapchainMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13522 + // ExtSwapchainMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13524 ExtSwapchainMaintenance1SpecVersion = 1 - // ExtSwapchainMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13523 + // ExtSwapchainMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13525 ExtSwapchainMaintenance1ExtensionName = "VK_EXT_swapchain_maintenance1" - // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:13576 + // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:13578 ExtShaderDemoteToHelperInvocation = 1 - // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:13577 + // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:13579 ExtShaderDemoteToHelperInvocationSpecVersion = 1 - // ExtShaderDemoteToHelperInvocationExtensionName as defined in vulkan/vulkan_core.h:13578 + // 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:13583 + // NvDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:13585 NvDeviceGeneratedCommands = 1 - // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:13585 + // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:13587 NvDeviceGeneratedCommandsSpecVersion = 3 - // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:13586 + // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:13588 NvDeviceGeneratedCommandsExtensionName = "VK_NV_device_generated_commands" - // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:13774 + // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:13776 NvInheritedViewportScissor = 1 - // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:13775 + // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:13777 NvInheritedViewportScissorSpecVersion = 1 - // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:13776 + // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:13778 NvInheritedViewportScissorExtensionName = "VK_NV_inherited_viewport_scissor" - // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13793 + // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13795 ExtTexelBufferAlignment = 1 - // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13794 + // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13796 ExtTexelBufferAlignmentSpecVersion = 1 - // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13795 + // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13797 ExtTexelBufferAlignmentExtensionName = "VK_EXT_texel_buffer_alignment" - // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13806 + // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13808 QcomRenderPassTransform = 1 - // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13807 + // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13809 QcomRenderPassTransformSpecVersion = 3 - // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13808 + // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13810 QcomRenderPassTransformExtensionName = "VK_QCOM_render_pass_transform" - // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13824 + // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13826 ExtDeviceMemoryReport = 1 - // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13825 + // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13827 ExtDeviceMemoryReportSpecVersion = 2 - // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13826 + // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13828 ExtDeviceMemoryReportExtensionName = "VK_EXT_device_memory_report" - // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13869 + // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13871 ExtAcquireDrmDisplay = 1 - // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13870 + // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13872 ExtAcquireDrmDisplaySpecVersion = 1 - // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13871 + // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13873 ExtAcquireDrmDisplayExtensionName = "VK_EXT_acquire_drm_display" - // ExtRobustness2 as defined in vulkan/vulkan_core.h:13889 + // ExtRobustness2 as defined in vulkan/vulkan_core.h:13891 ExtRobustness2 = 1 - // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13890 + // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13892 ExtRobustness2SpecVersion = 1 - // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13891 + // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13893 ExtRobustness2ExtensionName = "VK_EXT_robustness2" - // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13909 + // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13911 ExtCustomBorderColor = 1 - // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13910 + // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13912 ExtCustomBorderColorSpecVersion = 12 - // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13911 + // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13913 ExtCustomBorderColorExtensionName = "VK_EXT_custom_border_color" - // GoogleUserType as defined in vulkan/vulkan_core.h:13934 + // GoogleUserType as defined in vulkan/vulkan_core.h:13936 GoogleUserType = 1 - // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13935 + // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13937 GoogleUserTypeSpecVersion = 1 - // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13936 + // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13938 GoogleUserTypeExtensionName = "VK_GOOGLE_user_type" - // NvPresentBarrier as defined in vulkan/vulkan_core.h:13939 + // NvPresentBarrier as defined in vulkan/vulkan_core.h:13941 NvPresentBarrier = 1 - // NvPresentBarrierSpecVersion as defined in vulkan/vulkan_core.h:13940 + // NvPresentBarrierSpecVersion as defined in vulkan/vulkan_core.h:13942 NvPresentBarrierSpecVersion = 1 - // NvPresentBarrierExtensionName as defined in vulkan/vulkan_core.h:13941 + // NvPresentBarrierExtensionName as defined in vulkan/vulkan_core.h:13943 NvPresentBarrierExtensionName = "VK_NV_present_barrier" - // ExtPrivateData as defined in vulkan/vulkan_core.h:13962 + // ExtPrivateData as defined in vulkan/vulkan_core.h:13964 ExtPrivateData = 1 - // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13965 + // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13967 ExtPrivateDataSpecVersion = 1 - // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13966 + // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13968 ExtPrivateDataExtensionName = "VK_EXT_private_data" - // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:14008 + // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:14010 ExtPipelineCreationCacheControl = 1 - // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:14009 + // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:14011 ExtPipelineCreationCacheControlSpecVersion = 3 - // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:14010 + // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:14012 ExtPipelineCreationCacheControlExtensionName = "VK_EXT_pipeline_creation_cache_control" - // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:14015 + // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:14017 NvDeviceDiagnosticsConfig = 1 - // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:14016 + // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:14018 NvDeviceDiagnosticsConfigSpecVersion = 2 - // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:14017 + // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:14019 NvDeviceDiagnosticsConfigExtensionName = "VK_NV_device_diagnostics_config" - // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:14041 + // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:14043 QcomRenderPassStoreOps = 1 - // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:14042 + // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:14044 QcomRenderPassStoreOpsSpecVersion = 2 - // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:14043 + // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:14045 QcomRenderPassStoreOpsExtensionName = "VK_QCOM_render_pass_store_ops" - // ExtDescriptorBuffer as defined in vulkan/vulkan_core.h:14046 + // ExtDescriptorBuffer as defined in vulkan/vulkan_core.h:14048 ExtDescriptorBuffer = 1 - // ExtDescriptorBufferSpecVersion as defined in vulkan/vulkan_core.h:14048 + // ExtDescriptorBufferSpecVersion as defined in vulkan/vulkan_core.h:14050 ExtDescriptorBufferSpecVersion = 1 - // ExtDescriptorBufferExtensionName as defined in vulkan/vulkan_core.h:14049 + // ExtDescriptorBufferExtensionName as defined in vulkan/vulkan_core.h:14051 ExtDescriptorBufferExtensionName = "VK_EXT_descriptor_buffer" - // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:14265 + // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:14267 ExtGraphicsPipelineLibrary = 1 - // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:14266 + // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:14268 ExtGraphicsPipelineLibrarySpecVersion = 1 - // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:14267 + // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:14269 ExtGraphicsPipelineLibraryExtensionName = "VK_EXT_graphics_pipeline_library" - // AmdShaderEarlyAndLateFragmentTests as defined in vulkan/vulkan_core.h:14298 + // AmdShaderEarlyAndLateFragmentTests as defined in vulkan/vulkan_core.h:14300 AmdShaderEarlyAndLateFragmentTests = 1 - // AmdShaderEarlyAndLateFragmentTestsSpecVersion as defined in vulkan/vulkan_core.h:14299 + // AmdShaderEarlyAndLateFragmentTestsSpecVersion as defined in vulkan/vulkan_core.h:14301 AmdShaderEarlyAndLateFragmentTestsSpecVersion = 1 - // AmdShaderEarlyAndLateFragmentTestsExtensionName as defined in vulkan/vulkan_core.h:14300 + // 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:14309 + // NvFragmentShadingRateEnums as defined in vulkan/vulkan_core.h:14311 NvFragmentShadingRateEnums = 1 - // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:14310 + // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:14312 NvFragmentShadingRateEnumsSpecVersion = 1 - // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:14311 + // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:14313 NvFragmentShadingRateEnumsExtensionName = "VK_NV_fragment_shading_rate_enums" - // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:14457 + // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:14459 ExtYcbcr2plane444Formats = 1 - // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14458 + // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14460 ExtYcbcr2plane444FormatsSpecVersion = 1 - // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:14459 + // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:14461 ExtYcbcr2plane444FormatsExtensionName = "VK_EXT_ycbcr_2plane_444_formats" - // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:14468 + // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:14470 ExtFragmentDensityMap2 = 1 - // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:14469 + // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:14471 ExtFragmentDensityMap2SpecVersion = 1 - // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:14470 + // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:14472 ExtFragmentDensityMap2ExtensionName = "VK_EXT_fragment_density_map2" - // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:14488 + // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:14490 QcomRotatedCopyCommands = 1 - // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:14489 + // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:14491 QcomRotatedCopyCommandsSpecVersion = 1 - // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:14490 + // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:14492 QcomRotatedCopyCommandsExtensionName = "VK_QCOM_rotated_copy_commands" - // ExtImageRobustness as defined in vulkan/vulkan_core.h:14499 + // ExtImageRobustness as defined in vulkan/vulkan_core.h:14501 ExtImageRobustness = 1 - // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:14500 + // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:14502 ExtImageRobustnessSpecVersion = 1 - // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:14501 + // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:14503 ExtImageRobustnessExtensionName = "VK_EXT_image_robustness" - // ExtImageCompressionControl as defined in vulkan/vulkan_core.h:14506 + // ExtImageCompressionControl as defined in vulkan/vulkan_core.h:14508 ExtImageCompressionControl = 1 - // ExtImageCompressionControlSpecVersion as defined in vulkan/vulkan_core.h:14507 + // ExtImageCompressionControlSpecVersion as defined in vulkan/vulkan_core.h:14509 ExtImageCompressionControlSpecVersion = 1 - // ExtImageCompressionControlExtensionName as defined in vulkan/vulkan_core.h:14508 + // ExtImageCompressionControlExtensionName as defined in vulkan/vulkan_core.h:14510 ExtImageCompressionControlExtensionName = "VK_EXT_image_compression_control" - // ExtAttachmentFeedbackLoopLayout as defined in vulkan/vulkan_core.h:14592 + // ExtAttachmentFeedbackLoopLayout as defined in vulkan/vulkan_core.h:14594 ExtAttachmentFeedbackLoopLayout = 1 - // ExtAttachmentFeedbackLoopLayoutSpecVersion as defined in vulkan/vulkan_core.h:14593 + // ExtAttachmentFeedbackLoopLayoutSpecVersion as defined in vulkan/vulkan_core.h:14595 ExtAttachmentFeedbackLoopLayoutSpecVersion = 2 - // ExtAttachmentFeedbackLoopLayoutExtensionName as defined in vulkan/vulkan_core.h:14594 + // ExtAttachmentFeedbackLoopLayoutExtensionName as defined in vulkan/vulkan_core.h:14596 ExtAttachmentFeedbackLoopLayoutExtensionName = "VK_EXT_attachment_feedback_loop_layout" - // Ext4444Formats as defined in vulkan/vulkan_core.h:14603 + // Ext4444Formats as defined in vulkan/vulkan_core.h:14605 Ext4444Formats = 1 - // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14604 + // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14606 Ext4444FormatsSpecVersion = 1 - // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:14605 + // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:14607 Ext4444FormatsExtensionName = "VK_EXT_4444_formats" - // StdVulkanVideoCodecH264DecodeSpecVersion as defined in vk_video/vulkan_video_codec_h264std_decode.h:27 - // 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 - // 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 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" - // KhrVideoEncodeQueue as defined in vulkan/vulkan_beta.h:53 - KhrVideoEncodeQueue = 1 - // KhrVideoEncodeQueueSpecVersion as defined in vulkan/vulkan_beta.h:54 - KhrVideoEncodeQueueSpecVersion = 7 - // KhrVideoEncodeQueueExtensionName as defined in vulkan/vulkan_beta.h:55 - KhrVideoEncodeQueueExtensionName = "VK_KHR_video_encode_queue" - // ExtVideoEncodeH264 as defined in vulkan/vulkan_beta.h:162 - ExtVideoEncodeH264 = 1 - // ExtVideoEncodeH264SpecVersion as defined in vulkan/vulkan_beta.h:165 - ExtVideoEncodeH264SpecVersion = 9 - // ExtVideoEncodeH264ExtensionName as defined in vulkan/vulkan_beta.h:166 - ExtVideoEncodeH264ExtensionName = "VK_EXT_video_encode_h264" - // ExtVideoEncodeH265 as defined in vulkan/vulkan_beta.h:340 - ExtVideoEncodeH265 = 1 - // ExtVideoEncodeH265SpecVersion as defined in vulkan/vulkan_beta.h:343 - ExtVideoEncodeH265SpecVersion = 9 - // 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 - // 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 - // StdVulkanVideoCodecH265EncodeExtensionName as defined in vk_video/vulkan_video_codec_h265std_encode.h:27 - StdVulkanVideoCodecH265EncodeExtensionName = "VK_STD_vulkan_video_codec_h265_encode" ) // Result as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResult.html @@ -4469,17 +4423,6 @@ const ( VideoDecodeUsageFlagBitsMaxEnum VideoDecodeUsageFlagBits = 2147483647 ) -// VideoDecodeH264PictureLayoutFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagBitsKHR -type VideoDecodeH264PictureLayoutFlagBits int32 - -// VideoDecodeH264PictureLayoutFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeH264PictureLayoutFlagBitsKHR -const ( - VideoDecodeH264PictureLayoutProgressive VideoDecodeH264PictureLayoutFlagBits = iota - VideoDecodeH264PictureLayoutInterlacedInterleavedLinesBit VideoDecodeH264PictureLayoutFlagBits = 1 - VideoDecodeH264PictureLayoutInterlacedSeparatePlanesBit VideoDecodeH264PictureLayoutFlagBits = 2 - VideoDecodeH264PictureLayoutFlagBitsMaxEnum VideoDecodeH264PictureLayoutFlagBits = 2147483647 -) - // PerformanceCounterUnit as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR type PerformanceCounterUnit int32 @@ -5251,217 +5194,3 @@ const ( ImageCompressionFixedRate24bpcBit ImageCompressionFixedRateFlagBits = 8388608 ImageCompressionFixedRateFlagBitsMaxEnum ImageCompressionFixedRateFlagBits = 2147483647 ) - -// VideoEncodeTuningMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeTuningModeKHR -type VideoEncodeTuningMode int32 - -// VideoEncodeTuningMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeTuningModeKHR -const ( - VideoEncodeTuningModeDefault VideoEncodeTuningMode = iota - VideoEncodeTuningModeHighQuality VideoEncodeTuningMode = 1 - VideoEncodeTuningModeLowLatency VideoEncodeTuningMode = 2 - VideoEncodeTuningModeUltraLowLatency VideoEncodeTuningMode = 3 - VideoEncodeTuningModeLossless VideoEncodeTuningMode = 4 - VideoEncodeTuningModeMaxEnum VideoEncodeTuningMode = 2147483647 -) - -// VideoEncodeCapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR -type VideoEncodeCapabilityFlagBits int32 - -// VideoEncodeCapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR -const ( - VideoEncodeCapabilityPrecedingExternallyEncodedBytesBit VideoEncodeCapabilityFlagBits = 1 - VideoEncodeCapabilityFlagBitsMaxEnum VideoEncodeCapabilityFlagBits = 2147483647 -) - -// VideoEncodeRateControlModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagBitsKHR -type VideoEncodeRateControlModeFlagBits int32 - -// VideoEncodeRateControlModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagBitsKHR -const ( - VideoEncodeRateControlModeNoneBit VideoEncodeRateControlModeFlagBits = iota - VideoEncodeRateControlModeCbrBit VideoEncodeRateControlModeFlagBits = 1 - VideoEncodeRateControlModeVbrBit VideoEncodeRateControlModeFlagBits = 2 - VideoEncodeRateControlModeFlagBitsMaxEnum VideoEncodeRateControlModeFlagBits = 2147483647 -) - -// VideoEncodeUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagBitsKHR -type VideoEncodeUsageFlagBits int32 - -// VideoEncodeUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagBitsKHR -const ( - VideoEncodeUsageDefault VideoEncodeUsageFlagBits = iota - VideoEncodeUsageTranscodingBit VideoEncodeUsageFlagBits = 1 - VideoEncodeUsageStreamingBit VideoEncodeUsageFlagBits = 2 - VideoEncodeUsageRecordingBit VideoEncodeUsageFlagBits = 4 - VideoEncodeUsageConferencingBit VideoEncodeUsageFlagBits = 8 - VideoEncodeUsageFlagBitsMaxEnum VideoEncodeUsageFlagBits = 2147483647 -) - -// VideoEncodeContentFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagBitsKHR -type VideoEncodeContentFlagBits int32 - -// VideoEncodeContentFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagBitsKHR -const ( - VideoEncodeContentDefault VideoEncodeContentFlagBits = iota - VideoEncodeContentCameraBit VideoEncodeContentFlagBits = 1 - VideoEncodeContentDesktopBit VideoEncodeContentFlagBits = 2 - VideoEncodeContentRenderedBit VideoEncodeContentFlagBits = 4 - VideoEncodeContentFlagBitsMaxEnum VideoEncodeContentFlagBits = 2147483647 -) - -// VideoEncodeH264RateControlStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlStructureEXT.html -type VideoEncodeH264RateControlStructure int32 - -// VideoEncodeH264RateControlStructure enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlStructureEXT.html -const ( - VideoEncodeH264RateControlStructureUnknown VideoEncodeH264RateControlStructure = iota - VideoEncodeH264RateControlStructureFlat VideoEncodeH264RateControlStructure = 1 - VideoEncodeH264RateControlStructureDyadic VideoEncodeH264RateControlStructure = 2 - VideoEncodeH264RateControlStructureMaxEnum VideoEncodeH264RateControlStructure = 2147483647 -) - -// VideoEncodeH264CapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagBitsEXT.html -type VideoEncodeH264CapabilityFlagBits int32 - -// VideoEncodeH264CapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagBitsEXT.html -const ( - VideoEncodeH264CapabilityDirect8x8InferenceEnabledBit VideoEncodeH264CapabilityFlagBits = 1 - VideoEncodeH264CapabilityDirect8x8InferenceDisabledBit VideoEncodeH264CapabilityFlagBits = 2 - VideoEncodeH264CapabilitySeparateColourPlaneBit VideoEncodeH264CapabilityFlagBits = 4 - VideoEncodeH264CapabilityQpprimeYZeroTransformBypassBit VideoEncodeH264CapabilityFlagBits = 8 - VideoEncodeH264CapabilityScalingListsBit VideoEncodeH264CapabilityFlagBits = 16 - VideoEncodeH264CapabilityHrdComplianceBit VideoEncodeH264CapabilityFlagBits = 32 - VideoEncodeH264CapabilityChromaQpOffsetBit VideoEncodeH264CapabilityFlagBits = 64 - VideoEncodeH264CapabilitySecondChromaQpOffsetBit VideoEncodeH264CapabilityFlagBits = 128 - VideoEncodeH264CapabilityPicInitQpMinus26Bit VideoEncodeH264CapabilityFlagBits = 256 - VideoEncodeH264CapabilityWeightedPredBit VideoEncodeH264CapabilityFlagBits = 512 - VideoEncodeH264CapabilityWeightedBipredExplicitBit VideoEncodeH264CapabilityFlagBits = 1024 - VideoEncodeH264CapabilityWeightedBipredImplicitBit VideoEncodeH264CapabilityFlagBits = 2048 - VideoEncodeH264CapabilityWeightedPredNoTableBit VideoEncodeH264CapabilityFlagBits = 4096 - VideoEncodeH264CapabilityTransform8x8Bit VideoEncodeH264CapabilityFlagBits = 8192 - VideoEncodeH264CapabilityCabacBit VideoEncodeH264CapabilityFlagBits = 16384 - VideoEncodeH264CapabilityCavlcBit VideoEncodeH264CapabilityFlagBits = 32768 - VideoEncodeH264CapabilityDeblockingFilterDisabledBit VideoEncodeH264CapabilityFlagBits = 65536 - VideoEncodeH264CapabilityDeblockingFilterEnabledBit VideoEncodeH264CapabilityFlagBits = 131072 - VideoEncodeH264CapabilityDeblockingFilterPartialBit VideoEncodeH264CapabilityFlagBits = 262144 - VideoEncodeH264CapabilityDisableDirectSpatialMvPredBit VideoEncodeH264CapabilityFlagBits = 524288 - VideoEncodeH264CapabilityMultipleSlicePerFrameBit VideoEncodeH264CapabilityFlagBits = 1048576 - VideoEncodeH264CapabilitySliceMbCountBit VideoEncodeH264CapabilityFlagBits = 2097152 - VideoEncodeH264CapabilityRowUnalignedSliceBit VideoEncodeH264CapabilityFlagBits = 4194304 - VideoEncodeH264CapabilityDifferentSliceTypeBit VideoEncodeH264CapabilityFlagBits = 8388608 - VideoEncodeH264CapabilityBFrameInL1ListBit VideoEncodeH264CapabilityFlagBits = 16777216 - VideoEncodeH264CapabilityFlagBitsMaxEnum VideoEncodeH264CapabilityFlagBits = 2147483647 -) - -// VideoEncodeH264InputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagBitsEXT.html -type VideoEncodeH264InputModeFlagBits int32 - -// VideoEncodeH264InputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagBitsEXT.html -const ( - VideoEncodeH264InputModeFrameBit VideoEncodeH264InputModeFlagBits = 1 - VideoEncodeH264InputModeSliceBit VideoEncodeH264InputModeFlagBits = 2 - VideoEncodeH264InputModeNonVclBit VideoEncodeH264InputModeFlagBits = 4 - VideoEncodeH264InputModeFlagBitsMaxEnum VideoEncodeH264InputModeFlagBits = 2147483647 -) - -// VideoEncodeH264OutputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagBitsEXT.html -type VideoEncodeH264OutputModeFlagBits int32 - -// VideoEncodeH264OutputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagBitsEXT.html -const ( - VideoEncodeH264OutputModeFrameBit VideoEncodeH264OutputModeFlagBits = 1 - VideoEncodeH264OutputModeSliceBit VideoEncodeH264OutputModeFlagBits = 2 - VideoEncodeH264OutputModeNonVclBit VideoEncodeH264OutputModeFlagBits = 4 - VideoEncodeH264OutputModeFlagBitsMaxEnum VideoEncodeH264OutputModeFlagBits = 2147483647 -) - -// VideoEncodeH265RateControlStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlStructureEXT.html -type VideoEncodeH265RateControlStructure int32 - -// VideoEncodeH265RateControlStructure enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlStructureEXT.html -const ( - VideoEncodeH265RateControlStructureUnknown VideoEncodeH265RateControlStructure = iota - VideoEncodeH265RateControlStructureFlat VideoEncodeH265RateControlStructure = 1 - VideoEncodeH265RateControlStructureDyadic VideoEncodeH265RateControlStructure = 2 - VideoEncodeH265RateControlStructureMaxEnum VideoEncodeH265RateControlStructure = 2147483647 -) - -// VideoEncodeH265CapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagBitsEXT.html -type VideoEncodeH265CapabilityFlagBits int32 - -// VideoEncodeH265CapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagBitsEXT.html -const ( - VideoEncodeH265CapabilitySeparateColourPlaneBit VideoEncodeH265CapabilityFlagBits = 1 - VideoEncodeH265CapabilityScalingListsBit VideoEncodeH265CapabilityFlagBits = 2 - VideoEncodeH265CapabilitySampleAdaptiveOffsetEnabledBit VideoEncodeH265CapabilityFlagBits = 4 - VideoEncodeH265CapabilityPcmEnableBit VideoEncodeH265CapabilityFlagBits = 8 - VideoEncodeH265CapabilitySpsTemporalMvpEnabledBit VideoEncodeH265CapabilityFlagBits = 16 - VideoEncodeH265CapabilityHrdComplianceBit VideoEncodeH265CapabilityFlagBits = 32 - VideoEncodeH265CapabilityInitQpMinus26Bit VideoEncodeH265CapabilityFlagBits = 64 - VideoEncodeH265CapabilityLog2ParallelMergeLevelMinus2Bit VideoEncodeH265CapabilityFlagBits = 128 - VideoEncodeH265CapabilitySignDataHidingEnabledBit VideoEncodeH265CapabilityFlagBits = 256 - VideoEncodeH265CapabilityTransformSkipEnabledBit VideoEncodeH265CapabilityFlagBits = 512 - VideoEncodeH265CapabilityTransformSkipDisabledBit VideoEncodeH265CapabilityFlagBits = 1024 - VideoEncodeH265CapabilityPpsSliceChromaQpOffsetsPresentBit VideoEncodeH265CapabilityFlagBits = 2048 - VideoEncodeH265CapabilityWeightedPredBit VideoEncodeH265CapabilityFlagBits = 4096 - VideoEncodeH265CapabilityWeightedBipredBit VideoEncodeH265CapabilityFlagBits = 8192 - VideoEncodeH265CapabilityWeightedPredNoTableBit VideoEncodeH265CapabilityFlagBits = 16384 - VideoEncodeH265CapabilityTransquantBypassEnabledBit VideoEncodeH265CapabilityFlagBits = 32768 - VideoEncodeH265CapabilityEntropyCodingSyncEnabledBit VideoEncodeH265CapabilityFlagBits = 65536 - VideoEncodeH265CapabilityDeblockingFilterOverrideEnabledBit VideoEncodeH265CapabilityFlagBits = 131072 - VideoEncodeH265CapabilityMultipleTilePerFrameBit VideoEncodeH265CapabilityFlagBits = 262144 - VideoEncodeH265CapabilityMultipleSlicePerTileBit VideoEncodeH265CapabilityFlagBits = 524288 - VideoEncodeH265CapabilityMultipleTilePerSliceBit VideoEncodeH265CapabilityFlagBits = 1048576 - VideoEncodeH265CapabilitySliceSegmentCtbCountBit VideoEncodeH265CapabilityFlagBits = 2097152 - VideoEncodeH265CapabilityRowUnalignedSliceSegmentBit VideoEncodeH265CapabilityFlagBits = 4194304 - VideoEncodeH265CapabilityDependentSliceSegmentBit VideoEncodeH265CapabilityFlagBits = 8388608 - VideoEncodeH265CapabilityDifferentSliceTypeBit VideoEncodeH265CapabilityFlagBits = 16777216 - VideoEncodeH265CapabilityBFrameInL1ListBit VideoEncodeH265CapabilityFlagBits = 33554432 - VideoEncodeH265CapabilityFlagBitsMaxEnum VideoEncodeH265CapabilityFlagBits = 2147483647 -) - -// VideoEncodeH265InputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagBitsEXT.html -type VideoEncodeH265InputModeFlagBits int32 - -// VideoEncodeH265InputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagBitsEXT.html -const ( - VideoEncodeH265InputModeFrameBit VideoEncodeH265InputModeFlagBits = 1 - VideoEncodeH265InputModeSliceSegmentBit VideoEncodeH265InputModeFlagBits = 2 - VideoEncodeH265InputModeNonVclBit VideoEncodeH265InputModeFlagBits = 4 - VideoEncodeH265InputModeFlagBitsMaxEnum VideoEncodeH265InputModeFlagBits = 2147483647 -) - -// VideoEncodeH265OutputModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagBitsEXT.html -type VideoEncodeH265OutputModeFlagBits int32 - -// VideoEncodeH265OutputModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagBitsEXT.html -const ( - VideoEncodeH265OutputModeFrameBit VideoEncodeH265OutputModeFlagBits = 1 - VideoEncodeH265OutputModeSliceSegmentBit VideoEncodeH265OutputModeFlagBits = 2 - VideoEncodeH265OutputModeNonVclBit VideoEncodeH265OutputModeFlagBits = 4 - VideoEncodeH265OutputModeFlagBitsMaxEnum VideoEncodeH265OutputModeFlagBits = 2147483647 -) - -// VideoEncodeH265CtbSizeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagBitsEXT.html -type VideoEncodeH265CtbSizeFlagBits int32 - -// VideoEncodeH265CtbSizeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagBitsEXT.html -const ( - VideoEncodeH265CtbSize16Bit VideoEncodeH265CtbSizeFlagBits = 1 - VideoEncodeH265CtbSize32Bit VideoEncodeH265CtbSizeFlagBits = 2 - VideoEncodeH265CtbSize64Bit VideoEncodeH265CtbSizeFlagBits = 4 - VideoEncodeH265CtbSizeFlagBitsMaxEnum VideoEncodeH265CtbSizeFlagBits = 2147483647 -) - -// VideoEncodeH265TransformBlockSizeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.html -type VideoEncodeH265TransformBlockSizeFlagBits int32 - -// VideoEncodeH265TransformBlockSizeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.html -const ( - VideoEncodeH265TransformBlockSize4Bit VideoEncodeH265TransformBlockSizeFlagBits = 1 - VideoEncodeH265TransformBlockSize8Bit VideoEncodeH265TransformBlockSizeFlagBits = 2 - VideoEncodeH265TransformBlockSize16Bit VideoEncodeH265TransformBlockSizeFlagBits = 4 - VideoEncodeH265TransformBlockSize32Bit VideoEncodeH265TransformBlockSizeFlagBits = 8 - VideoEncodeH265TransformBlockSizeFlagBitsMaxEnum VideoEncodeH265TransformBlockSizeFlagBits = 2147483647 -) diff --git a/doc.go b/doc.go index 25c2be5..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 Thu, 09 Feb 2023 23:47:41 PST. +// 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/types.go b/types.go index 1a2d901..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 Thu, 09 Feb 2023 23:47:41 PST. +// 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 @@ -5058,7 +5058,7 @@ 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:10232 +// 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 @@ -7057,7 +7057,7 @@ type DeviceMemoryReportCallbackData struct { allocs3150dbde interface{} } -// DeviceMemoryReportCallbackFunc type as declared in vulkan/vulkan_core.h:13855 +// 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 @@ -7538,426 +7538,3 @@ type PhysicalDevicePortabilitySubsetProperties struct { ref8babbd5c *C.VkPhysicalDevicePortabilitySubsetPropertiesKHR allocs8babbd5c interface{} } - -// VideoEncodeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeFlagsKHR -type VideoEncodeFlags uint32 - -// VideoEncodeCapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilityFlagsKHR -type VideoEncodeCapabilityFlags uint32 - -// VideoEncodeRateControlModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlModeFlagsKHR -type VideoEncodeRateControlModeFlags uint32 - -// VideoEncodeUsageFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageFlagsKHR -type VideoEncodeUsageFlags uint32 - -// VideoEncodeContentFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeContentFlagsKHR -type VideoEncodeContentFlags uint32 - -// VideoEncodeRateControlFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlFlagsKHR -type VideoEncodeRateControlFlags uint32 - -// VideoEncodeInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeInfoKHR -type VideoEncodeInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags VideoEncodeFlags - QualityLevel uint32 - DstBitstreamBuffer Buffer - DstBitstreamBufferOffset DeviceSize - DstBitstreamBufferMaxRange DeviceSize - SrcPictureResource VideoPictureResourceInfo - PSetupReferenceSlot []VideoReferenceSlotInfo - ReferenceSlotCount uint32 - PReferenceSlots []VideoReferenceSlotInfo - PrecedingExternallyEncodedBytes uint32 - ref17fdae33 *C.VkVideoEncodeInfoKHR - allocs17fdae33 interface{} -} - -// VideoEncodeCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeCapabilitiesKHR -type VideoEncodeCapabilities struct { - SType StructureType - PNext unsafe.Pointer - Flags VideoEncodeCapabilityFlags - RateControlModes VideoEncodeRateControlModeFlags - RateControlLayerCount byte - QualityLevelCount byte - InputImageDataFillAlignment Extent2D - ref64e7b215 *C.VkVideoEncodeCapabilitiesKHR - allocs64e7b215 interface{} -} - -// VideoEncodeUsageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeUsageInfoKHR -type VideoEncodeUsageInfo struct { - SType StructureType - PNext unsafe.Pointer - VideoUsageHints VideoEncodeUsageFlags - VideoContentHints VideoEncodeContentFlags - TuningMode VideoEncodeTuningMode - ref8df2e1f2 *C.VkVideoEncodeUsageInfoKHR - allocs8df2e1f2 interface{} -} - -// VideoEncodeRateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR -type VideoEncodeRateControlLayerInfo struct { - SType StructureType - PNext unsafe.Pointer - AverageBitrate uint32 - MaxBitrate uint32 - FrameRateNumerator uint32 - FrameRateDenominator uint32 - VirtualBufferSizeInMs uint32 - InitialVirtualBufferSizeInMs uint32 - refa859f41d *C.VkVideoEncodeRateControlLayerInfoKHR - allocsa859f41d interface{} -} - -// VideoEncodeRateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEncodeRateControlInfoKHR -type VideoEncodeRateControlInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags VideoEncodeRateControlFlags - RateControlMode VideoEncodeRateControlModeFlagBits - LayerCount byte - PLayerConfigs []VideoEncodeRateControlLayerInfo - ref6cd9cba3 *C.VkVideoEncodeRateControlInfoKHR - allocs6cd9cba3 interface{} -} - -// VideoEncodeH264CapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilityFlagsEXT.html -type VideoEncodeH264CapabilityFlags uint32 - -// VideoEncodeH264InputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264InputModeFlagsEXT.html -type VideoEncodeH264InputModeFlags uint32 - -// VideoEncodeH264OutputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264OutputModeFlagsEXT.html -type VideoEncodeH264OutputModeFlags uint32 - -// VideoEncodeH264Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264CapabilitiesEXT.html -type VideoEncodeH264Capabilities struct { - SType StructureType - PNext unsafe.Pointer - Flags VideoEncodeH264CapabilityFlags - InputModeFlags VideoEncodeH264InputModeFlags - OutputModeFlags VideoEncodeH264OutputModeFlags - MaxPPictureL0ReferenceCount byte - MaxBPictureL0ReferenceCount byte - MaxL1ReferenceCount byte - MotionVectorsOverPicBoundariesFlag Bool32 - MaxBytesPerPicDenom uint32 - MaxBitsPerMbDenom uint32 - Log2MaxMvLengthHorizontal uint32 - Log2MaxMvLengthVertical uint32 - reffabc5de4 *C.VkVideoEncodeH264CapabilitiesEXT - allocsfabc5de4 interface{} -} - -// VideoEncodeH264SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264SessionParametersAddInfoEXT.html -type VideoEncodeH264SessionParametersAddInfo struct { - SType StructureType - PNext unsafe.Pointer - StdSPSCount uint32 - StdPPSCount uint32 - ref9aeed90f *C.VkVideoEncodeH264SessionParametersAddInfoEXT - allocs9aeed90f interface{} -} - -// VideoEncodeH264SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264SessionParametersCreateInfoEXT.html -type VideoEncodeH264SessionParametersCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MaxStdSPSCount uint32 - MaxStdPPSCount uint32 - PParametersAddInfo []VideoEncodeH264SessionParametersAddInfo - refda410cad *C.VkVideoEncodeH264SessionParametersCreateInfoEXT - allocsda410cad interface{} -} - -// VideoEncodeH264DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264DpbSlotInfoEXT.html -type VideoEncodeH264DpbSlotInfo struct { - SType StructureType - PNext unsafe.Pointer - SlotIndex byte - refb4df162b *C.VkVideoEncodeH264DpbSlotInfoEXT - allocsb4df162b interface{} -} - -// VideoEncodeH264ReferenceListsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264ReferenceListsInfoEXT.html -type VideoEncodeH264ReferenceListsInfo struct { - SType StructureType - PNext unsafe.Pointer - ReferenceList0EntryCount byte - PReferenceList0Entries []VideoEncodeH264DpbSlotInfo - ReferenceList1EntryCount byte - PReferenceList1Entries []VideoEncodeH264DpbSlotInfo - ref91fe5805 *C.VkVideoEncodeH264ReferenceListsInfoEXT - allocs91fe5805 interface{} -} - -// VideoEncodeH264NaluSliceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264NaluSliceInfoEXT.html -type VideoEncodeH264NaluSliceInfo struct { - SType StructureType - PNext unsafe.Pointer - MbCount uint32 - PReferenceFinalLists []VideoEncodeH264ReferenceListsInfo - ref6f598496 *C.VkVideoEncodeH264NaluSliceInfoEXT - allocs6f598496 interface{} -} - -// VideoEncodeH264VclFrameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264VclFrameInfoEXT.html -type VideoEncodeH264VclFrameInfo struct { - SType StructureType - PNext unsafe.Pointer - PReferenceFinalLists []VideoEncodeH264ReferenceListsInfo - NaluSliceEntryCount uint32 - PNaluSliceEntries []VideoEncodeH264NaluSliceInfo - ref5a087635 *C.VkVideoEncodeH264VclFrameInfoEXT - allocs5a087635 interface{} -} - -// VideoEncodeH264EmitPictureParametersInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264EmitPictureParametersInfoEXT.html -type VideoEncodeH264EmitPictureParametersInfo struct { - SType StructureType - PNext unsafe.Pointer - SpsId byte - EmitSpsEnable Bool32 - PpsIdEntryCount uint32 - PpsIdEntries string - ref6eca871f *C.VkVideoEncodeH264EmitPictureParametersInfoEXT - allocs6eca871f interface{} -} - -// VideoEncodeH264ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264ProfileInfoEXT.html -type VideoEncodeH264ProfileInfo struct { - SType StructureType - PNext unsafe.Pointer - ref3ba3093 *C.VkVideoEncodeH264ProfileInfoEXT - allocs3ba3093 interface{} -} - -// VideoEncodeH264RateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlInfoEXT.html -type VideoEncodeH264RateControlInfo struct { - SType StructureType - PNext unsafe.Pointer - GopFrameCount uint32 - IdrPeriod uint32 - ConsecutiveBFrameCount uint32 - RateControlStructure VideoEncodeH264RateControlStructure - TemporalLayerCount byte - ref2b3e86c5 *C.VkVideoEncodeH264RateControlInfoEXT - allocs2b3e86c5 interface{} -} - -// VideoEncodeH264Qp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264QpEXT.html -type VideoEncodeH264Qp struct { - QpI int32 - QpP int32 - QpB int32 - refcc70a5bd *C.VkVideoEncodeH264QpEXT - allocscc70a5bd interface{} -} - -// VideoEncodeH264FrameSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264FrameSizeEXT.html -type VideoEncodeH264FrameSize struct { - FrameISize uint32 - FramePSize uint32 - FrameBSize uint32 - reff1a45729 *C.VkVideoEncodeH264FrameSizeEXT - allocsf1a45729 interface{} -} - -// VideoEncodeH264RateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH264RateControlLayerInfoEXT.html -type VideoEncodeH264RateControlLayerInfo struct { - SType StructureType - PNext unsafe.Pointer - TemporalLayerId byte - UseInitialRcQp Bool32 - InitialRcQp VideoEncodeH264Qp - UseMinQp Bool32 - MinQp VideoEncodeH264Qp - UseMaxQp Bool32 - MaxQp VideoEncodeH264Qp - UseMaxFrameSize Bool32 - MaxFrameSize VideoEncodeH264FrameSize - refc9f21e78 *C.VkVideoEncodeH264RateControlLayerInfoEXT - allocsc9f21e78 interface{} -} - -// VideoEncodeH265CapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilityFlagsEXT.html -type VideoEncodeH265CapabilityFlags uint32 - -// VideoEncodeH265InputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265InputModeFlagsEXT.html -type VideoEncodeH265InputModeFlags uint32 - -// VideoEncodeH265OutputModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265OutputModeFlagsEXT.html -type VideoEncodeH265OutputModeFlags uint32 - -// VideoEncodeH265CtbSizeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CtbSizeFlagsEXT.html -type VideoEncodeH265CtbSizeFlags uint32 - -// VideoEncodeH265TransformBlockSizeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265TransformBlockSizeFlagsEXT.html -type VideoEncodeH265TransformBlockSizeFlags uint32 - -// VideoEncodeH265Capabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265CapabilitiesEXT.html -type VideoEncodeH265Capabilities struct { - SType StructureType - PNext unsafe.Pointer - Flags VideoEncodeH265CapabilityFlags - InputModeFlags VideoEncodeH265InputModeFlags - OutputModeFlags VideoEncodeH265OutputModeFlags - CtbSizes VideoEncodeH265CtbSizeFlags - TransformBlockSizes VideoEncodeH265TransformBlockSizeFlags - MaxPPictureL0ReferenceCount byte - MaxBPictureL0ReferenceCount byte - MaxL1ReferenceCount byte - MaxSubLayersCount byte - MinLog2MinLumaCodingBlockSizeMinus3 byte - MaxLog2MinLumaCodingBlockSizeMinus3 byte - MinLog2MinLumaTransformBlockSizeMinus2 byte - MaxLog2MinLumaTransformBlockSizeMinus2 byte - MinMaxTransformHierarchyDepthInter byte - MaxMaxTransformHierarchyDepthInter byte - MinMaxTransformHierarchyDepthIntra byte - MaxMaxTransformHierarchyDepthIntra byte - MaxDiffCuQpDeltaDepth byte - MinMaxNumMergeCand byte - MaxMaxNumMergeCand byte - ref54d4cc75 *C.VkVideoEncodeH265CapabilitiesEXT - allocs54d4cc75 interface{} -} - -// VideoEncodeH265SessionParametersAddInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265SessionParametersAddInfoEXT.html -type VideoEncodeH265SessionParametersAddInfo struct { - SType StructureType - PNext unsafe.Pointer - StdVPSCount uint32 - StdSPSCount uint32 - StdPPSCount uint32 - ref9b5b2412 *C.VkVideoEncodeH265SessionParametersAddInfoEXT - allocs9b5b2412 interface{} -} - -// VideoEncodeH265SessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265SessionParametersCreateInfoEXT.html -type VideoEncodeH265SessionParametersCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MaxStdVPSCount uint32 - MaxStdSPSCount uint32 - MaxStdPPSCount uint32 - PParametersAddInfo []VideoEncodeH265SessionParametersAddInfo - refd4a6e47c *C.VkVideoEncodeH265SessionParametersCreateInfoEXT - allocsd4a6e47c interface{} -} - -// VideoEncodeH265DpbSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265DpbSlotInfoEXT.html -type VideoEncodeH265DpbSlotInfo struct { - SType StructureType - PNext unsafe.Pointer - SlotIndex byte - refd24cdc3 *C.VkVideoEncodeH265DpbSlotInfoEXT - allocsd24cdc3 interface{} -} - -// VideoEncodeH265ReferenceListsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265ReferenceListsInfoEXT.html -type VideoEncodeH265ReferenceListsInfo struct { - SType StructureType - PNext unsafe.Pointer - ReferenceList0EntryCount byte - PReferenceList0Entries []VideoEncodeH265DpbSlotInfo - ReferenceList1EntryCount byte - PReferenceList1Entries []VideoEncodeH265DpbSlotInfo - ref86d63cc5 *C.VkVideoEncodeH265ReferenceListsInfoEXT - allocs86d63cc5 interface{} -} - -// VideoEncodeH265NaluSliceSegmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265NaluSliceSegmentInfoEXT.html -type VideoEncodeH265NaluSliceSegmentInfo struct { - SType StructureType - PNext unsafe.Pointer - CtbCount uint32 - PReferenceFinalLists []VideoEncodeH265ReferenceListsInfo - refc6dca7f8 *C.VkVideoEncodeH265NaluSliceSegmentInfoEXT - allocsc6dca7f8 interface{} -} - -// VideoEncodeH265VclFrameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265VclFrameInfoEXT.html -type VideoEncodeH265VclFrameInfo struct { - SType StructureType - PNext unsafe.Pointer - PReferenceFinalLists []VideoEncodeH265ReferenceListsInfo - NaluSliceSegmentEntryCount uint32 - PNaluSliceSegmentEntries []VideoEncodeH265NaluSliceSegmentInfo - reff460e7a4 *C.VkVideoEncodeH265VclFrameInfoEXT - allocsf460e7a4 interface{} -} - -// VideoEncodeH265EmitPictureParametersInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265EmitPictureParametersInfoEXT.html -type VideoEncodeH265EmitPictureParametersInfo struct { - SType StructureType - PNext unsafe.Pointer - VpsId byte - SpsId byte - EmitVpsEnable Bool32 - EmitSpsEnable Bool32 - PpsIdEntryCount uint32 - PpsIdEntries string - refdcd5e3b *C.VkVideoEncodeH265EmitPictureParametersInfoEXT - allocsdcd5e3b interface{} -} - -// VideoEncodeH265ProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265ProfileInfoEXT.html -type VideoEncodeH265ProfileInfo struct { - SType StructureType - PNext unsafe.Pointer - refba41eb7b *C.VkVideoEncodeH265ProfileInfoEXT - allocsba41eb7b interface{} -} - -// VideoEncodeH265RateControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlInfoEXT.html -type VideoEncodeH265RateControlInfo struct { - SType StructureType - PNext unsafe.Pointer - GopFrameCount uint32 - IdrPeriod uint32 - ConsecutiveBFrameCount uint32 - RateControlStructure VideoEncodeH265RateControlStructure - SubLayerCount byte - reffcdc069d *C.VkVideoEncodeH265RateControlInfoEXT - allocsfcdc069d interface{} -} - -// VideoEncodeH265Qp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265QpEXT.html -type VideoEncodeH265Qp struct { - QpI int32 - QpP int32 - QpB int32 - ref72c7618 *C.VkVideoEncodeH265QpEXT - allocs72c7618 interface{} -} - -// VideoEncodeH265FrameSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265FrameSizeEXT.html -type VideoEncodeH265FrameSize struct { - FrameISize uint32 - FramePSize uint32 - FrameBSize uint32 - ref2c328eac *C.VkVideoEncodeH265FrameSizeEXT - allocs2c328eac interface{} -} - -// VideoEncodeH265RateControlLayerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVideoEncodeH265RateControlLayerInfoEXT.html -type VideoEncodeH265RateControlLayerInfo struct { - SType StructureType - PNext unsafe.Pointer - TemporalId byte - UseInitialRcQp Bool32 - InitialRcQp VideoEncodeH265Qp - UseMinQp Bool32 - MinQp VideoEncodeH265Qp - UseMaxQp Bool32 - MaxQp VideoEncodeH265Qp - UseMaxFrameSize Bool32 - MaxFrameSize VideoEncodeH265FrameSize - ref48d77b5f *C.VkVideoEncodeH265RateControlLayerInfoEXT - allocs48d77b5f interface{} -} diff --git a/vulkan.go b/vulkan.go index 2e70d04..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 Thu, 09 Feb 2023 23:47:41 PST. +// 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 diff --git a/vulkan/vulkan_beta.h b/vulkan/vulkan_beta.h index cfeda0e..2f7098b 100644 --- a/vulkan/vulkan_beta.h +++ b/vulkan/vulkan_beta.h @@ -49,6 +49,7 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { } 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 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( 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 @@ typedef struct VkVideoEncodeH265RateControlLayerInfoEXT { VkVideoEncodeH265FrameSizeEXT maxFrameSize; } VkVideoEncodeH265RateControlLayerInfoEXT; +#endif // GO_INCLUDE_video_decode #ifdef __cplusplus } 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.patch b/vulkan/vulkan_core_h.patch index 336d292..9608221 100644 --- a/vulkan/vulkan_core_h.patch +++ b/vulkan/vulkan_core_h.patch @@ -1,6 +1,42 @@ ---- vulkan_core.h.orig 2023-02-09 22:12:19 -+++ vulkan_core.h 2023-02-09 22:25:00 -@@ -10488,7 +10488,7 @@ +--- /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 @@ -9,7 +45,7 @@ #define VK_NVX_binary_import 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) -@@ -10558,8 +10558,8 @@ +@@ -10558,8 +10560,8 @@ VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo); #endif @@ -19,7 +55,7 @@ #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 +11911,8 @@ +@@ -11911,6 +11913,8 @@ const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); #endif @@ -28,7 +64,7 @@ #define VK_NV_ray_tracing 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) -@@ -12285,6 +12287,7 @@ +@@ -12285,6 +12289,7 @@ uint32_t shader); #endif @@ -36,7 +72,7 @@ #define VK_NV_representative_fragment_test 1 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 -@@ -14168,6 +14171,8 @@ +@@ -14168,6 +14173,8 @@ const void* opaqueCaptureDescriptorData; } VkOpaqueCaptureDescriptorDataCreateInfoEXT; @@ -45,7 +81,7 @@ typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { VkStructureType sType; const void* pNext; -@@ -14175,6 +14180,8 @@ +@@ -14175,6 +14182,8 @@ VkAccelerationStructureNV accelerationStructureNV; } VkAccelerationStructureCaptureDescriptorDataInfoEXT; @@ -54,7 +90,7 @@ 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 +14192,10 @@ +@@ -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); @@ -65,7 +101,7 @@ #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT( -@@ -14352,6 +14362,7 @@ +@@ -14352,6 +14364,7 @@ const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); #endif @@ -73,7 +109,7 @@ #define VK_NV_ray_tracing_motion_blur 1 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 -@@ -14441,8 +14452,8 @@ +@@ -14441,8 +14454,8 @@ VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; @@ -83,7 +119,7 @@ #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 +14611,7 @@ +@@ -14600,6 +14613,7 @@ } VkPhysicalDevice4444FormatsFeaturesEXT; @@ -91,7 +127,7 @@ #define VK_EXT_device_fault 1 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION 1 -@@ -16909,3 +16921,6 @@ +@@ -16909,3 +16923,6 @@ #endif #endif From 5f165757d3667cf02b513adcff4645a7b7401f29 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Feb 2023 11:58:37 -0800 Subject: [PATCH 17/25] v1.0.5 release -- version.go updated --- Makefile | 2 +- version.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 1f3b9fd..c58989f 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.4 +VERS=v1.0.5 PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/version.go b/version.go index 45a722c..6a2e0ff 100644 --- a/version.go +++ b/version.go @@ -3,7 +3,7 @@ package vulkan const ( - GoVersion = "v1.0.4" - GitCommit = "125cabe" // the commit JUST BEFORE the release - VersionDate = "2023-02-10 19:50" // UTC + GoVersion = "v1.0.5" + GitCommit = "5ab406f" // the commit JUST BEFORE the release + VersionDate = "2023-02-10 19:58" // UTC ) From ce1681bc1ab2716c1ab2088aa60e8c6bb5b2ad04 Mon Sep 17 00:00:00 2001 From: Gary Miguel Date: Fri, 10 Mar 2023 13:07:41 -0800 Subject: [PATCH 18/25] make bazel build not rely on system Vulkan No you can run `bazel build` or `bazel run` without installing the Vulkan SDK! --- .gitignore | 2 ++ BUILD.bazel | 19 ++++++------------- WORKSPACE.bazel | 34 ++++++++++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 38fa562..31a6da2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .idea/ *.iml +# Bazel +bazel-* diff --git a/BUILD.bazel b/BUILD.bazel index feaf13f..08390af 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -35,7 +35,12 @@ go_library( "vulkan_ios.go", "vulkan_linux.go", ], - cdeps = [":vulkan_headers"], + 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": [ @@ -50,16 +55,6 @@ go_library( "-framework IOSurface", "-framework QuartzCore", "-framework Metal", - # This line requires the Vulkan SDK to be installed. - # TODO: We should not require this. - # We can use cc_import and cdeps to link it, but the - # vulkan loader at run-time searches for the icd.d directory. - # I haven't figured out how to bundle that directory with this library. - # Maybe fixable by setting SYSCONFDIR once this is fixed: - # https://github.com/bazelbuild/bazel/issues/13930 - # Reference: - # https://vulkan.lunarg.com/doc/view/1.3.211.0/mac/LoaderDriverInterface.html#user-content-driver-discovery-on-macos - "-lMoltenVK", "-lc++", ], "@io_bazel_rules_go//go/platform:freebsd": [ @@ -84,8 +79,6 @@ go_library( copts = [ "-I.", "-DVK_NO_PROTOTYPES", - # - # "-DSYSCONFDIR=$(rootpath @com_github_goki_vulkan_mac_deps//:vulkan_mac_deps)/sdk/macOS/share", ] + select({ "@io_bazel_rules_go//go/platform:android": [ "-DVK_USE_PLATFORM_ANDROID_KHR", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 6f5fd32..0da6675 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -4,10 +4,10 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", - sha256 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366", + sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", + "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", ], ) @@ -15,4 +15,30 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe go_rules_dependencies() -go_register_toolchains(version = "1.18.5") +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") From 1b6cfb742309f7eef8ef74c2f54596ce5bf8c9e9 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Fri, 10 Mar 2023 13:29:30 -0800 Subject: [PATCH 19/25] v1.0.6 release -- version.go updated --- Makefile | 2 +- version.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index c58989f..df6b286 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ test: go build # NOTE: MUST update version number here prior to running 'make release' -VERS=v1.0.5 +VERS=v1.0.6 PACKAGE=vulkan GIT_COMMIT=`git rev-parse --short HEAD` VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` diff --git a/version.go b/version.go index 6a2e0ff..84b41e2 100644 --- a/version.go +++ b/version.go @@ -3,7 +3,7 @@ package vulkan const ( - GoVersion = "v1.0.5" - GitCommit = "5ab406f" // the commit JUST BEFORE the release - VersionDate = "2023-02-10 19:58" // UTC + GoVersion = "v1.0.6" + GitCommit = "7e2340c" // the commit JUST BEFORE the release + VersionDate = "2023-03-10 21:29" // UTC ) From a306a715ef0dc747c5659863129893a26a3a8e54 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Thu, 29 Jun 2023 00:38:09 -0700 Subject: [PATCH 20/25] changes to get android building --- vk_wrapper_android.c | 5 +++++ vulkan_android.go | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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/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 From d51c5004000518feaa4a75b951eaf5c77fd4f700 Mon Sep 17 00:00:00 2001 From: Kai O'Reilly Date: Wed, 5 Jul 2023 17:45:33 -0700 Subject: [PATCH 21/25] got mostly building on ios --- moltenVK/mvk_vulkan.h | 50 ++++++++ vk_bridge.c | 40 +++---- vk_bridge.h | 12 +- vk_wrapper.h | 10 +- vk_wrapper_ios.m | 20 ++-- vulkan_ios.go | 258 +++++++++++++++++++++--------------------- 6 files changed, 220 insertions(+), 170 deletions(-) create mode 100644 moltenVK/mvk_vulkan.h 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/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..2a7c5d6 100644 --- a/vk_bridge.h +++ b/vk_bridge.h @@ -971,20 +971,20 @@ 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_wrapper.h b/vk_wrapper.h index c2891d6..cc5ffee 100644 --- a/vk_wrapper.h +++ b/vk_wrapper.h @@ -212,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_ios.m b/vk_wrapper_ios.m index 1679956..ceeaaf7 100644 --- a/vk_wrapper_ios.m +++ b/vk_wrapper_ios.m @@ -201,12 +201,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 +378,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_ios.go b/vulkan_ios.go index 0eb4e5f..c566e91 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: -L/usr/local/lib -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -lMoltenVK -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 { @@ -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) +// } From 02547c9f6f11adb16c424dccc0315605d47fb040 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Wed, 5 Jul 2023 22:34:21 -0700 Subject: [PATCH 22/25] properly ignore acceptmoltenvklicense that Kai totally forgot to comment out!! --- vk_bridge.h | 12 ++++++------ vk_wrapper_ios.m | 2 ++ vulkan_ios.go | 32 ++++++++++++++++---------------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/vk_bridge.h b/vk_bridge.h index 2a7c5d6..a69351b 100644 --- a/vk_bridge.h +++ b/vk_bridge.h @@ -962,12 +962,12 @@ 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, diff --git a/vk_wrapper_ios.m b/vk_wrapper_ios.m index ceeaaf7..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; } diff --git a/vulkan_ios.go b/vulkan_ios.go index c566e91..d27097a 100644 --- a/vulkan_ios.go +++ b/vulkan_ios.go @@ -4,7 +4,7 @@ package vulkan /* -#cgo LDFLAGS: -L/usr/local/lib -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -lMoltenVK -lc++ +#cgo LDFLAGS: -L/Users/oreilly/dev/ios/MoltenVK/MoltenVK/dylib/iOS/ -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -lMoltenVK -lc++ #cgo CFLAGS: -x objective-c -DVK_USE_PLATFORM_IOS_MVK -v #include "vulkan/vulkan.h" @@ -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 { From acc4679f789a00be05c9fe1cdd83cbe29d3e5cf8 Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Thu, 6 Jul 2023 01:15:47 -0700 Subject: [PATCH 23/25] plist info --- README.md | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/README.md b/README.md index b31548e..0722ee9 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,136 @@ Follow the [build instructions](https://github.com/KhronosGroup/MoltenVK#buildin **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). From 83c52672e46d4998cce2b99b32ca165fb4bd39ee Mon Sep 17 00:00:00 2001 From: "Randall C. O'Reilly" Date: Thu, 6 Jul 2023 01:43:01 -0700 Subject: [PATCH 24/25] use framework version in original build --- vulkan_ios.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vulkan_ios.go b/vulkan_ios.go index d27097a..cb12817 100644 --- a/vulkan_ios.go +++ b/vulkan_ios.go @@ -4,7 +4,7 @@ package vulkan /* -#cgo LDFLAGS: -L/Users/oreilly/dev/ios/MoltenVK/MoltenVK/dylib/iOS/ -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -lMoltenVK -lc++ +#cgo LDFLAGS: -F/Users/oreilly/dev/ios/MoltenVK/MoltenVK -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" From 0bf6765623e238541bc6205fedc2b8bcbd594c97 Mon Sep 17 00:00:00 2001 From: Kai O'Reilly Date: Sat, 5 Aug 2023 15:12:50 -0600 Subject: [PATCH 25/25] fixed formatting --- vk_debug_android.go | 1 + vk_null32.go | 1 + vk_null64.go | 1 + vulkan_freebsd.go | 1 + vulkan_ios.go | 2 +- vulkan_linux.go | 1 + 6 files changed, 6 insertions(+), 1 deletion(-) 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/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 cb12817..326aa6a 100644 --- a/vulkan_ios.go +++ b/vulkan_ios.go @@ -4,7 +4,7 @@ package vulkan /* -#cgo LDFLAGS: -F/Users/oreilly/dev/ios/MoltenVK/MoltenVK -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -framework MoltenVK -lc++ +#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" 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