core1_1

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2022 License: MIT Imports: 8 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// MemoryHeapMultiInstance specifies that ina  logical Device representing more than one
	// PhysicalDevice, there is a per-PhysicalDevice instance of the heap memory
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeapFlagBits.html
	MemoryHeapMultiInstance core1_0.MemoryHeapFlags = C.VK_MEMORY_HEAP_MULTI_INSTANCE_BIT

	// MemoryPropertyProtected specifies that the memory type only allows Device access to the
	// memory, and allows protected Queue operations to access the DeviceMemory
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html
	MemoryPropertyProtected core1_0.MemoryPropertyFlags = C.VK_MEMORY_PROPERTY_PROTECTED_BIT
)
View Source
const (

	// PeerMemoryFeatureCopyDst specifies that the memory can be accessed as the destination of
	// any CommandBuffer.CmdCopy... command
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html
	PeerMemoryFeatureCopyDst PeerMemoryFeatureFlags = C.VK_PEER_MEMORY_FEATURE_COPY_DST_BIT
	// PeerMemoryFeatureCopySrc specifies that the memory can be accessed as the source of any
	// CommandBuffer.CmdCopy... command
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html
	PeerMemoryFeatureCopySrc PeerMemoryFeatureFlags = C.VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
	// PeerMemoryFeatureGenericDst specifies that the memory can be written as any memory access type
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html
	PeerMemoryFeatureGenericDst PeerMemoryFeatureFlags = C.VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
	// PeerMemoryFeatureGenericSrc specifies that the memory can be read as any memory access type
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html
	PeerMemoryFeatureGenericSrc PeerMemoryFeatureFlags = C.VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT

	// QueueFamilyExternal represents any Queue external to the resource's current Vulkan instance,
	// as long as the Queue uses the same underlying Device group or PhysicalDevice
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QUEUE_FAMILY_EXTERNAL_KHR.html
	QueueFamilyExternal int = C.VK_QUEUE_FAMILY_EXTERNAL

	// DependencyDeviceGroup specifies that dependencies are non-device-local
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html
	DependencyDeviceGroup core1_0.DependencyFlags = C.VK_DEPENDENCY_DEVICE_GROUP_BIT
	// DependencyViewLocal specifies that a subpass has more than one view
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html
	DependencyViewLocal core1_0.DependencyFlags = C.VK_DEPENDENCY_VIEW_LOCAL_BIT
)
View Source
const (
	// ExternalFenceFeatureExportable specifies handles of this type can be exported from Vulkan
	// Fence objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceFeatureFlagBits.html
	ExternalFenceFeatureExportable ExternalFenceFeatureFlags = C.VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT
	// ExternalFenceFeatureImportable specifies handles of this type can be imported to Vulkan Fence
	// objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceFeatureFlagBits.html
	ExternalFenceFeatureImportable ExternalFenceFeatureFlags = C.VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT

	// ExternalFenceHandleTypeOpaqueFD specifies a POSIX file descriptor handle that has only limited
	// valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html
	ExternalFenceHandleTypeOpaqueFD ExternalFenceHandleTypeFlags = C.VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT
	// ExternalFenceHandleTypeOpaqueWin32 specifies an NT handle that has only limited valid usage
	// outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html
	ExternalFenceHandleTypeOpaqueWin32 ExternalFenceHandleTypeFlags = C.VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
	// ExternalFenceHandleTypeOpaqueWin32KMT specifies a global share handle that has only limited
	// usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html
	ExternalFenceHandleTypeOpaqueWin32KMT ExternalFenceHandleTypeFlags = C.VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
	// ExternalFenceHandleTypeSyncFD specifies a POSIX file descriptor handle to a Linux Sync File
	// or Android Fence
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html
	ExternalFenceHandleTypeSyncFD ExternalFenceHandleTypeFlags = C.VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT

	// FenceImportTemporary specifies that the Fence payload will be imported only temporarily,
	// regardless of the permanence of HandleType
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceImportFlagBits.html
	FenceImportTemporary FenceImportFlags = C.VK_FENCE_IMPORT_TEMPORARY_BIT
)
View Source
const (
	// FormatB10X6G10X6R10X6G10X6HorizontalChromaComponentPacked specifies a four-component, 64-bit
	// format containing a pair of G components, an R component, and a B component, collectiely
	// encoding a 2x1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB10X6G10X6R10X6G10X6HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
	// FormatB12X4G12X4R12X4G12X4HorizontalChromaComponentPacked specifies a four-component,
	// 64-bit format containing a pair of G components, an R component, and a B component,
	// collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB12X4G12X4R12X4G12X4HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
	// FormatB16G16R16G16HorizontalChroma specifies a four-component, 64-bit format containing a
	// pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB16G16R16G16HorizontalChroma core1_0.Format = C.VK_FORMAT_B16G16R16G16_422_UNORM
	// FormatB8G8R8G8HorizontalChroma specifies a four-component, 32-bit format containing a pair
	// of G components, an R component, and a B component, collectively encoding a 2×1 rectangle
	// of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB8G8R8G8HorizontalChroma core1_0.Format = C.VK_FORMAT_B8G8R8G8_422_UNORM
	// FormatG10X6B10X6G10X6R10X6HorizontalChromaComponentPacked specifies a four-component, 64-bit
	// format containing a pair of G components, an R component, and a B component, collectively
	// encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6B10X6G10X6R10X6HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
	// FormatG10X6_B10X6R10X6_2PlaneDualChromaComponentPacked  specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of
	// plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the
	// top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the
	// word in bytes 2..3, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6R10X6_2PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
	// FormatG10X6_B10X6R10X6_2PlaneHorizontalChromaComponentPacked   specifies an unsigned
	// normalized multi-planar format that has a 10-bit G component in the top 10 bits of each
	// 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B
	// component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top
	// 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6R10X6_2PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
	// FormatG10X6_B10X6_R10X6_3PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of
	// plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a
	// 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits
	// of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
	// FormatG10X6_B10X6_R10X6_3PlaneHorizontalChromaComponentPacked specifies an unsigned
	// normalized multi-planar format that has a 10-bit G component in the top 10 bits of each
	// 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane
	// 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the
	// bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
	// FormatG10X6_B10X6_R10X6_3PlaneNoChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word
	// of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a
	// 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneNoChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
	// FormatG12X4B12X4G12X4R12X4_HorizontalChromaComponentPacked specifies a four-component,
	// 64-bit format containing a pair of G components, an R component, and a B component,
	// collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4B12X4G12X4R12X4_HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
	// FormatG12X4_B12X4R12X4_2PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word
	// of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in
	// the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of
	// the word in bytes 2..3, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4R12X4_2PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
	// FormatG12X4_B12X4R12X4_2PlaneHorizontalChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of
	// plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the
	// top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the
	// word in bytes 2..3, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4R12X4_2PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
	// FormatG12X4_B12X4_R12X4_3PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word
	// of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a
	// 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
	// FormatG12X4_B12X4_R12X4_3PlaneHorizontalChromaComponentPacked specifies an unsigned
	// normalized multi-planar format that has a 12-bit G component in the top 12 bits of each
	// 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of
	// plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with
	// the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
	// FormatG12X4_B12X4_R12X4_3PlaneNoChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of
	// plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a
	// 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneNoChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
	// FormatG16B16G16R16_HorizontalChroma specifies a four-component, 64-bit format containing a
	// pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16B16G16R16_HorizontalChroma core1_0.Format = C.VK_FORMAT_G16B16G16R16_422_UNORM
	// FormatG16_B16R16_2PlaneDualChroma specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit
	// BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R
	// component in the word in bytes 2..3
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16R16_2PlaneDualChroma core1_0.Format = C.VK_FORMAT_G16_B16R16_2PLANE_420_UNORM
	// FormatG16_B16R16_2PlaneHorizontalChroma  specifies an unsigned normalized multi-planar
	// format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component,
	// 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a
	// 16-bit R component in the word in bytes 2..3
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16R16_2PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G16_B16R16_2PLANE_422_UNORM
	// FormatG16_B16_R16_3PlaneDualChroma  specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in
	// each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneDualChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
	// FormatG16_B16_R16_3PlaneHorizontalChroma  specifies an unsigned normalized multi-planar
	// format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in
	// each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
	// FormatG16_B16_R16_3PlaneNoChroma  specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each
	// 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneNoChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
	// FormatG8B8G8R8_HorizontalChroma specifies a four-component, 32-bit format containing a
	//pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8B8G8R8_HorizontalChroma core1_0.Format = C.VK_FORMAT_G8B8G8R8_422_UNORM
	// FormatG8_B8R8_2PlaneDualChroma specifies an unsigned normalized multi-planar format that
	// has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of
	// an 8-bit B component in byte 0 and an 8-bit R component in byte 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8R8_2PlaneDualChroma core1_0.Format = C.VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
	// FormatG8_B8R8_2PlaneHorizontalChroma specifies an unsigned normalized multi-planar format
	// that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting
	// of an 8-bit B component in byte 0 and an 8-bit R component in byte 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8R8_2PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G8_B8R8_2PLANE_422_UNORM
	// FormatG8_B8_R8_3PlaneDualChroma specifies an unsigned normalized multi-planar format that
	// has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R
	// component in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneDualChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
	// FormatG8_B8_R8_3PlaneHorizontalChroma specifies an unsigned normalized multi-planar format
	// that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R
	// component in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM
	// FormatG8_B8_R8_3PlaneNoChroma specifies an unsigned normalized multi-planar format that has
	// an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component
	// in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneNoChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM
	// FormatR10X6G10X6B10X6A10X6UnsignedNormalizedComponentPacked specifies a four-component,
	// 64-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the
	// word in bytes 0..1, a 10-bit G component in the top 10 bits of the word in bytes 2..3, a
	// 10-bit B component in the top 10 bits of the word in bytes 4..5, and a 10-bit A component
	// in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6G10X6B10X6A10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
	// FormatR10X6G10X6UnsignedNormalizedComponentPacked specifies a two-component, 32-bit
	// unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in
	// bytes 0..1, and a 10-bit G component in the top 10 bits of the word in bytes 2..3, with the
	// bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6G10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6G10X6_UNORM_2PACK16
	// FormatR10X6UnsignedNormalizedComponentPacked specifies a one-component, 16-bit unsigned
	// normalized format that has a single 10-bit R component in the top 10 bits of a 16-bit word,
	// with the bottom 6 bits unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6_UNORM_PACK16
	// FormatR12X4G12X4B12X4A12X4UnsignedNormalizedComponentPacked specifies a four-component,
	// 64-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the
	// word in bytes 0..1, a 12-bit G component in the top 12 bits of the word in bytes 2..3, a
	// 12-bit B component in the top 12 bits of the word in bytes 4..5, and a 12-bit A component
	// in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4G12X4B12X4A12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
	// FormatR12X4G12X4UnsignedNormalizedComponentPacked specifies a two-component, 32-bit unsigned
	// normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1,
	// and a 12-bit G component in the top 12 bits of the word in bytes 2..3, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4G12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4G12X4_UNORM_2PACK16
	// FormatR12X4UnsignedNormalizedComponentPacked specifies a one-component, 16-bit unsigned
	// normalized format that has a single 12-bit R component in the top 12 bits of a 16-bit word,
	// with the bottom 4 bits unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4_UNORM_PACK16
)
View Source
const (
	// ImageAspectPlane0 specifies memory plane 0
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane0 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_0_BIT
	// ImageAspectPlane1 specifies memory plane 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane1 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_1_BIT
	// ImageAspectPlane2 specifies memory plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane2 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_2_BIT

	// ImageCreate2DArrayCompatible specifies that the Image can be used to create an ImageView of
	// type core1_0.ImageViewType2D or core1_0.ImageViewType2DArray
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreate2DArrayCompatible core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
	// ImageCreateAlias specifies that two Image objects created with the same creation parameters
	// and aliased to the same memory can interpret the contents of the memory consistently each
	// other
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateAlias core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_ALIAS_BIT
	// ImageCreateBlockTexelViewCompatible specifies that the Image having a compressed format can be
	// used to create an ImageView with an uncompressed format where each texel in the ImageView
	// corresponds to a compressed texel block of the Image
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateBlockTexelViewCompatible core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
	// ImageCreateDisjoint specifies that an Image with a multi-planar format must have each plane
	// separately bound to memory, rather than having a single memory binding for the whole Image
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateDisjoint core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_DISJOINT_BIT
	// ImageCreateExtendedUsage specifies that the Image can be created with usage flags that are not
	// supported for the format the Image is created with but are supported for at least one format
	// an ImageView created from this Image can have
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateExtendedUsage core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
	// ImageCreateProtected specifies that the Image is a protected Image
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateProtected core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_PROTECTED_BIT
	// ImageCreateSplitInstanceBindRegions specifies that the Image can be used with a non-empty
	// BindImageMemoryDeviceGroupInfo.SplitInstanceBindRegions
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateSplitInstanceBindRegions core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT

	// ImageLayoutDepthAttachmentStencilReadOnlyOptimal specifies a layout for depth/stencil format
	// Image objects allowing read and write access to the depth aspect as a depth attachment, and read-only
	// access to the stencil aspect as a stencil attachment or in shaders as a sampled Image, combined
	// Image/Sampler, or input attachment
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html
	ImageLayoutDepthAttachmentStencilReadOnlyOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
	// ImageLayoutDepthReadOnlyStencilAttachmentOptimal specifies a layout for depth/stencil format Image objects
	// allowing read and write access to the stencil aspect as a stencil attachment, and read-only access
	// to the depth aspect as a depth attachment or in shaders as a sampled Image, combined Image/Sampler,
	// or input attachment
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html
	ImageLayoutDepthReadOnlyStencilAttachmentOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
)
View Source
const (
	// ExternalMemoryFeatureDedicatedOnly specifies that Image or Buffer objects created with the
	// specified parameters and handle type must create or import a dedicated allocation for
	// the Image or Buffer object
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html
	ExternalMemoryFeatureDedicatedOnly ExternalMemoryFeatureFlags = C.VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
	// ExternalMemoryFeatureExportable specifies that handles of this type can be exported from
	// Vulkan memory objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html
	ExternalMemoryFeatureExportable ExternalMemoryFeatureFlags = C.VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT
	// ExternalMemoryFeatureImportable specifies that handles of this type can be imported as Vulkan
	// memory objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html
	ExternalMemoryFeatureImportable ExternalMemoryFeatureFlags = C.VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT

	// ExternalMemoryHandleTypeD3D11Texture specifies an NT handle returned by
	// IDXGIResource1::CreateSharedHandle referring to a Direct3D 10 or 11 texture resource
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeD3D11Texture ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
	// ExternalMemoryHandleTypeD3D11TextureKMT specifies a global share handle returned by
	// IDXGIResource::GetSharedHandle referring to a Direct3D 10 or 11 texture resource
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeD3D11TextureKMT ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
	// ExternalMemoryHandleTypeD3D12Heap specifies an NT handle returned by
	// ID3D12Device::CreateSharedHandle referring to a Direct3D 12 heap resource
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeD3D12Heap ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
	// ExternalMemoryHandleTypeD3D12Resource specifies an NT handle returned by
	// ID3D12Device::CreateSharedHandle referring to a Direct3D 12 committed resource
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeD3D12Resource ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
	// ExternalMemoryHandleTypeOpaqueFD specifies a POSIX file descriptor handle that has only limited
	// valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeOpaqueFD ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
	// ExternalMemoryHandleTypeOpaqueWin32 specifies an NT handle that has only limited valid usage
	// outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeOpaqueWin32 ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
	// ExternalMemoryHandleTypeOpaqueWin32KMT specifies a global share handle that has only
	// limited valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html
	ExternalMemoryHandleTypeOpaqueWin32KMT ExternalMemoryHandleTypeFlags = C.VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
)
View Source
const (
	// ObjectTypeDescriptorUpdateTemplate specifies a DescriptorUpdateTemplate handle
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html
	ObjectTypeDescriptorUpdateTemplate core1_0.ObjectType = C.VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE
	// ObjectTypeSamplerYcbcrConversion specifies a SamplerYcbcrConversion handle
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html
	ObjectTypeSamplerYcbcrConversion core1_0.ObjectType = C.VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION
)
View Source
const (
	// FormatFeatureTransferDst specifies that an Image can be used as a destination Image for copy
	// commands and clear commands
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureTransferDst core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_TRANSFER_DST_BIT
	// FormatFeatureTransferSrc specifies that an Image can be used as a source Image for copy commands
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureTransferSrc core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
)
View Source
const (
	// LUIDSize is the length of a locally unique Device identifier
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_LUID_SIZE.html
	LUIDSize int = C.VK_LUID_SIZE
	// MaxGroupSize is the length of a PhysicalDevice handle array
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_MAX_DEVICE_GROUP_SIZE_KHR.html
	MaxGroupSize int = C.VK_MAX_DEVICE_GROUP_SIZE

	// PointClippingAllClipPlanes specifies that the primitive is discarded if the vertex lies
	// outside any clip plane, including the planes bounding the view volume
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPointClippingBehavior.html
	PointClippingAllClipPlanes PointClippingBehavior = C.VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
	// PointClippingUserClipPlanesOnly specifies that the primitive is discarded only if the vertex
	// lies outside any user clip plane
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPointClippingBehavior.html
	PointClippingUserClipPlanesOnly PointClippingBehavior = C.VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY

	// SubgroupFeatureBasic specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniform capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureBasic SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_BASIC_BIT
	// SubgroupFeatureVote specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformVote capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureVote SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_VOTE_BIT
	// SubgroupFeatureArithmetic specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformArithmetic capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureArithmetic SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
	// SubgroupFeatureBallot specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformBallot capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureBallot SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_BALLOT_BIT
	// SubgroupFeatureShuffle specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformShuffle capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureShuffle SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_SHUFFLE_BIT
	// SubgroupFeatureShuffleRelative specifies the Device will accept SPIR-V shader modules
	// containing the GroupNonUniformShuffleRelative capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureShuffleRelative SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
	// SubgroupFeatureClustered specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformClustered capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureClustered SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_CLUSTERED_BIT
	// SubgroupFeatureQuad specifies the Device will accept SPIR-V shader modules containing
	// the GroupNonUniformQuad capability
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html
	SubgroupFeatureQuad SubgroupFeatureFlags = C.VK_SUBGROUP_FEATURE_QUAD_BIT
)
View Source
const (
	// TessellationDomainOriginUpperLeft specifies that the origin of the domain space
	// is in the upper left corner, as shown in figure
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTessellationDomainOrigin.html
	TessellationDomainOriginUpperLeft TessellationDomainOrigin = C.VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
	// TessellationDomainOriginLowerLeft specifies that the origin of the domain space
	// is in the lower left corner, as shown in figure
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTessellationDomainOrigin.html
	TessellationDomainOriginLowerLeft TessellationDomainOrigin = C.VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT

	// PipelineCreateDispatchBase specifies that a compute pipeline can be used with
	// CommandBuffer.CmdDispatchBase with a non-zero base workgroup
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits.html
	PipelineCreateDispatchBase core1_0.PipelineCreateFlags = C.VK_PIPELINE_CREATE_DISPATCH_BASE
	// PipelineCreateViewIndexFromDeviceIndex specifies that any shader input variables
	// decorated as ViewIndex will be assigned values as if they were decorated as DeviceIndex
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits.html
	PipelineCreateViewIndexFromDeviceIndex core1_0.PipelineCreateFlags = C.VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
)
View Source
const (
	// DeviceQueueCreateProtected specifies that the Device Queue is a protected-capable Queue
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueCreateFlagBits.html
	DeviceQueueCreateProtected core1_0.DeviceQueueCreateFlags = C.VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT

	// QueueProtected specifies capagbilities of Queue objects in a Queue family
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html
	QueueProtected core1_0.QueueFlags = C.VK_QUEUE_PROTECTED_BIT
)
View Source
const (
	// ExternalSemaphoreFeatureExportable specifies that handles of this type can be exported
	// from Vulkan Semaphore objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html
	ExternalSemaphoreFeatureExportable ExternalSemaphoreFeatureFlags = C.VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
	// ExternalSemaphoreFeatureImportable specifies that handles of this type can be imported
	// as Vulkan Semaphore objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html
	ExternalSemaphoreFeatureImportable ExternalSemaphoreFeatureFlags = C.VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT

	// ExternalSemaphoreHandleTypeOpaqueFD specifies a POSIX file descriptor handle that has
	// only limited valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueFD ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
	// ExternalSemaphoreHandleTypeOpaqueWin32 specifies an NT handle that has only limited
	// valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueWin32 ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
	// ExternalSemaphoreHandleTypeOpaqueWin32KMT specifies a global share handle that has only
	// limited valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueWin32KMT ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
	// ExternalSemaphoreHandleTypeD3D12Fence specifies an NT handle returned by
	// ID3D12Device::CreateSharedHandle referring to a Direct3D 12 fence, or
	// ID3D11Device5::CreateFence referring to a Direct3D 11 fence
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeD3D12Fence ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
	// ExternalSemaphoreHandleTypeSyncFD specifies a POSIX file descriptor handle to a Linux Sync
	// File or Android Fence object. It can be used with any native API accepting a valid sync file or
	// Fence as input
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeSyncFD ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT

	// SemaphoreImportTemporary specifies that the Semaphore payload will be imported only
	// temporarily, regardless of the permanence of the handle type
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreImportFlagBits.html
	SemaphoreImportTemporary SemaphoreImportFlags = C.VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
)
View Source
const (
	// VkErrorInvalidExternalHandle indicates an external handle is not a valid handle
	// of the specified type
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html
	VkErrorInvalidExternalHandle common.VkResult = C.VK_ERROR_INVALID_EXTERNAL_HANDLE
	// VkErrorOutOfPoolMemory indicates a pool memory allocation has failed
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html
	VkErrorOutOfPoolMemory common.VkResult = C.VK_ERROR_OUT_OF_POOL_MEMORY
)
View Source
const (
	// ChromaLocationCositedEven specifies that downsampled chroma samples are aligned
	// with luma samples with even coordinates
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html
	ChromaLocationCositedEven ChromaLocation = C.VK_CHROMA_LOCATION_COSITED_EVEN
	// ChromaLocationMidpoint specifies that downsampled chroma samples are located halfway
	// between each even luma sample and the nearest higher odd luma sample
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html
	ChromaLocationMidpoint ChromaLocation = C.VK_CHROMA_LOCATION_MIDPOINT

	// FormatFeatureCositedChromaSamples specifies that an application can define a
	// SamplerYcbcrConversion using this format as a source, and that an Image of this format
	// can be used with a SamplerYcbcrConversionCreateInfo.XChromaOffset and/or a
	// SamplerYcbcrConversionCreateInfo.YChromaOffset of ChromaLocationCositedEven
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureCositedChromaSamples core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
	// FormatFeatureDisjoint specifies that a multi-planar Image can have ImageCreateDisjoint
	// set during Image creation
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureDisjoint core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_DISJOINT_BIT
	// FormatFeatureMidpointChromaSamples specifies that an application can define a
	// SamplerYcbcrConversion using this format as a source, and that an Image of this format
	// can be used with a SamplerYcbcrConversionCreateInfo.XChromaOffset and/or a
	// SamplerYcbcrConversionCreateInfo.YChromaOffset of ChromaLocationMidpoint
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureMidpointChromaSamples core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
	// FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicit specifies that
	// reconstruction is explicit
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicit core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
	// FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceable specifies
	// that reconstruction can be forcibly made explicit by setting
	// SamplerYcbcrConversionCreateInfo.ForceExplicitReconstruction to true
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceable core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
	// FormatFeatureSampledImageYcbcrConversionLinearFilter specifies that an application can
	// define a SamplerYcbcrConversion using this format as a source with ChromaFilter set
	// to core1_0.FilterLinear
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionLinearFilter core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
	// FormatFeatureSampledImageYcbcrConversionSeparateReconstructionFilter specifies that
	// the format can have different chroma, min, and mag filters
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionSeparateReconstructionFilter core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT

	// SamplerYcbcrModelConversionRGBIdentity specifies that the input values to the conversion
	// are unmodified
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionRGBIdentity SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY
	// SamplerYcbcrModelConversionYcbcr2020 specifies the color model conversion from
	// Y'CbCr to R'G'B' defined in BT.2020
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr2020 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
	// SamplerYcbcrModelConversionYcbcr601 specifies the color model conversion from Y'CbCr to
	// R'G'B' defined in BT.601
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr601 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
	// SamplerYcbcrModelConversionYcbcr709 specifies the color model conversion from Y'CbCr to
	// R'G'B' defined in BT.709
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr709 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
	// SamplerYcbcrModelConversionYcbcrIdentity specifies no model conversion but the inputs
	// are range expanded as for Y'CbCr
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcrIdentity SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY

	// SamplerYcbcrRangeITUFull specifies that the full range of the encoded values are valid and
	// interpreted according to the ITU "full range" quantization rules
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html
	SamplerYcbcrRangeITUFull SamplerYcbcrRange = C.VK_SAMPLER_YCBCR_RANGE_ITU_FULL
	// SamplerYcbcrRangeITUNarrow specifies that headroom and foot room are reserved in the
	// numerical range of encoded values, and the remaining values are expanded according to
	// the ITU "narrow range" quantization rules
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html
	SamplerYcbcrRangeITUNarrow SamplerYcbcrRange = C.VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
)
View Source
const (
	// BufferCreateProtected specifies that the Buffer is a protected Buffer
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html
	BufferCreateProtected core1_0.BufferCreateFlags = C.VK_BUFFER_CREATE_PROTECTED_BIT
)
View Source
const (
	// CommandPoolCreateProtected specifies that CommandBuffer objects allocated from the pool
	// are protected CommandBuffer objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html
	CommandPoolCreateProtected core1_0.CommandPoolCreateFlags = C.VK_COMMAND_POOL_CREATE_PROTECTED_BIT
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BindBufferMemoryDeviceGroupInfo

type BindBufferMemoryDeviceGroupInfo struct {
	// DeviceIndices is a slice of Device indices
	DeviceIndices []int

	common.NextOptions
}

BindBufferMemoryDeviceGroupInfo specifies Device within a group to bind to

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryDeviceGroupInfo.html

func (BindBufferMemoryDeviceGroupInfo) PopulateCPointer

func (o BindBufferMemoryDeviceGroupInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type BindBufferMemoryInfo

type BindBufferMemoryInfo struct {
	// Buffer is the Buffer to be attached to memory
	Buffer core1_0.Buffer
	// Memory describes the DeviceMemory object to attach
	Memory core1_0.DeviceMemory
	// MemoryOffset is the start offset of the region of memory which is to be bound to the Buffer
	MemoryOffset int

	common.NextOptions
}

BindBufferMemoryInfo specifies how to bind a Buffer to DeviceMemory

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindBufferMemoryInfo.html

func (BindBufferMemoryInfo) PopulateCPointer

func (o BindBufferMemoryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type BindImageMemoryDeviceGroupInfo

type BindImageMemoryDeviceGroupInfo struct {
	// DeviceIndices is a slice of Device indices
	DeviceIndices []int
	// SplitInstanceBindRegions is a slice of Rect2D structures describing which regions of
	// the Image are attached to each instance of DeviceMemory
	SplitInstanceBindRegions []core1_0.Rect2D

	common.NextOptions
}

BindImageMemoryDeviceGroupInfo specifies Device within a group to bind to

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindImageMemoryDeviceGroupInfo.html

func (BindImageMemoryDeviceGroupInfo) PopulateCPointer

func (o BindImageMemoryDeviceGroupInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type BindImageMemoryInfo

type BindImageMemoryInfo struct {
	// Image is the image to be attached to DeviceMemory
	Image core1_0.Image
	// Memory describes the DeviceMemory to attach
	Memory core1_0.DeviceMemory
	// MemoryOffset is the start offset of the region of DeviceMemory to be bound to the Image
	MemoryOffset uint64

	common.NextOptions
}

BindImageMemoryInfo specifies how to bind an Image to DeviceMemory

func (BindImageMemoryInfo) PopulateCPointer

func (o BindImageMemoryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type BindImagePlaneMemoryInfo

type BindImagePlaneMemoryInfo struct {
	// PlaneAspect specifies the aspect of the disjoint Image plane to bind
	PlaneAspect core1_0.ImageAspectFlags

	common.NextOptions
}

BindImagePlaneMemoryInfo specifies how to bind an Image plane to DeviceMemory

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindImagePlaneMemoryInfo.html

func (BindImagePlaneMemoryInfo) PopulateCPointer

func (o BindImagePlaneMemoryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type Buffer

type Buffer interface {
	core1_0.Buffer
}

Buffer represents a linear array of data, which is used for various purposes by binding it to a graphics or compute pipeline.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBuffer.html

func PromoteBuffer

func PromoteBuffer(buffer core1_0.Buffer) Buffer

PromoteBuffer accepts a Buffer object from any core version. If provided a buffer that supports at least core 1.1, it will return a core1_1.Buffer. Otherwise, it will return nil. This method will always return a core1_1.VulkanBuffer, even if it is provided a VulkanBuffer from a higher core version. Two Vulkan 1.1 compatible Buffer objects with the same Buffer.Handle will return the same interface value when passed to this method.

type BufferMemoryRequirementsInfo2

type BufferMemoryRequirementsInfo2 struct {
	// Buffer is the Buffer to query
	Buffer core1_0.Buffer

	common.NextOptions
}

BufferMemoryRequirementsInfo2 has no documentation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryRequirementsInfo2.html

func (BufferMemoryRequirementsInfo2) PopulateCPointer

func (o BufferMemoryRequirementsInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type BufferView

type BufferView interface {
	core1_0.BufferView
}

BufferView represents a contiguous range of a buffer and a specific format to be used to interpret the data.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferView.html

func PromoteBufferView

func PromoteBufferView(bufferView core1_0.BufferView) BufferView

PromoteBufferView accepts a BufferView object from any core version. If provided a buffer view that supports at least core 1.1, it will return a core1_1.BufferView. Otherwise, it will return nil. This method will always return a core1_1.VulkanBufferView, even if it is provided a VulkanBufferView from a higher core version. Two Vulkan 1.1 compatible BufferView objects with the same BufferView.Handle will return the same interface value when passed to this method.

type ChromaLocation

type ChromaLocation int32

ChromaLocation is the position of downsampled chroma samples

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html

func (ChromaLocation) Register

func (e ChromaLocation) Register(str string)

func (ChromaLocation) String

func (e ChromaLocation) String() string

type CommandBuffer

type CommandBuffer interface {
	core1_0.CommandBuffer

	// CmdDispatchBase dispatches compute work items with non-zero base values for the workgroup IDs
	//
	// baseGroupX - The start value of the X component of WorkgroupId
	//
	// baseGroupY - The start value of the Y component of WorkGroupId
	//
	// baseGroupZ - The start value of the Z component of WorkGroupId
	//
	// groupCountX - The number of local workgroups to dispatch in the X dimension
	//
	// groupCountY - The number of local workgroups to dispatch in the Y dimension
	//
	// groupCountZ - The number of local workgroups to dispatch in the Z dimension
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdDispatchBase.html
	CmdDispatchBase(baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ int)
	// CmdSetDeviceMask modifies the device mask of a CommandBuffer
	//
	// deviceMask - The new value of the current Device mask
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetDeviceMask.html
	CmdSetDeviceMask(deviceMask uint32)
}

CommandBuffer is an object used to record commands which can be subsequently submitted to a device queue for execution.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBuffer.html

func PromoteCommandBuffer

func PromoteCommandBuffer(commandBuffer core1_0.CommandBuffer) CommandBuffer

PromoteCommandBuffer accepts a CommandBuffer object from any core version. If provided a command buffer that supports at least core 1.1, it will return a core1_1.CommandBuffer. Otherwise, it will return nil. This method will always return a core1_1.VulkanCommandBuffer, even if it is provided a VulkanCommandBuffer from a higher core version. Two Vulkan 1.1 compatible CommandBuffer objects with the same CommandBuffer.Handle will return the same interface value when passed to this method.

func PromoteCommandBufferSlice

func PromoteCommandBufferSlice(commandBuffers []core1_0.CommandBuffer) []CommandBuffer

PromoteCommandBufferSlice accepts a slice of CommandBuffer objects from any core version. If provided a descriptor set that supports at least core 1.1, it will return a core1_1.CommandBuffer. Otherwise, it will left out of the returned slice. This method will always return a core1_1.VulkanCommandBuffer, even if it is provided a VulkanCommandBuffer from a higher core version. Two Vulkan 1.1 compatible CommandBuffer objects with the same CommandBuffer.Handle will return the same interface value when passed to this method.

type CommandPool

type CommandPool interface {
	core1_0.CommandPool

	// TrimCommandPool trims a CommandPool
	//
	// flags - Reserved for future use
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkTrimCommandPool.html
	TrimCommandPool(flags CommandPoolTrimFlags)
}

CommandPool is an opaque object that CommandBuffer memory is allocated from

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandPool.html

func PromoteCommandPool

func PromoteCommandPool(commandPool core1_0.CommandPool) CommandPool

PromoteCommandPool accepts a CommandPool object from any core version. If provided a command pool that supports at least core 1.1, it will return a core1_1.CommandPool. Otherwise, it will return nil. This method will always return a core1_1.VulkanCommandPool, even if it is provided a VulkanCommandPool from a higher core version. Two Vulkan 1.1 compatible CommandPool objects with the same CommandPool.Handle will return the same interface value when passed to this method.

type CommandPoolTrimFlags

type CommandPoolTrimFlags int32

CommandPoolTrimFlags is reserved for future use

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolTrimFlagsKHR.html

func (CommandPoolTrimFlags) Register

func (f CommandPoolTrimFlags) Register(str string)

func (CommandPoolTrimFlags) String

func (f CommandPoolTrimFlags) String() string

type DescriptorPool

type DescriptorPool interface {
	core1_0.DescriptorPool
}

DescriptorPool maintains a pool of descriptors, from which DescriptorSet objects are allocated.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPool.html

func PromoteDescriptorPool

func PromoteDescriptorPool(descriptorPool core1_0.DescriptorPool) DescriptorPool

PromoteDescriptorPool accepts a DescriptorPool object from any core version. If provided a descriptor pool that supports at least core 1.1, it will return a core1_1.DescriptorPool. Otherwise, it will return nil. This method will always return a core1_1.VulkanDescriptorPool, even if it is provided a VulkanDescriptorPool from a higher core version. Two Vulkan 1.1 compatible DescriptorPool objects with the same DescriptorPool.Handle will return the same interface value when passed to this method.

type DescriptorSet

type DescriptorSet interface {
	core1_0.DescriptorSet
}

DescriptorSet is an opaque object allocated from a DescriptorPool

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetDescriptorPool.html

func PromoteDescriptorSet

func PromoteDescriptorSet(set core1_0.DescriptorSet) DescriptorSet

PromoteDescriptorSet accepts a DescriptorSet object from any core version. If provided a descriptor set that supports at least core 1.1, it will return a core1_1.DescriptorSet. Otherwise, it will return nil. This method will always return a core1_1.VulkanDescriptorSet, even if it is provided a VulkanDescriptorSet from a higher core version. Two Vulkan 1.1 compatible DescriptorSet objects with the same DescriptorSet.Handle will return the same interface value when passed to this method.

func PromoteDescriptorSetSlice

func PromoteDescriptorSetSlice(sets []core1_0.DescriptorSet) []DescriptorSet

PromoteDescriptorSetSlice accepts a slice of DescriptorSet objects from any core version. If provided a descriptor set that supports at least core 1.1, it will return a core1_1.DescriptorSet. Otherwise, it will left out of the returned slice. This method will always return a core1_1.VulkanDescriptorSet, even if it is provided a VulkanDescriptorSet from a higher core version. Two Vulkan 1.1 compatible DescriptorSet objects with the same DescriptorSet.Handle will return the same interface value when passed to this method.

type DescriptorSetLayout

type DescriptorSetLayout interface {
	core1_0.DescriptorSetLayout
}

DescriptorSetLayout is a group of zero or more descriptor bindings definitions.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayout.html

func PromoteDescriptorSetLayout

func PromoteDescriptorSetLayout(layout core1_0.DescriptorSetLayout) DescriptorSetLayout

PromoteDescriptorSetLayout accepts a DescriptorSetLayout object from any core version. If provided a descriptor set layout that supports at least core 1.1, it will return a core1_1.DescriptorSetLayout. Otherwise, it will return nil. This method will always return a core1_1.VulkanDescriptorSetLayout, even if it is provided a VulkanDescriptorSetLayout from a higher core version. Two Vulkan 1.1 compatible DescriptorSetLayout objects with the same DescriptorSetLayout.Handle will return the same interface value when passed to this method.

type DescriptorSetLayoutSupport

type DescriptorSetLayoutSupport struct {
	// Supported specifies whether the DescriptorSetLayout can be created
	Supported bool

	common.NextOutData
}

DescriptorSetLayoutSupport returns information about whether a DescriptorSetLayout can be supported

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutSupport.html

func (*DescriptorSetLayoutSupport) PopulateHeader

func (o *DescriptorSetLayoutSupport) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*DescriptorSetLayoutSupport) PopulateOutData

func (o *DescriptorSetLayoutSupport) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type DescriptorUpdateTemplate

type DescriptorUpdateTemplate interface {
	// Handle is the internal Vulkan object handle for this DescriptorUpdateTemplate
	Handle() driver.VkDescriptorUpdateTemplate
	// DeviceHandle is the internal Vulkan object handle for the Device this DescriptorUpdateTemplate belongs to
	DeviceHandle() driver.VkDevice
	// Driver is the Vulkan wrapper driver used by this DescriptorUpdateTemplate
	Driver() driver.Driver
	// APIVersion is the maximum Vulkan API version supported by this DescriptorUpdateTemplate. If it is at least
	// Vulkan 1.2, core1_2.PromoteDescriptorUpdateTemplate can be used to promote this to a core1_2.DescriptorUpdateTemplate,
	// etc.
	APIVersion() common.APIVersion

	// Destroy destroys the DescriptorUpdateTemplate object and the underlying structures. **Warning** after
	// destruction, this object will continue to exist, but the Vulkan object handle that backs it will
	// be invalid. Do not call further methods on this object.
	//
	// callbacks - Controls host memory deallocation
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyDescriptorUpdateTemplate.html
	Destroy(allocator *driver.AllocationCallbacks)
	// UpdateDescriptorSetFromBuffer updates the contents of a DescriptorSet object with this template
	// and a Buffer
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - Information and a Buffer used to write the descriptor
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)
	// UpdateDescriptorSetFromImage updates the contents of a DescriptorSet object with this template and
	// an Image
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - Information and an Image used to write the descriptor
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)
	// UpdateDescriptorSetFromObjectHandle updates the contents of a DescriptorSet object with this template
	// and an arbitrary handle
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - A Vulkan object handle used to write the descriptor. Can be a BufferView handle or
	// perhaps an acceleration structure.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromObjectHandle(descriptorSet core1_0.DescriptorSet, data driver.VulkanHandle)
}

DescriptorUpdateTemplate specifies a mapping from descriptor update information in host memory to descriptors in a DescriptorSet

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplate.html

type DescriptorUpdateTemplateCreateFlags

type DescriptorUpdateTemplateCreateFlags int32

DescriptorUpdateTemplateCreateFlags is reserved for future use

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateFlags.html

func (DescriptorUpdateTemplateCreateFlags) Register

func (DescriptorUpdateTemplateCreateFlags) String

type DescriptorUpdateTemplateCreateInfo

type DescriptorUpdateTemplateCreateInfo struct {
	// Flags is reserved for future use
	Flags DescriptorUpdateTemplateCreateFlags
	// DescriptorUpdateEntries is a slice of DescriptorUpdateTemplateEntry structures describing
	// the descriptors to be updated by the DescriptorUpdateTEmplate
	DescriptorUpdateEntries []DescriptorUpdateTemplateEntry
	// TemplateType specifies the type of the DescriptorUpdateTemplate
	TemplateType DescriptorUpdateTemplateType

	// DescriptorSetLayout is the DescriptorSetLayout used to build the DescriptorUpdateTemplate
	DescriptorSetLayout core1_0.DescriptorSetLayout

	// PipelineBindPoint indicates the type of the Pipeline that will use the descriptors
	PipelineBindPoint core1_0.PipelineBindPoint
	// PipelineLayout is a PipelineLayout object used to program the bindings
	PipelineLayout core1_0.PipelineLayout
	// Set is the set number of the DescriptorSet in the PipelineLayout that will be updated
	Set int

	common.NextOptions
}

DescriptorUpdateTemplateCreateInfo specifies parameters of a newly-created Descriptor Update Template

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfo.html

func (DescriptorUpdateTemplateCreateInfo) PopulateCPointer

func (o DescriptorUpdateTemplateCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DescriptorUpdateTemplateEntry

type DescriptorUpdateTemplateEntry struct {
	// DstBinding is the descriptor binding to update when using this DescriptorUpdateTemplate
	DstBinding int
	// DstArrayElement is the starting element in the array belonging to DstBinding
	DstArrayElement int
	// DescriptorCount is the number of descriptors to update
	DescriptorCount int

	// DescriptorType specifies the type of the descriptor
	DescriptorType core1_0.DescriptorType

	// Offset is the offset in bytes of the first binding in the raw data structure
	Offset int
	// Stride is the stride in bytes between two consecutive array elements of the
	// descriptor update informations in the raw data structure
	Stride int
}

DescriptorUpdateTemplateEntry describes a single descriptor update of the DescriptorUpdateTemplate

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateEntry.html

func (DescriptorUpdateTemplateEntry) PopulateCPointer

func (e DescriptorUpdateTemplateEntry) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer) (unsafe.Pointer, error)

type DescriptorUpdateTemplateType

type DescriptorUpdateTemplateType int32

DescriptorUpdateTemplateType indicates the valid usage of the DescriptorUpdateTemplate

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateType.html

const (
	// DescriptorUpdateTemplateTypeDescriptorSet indicates the valid usage of the DescriptorUpdateTemplate
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateType.html
	DescriptorUpdateTemplateTypeDescriptorSet DescriptorUpdateTemplateType = C.VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
)

func (DescriptorUpdateTemplateType) Register

func (e DescriptorUpdateTemplateType) Register(str string)

func (DescriptorUpdateTemplateType) String

type Device

type Device interface {
	core1_0.Device

	// BindBufferMemory2 binds DeviceMemory to Buffer objects
	//
	// o - A slice of BindBufferMemoryInfo structures describing Buffer objects and memory to bind
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkBindBufferMemory2.html
	BindBufferMemory2(o []BindBufferMemoryInfo) (common.VkResult, error)
	// BindImageMemory2 binds DeviceMemory to Image objects
	//
	// o - A slice of BindImageMemoryInfo structures describing Image objects and memory to bind
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkBindImageMemory2.html
	BindImageMemory2(o []BindImageMemoryInfo) (common.VkResult, error)

	// BufferMemoryRequirements2 returns the memory requirements for the specified Vulkan object
	//
	// o - Contains parameters required for the memory requirements query
	//
	// out - A pre-allocated object in which the memory requirements of the Buffer object will be
	// populated. It should include any desired chained OutData objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetBufferMemoryRequirements2.html
	BufferMemoryRequirements2(o BufferMemoryRequirementsInfo2, out *MemoryRequirements2) error
	// ImageMemoryRequirements2 returns the memory requirements for the specified Vulkan object
	//
	// o - Contains parameters required for the memory requirements query
	//
	// out - A pre-allocated object in which the memory requirements of the Image object will be
	// populated. It should include any desired chained OutData objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetImageMemoryRequirements2.html
	ImageMemoryRequirements2(o ImageMemoryRequirementsInfo2, out *MemoryRequirements2) error
	// ImageSparseMemoryRequirements2 queries the memory requirements for a sparse Image
	//
	// o - Contains parameters required for the memory requirements query
	//
	// outDataFactory - This method can be provided to allocate each SparseImageMemoryRequirements2 object
	// that is returned, along with any chained OutData structures. It can also be left nil, in which case
	// SparseImageMemoryRequirements2 will be allocated with no chained structures.
	ImageSparseMemoryRequirements2(o ImageSparseMemoryRequirementsInfo2, outDataFactory func() *SparseImageMemoryRequirements2) ([]*SparseImageMemoryRequirements2, error)

	// DescriptorSetLayoutSupport queries whether a DescriptorSetLayout can be created
	//
	// o - Specifies the state of the DescriptorSetLayout object
	//
	// outData - A pre-allocated object in which information about support for the DescriptorSetLayout
	// object will be populated. It should include any desired chained OutData objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetDescriptorSetLayoutSupport.html
	DescriptorSetLayoutSupport(o core1_0.DescriptorSetLayoutCreateInfo, outData *DescriptorSetLayoutSupport) error

	// DeviceGroupPeerMemoryFeatures queries supported peer memory features of a Device
	//
	// heapIndex - The index of the memory heap from which the memory is allocated
	//
	// localDeviceIndex - The device index of the PhysicalDevice that performs the memory access
	//
	// remoteDeviceIndex - The device index of the PhysicalDevice that the memory is allocated for
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetDeviceGroupPeerMemoryFeatures.html
	DeviceGroupPeerMemoryFeatures(heapIndex, localDeviceIndex, remoteDeviceIndex int) PeerMemoryFeatureFlags

	// CreateDescriptorUpdateTemplate creates a new DescriptorUpdateTemplate
	//
	// o - Specifies the set of descriptors to update with a single call to DescriptorUpdateTemplate.UpdateDescriptorSet...
	//
	// allocator - Controls host allocation behavior
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateDescriptorUpdateTemplate.html
	CreateDescriptorUpdateTemplate(o DescriptorUpdateTemplateCreateInfo, allocator *driver.AllocationCallbacks) (DescriptorUpdateTemplate, common.VkResult, error)
	// CreateSamplerYcbcrConversion creates a new Y'CbCr conversion
	//
	// o - Specifies the requested sampler Y'CbCr conversion
	//
	// allocator - Controls host allocation behavior
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateSamplerYcbcrConversion.html
	CreateSamplerYcbcrConversion(o SamplerYcbcrConversionCreateInfo, allocator *driver.AllocationCallbacks) (SamplerYcbcrConversion, common.VkResult, error)

	// GetQueue2 gets a Queue object from this Device
	//
	// o - Describes parameters of the Device Queue to be retrieved
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetDeviceQueue2.html
	GetQueue2(o DeviceQueueInfo2) (core1_0.Queue, error)
}

Device represents a logical device on the host

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevice.html

func PromoteDevice

func PromoteDevice(device core1_0.Device) Device

PromoteDevice accepts a Device object from any core version. If provided a device that supports at least core 1.1, it will return a core1_1.Device. Otherwise, it will return nil. This method will always return a core1_1.VulkanDevice, even if it is provided a VulkanDevice from a higher core version. Two Vulkan 1.1 compatible Device objects with the same Device.Handle will return the same interface value when passed to this method.

type DeviceGroupBindSparseInfo

type DeviceGroupBindSparseInfo struct {
	// ResourceDeviceIndex is a Device index indicating which instance of the resource is bound
	ResourceDeviceIndex int
	// MemoryDeviceIndex is a Device index indicating which instance of the memory the resource instance is bound to
	MemoryDeviceIndex int

	common.NextOptions
}

DeviceGroupBindSparseInfo indicates which instances are bound

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupBindSparseInfo.html

func (DeviceGroupBindSparseInfo) PopulateCPointer

func (o DeviceGroupBindSparseInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceGroupCommandBufferBeginInfo

type DeviceGroupCommandBufferBeginInfo struct {
	// DeviceMask is the initial value of the CommandBuffer object's device mask
	DeviceMask uint32

	common.NextOptions
}

DeviceGroupCommandBufferBeginInfo sets the initial device mask for a CommandBuffer

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupCommandBufferBeginInfo.html

func (DeviceGroupCommandBufferBeginInfo) PopulateCPointer

func (o DeviceGroupCommandBufferBeginInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceGroupDeviceCreateInfo

type DeviceGroupDeviceCreateInfo struct {
	// PhysicalDevices is a slice of PhysicalDevice objects belonging to the same Device group
	PhysicalDevices []core1_0.PhysicalDevice

	common.NextOptions
}

DeviceGroupDeviceCreateInfo creates a logical Device from multiple PhysicalDevice objects

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupDeviceCreateInfo.html

func (DeviceGroupDeviceCreateInfo) PopulateCPointer

func (o DeviceGroupDeviceCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceGroupRenderPassBeginInfo

type DeviceGroupRenderPassBeginInfo struct {
	// DeviceMask is the deivce mask for the RenderPass instance
	DeviceMask uint32
	// DeviceRenderAreas is a slice of Rect2D structures defining the render area for each
	// PhysicalDevice
	DeviceRenderAreas []core1_0.Rect2D

	common.NextOptions
}

DeviceGroupRenderPassBeginInfo sets the initial Device mask and render areas for a RenderPass instance

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupRenderPassBeginInfo.html

func (DeviceGroupRenderPassBeginInfo) PopulateCPointer

func (o DeviceGroupRenderPassBeginInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceGroupSubmitInfo

type DeviceGroupSubmitInfo struct {
	// WaitSemaphoreDeviceIndices is a slice of Device indices indicating which PhysicalDevice
	// executes the Semaphore wait operation in the corresponding element of SubmitInfo.WaitSemaphores
	WaitSemaphoreDeviceIndices []int
	// CommandBufferDeviceMasks is a slice of Device masks indicating which PhysicalDevice objects
	// execute the CommandBuffer in teh corresponding element of SubmitInfo.CommandBuffers
	CommandBufferDeviceMasks []uint32
	// SignalSemaphoreDeviceIndices is a slice of Device indices indicating which PhysicalDevice
	// executes the Semaphore signal operation in the SubmitInfo.SignalSemaphores
	SignalSemaphoreDeviceIndices []int

	common.NextOptions
}

DeviceGroupSubmitInfo indicates which PhysicalDevice objects execute Semaphore operations and CommandBuffer objects

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupSubmitInfo.html

func (DeviceGroupSubmitInfo) PopulateCPointer

func (o DeviceGroupSubmitInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceMemory

type DeviceMemory interface {
	core1_0.DeviceMemory
}

DeviceMemory represents a block of memory on the device

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemory.html

func PromoteDeviceMemory

func PromoteDeviceMemory(deviceMemory core1_0.DeviceMemory) DeviceMemory

PromoteDeviceMemory accepts a DeviceMemory object from any core version. If provided a device memory that supports at least core 1.1, it will return a core1_1.DeviceMemory. Otherwise, it will return nil. This method will always return a core1_1.VulkanDeviceMemory, even if it is provided a VulkanDeviceMemory from a higher core version. Two Vulkan 1.1 compatible DeviceMemory objects with the same DeviceMemory.Handle will return the same interface value when passed to this method.

type DeviceQueueInfo2

type DeviceQueueInfo2 struct {
	// Flags indicates the flags used to create the Device Queue
	Flags core1_0.DeviceQueueCreateFlags
	// QueueFamilyIndex is the index of the queue family to which the Queue belongs
	QueueFamilyIndex int
	// QueueIndex is the index of the Queue to retrieve from within the set of Queue objects
	// that share both the Queue family and flags specified
	QueueIndex int

	common.NextOptions
}

DeviceQueueInfo2 specifies the parameters used for Device Queue creation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueInfo2.html

func (DeviceQueueInfo2) PopulateCPointer

func (o DeviceQueueInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type Event

type Event interface {
	core1_0.Event
}

Event is a synchronization primitive that can be used to insert fine-grained dependencies between commands submitted to the same queue, or between the host and a queue.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkEvent.html

func PromoteEvent

func PromoteEvent(event core1_0.Event) Event

PromoteEvent accepts a Event object from any core version. If provided an event that supports at least core 1.1, it will return a core1_1.Event. Otherwise, it will return nil. This method will always return a core1_1.VulkanEvent, even if it is provided a VulkanEvent from a higher core version. Two Vulkan 1.1 compatible Event objects with the same Event.Handle will return the same interface value when passed to this method.

type ExportFenceCreateInfo

type ExportFenceCreateInfo struct {
	// HandleTypes specifies one or more Fence handle types the application can export from
	// the resulting Fence
	HandleTypes ExternalFenceHandleTypeFlags

	common.NextOptions
}

ExportFenceCreateInfo specifies handle types that can be exported from a Fence

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExportFenceCreateInfo.html

func (ExportFenceCreateInfo) PopulateCPointer

func (o ExportFenceCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ExportMemoryAllocateInfo

type ExportMemoryAllocateInfo struct {
	// HandleTypes specifies one or more memory handle types the application can export from
	// the resulting allocation
	HandleTypes ExternalMemoryHandleTypeFlags

	common.NextOptions
}

ExportMemoryAllocateInfo specifies exportable handle types for a DeviceMemory object

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExportMemoryAllocateInfo.html

func (ExportMemoryAllocateInfo) PopulateCPointer

func (o ExportMemoryAllocateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ExportSemaphoreCreateInfo

type ExportSemaphoreCreateInfo struct {
	// HandleTypes specifies one or more Semaphore handle types the application can export
	// from the resulting Semaphore
	HandleTypes ExternalSemaphoreHandleTypeFlags

	common.NextOptions
}

ExportSemaphoreCreateInfo specifies handle types that can be exported from a Semaphore

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExportSemaphoreCreateInfo.html

func (ExportSemaphoreCreateInfo) PopulateCPointer

func (o ExportSemaphoreCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ExternalBufferProperties

type ExternalBufferProperties struct {
	// ExternalMemoryProperties specifies various capabilities of the external handle type when
	// used with the specified Buffer creation parameters
	ExternalMemoryProperties ExternalMemoryProperties

	common.NextOutData
}

ExternalBufferProperties specifies supported external handle capabilities

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalBufferProperties.html

func (*ExternalBufferProperties) PopulateHeader

func (o *ExternalBufferProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalBufferProperties) PopulateOutData

func (o *ExternalBufferProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type ExternalFenceFeatureFlags

type ExternalFenceFeatureFlags int32

ExternalFenceFeatureFlags describes features of an external Fence handle type

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceFeatureFlagBits.html

func (ExternalFenceFeatureFlags) Register

func (f ExternalFenceFeatureFlags) Register(str string)

func (ExternalFenceFeatureFlags) String

func (f ExternalFenceFeatureFlags) String() string

type ExternalFenceHandleTypeFlags

type ExternalFenceHandleTypeFlags int32

ExternalFenceHandleTypeFlags is a bitmask of valid external Fence handle types

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html

func (ExternalFenceHandleTypeFlags) Register

func (f ExternalFenceHandleTypeFlags) Register(str string)

func (ExternalFenceHandleTypeFlags) String

type ExternalFenceProperties

type ExternalFenceProperties struct {
	// ExportFromImportedHandleTypes indicates which type of imported handle HandleType can be exported from
	ExportFromImportedHandleTypes ExternalFenceHandleTypeFlags
	// CompatibleHandleTypes specifies handle types which can be specified at the same time as HandleType when creating a Fence
	CompatibleHandleTypes ExternalFenceHandleTypeFlags
	// ExternalFenceFeatures indicates the features of HandleType
	ExternalFenceFeatures ExternalFenceFeatureFlags

	common.NextOutData
}

ExternalFenceProperties describes supported external Fence handle features

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceProperties.html

func (*ExternalFenceProperties) PopulateHeader

func (o *ExternalFenceProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalFenceProperties) PopulateOutData

func (o *ExternalFenceProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type ExternalImageFormatProperties

type ExternalImageFormatProperties struct {
	// ExternalMemoryProperties specifies various capabilities of the external handle type when used
	// with the specified Image creation parameters
	ExternalMemoryProperties ExternalMemoryProperties

	common.NextOutData
}

ExternalImageFormatProperties specifies supported external handle properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalImageFormatProperties.html

func (*ExternalImageFormatProperties) PopulateHeader

func (o *ExternalImageFormatProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalImageFormatProperties) PopulateOutData

func (o *ExternalImageFormatProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type ExternalMemoryBufferCreateInfo

type ExternalMemoryBufferCreateInfo struct {
	// HandleTypes specifies one or more external memory handle types
	HandleTypes ExternalMemoryHandleTypeFlags

	common.NextOptions
}

ExternalMemoryBufferCreateInfo specifies that a Buffer may be backed by external memory

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryBufferCreateInfo.html

func (ExternalMemoryBufferCreateInfo) PopulateCPointer

func (o ExternalMemoryBufferCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ExternalMemoryFeatureFlags

type ExternalMemoryFeatureFlags int32

ExternalMemoryFeatureFlags specifies features of an external memory handle type

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html

func (ExternalMemoryFeatureFlags) Register

func (f ExternalMemoryFeatureFlags) Register(str string)

func (ExternalMemoryFeatureFlags) String

type ExternalMemoryHandleTypeFlags

type ExternalMemoryHandleTypeFlags int32

ExternalMemoryHandleTypeFlags specifies external memory handle types

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html

func (ExternalMemoryHandleTypeFlags) Register

func (f ExternalMemoryHandleTypeFlags) Register(str string)

func (ExternalMemoryHandleTypeFlags) String

type ExternalMemoryImageCreateInfo

type ExternalMemoryImageCreateInfo struct {
	// HandleTypes specifies one or more external memory handle types
	HandleTypes ExternalMemoryHandleTypeFlags

	common.NextOptions
}

ExternalMemoryImageCreateInfo specifies that an Image may be backed by external memory

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryImageCreateInfo.html

func (ExternalMemoryImageCreateInfo) PopulateCPointer

func (o ExternalMemoryImageCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ExternalMemoryProperties

type ExternalMemoryProperties struct {
	// ExternalMemoryFeatures specifies the features of the handle type
	ExternalMemoryFeatures ExternalMemoryFeatureFlags
	// ExportFromImportedHandleTypes specifies which types of imported handle the handle type can
	// be exported from
	ExportFromImportedHandleTypes ExternalMemoryHandleTypeFlags
	// CompatibleHandleTypes specifies handle types which can be specified at the same time as the
	// handle type which creating an Image compatible with external memory
	CompatibleHandleTypes ExternalMemoryHandleTypeFlags
}

ExternalMemoryProperties specifies external memory handle type capabilities

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryProperties.html

func (ExternalMemoryProperties) PopulateCPointer

func (o ExternalMemoryProperties) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalMemoryProperties) PopulateOutData

func (o *ExternalMemoryProperties) PopulateOutData(cDataPointer unsafe.Pointer) error

type ExternalSemaphoreFeatureFlags

type ExternalSemaphoreFeatureFlags int32

ExternalSemaphoreFeatureFlags describes features of an external Semaphore handle type

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html

func (ExternalSemaphoreFeatureFlags) Register

func (f ExternalSemaphoreFeatureFlags) Register(str string)

func (ExternalSemaphoreFeatureFlags) String

type ExternalSemaphoreHandleTypeFlags

type ExternalSemaphoreHandleTypeFlags int32

ExternalSemaphoreHandleTypeFlags is a bitmask of valid external Semaphore handle types

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html

func (ExternalSemaphoreHandleTypeFlags) Register

func (f ExternalSemaphoreHandleTypeFlags) Register(str string)

func (ExternalSemaphoreHandleTypeFlags) String

type ExternalSemaphoreProperties

type ExternalSemaphoreProperties struct {
	// ExportFromImportedHandleTypes specifies which types of imported handle HandleType can
	// be exported from
	ExportFromImportedHandleTypes ExternalSemaphoreHandleTypeFlags
	// CompatibleHandleTypes specifies handle types which can be specified at the same time as
	// HandleType when creating a Semaphore
	CompatibleHandleTypes ExternalSemaphoreHandleTypeFlags
	// ExternalSemaphoreFeatures describes the features of HandleType
	ExternalSemaphoreFeatures ExternalSemaphoreFeatureFlags

	common.NextOutData
}

ExternalSemaphoreProperties describes supported external Semaphore handle features

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreProperties.html

func (*ExternalSemaphoreProperties) PopulateHeader

func (o *ExternalSemaphoreProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalSemaphoreProperties) PopulateOutData

func (o *ExternalSemaphoreProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type Fence

type Fence interface {
	core1_0.Fence
}

Fence is a synchronization primitive that can be used to insert a dependency from a queue to the host.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFence.html

func PromoteFence

func PromoteFence(fence core1_0.Fence) Fence

PromoteFence accepts a Fence object from any core version. If provided a fence that supports at least core 1.1, it will return a core1_1.Fence. Otherwise, it will return nil. This method will always return a core1_1.VulkanFence, even if it is provided a VulkanFence from a higher core version. Two Vulkan 1.1 compatible Fence objects with the same Fence.Handle will return the same interface value when passed to this method.

type FenceImportFlags

type FenceImportFlags int32

FenceImportFlags specifies additional parameters of a Fence payload import

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceImportFlagBits.html

func (FenceImportFlags) Register

func (f FenceImportFlags) Register(str string)

func (FenceImportFlags) String

func (f FenceImportFlags) String() string

type FormatProperties2

type FormatProperties2 struct {
	// FormatProperties describes features supported by the requested format
	FormatProperties core1_0.FormatProperties
	common.NextOutData
}

FormatProperties2 specifies the Image format properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatProperties2KHR.html

func (*FormatProperties2) PopulateHeader

func (o *FormatProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*FormatProperties2) PopulateOutData

func (o *FormatProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type Framebuffer

type Framebuffer interface {
	core1_0.Framebuffer
}

Framebuffer represents a collection of specific memory attachments that a RenderPass uses

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebuffer.html

func PromoteFramebuffer

func PromoteFramebuffer(framebuffer core1_0.Framebuffer) Framebuffer

PromoteFramebuffer accepts a Framebuffer object from any core version. If provided a framebuffer that supports at least core 1.1, it will return a core1_1.Framebuffer. Otherwise, it will return nil. This method will always return a core1_1.VulkanFramebuffer, even if it is provided a VulkanFramebuffer from a higher core version. Two Vulkan 1.1 compatible Framebuffer objects with the same Framebuffer.Handle will return the same interface value when passed to this method.

type Image

type Image interface {
	core1_0.Image
}

Image represents multidimensional arrays of data which can be used for various purposes.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImage.html

func PromoteImage

func PromoteImage(image core1_0.Image) Image

PromoteImage accepts a Image object from any core version. If provided a image that supports at least core 1.1, it will return a core1_1.Image. Otherwise, it will return nil. This method will always return a core1_1.VulkanImage, even if it is provided a VulkanImage from a higher core version. Two Vulkan 1.1 compatible Image objects with the same Image.Handle will return the same interface value when passed to this method.

type ImageFormatProperties2

type ImageFormatProperties2 struct {
	// ImageFormatProperties is a structure in which capabilities are returned
	ImageFormatProperties core1_0.ImageFormatProperties

	common.NextOutData
}

ImageFormatProperties2 specifies image format properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageFormatProperties2KHR.html

func (*ImageFormatProperties2) PopulateHeader

func (o *ImageFormatProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ImageFormatProperties2) PopulateOutData

func (o *ImageFormatProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type ImageMemoryRequirementsInfo2

type ImageMemoryRequirementsInfo2 struct {
	// Image is the Image to query
	Image core1_0.Image

	common.NextOptions
}

ImageMemoryRequirementsInfo2 has no documentation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageMemoryRequirementsInfo2.html

func (ImageMemoryRequirementsInfo2) PopulateCPointer

func (o ImageMemoryRequirementsInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ImagePlaneMemoryRequirementsInfo

type ImagePlaneMemoryRequirementsInfo struct {
	// PlaneAspect specifies the aspect corresponding to the Image plane
	// to query
	PlaneAspect core1_0.ImageAspectFlags

	common.NextOptions
}

ImagePlaneMemoryRequirementsInfo specifies Image plane for memory requirements

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImagePlaneMemoryRequirementsInfo.html

func (ImagePlaneMemoryRequirementsInfo) PopulateCPointer

func (o ImagePlaneMemoryRequirementsInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ImageSparseMemoryRequirementsInfo2

type ImageSparseMemoryRequirementsInfo2 struct {
	// Image is the Image to query
	Image core1_0.Image

	common.NextOptions
}

ImageSparseMemoryRequirementsInfo2 has no documentation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageSparseMemoryRequirementsInfo2.html

func (ImageSparseMemoryRequirementsInfo2) PopulateCPointer

func (o ImageSparseMemoryRequirementsInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ImageView

type ImageView interface {
	core1_0.ImageView
}

ImageView represents contiguous ranges of Image subresources and contains additional metadata

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageView.html

func PromoteImageView

func PromoteImageView(imageView core1_0.ImageView) ImageView

PromoteImageView accepts a ImageView object from any core version. If provided a image view that supports at least core 1.1, it will return a core1_1.ImageView. Otherwise, it will return nil. This method will always return a core1_1.VulkanImageView, even if it is provided a VulkanImageView from a higher core version. Two Vulkan 1.1 compatible ImageView objects with the same ImageView.Handle will return the same interface value when passed to this method.

type ImageViewUsageCreateInfo

type ImageViewUsageCreateInfo struct {
	// Usage specifies allowed usages of the ImageView
	Usage core1_0.ImageUsageFlags

	common.NextOptions
}

ImageViewUsageCreateInfo specifies the intended usage of an ImageView

func (ImageViewUsageCreateInfo) PopulateCPointer

func (o ImageViewUsageCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type InputAttachmentAspectReference

type InputAttachmentAspectReference struct {
	// Subpass is an index into RenderPassCreateInfo.Subpasses
	Subpass int
	// InputAttachmentIndex is an index into the InputAttachments of the specified subpass
	InputAttachmentIndex int
	// AspectMask is a mask of which aspect(s) can be accessed within the specified subpass
	AspectMask core1_0.ImageAspectFlags
}

InputAttachmentAspectReference specifies a subpass/input attachment pair and an aspect mask that can be read

func (InputAttachmentAspectReference) PopulateCPointer

func (ref InputAttachmentAspectReference) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer) (unsafe.Pointer, error)

type Instance

type Instance interface {
	core1_0.Instance

	// EnumeratePhysicalDeviceGroups enumerates groups of PhysicalDevice objects that can be used to
	// create a single logical Device
	//
	// outDataFactory - This method can be provided to allocate each PhysicalDeviceGroupProperties object
	// that is returned, along with any chained OutData structures. It can also be left nil, in which case
	// PhysicalDeviceGroupProperties will be allocated with no chained structures.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumeratePhysicalDeviceGroups.html
	EnumeratePhysicalDeviceGroups(outDataFactory func() *PhysicalDeviceGroupProperties) ([]*PhysicalDeviceGroupProperties, common.VkResult, error)
}

Instance stores per-application state for Vulkan

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInstance.html

func PromoteInstance

func PromoteInstance(instance core1_0.Instance) Instance

PromoteInstance accepts a Instance object from any core version. If provided a instance that supports at least core 1.1, it will return a core1_1.Instance. Otherwise, it will return nil. This method will always return a core1_1.VulkanInstance, even if it is provided a VulkanInstance from a higher core version. Two Vulkan 1.1 compatible Instance objects with the same Instance.Handle will return the same interface value when passed to this method.

type InstanceScopedPhysicalDevice

type InstanceScopedPhysicalDevice interface {
	core1_0.PhysicalDevice

	// ExternalFenceProperties queries external Fence capabilities
	//
	// o - Describes the parameters that would be consumed by Device.CreateFence
	//
	// outData - A pre-allocated object in which the results will be populated. It should include
	// any desired chained OutData objects.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceExternalFenceProperties.html
	ExternalFenceProperties(o PhysicalDeviceExternalFenceInfo, outData *ExternalFenceProperties) error
	// ExternalBufferProperties queries external types supported by Buffer objects
	//
	// o - Describes the parameters that would be consumed by Device.CreateBuffer
	//
	// outData - A pre-allocated object in which the results will be populated. It should include any
	// desired chained OutData objects.
	//
	// https://www.khronos.org/registry/VulkanSC/specs/1.0-extensions/man/html/vkGetPhysicalDeviceExternalBufferProperties.html
	ExternalBufferProperties(o PhysicalDeviceExternalBufferInfo, outData *ExternalBufferProperties) error
	// ExternalSemaphoreProperties queries external Semaphore capabilities
	//
	// o - Describes the parameters that would be consumed by Device.CreateSemaphore
	//
	// outData - A pre-allocated object in which the results will be populated. It should include any
	// desired chained OutData objects.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html
	ExternalSemaphoreProperties(o PhysicalDeviceExternalSemaphoreInfo, outData *ExternalSemaphoreProperties) error

	// Features2 reports capabilities of a PhysicalDevice
	//
	// out - A pre-allocated object in which the results will be populated. It should include any desired
	// chained OutData objects.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceFeatures2.html
	Features2(out *PhysicalDeviceFeatures2) error
	// FormatProperties2 lists the PhysicalDevice object's format capabilities
	//
	// format - The format whose properties are queried
	//
	// out - A pre-allocated object in which the results will be populated. It should include any desired
	// chained OutData objects
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceFormatProperties2.html
	FormatProperties2(format core1_0.Format, out *FormatProperties2) error
	// ImageFormatProperties2 lists the PhysicalDevice object's format capabilities
	//
	// o - Describes the parameters that would be consumed by Device.CreateImage
	//
	// out - A pre-allocated object in which the results will be populated. It should include any desired
	// chained OutData objects
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2.html
	ImageFormatProperties2(o PhysicalDeviceImageFormatInfo2, out *ImageFormatProperties2) (common.VkResult, error)
	// MemoryProperties2 reports memory information for this PhysicalDevice
	//
	// out - A pre-allocated object in which the results will be populated. It should include any desired
	// chained OutData objects
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2.html
	MemoryProperties2(out *PhysicalDeviceMemoryProperties2) error
	// Properties2 returns properties of this PhysicalDevice
	//
	// out - A pre-allocated object in which the results will be populated. It should include any desired
	// chained OutData objects
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceProperties2.html
	Properties2(out *PhysicalDeviceProperties2) error
	// QueueFamilyProperties2 reports properties of the queues of this PhysicalDevice
	//
	// outDataFactory - This method can be provided to allocate each QueueFamilyProperties2 object
	// that is returned, along with any chained OutData structures. It can also be left nil, in which case
	// QueueFamilyProperties2 will be allocated with no chained structures.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
	QueueFamilyProperties2(outDataFactory func() *QueueFamilyProperties2) ([]*QueueFamilyProperties2, error)
	// SparseImageFormatProperties2 retrieves properties of an Image format applied to sparse Image
	//
	// o - Contains input parameters
	//
	// outDataFactory - This method can be provided to allocate each SparseImageFormatProperties2 object
	// that is returned, along with any chained OutData structures. It can also be left nil, in which case
	// SparseImageFormatProperties2 will be allocated with no chained structures.
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html
	SparseImageFormatProperties2(o PhysicalDeviceSparseImageFormatInfo2, outDataFactory func() *SparseImageFormatProperties2) ([]*SparseImageFormatProperties2, error)
}

InstanceScopedPhysicalDevice represents the instance-scoped functionality of a single complete implementation of Vulkan available to the host, of which there are a finite number.

This interface includes all instance-scoped commands included in Vulkan 1.1.

PhysicalDevice objects are unusual in that they exist between the Instance and (logical) Device level. As a result, PhysicalDevice is the only object that can be extended by both Instance and Device extensions. Consequently, there are some unusual cases in which a higher core version may be available for some PhysicalDevice functionality but not others. In order to represent this, physical devices are split into two objects at core1.1+, the PhysicalDevice and the "instance-scoped" PhysicalDevice.

The InstanceScopedPhysicalDevice is usually available at the same core versions as PhysicalDevice, but in rare cases, a higher core version may be available.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice.html

func PromoteInstanceScopedPhysicalDevice

func PromoteInstanceScopedPhysicalDevice(physicalDevice core1_0.PhysicalDevice) InstanceScopedPhysicalDevice

PromoteInstanceScopedPhysicalDevice accepts a PhysicalDevice object from any core version. If provided a physical device that supports at least core 1.1 for its instance-scoped functionality, it will return a core1_1.InstanceScopedPhysicalDevice. Otherwise, it will return nil. This method will always return a core1_1.VulkanInstanceScopedPhysicalDevice, even if it is provided a VulkanInstanceScopedPhysicalDevice from a higher core version. Two Vulkan 1.1 compatible InstanceScopedPhysicalDevice objects with the same InstanceScopedPhysicalDevice.Handle will return the same interface value when passed to this method.

type MemoryAllocateFlags

type MemoryAllocateFlags int32

MemoryAllocateFlags specifies flags for a DeviceMemory allocation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html

const (
	// MemoryAllocateDeviceMask specifies that memory will be allocated for the devices
	// in MemoryAllocateFlagsInfo.DeviceMask
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBitsKHR.html
	MemoryAllocateDeviceMask MemoryAllocateFlags = C.VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT
)

func (MemoryAllocateFlags) Register

func (f MemoryAllocateFlags) Register(str string)

func (MemoryAllocateFlags) String

func (f MemoryAllocateFlags) String() string

type MemoryAllocateFlagsInfo

type MemoryAllocateFlagsInfo struct {
	// Flags controls the allocation
	Flags MemoryAllocateFlags
	// DeviceMask is a mask of PhysicalDevice objects in the logical Device, indicating that
	// memory must be allocated on each Device in the mask, if MemoryAllocateDeviceMask is set
	// in flags
	DeviceMask uint32

	common.NextOptions
}

MemoryAllocateFlagsInfo controls how many instances of memory will be allocated

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagsInfoKHR.html

func (MemoryAllocateFlagsInfo) PopulateCPointer

func (o MemoryAllocateFlagsInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type MemoryDedicatedAllocateInfo added in v0.2.0

type MemoryDedicatedAllocateInfo struct {
	// Image is nil or the Image object which this memory will be bound to
	Image core1_0.Image
	// Buffer is nil or the Buffer object this memory will be bound to
	Buffer core1_0.Buffer

	common.NextOptions
}

MemoryDedicatedAllocateInfo specifies a dedicated memory allocation resource

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedAllocateInfo.html

func (MemoryDedicatedAllocateInfo) PopulateCPointer added in v0.2.0

func (o MemoryDedicatedAllocateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type MemoryDedicatedRequirements

type MemoryDedicatedRequirements struct {
	// PrefersDedicatedAllocation specifies that the implementation would prefer a dedicated
	// allocation for this resource. The application is still free to suballocate the resource
	// but it may get better performance if a dedicated allocation is used
	PrefersDedicatedAllocation bool
	// RequiresDedicatedAllocation specifies that a dedicated allocation is required for this resource
	RequiresDedicatedAllocation bool

	common.NextOutData
}

MemoryDedicatedRequirements describes dedicated allocation requirements of Buffer and Image resources

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryDedicatedRequirements.html

func (*MemoryDedicatedRequirements) PopulateHeader

func (o *MemoryDedicatedRequirements) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*MemoryDedicatedRequirements) PopulateOutData

func (o *MemoryDedicatedRequirements) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type MemoryRequirements2

type MemoryRequirements2 struct {
	// MemoryRequirements describes the memory requirements of the resource
	MemoryRequirements core1_0.MemoryRequirements

	common.NextOutData
}

MemoryRequirements2 specifies memory requirements

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements2.html

func (*MemoryRequirements2) PopulateHeader

func (o *MemoryRequirements2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*MemoryRequirements2) PopulateOutData

func (o *MemoryRequirements2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PeerMemoryFeatureFlags

type PeerMemoryFeatureFlags int32

PeerMemoryFeatureFlags specifies supported peer memory features

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html

func (PeerMemoryFeatureFlags) Register

func (f PeerMemoryFeatureFlags) Register(str string)

func (PeerMemoryFeatureFlags) String

func (f PeerMemoryFeatureFlags) String() string

type PhysicalDevice

type PhysicalDevice interface {
	core1_0.PhysicalDevice

	// InstanceScopedPhysicalDevice1_1 returns the InstanceScopedPhysicalDevice that represents the
	// instance-scoped portion of this PhysicalDevice object's functionality. Since the instance-scoped
	// support is always equal-to-or-greater-than the device-scoped support, this method will always
	// return a functioning InstanceScopedPhysicalDevice
	InstanceScopedPhysicalDevice1_1() InstanceScopedPhysicalDevice
}

PhysicalDevice represents the device-scoped functionality of a single complete implementation of Vulkan available to the host, of which there are a finite number.

This interface includes all commands included in Vulkan 1.1.

PhysicalDevice objects are unusual in that they exist between the Instance and (logical) Device level. As a result, PhysicalDevice is the only object that can be extended by both Instance and Device extensions. Consequently, there are some unusual cases in which a higher core version may be available for some PhysicalDevice functionality but not others. In order to represent this, physical devices are split into two objects at core1.1+, the PhysicalDevice and the "instance-scoped" PhysicalDevice.

The InstanceScopedPhysicalDevice is usually available at the same core versions as PhysicalDevice, but in rare cases, a higher core version may be available.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice.html

func PromotePhysicalDevice

func PromotePhysicalDevice(physicalDevice core1_0.PhysicalDevice) PhysicalDevice

PromotePhysicalDevice accepts a PhysicalDevice object from any core version. If provided a physical device that supports at least core 1.1 for its device-scoped functionality, it will return a core1_1.PhysicalDevice. Otherwise, it will return nil. This method will always return a core1_1.VulkanPhysicalDevice, even if it is provided a VulkanPhysicalDevice from a higher core version. Two Vulkan 1.1 compatible PhysicalDevice objects with the same PhysicalDevice.Handle will return the same interface value when passed to this method.

type PhysicalDevice16BitStorageFeatures

type PhysicalDevice16BitStorageFeatures struct {
	// StorageBuffer16BitAccess specifies whether objects in the StorageBuffer, ShaderRecordBufferKHR,
	// or PhysicalStorageBuffer storage class with the Block decoration can have 16-bit integer and
	// 16-bit floating-point members
	StorageBuffer16BitAccess bool
	// UniformAndStorageBuffer16BitAccess specifies whether objects in the Uniform storage class with
	// the Block decoration can have 16-bit integer and 16-bit floating-point members
	UniformAndStorageBuffer16BitAccess bool
	// StoragePushConstant16 specifies whether objects in the PushConstant storage class can have
	// 16-bit integer and 16-bit floating-point members
	StoragePushConstant16 bool
	// StorageInputOutput16 specifies whether objects in the Input and Output storage classes can
	// have 16-bit integer and 16-bit floating-point members
	StorageInputOutput16 bool

	common.NextOptions
	common.NextOutData
}

PhysicalDevice16BitStorageFeatures describes features supported by khr_16bit_storage

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice16BitStorageFeatures.html

func (PhysicalDevice16BitStorageFeatures) PopulateCPointer

func (o PhysicalDevice16BitStorageFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDevice16BitStorageFeatures) PopulateHeader

func (o *PhysicalDevice16BitStorageFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDevice16BitStorageFeatures) PopulateOutData

func (o *PhysicalDevice16BitStorageFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceExternalBufferInfo

type PhysicalDeviceExternalBufferInfo struct {
	// Flags describes additional parameters of the Buffer, corresponding to BufferCreateInfo.Flags
	Flags core1_0.BufferCreateFlags
	// Usage describes the intended usage of the Buffer, corresponding to BufferCreateInfo.Usage
	Usage core1_0.BufferUsageFlags
	// HandleType specifies the memory handle type that will be used with the memory
	// associated with the Buffer
	HandleType ExternalMemoryHandleTypeFlags

	common.NextOptions
}

PhysicalDeviceExternalBufferInfo specifies Buffer creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalBufferInfo.html

func (PhysicalDeviceExternalBufferInfo) PopulateCPointer

func (o PhysicalDeviceExternalBufferInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceExternalFenceInfo

type PhysicalDeviceExternalFenceInfo struct {
	// HandleType specifies an external Fence handle type for which capabilities will be
	// returned
	HandleType ExternalFenceHandleTypeFlags

	common.NextOptions
}

PhysicalDeviceExternalFenceInfo specifies Fence creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalFenceInfo.html

func (PhysicalDeviceExternalFenceInfo) PopulateCPointer

func (o PhysicalDeviceExternalFenceInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceExternalImageFormatInfo

type PhysicalDeviceExternalImageFormatInfo struct {
	// HandleType specifies the memory handle type that will be used with the memory associated
	// with the Image
	HandleType ExternalMemoryHandleTypeFlags

	common.NextOptions
}

PhysicalDeviceExternalImageFormatInfo specifies external Image creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalImageFormatInfo.html

func (PhysicalDeviceExternalImageFormatInfo) PopulateCPointer

func (o PhysicalDeviceExternalImageFormatInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceExternalSemaphoreInfo

type PhysicalDeviceExternalSemaphoreInfo struct {
	// HandleType specifies the external Semaphore handle type for which capabilities will
	// be returned
	HandleType ExternalSemaphoreHandleTypeFlags

	common.NextOptions
}

PhysicalDeviceExternalSemaphoreInfo specifies Semaphore creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html

func (PhysicalDeviceExternalSemaphoreInfo) PopulateCPointer

func (o PhysicalDeviceExternalSemaphoreInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceFeatures2

type PhysicalDeviceFeatures2 struct {
	// Features describes the fine-grained features of the Vulkan 1.0 API
	Features core1_0.PhysicalDeviceFeatures

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceFeatures2 describes the fine-grained features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures2.html

func (PhysicalDeviceFeatures2) PopulateCPointer

func (o PhysicalDeviceFeatures2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceFeatures2) PopulateHeader

func (o *PhysicalDeviceFeatures2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceFeatures2) PopulateOutData

func (o *PhysicalDeviceFeatures2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceGroupProperties

type PhysicalDeviceGroupProperties struct {
	// PhysicalDevices is a slice of PhysicalDevice objects that represent all PhysicalDevice
	// objects in the group
	PhysicalDevices []core1_0.PhysicalDevice
	// SubsetAllocation specifies whether logical Device objects created from the group support
	// allocating DeviceMemory on a subset of Device objects, via MemoryAllocateFlagsInfo
	SubsetAllocation bool

	common.NextOutData
}

PhysicalDeviceGroupProperties specifies PhysicalDevice group properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceGroupProperties.html

func (*PhysicalDeviceGroupProperties) PopulateHeader

func (o *PhysicalDeviceGroupProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceGroupProperties) PopulateOutData

func (o *PhysicalDeviceGroupProperties) PopulateOutData(cPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceIDProperties

type PhysicalDeviceIDProperties struct {
	// DeviceUUID represents a universally-unique identifier for the device
	DeviceUUID uuid.UUID
	// DriverUUID represents a universally-unique identifier for the driver build
	// in use by the device
	DriverUUID uuid.UUID
	// DeviceLUID represents a locally-unique identifier for the device
	DeviceLUID uint64
	// DeviceNodeMask identifies the node within a linked device adapter corresponding to the
	// Device
	DeviceNodeMask uint32
	// DeviceLUIDValid is true if DeviceLUID contains a valid LUID and DeviceNodeMask contains
	// a valid node mask
	DeviceLUIDValid bool

	common.NextOutData
}

PhysicalDeviceIDProperties speicifes IDs related to the PhysicalDevice

func (*PhysicalDeviceIDProperties) PopulateHeader

func (o *PhysicalDeviceIDProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceIDProperties) PopulateOutData

func (o *PhysicalDeviceIDProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceImageFormatInfo2

type PhysicalDeviceImageFormatInfo2 struct {
	// Format indicates the Image format, corresponding to ImageCreateInfo.Format
	Format core1_0.Format
	// Type indicates the ImageType, corresponding to ImageCreateInfo.ImageType
	Type core1_0.ImageType
	// Tiling indicates the Image tiling, corresponding to ImageCreateInfo.Tiling
	Tiling core1_0.ImageTiling
	// Usage indicates the intended usage of the Image, corresponding to ImageCreateInfo.Usage
	Usage core1_0.ImageUsageFlags
	// Flags indicates additional parameters of the Image, corresponding to ImageCreateInfo.Flags
	Flags core1_0.ImageCreateFlags

	common.NextOptions
}

PhysicalDeviceImageFormatInfo2 specifies Image creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceImageFormatInfo2KHR.html

func (PhysicalDeviceImageFormatInfo2) PopulateCPointer

func (o PhysicalDeviceImageFormatInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceMaintenance3Properties

type PhysicalDeviceMaintenance3Properties struct {
	// MaxPerSetDescriptors is a maximum number of descriptors in a single DescriptorSet that is
	// guaranteed to satisfy any implementation-dependent constraints on the size of a
	// DescriptorSet itself
	MaxPerSetDescriptors int
	// MaxMemoryAllocationSize is the maximum size of a memory allocation that can be created,
	// even if the is more space available in the heap
	MaxMemoryAllocationSize int

	common.NextOutData
}

PhysicalDeviceMaintenance3Properties describes DescriptorSet properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance3Properties.html

func (*PhysicalDeviceMaintenance3Properties) PopulateHeader

func (o *PhysicalDeviceMaintenance3Properties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceMaintenance3Properties) PopulateOutData

func (o *PhysicalDeviceMaintenance3Properties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceMemoryProperties2

type PhysicalDeviceMemoryProperties2 struct {
	// MemoryProperties is a structure which is populated with the same values as in
	// PhysicalDevice.MemoryProperties
	MemoryProperties core1_0.PhysicalDeviceMemoryProperties

	common.NextOutData
}

PhysicalDeviceMemoryProperties2 specifies PhysicalDevice memory properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryProperties2.html

func (*PhysicalDeviceMemoryProperties2) PopulateHeader

func (o *PhysicalDeviceMemoryProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceMemoryProperties2) PopulateOutData

func (o *PhysicalDeviceMemoryProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceMultiviewFeatures

type PhysicalDeviceMultiviewFeatures struct {
	// Multiview specifies whether the implementation supports multiview rendering within a
	// RenderPass. If this feature is not enabled, the view mask of each subpass must always
	// be zero
	Multiview bool
	// MultiviewGeometryShader specifies whether the implementation supports multiview rendering
	// within a RenderPass, with geometry shaders
	MultiviewGeometryShader bool
	// MultiviewTessellationShader specifies whether the implementation supports multiview rendering
	// within a RenderPass, with tessellation shaders
	MultiviewTessellationShader bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceMultiviewFeatures describes multiview features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewFeatures.html

func (PhysicalDeviceMultiviewFeatures) PopulateCPointer

func (o PhysicalDeviceMultiviewFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceMultiviewFeatures) PopulateHeader

func (o *PhysicalDeviceMultiviewFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceMultiviewFeatures) PopulateOutData

func (o *PhysicalDeviceMultiviewFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceMultiviewProperties

type PhysicalDeviceMultiviewProperties struct {
	// MaxMultiviewViewCount is one greater than the maximum view index that can be used in
	// a subpass
	MaxMultiviewViewCount int
	// MaxMultiviewInstanceIndex is the maximum
	MaxMultiviewInstanceIndex int

	common.NextOutData
}

PhysicalDeviceMultiviewProperties describes multiview limits that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMultiviewProperties.html

func (*PhysicalDeviceMultiviewProperties) PopulateHeader

func (o *PhysicalDeviceMultiviewProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceMultiviewProperties) PopulateOutData

func (o *PhysicalDeviceMultiviewProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDevicePointClippingProperties

type PhysicalDevicePointClippingProperties struct {
	// PointClippingBehavior specifies the point clipping behavior supported by the implementation
	PointClippingBehavior PointClippingBehavior

	common.NextOutData
}

PhysicalDevicePointClippingProperties describes the point clipping behavior supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePointClippingProperties.html

func (*PhysicalDevicePointClippingProperties) PopulateHeader

func (o *PhysicalDevicePointClippingProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDevicePointClippingProperties) PopulateOutData

func (o *PhysicalDevicePointClippingProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceProperties2

type PhysicalDeviceProperties2 struct {
	// Properties describes properties of the PhysicalDevice
	Properties core1_0.PhysicalDeviceProperties

	common.NextOutData
}

PhysicalDeviceProperties2 specifies PhysicalDevice properties

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties2.html

func (*PhysicalDeviceProperties2) PopulateHeader

func (o *PhysicalDeviceProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceProperties2) PopulateOutData

func (o *PhysicalDeviceProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceProtectedMemoryFeatures

type PhysicalDeviceProtectedMemoryFeatures struct {
	// ProtectedMemory specifies whether protected memory is supported
	ProtectedMemory bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceProtectedMemoryFeatures describes protected memory features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html

func (PhysicalDeviceProtectedMemoryFeatures) PopulateCPointer

func (o PhysicalDeviceProtectedMemoryFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceProtectedMemoryFeatures) PopulateHeader

func (o *PhysicalDeviceProtectedMemoryFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceProtectedMemoryFeatures) PopulateOutData

func (o *PhysicalDeviceProtectedMemoryFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceProtectedMemoryProperties

type PhysicalDeviceProtectedMemoryProperties struct {
	// ProtectedNoFault specifies how an implementation behaves when an application attempts
	// to write to unprotected memory in a protected Queue operation, or perform a query in a
	// protected Queue operation
	ProtectedNoFault bool

	common.NextOutData
}

PhysicalDeviceProtectedMemoryProperties describes protected memory properties that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProtectedMemoryProperties.html

func (*PhysicalDeviceProtectedMemoryProperties) PopulateHeader

func (o *PhysicalDeviceProtectedMemoryProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceProtectedMemoryProperties) PopulateOutData

func (o *PhysicalDeviceProtectedMemoryProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceSamplerYcbcrConversionFeatures

type PhysicalDeviceSamplerYcbcrConversionFeatures struct {
	// SamplerYcbcrConversion specifies whether the implementation support sampler Y'CbCr conversion.
	SamplerYcbcrConversion bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceSamplerYcbcrConversionFeatures describes Y'CbCr conversion features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html

func (PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateCPointer

func (o PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateHeader

func (o *PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateOutData

func (o *PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceShaderDrawParametersFeatures

type PhysicalDeviceShaderDrawParametersFeatures struct {
	// ShaderDrawParameters specifies whether the implementation supports the SPIR-V DrawParameters
	// capability
	ShaderDrawParameters bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceShaderDrawParametersFeatures describes shader draw parameter features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceShaderDrawParametersFeatures.html

func (PhysicalDeviceShaderDrawParametersFeatures) PopulateCPointer

func (o PhysicalDeviceShaderDrawParametersFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceShaderDrawParametersFeatures) PopulateHeader

func (o *PhysicalDeviceShaderDrawParametersFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceShaderDrawParametersFeatures) PopulateOutData

func (o *PhysicalDeviceShaderDrawParametersFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceSparseImageFormatInfo2

type PhysicalDeviceSparseImageFormatInfo2 struct {
	// Format is the Image format
	Format core1_0.Format
	// Type is the dimensionality of the Image
	Type core1_0.ImageType
	// Samples specifies the number of samples per texel
	Samples core1_0.SampleCountFlags
	// Usage describes the intended usage of the Image
	Usage core1_0.ImageUsageFlags
	// Tiling is the tiling arrangement of the texel blocks in memory
	Tiling core1_0.ImageTiling

	common.NextOptions
}

PhysicalDeviceSparseImageFormatInfo2 specifies sparse Image format inputs

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSparseImageFormatInfo2KHR.html

func (PhysicalDeviceSparseImageFormatInfo2) PopulateCPointer

func (o PhysicalDeviceSparseImageFormatInfo2) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceSubgroupProperties

type PhysicalDeviceSubgroupProperties struct {
	// SubgroupSize is the default number of invocations in each subgroup
	SubgroupSize int
	// SupportedStages describes the shader stages that group operations with subgroup scope
	// are supported in
	SupportedStages core1_0.ShaderStageFlags
	// SupportedOperations specifies the sets of group operations with subgroup scope supported
	// on this Device
	SupportedOperations SubgroupFeatureFlags
	// QuadOperationsInAllStages specifies whether quad group operations are available in all
	// stages, or are restricted to fragment and compute stages
	QuadOperationsInAllStages bool

	common.NextOutData
}

PhysicalDeviceSubgroupProperties describes subgroup support for an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSubgroupProperties.html

func (*PhysicalDeviceSubgroupProperties) PopulateHeader

func (o *PhysicalDeviceSubgroupProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceSubgroupProperties) PopulateOutData

func (o *PhysicalDeviceSubgroupProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceVariablePointersFeatures

type PhysicalDeviceVariablePointersFeatures struct {
	// VariablePointersStorageBuffer specifies whether the implementation supports the SPIR-V
	// VariablePointersStorageBuffer capability
	VariablePointersStorageBuffer bool
	// VariablePointers specifies whether the implementation supports the SPIR-V VariablePointers
	// capability
	VariablePointers bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceVariablePointersFeatures describes variable pointer features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVariablePointersFeatures.html

func (PhysicalDeviceVariablePointersFeatures) PopulateCPointer

func (o PhysicalDeviceVariablePointersFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceVariablePointersFeatures) PopulateHeader

func (o *PhysicalDeviceVariablePointersFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceVariablePointersFeatures) PopulateOutData

func (o *PhysicalDeviceVariablePointersFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type Pipeline

type Pipeline interface {
	core1_0.Pipeline
}

Pipeline represents compute, ray tracing, and graphics pipelines

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipeline.html

func PromotePipeline

func PromotePipeline(pipeline core1_0.Pipeline) Pipeline

PromotePipeline accepts a Pipeline object from any core version. If provided a pipeline that supports at least core 1.1, it will return a core1_1.Pipeline. Otherwise, it will return nil. This method will always return a core1_1.VulkanPipeline, even if it is provided a VulkanPipeline from a higher core version. Two Vulkan 1.1 compatible Pipeline objects with the same Pipeline.Handle will return the same interface value when passed to this method.

func PromotePipelineSlice

func PromotePipelineSlice(pipelines []core1_0.Pipeline) []Pipeline

PromotePipelineSlice accepts a slice of Pipeline objects from any core version. If provided a pipeline that supports at least core 1.1, it will return a core1_1.Pipeline. Otherwise, it will left out of the returned slice. This method will always return a core1_1.VulkanPipeline, even if it is provided a VulkanPipeline from a higher core version. Two Vulkan 1.1 compatible Pipeline objects with the same Pipeline.Handle will return the same interface value when passed to this method.

type PipelineCache

type PipelineCache interface {
	core1_0.PipelineCache
}

PipelineCache allows the result of Pipeline construction to be reused between Pipeline objects and between runs of an application.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCache.html

func PromotePipelineCache

func PromotePipelineCache(pipelineCache core1_0.PipelineCache) PipelineCache

PromotePipelineCache accepts a PipelineCache object from any core version. If provided a pipeline cache that supports at least core 1.1, it will return a core1_1.PipelineCache. Otherwise, it will return nil. This method will always return a core1_1.VulkanPipelineCache, even if it is provided a VulkanPipelineCache from a higher core version. Two Vulkan 1.1 compatible PipelineCache objects with the same PipelineCache.Handle will return the same interface value when passed to this method.

type PipelineLayout

type PipelineLayout interface {
	core1_0.PipelineLayout
}

PipelineLayout provides access to descriptor sets to Pipeline objects by combining zero or more descriptor sets and zero or more push constant ranges.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineLayout.html

func PromotePipelineLayout

func PromotePipelineLayout(layout core1_0.PipelineLayout) PipelineLayout

PromotePipelineLayout accepts a PipelineLayout object from any core version. If provided a pipeline layout that supports at least core 1.1, it will return a core1_1.PipelineLayout. Otherwise, it will return nil. This method will always return a core1_1.VulkanPipelineLayout, even if it is provided a VulkanPipelineLayout from a higher core version. Two Vulkan 1.1 compatible PipelineLayout objects with the same PipelineLayout.Handle will return the same interface value when passed to this method.

type PipelineTessellationDomainOriginStateCreateInfo

type PipelineTessellationDomainOriginStateCreateInfo struct {
	// DomainOrigin controls the origin of the tessellation domain space
	DomainOrigin TessellationDomainOrigin

	common.NextOptions
}

PipelineTessellationDomainOriginStateCreateInfo specifies the origin of the tessellation domain

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html

func (PipelineTessellationDomainOriginStateCreateInfo) PopulateCPointer

func (o PipelineTessellationDomainOriginStateCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PointClippingBehavior

type PointClippingBehavior int32

PointClippingBehavior specifies the point clipping behavior

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPointClippingBehavior.html

func (PointClippingBehavior) Register

func (e PointClippingBehavior) Register(str string)

func (PointClippingBehavior) String

func (e PointClippingBehavior) String() string

type ProtectedSubmitInfo

type ProtectedSubmitInfo struct {
	// ProtectedSubmit specifies whether the batch is protected
	ProtectedSubmit bool

	common.NextOptions
}

ProtectedSubmitInfo indicates whether the submission is protected

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkProtectedSubmitInfo.html

func (ProtectedSubmitInfo) PopulateCPointer

func (o ProtectedSubmitInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type QueryPool

type QueryPool interface {
	core1_0.QueryPool
}

QueryPool is a collection of a specific number of queries of a particular type.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPool.html

func PromoteQueryPool

func PromoteQueryPool(queryPool core1_0.QueryPool) QueryPool

PromoteQueryPool accepts a QueryPool object from any core version. If provided a query pool that supports at least core 1.1, it will return a core1_1.QueryPool. Otherwise, it will return nil. This method will always return a core1_1.VulkanQueryPool, even if it is provided a VulkanQueryPool from a higher core version. Two Vulkan 1.1 compatible QueryPool objects with the same QueryPool.Handle will return the same interface value when passed to this method.

type Queue

type Queue interface {
	core1_0.Queue
}

Queue represents a Device resource on which work is performed

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueue.html

func PromoteQueue

func PromoteQueue(queue core1_0.Queue) Queue

PromoteQueue accepts a Queue object from any core version. If provided a queue that supports at least core 1.1, it will return a core1_1.Queue. Otherwise, it will return nil. This method will always return a core1_1.VulkanQueue, even if it is provided a VulkanQueue from a higher core version. Two Vulkan 1.1 compatible Queue objects with the same Queue.Handle will return the same interface value when passed to this method.

type QueueFamilyProperties2

type QueueFamilyProperties2 struct {
	// QueueFamilyProperties is populated with the same values as in
	// PhysicalDevice.QueueFamilyProperties
	QueueFamilyProperties core1_0.QueueFamilyProperties

	common.NextOutData
}

QueueFamilyProperties2 provides information about a Queue family

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyProperties2KHR.html

func (*QueueFamilyProperties2) PopulateHeader

func (o *QueueFamilyProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*QueueFamilyProperties2) PopulateOutData

func (o *QueueFamilyProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type RenderPass

type RenderPass interface {
	core1_0.RenderPass
}

RenderPass represents a collection of attachments, subpasses, and dependencies between the subpasses and describes how the attachments are used over the course of the subpasses

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPass.html

func PromoteRenderPass

func PromoteRenderPass(renderPass core1_0.RenderPass) RenderPass

PromoteRenderPass accepts a RenderPass object from any core version. If provided a render pass that supports at least core 1.1, it will return a core1_1.RenderPass. Otherwise, it will return nil. This method will always return a core1_1.VulkanRenderPass, even if it is provided a VulkanRenderPass from a higher core version. Two Vulkan 1.1 compatible RenderPass objects with the same RenderPass.Handle will return the same interface value when passed to this method.

type RenderPassInputAttachmentAspectCreateInfo

type RenderPassInputAttachmentAspectCreateInfo struct {
	// AspectReferences is a slice of InputAttachmentAspectReference structures containing
	// a mask describing which aspect(s) can be accessed for a given input attachment within a
	// given subpass
	AspectReferences []InputAttachmentAspectReference

	common.NextOptions
}

RenderPassInputAttachmentAspectCreateInfo specifies, for a given subpass/input attachment pair, which aspect can be read

func (RenderPassInputAttachmentAspectCreateInfo) PopulateCPointer

func (o RenderPassInputAttachmentAspectCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type RenderPassMultiviewCreateInfo added in v0.2.0

type RenderPassMultiviewCreateInfo struct {
	// ViewMasks is a slice of view masks, where each mask is a bitfield of view indices describing
	// which views rendering is broadcast to in each subpass, when multiview is enabled
	ViewMasks []uint32
	// ViewOffsets is a slice of view offsets, one for each subpass dependency. Each view offset
	// controls which view in the source subpass the views in the destination subpass depends on.
	ViewOffsets []int
	// CorrelationMasks is a slice of view masks indicating stes of views that may be
	// more efficient to render concurrently
	CorrelationMasks []uint32

	common.NextOptions
}

RenderPassMultiviewCreateInfo contains multiview information for all subpasses

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPassMultiviewCreateInfo.html

func (RenderPassMultiviewCreateInfo) PopulateCPointer added in v0.2.0

func (o RenderPassMultiviewCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type Sampler

type Sampler interface {
	core1_0.Sampler
}

Sampler represents the state of an Image sampler, which is used by the implementation to read Image data and apply filtering and other transformations for the shader.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampler.html

func PromoteSampler

func PromoteSampler(sampler core1_0.Sampler) Sampler

PromoteSampler accepts a Sampler object from any core version. If provided a sampler that supports at least core 1.1, it will return a core1_1.Sampler. Otherwise, it will return nil. This method will always return a core1_1.VulkanSampler, even if it is provided a VulkanSampler from a higher core version. Two Vulkan 1.1 compatible Sampler objects with the same Sampler.Handle will return the same interface value when passed to this method.

type SamplerYcbcrConversion

type SamplerYcbcrConversion interface {
	// Handle is the internal Vulkan object handle for this SamplerYcbcrConversion
	Handle() driver.VkSamplerYcbcrConversion
	// DeviceHandle is the internal Vulkan object handle for the Device this SamplerYcbcrConversion
	// belongs to
	DeviceHandle() driver.VkDevice
	// Driver is the Vulkan wrapper driver used by this SamplerYcbcrConversion
	Driver() driver.Driver
	// APIVersion is the maximum Vulkan API version supported by this SamplerYcbcrConversion. If it is at
	// least Vulkan 1.2, core1_2.PromoteSamplerYcbcrConversion can be used to promote this to a
	// core1_2.SamplerYcbcrConversion, etc.
	APIVersion() common.APIVersion

	// Destroy destroys the SamplerYcbcrConversion object and the underlying structures. **Warning** after
	// destruction, this object will continue to exist, but the Vulkan object handle that backs it will
	// be invalid. Do not call further methods on this object.
	//
	// callbacks - Controls host memory deallocation
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkDestroySamplerYcbcrConversion.html
	Destroy(allocator *driver.AllocationCallbacks)
}

SamplerYcbcrConversion is an opaque representation of a device-specific sampler YCbCr conversion description.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversion.html

type SamplerYcbcrConversionCreateInfo

type SamplerYcbcrConversionCreateInfo struct {
	// Format is the format of the Image from which color information will be retrieved
	Format core1_0.Format
	// YcbcrModel describes the color matrix for conversion between color models
	YcbcrModel SamplerYcbcrModelConversion
	// YcbcrRange describes whether the encoded values have headroom and foot room, or whether
	// the encoding uses the full numerical range
	YcbcrRange SamplerYcbcrRange
	// Components applies a swizzle based on core1_0.ComponentSwizzle enums prior to range
	// expansion and color model conversion
	Components core1_0.ComponentMapping
	// XChromaOffset describes the sample location associated with downsampled chroma components
	// in the x dimension
	XChromaOffset ChromaLocation
	// YChromaOffset describes the sample location associated with downsampled chroma components
	// in the y dimension
	YChromaOffset ChromaLocation
	// ChromaFilter is the filter for chroma reconstruction
	ChromaFilter core1_0.Filter
	// ForceExplicitReconstruction can be used to ensure that reconstruction is done explicitly,
	// if supported
	ForceExplicitReconstruction bool

	common.NextOptions
}

SamplerYcbcrConversionCreateInfo specifies the parameters of the newly-created conversion

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionCreateInfo.html

func (SamplerYcbcrConversionCreateInfo) PopulateCPointer

func (o SamplerYcbcrConversionCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type SamplerYcbcrConversionImageFormatProperties

type SamplerYcbcrConversionImageFormatProperties struct {
	// CombinedImageSamplerDescriptorCount is the number of combined Image sampler descriptors that
	// the implementation uses to access the format
	CombinedImageSamplerDescriptorCount int

	common.NextOutData
}

SamplerYcbcrConversionImageFormatProperties specifies combined Image sampler descriptor count for multi-planar images

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionImageFormatProperties.html

func (*SamplerYcbcrConversionImageFormatProperties) PopulateHeader

func (o *SamplerYcbcrConversionImageFormatProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*SamplerYcbcrConversionImageFormatProperties) PopulateOutData

func (o *SamplerYcbcrConversionImageFormatProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type SamplerYcbcrConversionInfo

type SamplerYcbcrConversionInfo struct {
	// Conversion is a SamplerYcbcrConversion object created from the Device
	Conversion SamplerYcbcrConversion

	common.NextOptions
}

SamplerYcbcrConversionInfo specifies a Y'CbCr conversion to a Sampler or ImageView

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionInfo.html

func (SamplerYcbcrConversionInfo) PopulateCPointer

func (o SamplerYcbcrConversionInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type SamplerYcbcrModelConversion

type SamplerYcbcrModelConversion int32

SamplerYcbcrModelConversion is the color model component of a color space

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html

func (SamplerYcbcrModelConversion) Register

func (e SamplerYcbcrModelConversion) Register(str string)

func (SamplerYcbcrModelConversion) String

type SamplerYcbcrRange

type SamplerYcbcrRange int32

SamplerYcbcrRange is a range of encoded values in a color space

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html

func (SamplerYcbcrRange) Register

func (e SamplerYcbcrRange) Register(str string)

func (SamplerYcbcrRange) String

func (e SamplerYcbcrRange) String() string

type Semaphore

type Semaphore interface {
	core1_0.Semaphore
}

Semaphore is a synchronization primitive that can be used to insert a dependency between Queue operations or between a Queue operation and the host.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphore.html

func PromoteSemaphore

func PromoteSemaphore(semaphore core1_0.Semaphore) Semaphore

PromoteSemaphore accepts a Semaphore object from any core version. If provided a semaphore that supports at least core 1.1, it will return a core1_1.Semaphore. Otherwise, it will return nil. This method will always return a core1_1.VulkanSemaphore, even if it is provided a VulkanSemaphore from a higher core version. Two Vulkan 1.1 compatible Semaphore objects with the same Semaphore.Handle will return the same interface value when passed to this method.

type SemaphoreImportFlags

type SemaphoreImportFlags int32

SemaphoreImportFlags specifies additional parameters of Semaphore payload import

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreImportFlagBits.html

func (SemaphoreImportFlags) Register

func (f SemaphoreImportFlags) Register(str string)

func (SemaphoreImportFlags) String

func (f SemaphoreImportFlags) String() string

type ShaderModule

type ShaderModule interface {
	core1_0.ShaderModule
}

ShaderModule objects contain shader code and one or more entry points.

This interface includes all commands included in Vulkan 1.1.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderModule.html

func PromoteShaderModule

func PromoteShaderModule(shaderModule core1_0.ShaderModule) ShaderModule

PromoteShaderModule accepts a ShaderModule object from any core version. If provided a shader module that supports at least core 1.1, it will return a core1_1.ShaderModule. Otherwise, it will return nil. This method will always return a core1_1.VulkanShaderModule, even if it is provided a VulkanShaderModule from a higher core version. Two Vulkan 1.1 compatible ShaderModule objects with the same ShaderModule.Handle will return the same interface value when passed to this method.

type SparseImageFormatProperties2

type SparseImageFormatProperties2 struct {
	// Properties is populated with the same values as in PhysicalDevice.SparseImageFormatProperties
	Properties core1_0.SparseImageFormatProperties
	common.NextOutData
}

SparseImageFormatProperties2 specifies sparse Image format properties

func (*SparseImageFormatProperties2) PopulateHeader

func (o *SparseImageFormatProperties2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*SparseImageFormatProperties2) PopulateOutData

func (o *SparseImageFormatProperties2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type SparseImageMemoryRequirements2

type SparseImageMemoryRequirements2 struct {
	// MemoryRequirements describes the memory requirements of the sparse image
	MemoryRequirements core1_0.SparseImageMemoryRequirements

	common.NextOutData
}

SparseImageMemoryRequirements2 has no documentation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryRequirements2.html

func (*SparseImageMemoryRequirements2) PopulateHeader

func (o *SparseImageMemoryRequirements2) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*SparseImageMemoryRequirements2) PopulateOutData

func (o *SparseImageMemoryRequirements2) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type SubgroupFeatureFlags

type SubgroupFeatureFlags int32

SubgroupFeatureFlags describes what group operations are supported with subgroup scope

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html

func (SubgroupFeatureFlags) Register

func (f SubgroupFeatureFlags) Register(str string)

func (SubgroupFeatureFlags) String

func (f SubgroupFeatureFlags) String() string

type TessellationDomainOrigin

type TessellationDomainOrigin int32

TessellationDomainOrigin describes tessellation domain origin

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTessellationDomainOrigin.html

func (TessellationDomainOrigin) Register

func (e TessellationDomainOrigin) Register(str string)

func (TessellationDomainOrigin) String

func (e TessellationDomainOrigin) String() string

type VulkanBuffer

type VulkanBuffer struct {
	core1_0.Buffer
}

VulkanBuffer is an implementation of the Buffer interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanBufferView

type VulkanBufferView struct {
	core1_0.BufferView
}

VulkanBufferView is an implementation of the BufferView interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanCommandBuffer

type VulkanCommandBuffer struct {
	core1_0.CommandBuffer

	DeviceDriver        driver.Driver
	CommandBufferHandle driver.VkCommandBuffer

	CommandCounter *core1_0.CommandCounter
}

VulkanCommandBuffer is an implementation of the CommandBuffer interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanCommandBuffer) CmdDispatchBase

func (c *VulkanCommandBuffer) CmdDispatchBase(baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ int)

func (*VulkanCommandBuffer) CmdSetDeviceMask

func (c *VulkanCommandBuffer) CmdSetDeviceMask(deviceMask uint32)

type VulkanCommandPool

type VulkanCommandPool struct {
	core1_0.CommandPool

	DeviceDriver      driver.Driver
	CommandPoolHandle driver.VkCommandPool
	Device            driver.VkDevice
}

VulkanCommandPool is an implementation of the CommandPool interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanCommandPool) TrimCommandPool

func (p *VulkanCommandPool) TrimCommandPool(flags CommandPoolTrimFlags)

type VulkanDescriptorPool

type VulkanDescriptorPool struct {
	core1_0.DescriptorPool
}

VulkanDescriptorPool is an implementation of the DescriptorPool interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanDescriptorSet

type VulkanDescriptorSet struct {
	core1_0.DescriptorSet
}

VulkanDescriptorSet is an implementation of the DescriptorSet interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanDescriptorSetLayout

type VulkanDescriptorSetLayout struct {
	core1_0.DescriptorSetLayout
}

VulkanDescriptorSetLayout is an implementation of the DescriptorSetLayout interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanDescriptorUpdateTemplate

type VulkanDescriptorUpdateTemplate struct {
	DeviceDriver             driver.Driver
	Device                   driver.VkDevice
	DescriptorTemplateHandle driver.VkDescriptorUpdateTemplate

	MaximumAPIVersion common.APIVersion
}

VulkanDescriptorUpdateTemplate is an implementation of the DescriptorUpdateTemplate interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func CreateDescriptorUpdateTemplate

func CreateDescriptorUpdateTemplate(coreDriver driver.Driver, device driver.VkDevice, handle driver.VkDescriptorUpdateTemplate, version common.APIVersion) *VulkanDescriptorUpdateTemplate

func (*VulkanDescriptorUpdateTemplate) APIVersion

func (*VulkanDescriptorUpdateTemplate) Destroy

func (*VulkanDescriptorUpdateTemplate) DeviceHandle

func (*VulkanDescriptorUpdateTemplate) Driver

func (*VulkanDescriptorUpdateTemplate) Handle

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle(descriptorSet core1_0.DescriptorSet, data driver.VulkanHandle)

type VulkanDevice

type VulkanDevice struct {
	core1_0.Device

	DeviceDriver      driver.Driver
	DeviceHandle      driver.VkDevice
	MaximumAPIVersion common.APIVersion
}

VulkanDevice is an implementation of the Device interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanDevice) BindBufferMemory2

func (d *VulkanDevice) BindBufferMemory2(o []BindBufferMemoryInfo) (common.VkResult, error)

func (*VulkanDevice) BindImageMemory2

func (d *VulkanDevice) BindImageMemory2(o []BindImageMemoryInfo) (common.VkResult, error)

func (*VulkanDevice) BufferMemoryRequirements2

func (d *VulkanDevice) BufferMemoryRequirements2(o BufferMemoryRequirementsInfo2, out *MemoryRequirements2) error

func (*VulkanDevice) DescriptorSetLayoutSupport

func (d *VulkanDevice) DescriptorSetLayoutSupport(o core1_0.DescriptorSetLayoutCreateInfo, outData *DescriptorSetLayoutSupport) error

func (*VulkanDevice) DeviceGroupPeerMemoryFeatures

func (d *VulkanDevice) DeviceGroupPeerMemoryFeatures(heapIndex, localDeviceIndex, remoteDeviceIndex int) PeerMemoryFeatureFlags

func (*VulkanDevice) GetQueue2

func (d *VulkanDevice) GetQueue2(o DeviceQueueInfo2) (core1_0.Queue, error)

func (*VulkanDevice) ImageMemoryRequirements2

func (d *VulkanDevice) ImageMemoryRequirements2(o ImageMemoryRequirementsInfo2, out *MemoryRequirements2) error

func (*VulkanDevice) ImageSparseMemoryRequirements2

func (d *VulkanDevice) ImageSparseMemoryRequirements2(o ImageSparseMemoryRequirementsInfo2, outDataFactory func() *SparseImageMemoryRequirements2) ([]*SparseImageMemoryRequirements2, error)

type VulkanDeviceMemory

type VulkanDeviceMemory struct {
	core1_0.DeviceMemory
}

VulkanDeviceMemory is an implementation of the DeviceMemory interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanEvent

type VulkanEvent struct {
	core1_0.Event
}

VulkanEvent is an implementation of the Event interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanFence

type VulkanFence struct {
	core1_0.Fence
}

VulkanFence is an implementation of the Fence interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanFramebuffer

type VulkanFramebuffer struct {
	core1_0.Framebuffer
}

VulkanFramebuffer is an implementation of the Framebuffer interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanImage

type VulkanImage struct {
	core1_0.Image
}

VulkanImage is an implementation of the Image interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanImageView

type VulkanImageView struct {
	core1_0.ImageView
}

VulkanImageView is an implementation of the ImageView interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanInstance

type VulkanInstance struct {
	core1_0.Instance

	InstanceDriver driver.Driver
	InstanceHandle driver.VkInstance

	MaximumVersion common.APIVersion
}

VulkanInstance is an implementation of the Instance interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanInstance) EnumeratePhysicalDeviceGroups

func (i *VulkanInstance) EnumeratePhysicalDeviceGroups(outDataFactory func() *PhysicalDeviceGroupProperties) ([]*PhysicalDeviceGroupProperties, common.VkResult, error)

type VulkanInstanceScopedPhysicalDevice

type VulkanInstanceScopedPhysicalDevice struct {
	core1_0.PhysicalDevice

	InstanceDriver       driver.Driver
	PhysicalDeviceHandle driver.VkPhysicalDevice
}

VulkanInstanceScopedPhysicalDevice is an implementation of the InstanceScopedPhysicalDevice interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanInstanceScopedPhysicalDevice) ExternalBufferProperties

func (*VulkanInstanceScopedPhysicalDevice) ExternalFenceProperties

func (*VulkanInstanceScopedPhysicalDevice) ExternalSemaphoreProperties

func (*VulkanInstanceScopedPhysicalDevice) Features2

func (*VulkanInstanceScopedPhysicalDevice) FormatProperties2

func (p *VulkanInstanceScopedPhysicalDevice) FormatProperties2(format core1_0.Format, out *FormatProperties2) error

func (*VulkanInstanceScopedPhysicalDevice) ImageFormatProperties2

func (*VulkanInstanceScopedPhysicalDevice) MemoryProperties2

func (*VulkanInstanceScopedPhysicalDevice) Properties2

func (*VulkanInstanceScopedPhysicalDevice) QueueFamilyProperties2

func (p *VulkanInstanceScopedPhysicalDevice) QueueFamilyProperties2(outDataFactory func() *QueueFamilyProperties2) ([]*QueueFamilyProperties2, error)

func (*VulkanInstanceScopedPhysicalDevice) SparseImageFormatProperties2

type VulkanPhysicalDevice

type VulkanPhysicalDevice struct {
	core1_0.PhysicalDevice

	InstanceScoped1_1 InstanceScopedPhysicalDevice
}

VulkanPhysicalDevice is an implementation of the PhysicalDevice interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanPhysicalDevice) InstanceScopedPhysicalDevice1_1

func (p *VulkanPhysicalDevice) InstanceScopedPhysicalDevice1_1() InstanceScopedPhysicalDevice

type VulkanPipeline

type VulkanPipeline struct {
	core1_0.Pipeline
}

VulkanPipeline is an implementation of the Pipeline interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanPipelineCache

type VulkanPipelineCache struct {
	core1_0.PipelineCache
}

VulkanPipelineCache is an implementation of the PipelineCache interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanPipelineLayout

type VulkanPipelineLayout struct {
	core1_0.PipelineLayout
}

VulkanPipelineLayout is an implementation of the PipelineLayout interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanQueryPool

type VulkanQueryPool struct {
	core1_0.QueryPool
}

VulkanQueryPool is an implementation of the QueryPool interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanQueue

type VulkanQueue struct {
	core1_0.Queue
}

VulkanQueue is an implementation of the Queue interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanRenderPass

type VulkanRenderPass struct {
	core1_0.RenderPass
}

VulkanRenderPass is an implementation of the RenderPass interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanSampler

type VulkanSampler struct {
	core1_0.Sampler
}

VulkanSampler is an implementation of the Sampler interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanSamplerYcbcrConversion

type VulkanSamplerYcbcrConversion struct {
	DeviceDriver driver.Driver
	Device       driver.VkDevice
	YcbcrHandle  driver.VkSamplerYcbcrConversion

	MaximumAPIVersion common.APIVersion
}

VulkanSamplerYcbcrConversion is an implementation of the SamplerYcbcrConversion interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func CreateSamplerYcbcrConversion

func CreateSamplerYcbcrConversion(coreDriver driver.Driver, device driver.VkDevice, handle driver.VkSamplerYcbcrConversion, version common.APIVersion) *VulkanSamplerYcbcrConversion

func (*VulkanSamplerYcbcrConversion) APIVersion

func (*VulkanSamplerYcbcrConversion) Destroy

func (*VulkanSamplerYcbcrConversion) DeviceHandle

func (y *VulkanSamplerYcbcrConversion) DeviceHandle() driver.VkDevice

func (*VulkanSamplerYcbcrConversion) Driver

func (*VulkanSamplerYcbcrConversion) Handle

type VulkanSemaphore

type VulkanSemaphore struct {
	core1_0.Semaphore
}

VulkanSemaphore is an implementation of the Semaphore interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

type VulkanShaderModule

type VulkanShaderModule struct {
	core1_0.ShaderModule
}

VulkanShaderModule is an implementation of the ShaderModule interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL