core1_2

package
v2.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2023 License: MIT Imports: 11 Imported by: 7

Documentation

Index

Constants

View Source
const (
	// DescriptorPoolCreateUpdateAfterBind specifies that DescriptorSet objects allocated from this
	// pool can include bindings with DescriptorBindingUpdateAfterBind
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateFlagBits.html
	DescriptorPoolCreateUpdateAfterBind core1_0.DescriptorPoolCreateFlags = C.VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT

	// VkErrorFragmentation indicates a DescriptorPool creation has failed due to fragmentation
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html
	VkErrorFragmentation common.VkResult = C.VK_ERROR_FRAGMENTATION
)
View Source
const (
	// BufferCreateDeviceAddressCaptureReplay specifies that the Buffer object's address can
	// be saved and reused on a subsequent run (e.g. for trace capture and replay)
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html
	BufferCreateDeviceAddressCaptureReplay core1_0.BufferCreateFlags = C.VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT

	// BufferUsageShaderDeviceAddress specifies that the Buffer can be used to retrieve a
	// Buffer device address via Device.GetBufferDeviceAddress and use that address to
	// access the Buffer object's memory from a shader
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html
	BufferUsageShaderDeviceAddress core1_0.BufferUsageFlags = C.VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT

	// MemoryAllocateDeviceAddress specifies that the memory can be attached to a Buffer object
	// created with BufferUsageShaderDeviceAddress set in Usage, and that the DeviceMemory object
	// can be used to retrieve an opaque address via Device.GetDeviceMemoryOpaqueCaptureAddress
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html
	MemoryAllocateDeviceAddress core1_1.MemoryAllocateFlags = C.VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
	// MemoryAllocateDeviceAddressCaptureReplay specifies that the memory's address can be saved
	// and reused on a subsequent run (e.g. for trace capture and replay)
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html
	MemoryAllocateDeviceAddressCaptureReplay core1_1.MemoryAllocateFlags = C.VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT

	// VkErrorInvalidOpaqueCaptureAddress indicates a Buffer creation or memory allocation failed
	// because the requested address is not available
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html
	VkErrorInvalidOpaqueCaptureAddress common.VkResult = C.VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
)
View Source
const (
	// ImageLayoutDepthAttachmentOptimal specifies a layout for the depth aspect of a depth/stencil
	// format Image allowing read and write access as a depth attachment
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html
	ImageLayoutDepthAttachmentOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
	// ImageLayoutDepthReadOnlyOptimal specifies a layout for the depth aspect of a depth/stencil
	// format Image allowing read-only access 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
	ImageLayoutDepthReadOnlyOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
	// ImageLayoutStencilAttachmentOptimal specifies a layout for the stencil aspect of a
	// depth/stencil format Image allowing read and write access as a stencil attachment
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html
	ImageLayoutStencilAttachmentOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
	// ImageLayoutStencilReadOnlyOptimal specifies a layout for the stencil aspect of a depth/stencil
	// format Image allowing read-only access 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
	ImageLayoutStencilReadOnlyOptimal core1_0.ImageLayout = C.VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
)
View Source
const (
	// MaxDriverInfoSize is the length of a PhysicalDevice driver information string
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_MAX_DRIVER_INFO_SIZE.html
	MaxDriverInfoSize int = C.VK_MAX_DRIVER_INFO_SIZE
	// MaxDriverNameSize is the maximum length of a PhysicalDevice driver name string
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_MAX_DRIVER_NAME_SIZE.html
	MaxDriverNameSize int = C.VK_MAX_DRIVER_NAME_SIZE

	// DriverIDAmdOpenSource indicates open-source AMD drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDAmdOpenSource DriverID = C.VK_DRIVER_ID_AMD_OPEN_SOURCE
	// DriverIDAmdProprietary indicates proprietary AMD drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDAmdProprietary DriverID = C.VK_DRIVER_ID_AMD_PROPRIETARY
	// DriverIDArmProprietary indicates proprietary ARM drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDArmProprietary DriverID = C.VK_DRIVER_ID_ARM_PROPRIETARY
	// DriverIDBroadcomProprietary indicates proprietary Broadcom drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDBroadcomProprietary DriverID = C.VK_DRIVER_ID_BROADCOM_PROPRIETARY
	// DriverIDGgpProprietary indicates proprietary GGP drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDGgpProprietary DriverID = C.VK_DRIVER_ID_GGP_PROPRIETARY
	// DriverIDGoogleSwiftshader indicates Google Swiftshader drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDGoogleSwiftshader DriverID = C.VK_DRIVER_ID_GOOGLE_SWIFTSHADER
	// DriverIDImaginationProprietary indicates proprietary Imagination drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDImaginationProprietary DriverID = C.VK_DRIVER_ID_IMAGINATION_PROPRIETARY
	// DriverIDIntelOpenSourceMesa indicates open-source Mesa drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDIntelOpenSourceMesa DriverID = C.VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA
	// DriverIDIntelProprietaryWindows indicates proprietary Intel drivers for Windows
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDIntelProprietaryWindows DriverID = C.VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
	// DriverIDMesaRadV indicates Mesa Rad-V drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDMesaRadV DriverID = C.VK_DRIVER_ID_MESA_RADV
	// DriverIDNvidiaProprietary indicates proprietary NVidia drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDNvidiaProprietary DriverID = C.VK_DRIVER_ID_NVIDIA_PROPRIETARY
	// DriverIDQualcommProprietary indicates proprietary Qualcomm drivers
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDriverId.html
	DriverIDQualcommProprietary DriverID = C.VK_DRIVER_ID_QUALCOMM_PROPRIETARY

	// ResolveModeAverage indicates that the result of the resolve operation is the average
	// of the sample values
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html
	ResolveModeAverage ResolveModeFlags = C.VK_RESOLVE_MODE_AVERAGE_BIT
	// ResolveModeMax indicates that the result of the resolve operation is the maximum of the
	// sample values
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html
	ResolveModeMax ResolveModeFlags = C.VK_RESOLVE_MODE_MAX_BIT
	// ResolveModeMin indicates that the result of the resolve operation is the minimum of the
	// sample values
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html
	ResolveModeMin ResolveModeFlags = C.VK_RESOLVE_MODE_MIN_BIT
	// ResolveModeNone indicates that no resolve operation is performed
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html
	ResolveModeNone ResolveModeFlags = C.VK_RESOLVE_MODE_NONE
	// ResolveModeSampleZero indicates that the result of the resolve operation is equal to
	// the value of sample 0
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html
	ResolveModeSampleZero ResolveModeFlags = C.VK_RESOLVE_MODE_SAMPLE_ZERO_BIT

	// ShaderFloatControlsIndependence32BitOnly specifies that shader float controls for 32-bit
	// floating point can be set independently
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderFloatControlsIndependence.html
	ShaderFloatControlsIndependence32BitOnly ShaderFloatControlsIndependence = C.VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
	// ShaderFloatControlsIndependenceAll specifies that shader float controls for all
	// bit widths can be set independently
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderFloatControlsIndependence.html
	ShaderFloatControlsIndependenceAll ShaderFloatControlsIndependence = C.VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
	// ShaderFloatControlsIndependenceNone specifies that shader float controls for all bit widths
	// must be set identically
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderFloatControlsIndependence.html
	ShaderFloatControlsIndependenceNone ShaderFloatControlsIndependence = C.VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
)
View Source
const (
	// SemaphoreTypeBinary specifies a binary Semaphore type that has a boolean payload
	// indicating whether the Semaphore is currently signaled or unsignaled
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreType.html
	SemaphoreTypeBinary SemaphoreType = C.VK_SEMAPHORE_TYPE_BINARY
	// SemaphoreTypeTimeline specifies a timeline Semaphore type that has a strictly
	// increasing 64-bit unsigned integer payload indicating whether the Semaphore is signaled
	// with respect to a particular reference value
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreType.html
	SemaphoreTypeTimeline SemaphoreType = C.VK_SEMAPHORE_TYPE_TIMELINE

	// SemaphoreWaitAny specifies that the Semaphore wait condition is that at least one of
	// the Semaphore objects in SemaphoreWaitInfo.Semaphores has reached the value specified
	// by the corresponding element of SemaphoreWaitInfo.Values
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreWaitFlagBits.html
	SemaphoreWaitAny SemaphoreWaitFlags = C.VK_SEMAPHORE_WAIT_ANY_BIT
)
View Source
const (
	// FramebufferCreateImageless specifies that ImageView objects are not specified, and only
	// attachment compatibility information will be provided via a FramebufferAttachmentImageInfo
	// structure
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateFlagBits.html
	FramebufferCreateImageless core1_0.FramebufferCreateFlags = C.VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
)
View Source
const (
	// SamplerAddressModeMirrorClampToEdge specifies that the mirror clamp to edge wrap mode will
	// be used
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html
	SamplerAddressModeMirrorClampToEdge core1_0.SamplerAddressMode = C.VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AttachmentDescription2

type AttachmentDescription2 struct {
	// Flags specifies additional properties of the attachment
	Flags core1_0.AttachmentDescriptionFlags
	// Format specifies the format of the Image that will be used for the attachment
	Format core1_0.Format
	// Samples specifies the number of samples of the Image
	Samples core1_0.SampleCountFlags
	// LoadOp specifies how the contents of color and depth components of the attachment
	// are treated at the beginning of the subpass where it is first used
	LoadOp core1_0.AttachmentLoadOp
	// StoreOp specifies how the contents of color and depth components of the attachment
	// are treated at the end of the subpass where it is last used
	StoreOp core1_0.AttachmentStoreOp
	// StencilLoadOp specifies how the contents of stencil components of the attachment
	// are treated at the beginning of the subpass where it is first used
	StencilLoadOp core1_0.AttachmentLoadOp
	// StencilStoreOp specifies how the contents of the stencil components of the attachment
	// are treated at the end of the last subpass where it is used
	StencilStoreOp core1_0.AttachmentStoreOp
	// InitialLayout is the layout of the attachment Image subresource will be in when
	// a RenderPass instance begins
	InitialLayout core1_0.ImageLayout
	// FinalLayout is the layout the attachment Image subresource will be transitioned to
	// when a RenderPass instance ends
	FinalLayout core1_0.ImageLayout

	common.NextOptions
}

AttachmentDescription2 specifies an attachment description

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

func (AttachmentDescription2) PopulateCPointer

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

type AttachmentDescriptionStencilLayout

type AttachmentDescriptionStencilLayout struct {
	// StencilInitialLayout is the layout of the stencil aspect of the attachment Image
	// subresource will be in when a RenderPass instance begins
	StencilInitialLayout core1_0.ImageLayout
	// StencilFinalLayout is the layout the stencil aspect of the attachment Image subresource
	// will be transitioned to when a RenderPass instance ends
	StencilFinalLayout core1_0.ImageLayout

	common.NextOptions
}

AttachmentDescriptionStencilLayout specifies an attachment description

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

func (AttachmentDescriptionStencilLayout) PopulateCPointer

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

type AttachmentReference2

type AttachmentReference2 struct {
	// Attachment identifies an attachment at the corresponding index in
	// RenderPassCreateInfo2.Attachments, or core1_0.AttachmentUnused
	Attachment int
	// Layout specifies the layout the attachment uses during the subpass
	Layout core1_0.ImageLayout
	// AspectMask is a mask of which aspect(s) can be accessed within the specified
	// subpass as an input attachment
	AspectMask core1_0.ImageAspectFlags

	common.NextOptions
}

AttachmentReference2 specifies an attachment reference

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

func (AttachmentReference2) PopulateCPointer

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

type AttachmentReferenceStencilLayout

type AttachmentReferenceStencilLayout struct {
	// StencilLayout specifies the layout the stencil aspect of the attachment uses during hte subpass
	StencilLayout core1_0.ImageLayout

	common.NextOptions
}

AttachmentReferenceStencilLayout specifies an attachment description

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

func (AttachmentReferenceStencilLayout) PopulateCPointer

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

type Buffer

type Buffer interface {
	core1_1.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.2.

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.2, it will return a core1_2.Buffer. Otherwise, it will return nil. This method will always return a core1_2.VulkanBuffer, even if it is provided a VulkanBuffer from a higher core version. Two Vulkan 1.2 compatible Buffer objects with the same Buffer.Handle will return the same interface value when passed to this method.

type BufferDeviceAddressInfo

type BufferDeviceAddressInfo struct {
	// Buffer specifies the Buffer whose address is being queried
	Buffer core1_0.Buffer

	common.NextOptions
}

BufferDeviceAddressInfo specifies the Buffer to query an address for

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

func (BufferDeviceAddressInfo) PopulateCPointer

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

func (BufferDeviceAddressInfo) PopulateOutData

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

type BufferOpaqueCaptureAddressCreateInfo

type BufferOpaqueCaptureAddressCreateInfo struct {
	// OpaqueCaptureAddress is the opaque capture address requested for the Buffer
	OpaqueCaptureAddress uint64

	common.NextOptions
}

BufferOpaqueCaptureAddressCreateInfo requests a specific address for a Buffer

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

func (BufferOpaqueCaptureAddressCreateInfo) PopulateCPointer

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

type BufferView

type BufferView interface {
	core1_1.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.2.

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.2, it will return a core1_2.BufferView. Otherwise, it will return nil. This method will always return a core1_2.VulkanBufferView, even if it is provided a VulkanBufferView from a higher core version. Two Vulkan 1.2 compatible BufferView objects with the same BufferView.Handle will return the same interface value when passed to this method.

type CommandBuffer

type CommandBuffer interface {
	core1_1.CommandBuffer

	// CmdBeginRenderPass2 begins a new RenderPass
	//
	// renderPassBegin - Specifies the RenderPass to begin an instance of, and the Framebuffer the instance
	// uses
	//
	// subpassBegin - Contains information about the subpass which is about to begin rendering
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBeginRenderPass2.html
	CmdBeginRenderPass2(renderPassBegin core1_0.RenderPassBeginInfo, subpassBegin SubpassBeginInfo) error
	// CmdEndRenderPass2 ends the current RenderPass
	//
	// subpassEnd - Contains information about how the previous subpass will be ended
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdEndRenderPass2.html
	CmdEndRenderPass2(subpassEnd SubpassEndInfo) error
	// CmdNextSubpass2 transitions to the next subpass of a RenderPass
	//
	// subpassBegin - Contains information about the subpass which is about to begin rendering.
	//
	// subpassEnd - Contains information about how the previous subpass will be ended.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdNextSubpass2.html
	CmdNextSubpass2(subpassBegin SubpassBeginInfo, subpassEnd SubpassEndInfo) error
	// CmdDrawIndexedIndirectCount draws with indirect parameters, indexed vertices, and draw count
	//
	// buffer - The Buffer containing draw parameters
	//
	// offset - The byte offset into buffer where parameters begin
	//
	// countBuffer - The Buffer containing the draw count
	//
	// countBufferOffset - The byte offset into countBuffer where the draw count begins
	//
	// maxDrawCount - Specifies the maximum number of draws that will be executed.
	//
	// stride - The byte stride between successive sets of draw parameters
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDrawIndexedIndirectCount.html
	CmdDrawIndexedIndirectCount(buffer core1_0.Buffer, offset uint64, countBuffer core1_0.Buffer, countBufferOffset uint64, maxDrawCount, stride int)
	// CmdDrawIndirectCount draws primitives with indirect parameters and draw count
	//
	// buffer - The Buffer containing draw parameters
	//
	// offset - The byte offset into buffer where parameters begin
	//
	// countBuffer - The Buffer containing the draw count
	//
	// countBufferOffset - The byte offset into countBuffer where the draw count begins
	//
	// maxDrawCount - Specifies the maximum number of draws that will be executed.
	//
	// stride - The byte stride between successive sets of draw parameters
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDrawIndirectCount.html
	CmdDrawIndirectCount(buffer core1_0.Buffer, offset uint64, countBuffer core1_0.Buffer, countBufferOffset uint64, maxDrawCount, stride int)
}

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.2.

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.2, it will return a core1_2.CommandBuffer. Otherwise, it will return nil. This method will always return a core1_2.VulkanCommandBuffer, even if it is provided a VulkanCommandBuffer from a higher core version. Two Vulkan 1.2 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

type CommandPool

type CommandPool interface {
	core1_1.CommandPool
}

CommandPool is an opaque object that CommandBuffer memory is allocated from

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.CommandPool. Otherwise, it will return nil. This method will always return a core1_2.VulkanCommandPool, even if it is provided a VulkanCommandPool from a higher core version. Two Vulkan 1.2 compatible CommandPool objects with the same CommandPool.Handle will return the same interface value when passed to this method.

type ConformanceVersion

type ConformanceVersion struct {
	// Major is the major version number of the conformance test suite
	Major uint8
	// Minor is the minor version number of the conformance test suite
	Minor uint8
	// Subminor is the subminor version number of the conformance test suite
	Subminor uint8
	// Patch is the patch version number of the conformance test suite
	Patch uint8
}

ConformanceVersion contains the comformance test suite version the implementation is compliant with

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

func (ConformanceVersion) IsAtLeast

func (v ConformanceVersion) IsAtLeast(other ConformanceVersion) bool

IsAtLeast returns true if the other ConformanceVersion is at least as high as this one

type DescriptorBindingFlags

type DescriptorBindingFlags int32

DescriptorBindingFlags specifies DescriptorSetLayout binding properties

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

const (
	// DescriptorBindingPartiallyBound indicates that descriptors in this binding that are
	// not dynamically used need not contain valid descriptors at the time the descriptors
	// are consumed
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html
	DescriptorBindingPartiallyBound DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
	// DescriptorBindingUpdateAfterBind indicates that if descriptors in this binding are updated
	// between when the DescriptorSet is bound in a CommandBuffer and when that CommandBuffer is
	// submitted to a Queue, then the submission will use the most recently-set descriptors
	// for this binding and the updates do not invalidate the CommandBuffer
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html
	DescriptorBindingUpdateAfterBind DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
	// DescriptorBindingUpdateUnusedWhilePending indicates that descriptors in this binding can be
	// updated after a CommandBuffer has bound this DescriptorSet, or while a CommandBuffer that
	// uses this DescriptorSet is pending execution, as long as the descriptors that are updated
	// are not used by those CommandBuffer objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html
	DescriptorBindingUpdateUnusedWhilePending DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
	// DescriptorBindingVariableDescriptorCount indicates that this is a variable-sized descriptor
	// binding whose size will be specified when a DescriptorSet is allocated using this layout
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html
	DescriptorBindingVariableDescriptorCount DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT

	// DescriptorSetLayoutCreateUpdateAfterBindPool specifies that DescriptorSet objects using this
	// layout must be allocated from a DescriptorPool created with DescriptorPoolCreateUpdateAfterBind
	// set
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutCreateFlagBits.html
	DescriptorSetLayoutCreateUpdateAfterBindPool core1_0.DescriptorSetLayoutCreateFlags = C.VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
)

func (DescriptorBindingFlags) Register

func (f DescriptorBindingFlags) Register(str string)

func (DescriptorBindingFlags) String

func (f DescriptorBindingFlags) String() string

type DescriptorPool

type DescriptorPool interface {
	core1_1.DescriptorPool
}

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

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.DescriptorPool. Otherwise, it will return nil. This method will always return a core1_2.VulkanDescriptorPool, even if it is provided a VulkanDescriptorPool from a higher core version. Two Vulkan 1.2 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_1.DescriptorSet
}

DescriptorSet is an opaque object allocated from a DescriptorPool

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.DescriptorSet. Otherwise, it will return nil. This method will always return a core1_2.VulkanDescriptorSet, even if it is provided a VulkanDescriptorSet from a higher core version. Two Vulkan 1.2 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

type DescriptorSetLayout

type DescriptorSetLayout interface {
	core1_1.DescriptorSetLayout
}

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

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.DescriptorSetLayout. Otherwise, it will return nil. This method will always return a core1_2.VulkanDescriptorSetLayout, even if it is provided a VulkanDescriptorSetLayout from a higher core version. Two Vulkan 1.2 compatible DescriptorSetLayout objects with the same DescriptorSetLayout.Handle will return the same interface value when passed to this method.

func PromoteDescriptorUpdateTemplate

func PromoteDescriptorUpdateTemplate(template core1_1.DescriptorUpdateTemplate) DescriptorSetLayout

PromoteDescriptorUpdateTemplate accepts a DescriptorUpdateTemplate object from any core version. If provided a descriptor update template that supports at least core 1.2, it will return a core1_2.DescriptorUpdateTemplate. Otherwise, it will return nil. This method will always return a core1_2.VulkanDescriptorUpdateTemplate, even if it is provided a VulkanDescriptorUpdateTemplate from a higher core version. Two Vulkan 1.2 compatible DescriptorUpdateTemplate objects with the same DescriptorUpdateTemplate.Handle will return the same interface value when passed to this method.

type DescriptorSetLayoutBindingFlagsCreateInfo

type DescriptorSetLayoutBindingFlagsCreateInfo struct {
	// BindingFlags is a slice of DescriptorBindingFlags, one for each DescriptorSetLayout binding
	BindingFlags []DescriptorBindingFlags

	common.NextOptions
}

DescriptorSetLayoutBindingFlagsCreateInfo specifies parameters of a newly-created DescriptorSetLayout

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

func (DescriptorSetLayoutBindingFlagsCreateInfo) PopulateCPointer

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

type DescriptorSetVariableDescriptorCountAllocateInfo

type DescriptorSetVariableDescriptorCountAllocateInfo struct {
	// DescriptorCounts is a slice of descriptor counts, with each member specifying the number
	// of descriptors in a variable-sized descriptor binding in the corresponding DescriptorSet
	// being allocated
	DescriptorCounts []int

	common.NextOptions
}

DescriptorSetVariableDescriptorCountAllocateInfo specifies additional allocation parameters for DescriptorSet objects

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

func (DescriptorSetVariableDescriptorCountAllocateInfo) PopulateCPointer

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

type DescriptorSetVariableDescriptorCountLayoutSupport

type DescriptorSetVariableDescriptorCountLayoutSupport struct {
	// MaxVariableDescriptorCount indicates the maximum number of descriptors supported in the
	// highest numbered binding of the layout, if that binding is variable-sized
	MaxVariableDescriptorCount int

	common.NextOutData
}

DescriptorSetVariableDescriptorCountLayoutSupport returns information about whether a DescriptorSetLayout can be supported

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

func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateHeader

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

func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateOutData

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

type DescriptorUpdateTemplate

type DescriptorUpdateTemplate interface {
	core1_1.DescriptorUpdateTemplate
}

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

This interface includes all commands included in Vulkan 1.2.

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

type Device

type Device interface {
	core1_1.Device

	// CreateRenderPass2 creates a new RenderPass object
	//
	// allocator - Controls host memory allocation behavior
	//
	// options - Describes the parameters of the RenderPass
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateRenderPass2.html
	CreateRenderPass2(allocator *driver.AllocationCallbacks, options RenderPassCreateInfo2) (core1_0.RenderPass, common.VkResult, error)

	// GetBufferDeviceAddress queries an address of a Buffer
	//
	// o - Specifies the Buffer to retrieve an address for
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferDeviceAddress.html
	GetBufferDeviceAddress(o BufferDeviceAddressInfo) (uint64, error)
	// GetBufferOpaqueCaptureAddress queries an opaque capture address of a Buffer
	//
	// o - Specifies the Buffer to retrieve an address for
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferOpaqueCaptureAddress.html
	GetBufferOpaqueCaptureAddress(o BufferDeviceAddressInfo) (uint64, error)
	// GetDeviceMemoryOpaqueCaptureAddress queries an opaque capture address of a DeviceMemory object
	//
	// o - Specifies the DeviceMemory object to retrieve an address for
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html
	GetDeviceMemoryOpaqueCaptureAddress(o DeviceMemoryOpaqueCaptureAddressInfo) (uint64, error)

	// SignalSemaphore signals a timeline Semaphore on the host
	//
	// o - Contains information about the signal operation
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSignalSemaphore.html
	SignalSemaphore(o SemaphoreSignalInfo) (common.VkResult, error)
	// WaitSemaphores waits for timeline Semaphore objects on the host
	//
	// timeout - How long to wait before returning VKTimeout. May be common.NoTimeout to wait indefinitely.
	// The timeout is adjusted to the closest value allowed by the implementation timeout accuracy,
	// which may be substantially longer than the requested timeout.
	//
	// o - Contains information about the wait condition
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkWaitSemaphores.html
	WaitSemaphores(timeout time.Duration, o SemaphoreWaitInfo) (common.VkResult, error)
}

Device represents a logical device on the host

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.Device. Otherwise, it will return nil. This method will always return a core1_2.VulkanDevice, even if it is provided a VulkanDevice from a higher core version. Two Vulkan 1.2 compatible Device objects with the same Device.Handle will return the same interface value when passed to this method.

type DeviceMemory

type DeviceMemory interface {
	core1_1.DeviceMemory
}

DeviceMemory represents a block of memory on the device

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.DeviceMemory. Otherwise, it will return nil. This method will always return a core1_2.VulkanDeviceMemory, even if it is provided a VulkanDeviceMemory from a higher core version. Two Vulkan 1.2 compatible DeviceMemory objects with the same DeviceMemory.Handle will return the same interface value when passed to this method.

type DeviceMemoryOpaqueCaptureAddressInfo

type DeviceMemoryOpaqueCaptureAddressInfo struct {
	// Memory specifies the DeviceMemory whose address is being queried
	Memory core1_0.DeviceMemory

	common.NextOptions
}

DeviceMemoryOpaqueCaptureAddressInfo specifies the DeviceMemory object to query an address for

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

func (DeviceMemoryOpaqueCaptureAddressInfo) PopulateCPointer

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

type DriverID

type DriverID int32

DriverID specifies khronos driver id's

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

func (DriverID) Register

func (e DriverID) Register(str string)

func (DriverID) String

func (e DriverID) String() string

type Event

type Event interface {
	core1_1.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.2.

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.2, it will return a core1_2.Event. Otherwise, it will return nil. This method will always return a core1_2.VulkanEvent, even if it is provided a VulkanEvent from a higher core version. Two Vulkan 1.2 compatible Event objects with the same Event.Handle will return the same interface value when passed to this method.

type Fence

type Fence interface {
	core1_1.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.2.

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.2, it will return a core1_2.Fence. Otherwise, it will return nil. This method will always return a core1_2.VulkanFence, even if it is provided a VulkanFence from a higher core version. Two Vulkan 1.2 compatible Fence objects with the same Fence.Handle will return the same interface value when passed to this method.

type Framebuffer

type Framebuffer interface {
	core1_1.Framebuffer
}

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

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.Framebuffer. Otherwise, it will return nil. This method will always return a core1_2.VulkanFramebuffer, even if it is provided a VulkanFramebuffer from a higher core version. Two Vulkan 1.2 compatible Framebuffer objects with the same Framebuffer.Handle will return the same interface value when passed to this method.

type FramebufferAttachmentImageInfo

type FramebufferAttachmentImageInfo struct {
	// Flags matches the value of ImageCreateInfo.Flags used to create an Image that will be used
	// with this Framebuffer
	Flags core1_0.ImageCreateFlags
	// Usage matches the value of ImageCreateInfo.Usage used to create an Image used with this
	// Framebuffer
	Usage core1_0.ImageUsageFlags
	// Width is the width of the ImageView used for rendering
	Width int
	// Height is the height of ImageView used for rendering
	Height int
	// LayerCount is the number of array layers of the ImageView used for rendering
	LayerCount int

	// ViewFormats is a slice of core1_0.Format values specifying all of the formats which
	// can be used when creating views of the Image, matching the value of
	// ImageFormatListCreateInfo.ViewFormats used to create an Image used with this
	// Framebuffer
	ViewFormats []core1_0.Format

	common.NextOptions
}

FramebufferAttachmentImageInfo specifies parameters of an Image that will be used with a Framebuffer

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

func (FramebufferAttachmentImageInfo) PopulateCPointer

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

type FramebufferAttachmentsCreateInfo

type FramebufferAttachmentsCreateInfo struct {
	// AttachmentImageInfos is a slice of FramebufferAttachmentInfo structures, each structure
	// describing a number of parameters of the corresponding attachment in a RenderPass instance
	AttachmentImageInfos []FramebufferAttachmentImageInfo

	common.NextOptions
}

FramebufferAttachmentsCreateInfo specifies parameters of Image objects that will be used with a Framebuffer

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

func (FramebufferAttachmentsCreateInfo) PopulateCPointer

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

type Image

type Image interface {
	core1_1.Image
}

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

This interface includes all commands included in Vulkan 1.2.

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 an image that supports at least core 1.2, it will return a core1_2.Image. Otherwise, it will return nil. This method will always return a core1_2.VulkanImage, even if it is provided a VulkanImage from a higher core version. Two Vulkan 1.2 compatible Image objects with the same Image.Handle will return the same interface value when passed to this method.

type ImageFormatListCreateInfo

type ImageFormatListCreateInfo struct {
	// ViewFormats is a slice of core1_0.Format values specifying all formats which can be used
	// when creating views of this Image
	ViewFormats []core1_0.Format

	common.NextOptions
}

ImageFormatListCreateInfo specifies that an Image can be used with a particular set of formats

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

func (ImageFormatListCreateInfo) PopulateCPointer

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

type ImageStencilUsageCreateInfo

type ImageStencilUsageCreateInfo struct {
	// StencilUsage describes the intended usage of the stencil aspect of the Image
	StencilUsage core1_0.ImageUsageFlags

	common.NextOptions
}

ImageStencilUsageCreateInfo specifies separate usage flags for the stencil aspect of a depth-stencil Image

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

func (ImageStencilUsageCreateInfo) PopulateCPointer

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

type ImageView

type ImageView interface {
	core1_1.ImageView
}

ImageView represents contiguous ranges of Image subresources and contains additional metadata

This interface includes all commands included in Vulkan 1.2.

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 an image view that supports at least core 1.2, it will return a core1_2.ImageView. Otherwise, it will return nil. This method will always return a core1_2.VulkanImageView, even if it is provided a VulkanImageView from a higher core version. Two Vulkan 1.2 compatible ImageView objects with the same ImageView.Handle will return the same interface value when passed to this method.

type Instance

type Instance interface {
	core1_1.Instance
}

Instance stores per-application state for Vulkan

This interface includes all commands included in Vulkan 1.2.

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 an Instance object from any core version. If provided an instance that supports at least core 1.2, it will return a core1_2.Instance. Otherwise, it will return nil. This method will always return a core1_2.VulkanInstance, even if it is provided a VulkanInstance from a higher core version. Two Vulkan 1.2 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_1.InstanceScopedPhysicalDevice
}

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.2.

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 InstanceScopedPhysicalDevice object from any core version. If provided an instance-scoped physical device that supports at least core 1.2 for its instance-scoped functionality, it will return a core1_2.InstanceScopedPhysicalDevice. Otherwise, it will return nil. This method will always return a core1_2.VulkanInstanceScopedPhysicalDevice, even if it is provided a VulkanInstanceScopedPhysicalDevice from a higher core version. Two Vulkan 1.2 compatible InstanceScopedPhysicalDevice objects with the same InstanceScopedPhysicalDevice.Handle will return the same interface value when passed to this method.

type MemoryOpaqueCaptureAddressAllocateInfo

type MemoryOpaqueCaptureAddressAllocateInfo struct {
	// OpaqueCaptureAddress is the opaque capture address requested for the memory allocation
	OpaqueCaptureAddress uint64

	common.NextOptions
}

MemoryOpaqueCaptureAddressAllocateInfo requests a specific address for a memory allocation

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

func (MemoryOpaqueCaptureAddressAllocateInfo) PopulateCPointer

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

type PhysicalDevice

type PhysicalDevice interface {
	core1_1.PhysicalDevice

	// InstanceScopedPhysicalDevice1_2 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_2() 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.2.

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.2 for its device-scoped functionality, it will return a core1_2.PhysicalDevice. Otherwise, it will return nil. This method will always return a core1_2.VulkanPhysicalDevice, even if it is provided a VulkanPhysicalDevice from a higher core version. Two Vulkan 1.2 compatible PhysicalDevice objects with the same PhysicalDevice.Handle will return the same interface value when passed to this method.

type PhysicalDevice8BitStorageFeatures

type PhysicalDevice8BitStorageFeatures struct {
	// StorageBuffer8BitAccess indicates whether objects in the StorageBuffer, ShaderRecordBufferKHR,
	// or PhysicalStorageBuffer storage class with the Block decoration can have 8-bit integer members
	StorageBuffer8BitAccess bool
	// UniformAndStorageBuffer8BitAccess indicates whether objects in the Uniform storage class
	// with the Block decoration can have 8-bit integer members
	UniformAndStorageBuffer8BitAccess bool
	// StoragePushConstant8 indicates whether objects in the PushConstant storage class can have 8-bit
	// integer members
	StoragePushConstant8 bool

	common.NextOptions
	common.NextOutData
}

PhysicalDevice8BitStorageFeatures describes features supported by khr_8bit_storage

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

func (PhysicalDevice8BitStorageFeatures) PopulateCPointer

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

func (*PhysicalDevice8BitStorageFeatures) PopulateHeader

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

func (*PhysicalDevice8BitStorageFeatures) PopulateOutData

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

type PhysicalDeviceBufferDeviceAddressFeatures

type PhysicalDeviceBufferDeviceAddressFeatures struct {
	// BufferDeviceAddress indicates that the implementation supports accessing Buffer memory
	// in shaders as storage Buffer objects via an address queried from Device.GetBufferDeviceAddress
	BufferDeviceAddress bool
	// BufferDeviceAddressCaptureReplay indicates that the implementation supports saving and
	// reusing Buffer and Device addresses, e.g. for trace capture and replay
	BufferDeviceAddressCaptureReplay bool
	// BufferDeviceAddressMultiDevice indicates that the implementation supports the
	// BufferDeviceAddress, RayTracingPipeline, and RayQuery features for logical Device objects
	// created with multiple PhysicalDevice objects
	BufferDeviceAddressMultiDevice bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceBufferDeviceAddressFeatures describes Buffer address features that can be supported by an implementation

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

func (PhysicalDeviceBufferDeviceAddressFeatures) PopulateCPointer

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

func (*PhysicalDeviceBufferDeviceAddressFeatures) PopulateHeader

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

func (*PhysicalDeviceBufferDeviceAddressFeatures) PopulateOutData

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

type PhysicalDeviceDepthStencilResolveProperties

type PhysicalDeviceDepthStencilResolveProperties struct {
	// SupportedDepthResolveModes indicates the set of supported depth resolve modes
	SupportedDepthResolveModes ResolveModeFlags
	// SupportedStencilResolveModes indicates the set of supported stencil resolve modes
	SupportedStencilResolveModes ResolveModeFlags
	// IndependentResolveNone is true if the implementation supports setting the depth
	// and stencil resolve modes to different values when one of those modes is ResolveModeNone
	IndependentResolveNone bool
	// IndependentResolve is true if the implementation supports all combinations of the supported
	// depth and stencil resolve modes, including setting either depth or stencil resolve mode to
	// ResolveModeNone
	IndependentResolve bool

	common.NextOutData
}

PhysicalDeviceDepthStencilResolveProperties describes depth/stencil resolve properties that can be supported by an implementation

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

func (*PhysicalDeviceDepthStencilResolveProperties) PopulateHeader

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

func (*PhysicalDeviceDepthStencilResolveProperties) PopulateOutData

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

type PhysicalDeviceDescriptorIndexingFeatures

type PhysicalDeviceDescriptorIndexingFeatures struct {
	// ShaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments
	// can be indexed by dynamically uniform integer expressions in shader code
	ShaderInputAttachmentArrayDynamicIndexing bool
	// ShaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel
	// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
	ShaderUniformTexelBufferArrayDynamicIndexing bool
	// ShaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel
	// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
	ShaderStorageTexelBufferArrayDynamicIndexing bool
	// ShaderUniformBufferArrayNonUniformIndexing indicates whether arrays of uniform Buffer objects
	// can be indexed by non-uniform integer expressions in shader code.
	ShaderUniformBufferArrayNonUniformIndexing bool
	// ShaderSampledImageArrayNonUniformIndexing indicates whether arrays of Sampler objects or sampled
	// Image objects can be indexed by non-uniform integer expressions in shader code
	ShaderSampledImageArrayNonUniformIndexing bool
	// ShaderStorageBufferArrayNonUniformIndexing indicates whether arrays of storage buffers
	// can be indexed by non-uniform integer expressions in shader code
	ShaderStorageBufferArrayNonUniformIndexing bool
	// ShaderStorageImageArrayNonUniformIndexing indicates whether arrays of storage Image objects can
	// be indexed by non-uniform integer expressions in shader code
	ShaderStorageImageArrayNonUniformIndexing bool
	// ShaderInputAttachmentArrayNonUniformIndexing indicates whether arrays of input attachments
	// can be indexed by non-uniform integer expressions in shader code
	ShaderInputAttachmentArrayNonUniformIndexing bool
	// ShaderUniformTexelBufferArrayNonUniformIndexing indicates whether arrays of uniform texel
	// Buffer objects can be indexed by non-uniform integer expressions in shader code
	ShaderUniformTexelBufferArrayNonUniformIndexing bool
	// ShaderStorageTexelBufferArrayNonUniformIndexing indicates whether arrays of storage texel
	// Buffer objects can be indexed by non-uniform integer expressions in shader code
	ShaderStorageTexelBufferArrayNonUniformIndexing bool
	// DescriptorBindingUniformBufferUpdateAfterBind indicates whether the implementation supports
	// updating uniform Buffer descriptors after a set is bound
	DescriptorBindingUniformBufferUpdateAfterBind bool
	// DescriptorBindingSampledImageUpdateAfterBind indicates whether the implementation supports
	// updating sampled Image descriptors after a set is bound
	DescriptorBindingSampledImageUpdateAfterBind bool
	// DescriptorBindingStorageImageUpdateAfterBind indicates whether the implementation supports
	// updating storage Image descriptors after a set is bound
	DescriptorBindingStorageImageUpdateAfterBind bool
	// DescriptorBindingStorageBufferUpdateAfterBind indicates whether the implementation
	// supports updating storage Buffer descriptors after a set is bound
	DescriptorBindingStorageBufferUpdateAfterBind bool
	// DescriptorBindingUniformTexelBufferUpdateAfterBind indicates whether the implementation
	// supports updating uniform texel Buffer descriptors after a set is bound
	DescriptorBindingUniformTexelBufferUpdateAfterBind bool
	// DescriptorBindingStorageTexelBufferUpdateAfterBind indicates whether the impelementation
	// supports updating storage texel Buffer descriptors after a set is bound
	DescriptorBindingStorageTexelBufferUpdateAfterBind bool
	// DescriptorBindingUpdateUnusedWhilePending indicates whether the implementation supports
	// updating descriptors while the set is in use
	DescriptorBindingUpdateUnusedWhilePending bool
	// DescriptorBindingPartiallyBound indicates whether the implementation supports statically
	// using a DescriptorSet binding in which some descriptors are not valid
	DescriptorBindingPartiallyBound bool
	// DescriptorBindingVariableDescriptorCount indicates whether the implementation supports
	// DescriptorSet object with a variable-sized last binding
	DescriptorBindingVariableDescriptorCount bool
	// RuntimeDescriptorArray indicates whether the implementation supports the SPIR-V
	// RuntimeDescriptorArray capability
	RuntimeDescriptorArray bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceDescriptorIndexingFeatures describes descriptor indexing features that can be supported by an implementation

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

func (PhysicalDeviceDescriptorIndexingFeatures) PopulateCPointer

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

func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateHeader

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

func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateOutData

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

type PhysicalDeviceDescriptorIndexingProperties

type PhysicalDeviceDescriptorIndexingProperties struct {
	// MaxUpdateAfterBindDescriptorsInAllPools is the maximum number of descriptors (summed over
	// all descriptor types) that can be created across all pools that are created with
	// DescriptorPoolCreateUpdateAfterBind
	MaxUpdateAfterBindDescriptorsInAllPools int
	// ShaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether
	// uniform Buffer descriptors natively support nonuniform indexing
	ShaderUniformBufferArrayNonUniformIndexingNative bool
	// ShaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether
	// Sampler and Image descriptors natively support nonuniform indexing
	ShaderSampledImageArrayNonUniformIndexingNative bool
	// ShaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether
	// storage Buffer descriptors natively support nonuniform indexing
	ShaderStorageBufferArrayNonUniformIndexingNative bool
	// ShaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage
	// Image descriptors natively support nonuniform indexing
	ShaderStorageImageArrayNonUniformIndexingNative bool
	// ShaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether
	// input attachment descriptors natively support nonuniform indexing
	ShaderInputAttachmentArrayNonUniformIndexingNative bool
	// RobustBufferAccessUpdateAfterBind is a boolean value indicating whether RobustBufferAccess
	// can be enabled in a Device simultaneously with DescriptorBindingUniformBufferUpdateAfterBind,
	// DescriptorBindingStorageBufferUpdateAfterBind,
	// DescriptorBindingUniformTexelBufferUpdateAfterBind, and/or
	// DescriptorBindingStorageTexelBufferUpdateAfterBind
	RobustBufferAccessUpdateAfterBind bool
	// QuadDivergentImplicitLod is a boolean value indicating whether implicit level of detail
	// calculations for Image operations have well-defined results when the Image and/or Sampler
	// objects used for the instruction are not uniform within a quad
	QuadDivergentImplicitLod bool

	// MaxPerStageDescriptorUpdateAfterBindSamplers is similar to <axPerStageDescriptorSamplers
	// but counts descriptors from descriptor sets created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindSamplers int
	// MaxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to
	// MaxPerStageDescriptorUniformBuffers but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindUniformBuffers int
	// MaxPerStageDescriptorUpdateAfterBindStorageBuffers is similar to
	// MaxPerStageDescriptorStorageBuffers but counts descriptors from DescriptorSet created with
	// or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindStorageBuffers int
	// MaxPerStageDescriptorUpdateAfterBindSampledImages is similar to
	// MaxPerStageDescriptorSampledImages but counts descriptors from DescriptorSets created with
	// or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindSampledImages int
	// MaxPerStageDescriptorUpdateAfterBindStorageImages is similar to
	// MaxPerStageDescriptorStorageImages but counts descriptors from DescriptorSet objects created
	// with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindStorageImages int
	// MaxPerStageDescriptorUpdateAfterBindInputAttachments  is similar to
	// MaxPerStageDescriptorInputAttachments but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindInputAttachments int
	// MaxPerStageUpdateAfterBindResources is similar to MaxPerStageResources but counts
	// descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageUpdateAfterBindResources int

	// MaxDescriptorSetUpdateAfterBindSamplers is similar to MaxDescriptorSetSamplers but counts
	// descriptors from DescriptorSet created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindSamplers int
	// MaxDescriptorSetUpdateAfterBindUniformBuffers is similar to MaxDescriptorSetUniformBuffers
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindUniformBuffers int
	// MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to
	// MaxDescriptorSetUniformBuffersDynamic but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic int
	// MaxDescriptorSetUpdateAfterBindStorageBuffers is similar to MaxDescriptorSetStorageBuffers
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageBuffers int
	// MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to
	// MaxDescriptorSetStorageBuffersDynamic but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic int
	// MaxDescriptorSetUpdateAfterBindSampledImages is similar to MaxDescriptorSetSampledImages
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindSampledImages int
	// MaxDescriptorSetUpdateAfterBindStorageImages is similar to MaxDescriptorSetStorageImages
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageImages int
	// MaxDescriptorSetUpdateAfterBindInputAttachments is similar to MaxDescriptorSetInputAttachments
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindInputAttachments int

	common.NextOutData
}

PhysicalDeviceDescriptorIndexingProperties describes descriptor indexing properties that can be supported by an implementation

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

func (*PhysicalDeviceDescriptorIndexingProperties) PopulateHeader

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

func (*PhysicalDeviceDescriptorIndexingProperties) PopulateOutData

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

type PhysicalDeviceDriverProperties

type PhysicalDeviceDriverProperties struct {
	// DriverID is a unique identifier for the driver of the PhysicalDevice
	DriverID DriverID
	// DriverName is a string which is the name of the driver
	DriverName string
	// DriverInfo is a string with additional information about the driver
	DriverInfo string
	// ConformanceVersion is the version of the Vulkan conformance test thsi driver is conformant
	// against
	ConformanceVersion ConformanceVersion

	common.NextOutData
}

PhysicalDeviceDriverProperties contains driver identification information

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

func (*PhysicalDeviceDriverProperties) PopulateHeader

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

func (*PhysicalDeviceDriverProperties) PopulateOutData

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

type PhysicalDeviceFloatControlsProperties

type PhysicalDeviceFloatControlsProperties struct {
	// DenormBehaviorIndependence indicates whether, and how, denorm behavior can be
	// set independently for different bit widths
	DenormBehaviorIndependence ShaderFloatControlsIndependence
	// RoundingModeIndependence indicates whether, and how, rounding modes can be set indpendently
	// for different bit widths
	RoundingModeIndependence ShaderFloatControlsIndependence

	// ShaderSignedZeroInfNanPreserveFloat16 indicates whether the sign of zero, NaN, and +/- infinity
	// can be preserved in 16-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat16 bool
	// ShaderSignedZeroInfNanPreserveFloat32 indicates whether the sign of zero, NaN, and +/- infinity
	// can be preserved in 32-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat32 bool
	// ShaderSignedZeroInfNanPreserveFloat64 indicates whether the sign of zero, NaN, and +/- infinity
	// can be preserved in 64-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat64 bool
	// ShaderDenormPreserveFloat16 indicates whether denormals can be preserved in 16-bit floating-point
	// computations
	ShaderDenormPreserveFloat16 bool
	// ShaderDenormPreserveFloat32 indicates whether denormals can be preserved in 32-bit floating-point
	// computations
	ShaderDenormPreserveFloat32 bool
	// ShaderDenormPreserveFloat64 indicates whether denormals can be preserved in 64-bit floating-point
	// computations
	ShaderDenormPreserveFloat64 bool
	// ShaderDenormFlushToZeroFloat16 indicates whether denormals can be flushed to zero in 16-bit
	// floating-point computations
	ShaderDenormFlushToZeroFloat16 bool
	// ShaderDenormFlushToZeroFloat32 indicates whether denormals can be flushed to zero in 32-bit
	// floating-point computations
	ShaderDenormFlushToZeroFloat32 bool
	// ShaderDenormFlushToZeroFloat64 indicates whether denormals can be flushed to zero in 64-bit
	// floating-point computations
	ShaderDenormFlushToZeroFloat64 bool
	// ShaderRoundingModeRTEFloat16 indicates whether an implementation supports the round-to-nearest-even
	// rounding mode for 16-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTEFloat16 bool
	// ShaderRoundingModeRTEFloat32 indicates whether an implementation supports the round-to-nearest-even
	// rounding mode for 32-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTEFloat32 bool
	// ShaderRoundingModeRTEFloat64 indicates whether an implementation supports the round-to-nearest-even
	// rounding mode for 64-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTEFloat64 bool
	// ShaderRoundingModeRTZFloat16 indicates whether an implementation supports the round-toward-zero
	// rounding mode for 16-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTZFloat16 bool
	// ShaderRoundingModeRTZFloat32 indicates whether an implementation supports the round-toward-zero
	// rounding mode for 32-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTZFloat32 bool
	// ShaderRoundingModeRTZFloat64 indicates whether an implementation supports the round-toward-zero
	// rounding mode for 64-bit floating-point arithmetic and conversion instructions
	ShaderRoundingModeRTZFloat64 bool

	common.NextOutData
}

PhysicalDeviceFloatControlsProperties describes properties supported by khr_shader_float_controls

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

func (*PhysicalDeviceFloatControlsProperties) PopulateHeader

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

func (*PhysicalDeviceFloatControlsProperties) PopulateOutData

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

type PhysicalDeviceHostQueryResetFeatures

type PhysicalDeviceHostQueryResetFeatures struct {
	// HostQueryReset indicates that hte implementation supports resetting queries from the host
	// with QueryPool.Reset
	HostQueryReset bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceHostQueryResetFeatures describes whether queries can be reset from the host

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

func (PhysicalDeviceHostQueryResetFeatures) PopulateCPointer

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

func (*PhysicalDeviceHostQueryResetFeatures) PopulateHeader

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

func (*PhysicalDeviceHostQueryResetFeatures) PopulateOutData

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

type PhysicalDeviceImagelessFramebufferFeatures

type PhysicalDeviceImagelessFramebufferFeatures struct {
	// ImagelessFramebuffer indicates that the implementation supports specifying the ImageView for
	// attachments at RenderPass begin time via RenderPassAttachmentBeginInfo
	ImagelessFramebuffer bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceImagelessFramebufferFeatures indicates supports for imageless Framebuffer objects

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

func (PhysicalDeviceImagelessFramebufferFeatures) PopulateCPointer

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

func (*PhysicalDeviceImagelessFramebufferFeatures) PopulateHeader

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

func (*PhysicalDeviceImagelessFramebufferFeatures) PopulateOutData

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

type PhysicalDeviceSamplerFilterMinmaxProperties

type PhysicalDeviceSamplerFilterMinmaxProperties struct {
	// FilterMinmaxSingleComponentFormats indicates whether a minimum set of required formats
	// support min/max filtering
	FilterMinmaxSingleComponentFormats bool
	// FilterMinmaxImageComponentMapping indicates whether the implementation support non-identity
	// component mapping of the Image when doing min/max filtering
	FilterMinmaxImageComponentMapping bool

	common.NextOutData
}

PhysicalDeviceSamplerFilterMinmaxProperties describes Sampler filter minmax limits that can be supported by an implementation

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

func (*PhysicalDeviceSamplerFilterMinmaxProperties) PopulateHeader

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

func (*PhysicalDeviceSamplerFilterMinmaxProperties) PopulateOutData

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

type PhysicalDeviceScalarBlockLayoutFeatures

type PhysicalDeviceScalarBlockLayoutFeatures struct {
	// ScalarBlockLayout indicates that the implementation supports the layout of resource blocks
	// in shaders using scalar alignment
	ScalarBlockLayout bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceScalarBlockLayoutFeatures indicates support for scalar block layouts

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

func (PhysicalDeviceScalarBlockLayoutFeatures) PopulateCPointer

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

func (*PhysicalDeviceScalarBlockLayoutFeatures) PopulateHeader

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

func (*PhysicalDeviceScalarBlockLayoutFeatures) PopulateOutData

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

type PhysicalDeviceSeparateDepthStencilLayoutsFeatures

type PhysicalDeviceSeparateDepthStencilLayoutsFeatures struct {
	// SeparateDepthStencilLayouts indicates whether the implementation supports an
	// ImageMemoryBarrier for a depth/stencil Image with only one of core1_0.ImageAspectDepth or
	// core1_0.ImageAspectStencil, and whether ImageLayoutDepthAttachmentOptimal,
	// ImageLayoutDepthReadOnlyOptimal, ImageLayoutStencilAttachmentOptimal, or
	// ImageLayoutStencilReadOnlyOptimal can be used
	SeparateDepthStencilLayouts bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceSeparateDepthStencilLayoutsFeatures describes whether the implementation can do depth and stencil Image barriers separately

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

func (PhysicalDeviceSeparateDepthStencilLayoutsFeatures) PopulateCPointer

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

func (*PhysicalDeviceSeparateDepthStencilLayoutsFeatures) PopulateHeader

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

func (*PhysicalDeviceSeparateDepthStencilLayoutsFeatures) PopulateOutData

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

type PhysicalDeviceShaderAtomicInt64Features

type PhysicalDeviceShaderAtomicInt64Features struct {
	// ShaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed
	// integer atomic operations on Buffer objects
	ShaderBufferInt64Atomics bool
	// ShaderSharedInt64Atomics indicates whether shaders can 64-bit unsigned and signed integer
	// atomic operations on shared memory
	ShaderSharedInt64Atomics bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceShaderAtomicInt64Features describes features supported by khr_shader_atomic_int64

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

func (PhysicalDeviceShaderAtomicInt64Features) PopulateCPointer

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

func (*PhysicalDeviceShaderAtomicInt64Features) PopulateHeader

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

func (*PhysicalDeviceShaderAtomicInt64Features) PopulateOutData

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

type PhysicalDeviceShaderFloat16Int8Features

type PhysicalDeviceShaderFloat16Int8Features struct {
	// ShaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code
	ShaderFloat16 bool
	// ShaderInt8 indicates whether 8-bit integer (signed and unsigned) are supported in
	// shader code
	ShaderInt8 bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceShaderFloat16Int8Features describes features supported by khr_shader_float16_int8

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

func (PhysicalDeviceShaderFloat16Int8Features) PopulateCPointer

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

func (*PhysicalDeviceShaderFloat16Int8Features) PopulateHeader

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

func (*PhysicalDeviceShaderFloat16Int8Features) PopulateOutData

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

type PhysicalDeviceShaderSubgroupExtendedTypesFeatures

type PhysicalDeviceShaderSubgroupExtendedTypesFeatures struct {
	// ShaderSubgroupExtendedTypes specifies whether subgroup operations can use 8-bit integer,
	// 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types
	// in group operations with subgroup scope, if the implementation supports the types
	ShaderSubgroupExtendedTypes bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceShaderSubgroupExtendedTypesFeatures describes the extended types subgroups support feature for an implementation

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

func (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) PopulateCPointer

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

func (*PhysicalDeviceShaderSubgroupExtendedTypesFeatures) PopulateHeader

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

func (*PhysicalDeviceShaderSubgroupExtendedTypesFeatures) PopulateOutData

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

type PhysicalDeviceTimelineSemaphoreFeatures

type PhysicalDeviceTimelineSemaphoreFeatures struct {
	// TimelineSemaphore indicates whether Semaphore objects created with a SemaphoreType
	// of SemaphoreTypeTimeline are supported
	TimelineSemaphore bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceTimelineSemaphoreFeatures describes timeline Semaphore features that can be supported by an implementation

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

func (PhysicalDeviceTimelineSemaphoreFeatures) PopulateCPointer

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

func (*PhysicalDeviceTimelineSemaphoreFeatures) PopulateHeader

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

func (*PhysicalDeviceTimelineSemaphoreFeatures) PopulateOutData

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

type PhysicalDeviceTimelineSemaphoreProperties

type PhysicalDeviceTimelineSemaphoreProperties struct {
	// MaxTimelineSemaphoreValueDifference indicates the maximum difference allowed by the
	// implementation between the current value of a timeline Semaphore and any pending signal or
	// wait operations
	MaxTimelineSemaphoreValueDifference uint64

	common.NextOutData
}

PhysicalDeviceTimelineSemaphoreProperties describes timeline Semaphore properties that can be supported by an implementation

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

func (*PhysicalDeviceTimelineSemaphoreProperties) PopulateHeader

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

func (*PhysicalDeviceTimelineSemaphoreProperties) PopulateOutData

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

type PhysicalDeviceUniformBufferStandardLayoutFeatures

type PhysicalDeviceUniformBufferStandardLayoutFeatures struct {
	// UniformBufferStandardLayout indicates that the implementation supports the same layouts
	// for uniform Buffer objects as for storage and other kinds of Buffer objects
	UniformBufferStandardLayout bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceUniformBufferStandardLayoutFeatures indicates support for std430-like packing in uniform Buffer objects

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

func (PhysicalDeviceUniformBufferStandardLayoutFeatures) PopulateCPointer

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

func (*PhysicalDeviceUniformBufferStandardLayoutFeatures) PopulateHeader

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

func (*PhysicalDeviceUniformBufferStandardLayoutFeatures) PopulateOutData

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

type PhysicalDeviceVulkan11Features

type PhysicalDeviceVulkan11Features 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
	// Multiview specifies whether the implementation supports multiview rendering within a
	// render pass. 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
	// 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
	// ProtectedMemory specifies whether protected memory is supported
	ProtectedMemory bool
	// SamplerYcbcrConversion specifies whether the implementation supports SamplerYcbcrConversion
	SamplerYcbcrConversion bool
	// ShaderDrawParameters specifies whether the implementation supports the SPIR-V
	// DrawParameters capability
	ShaderDrawParameters bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceVulkan11Features describes the Vulkan 1.1 features that can be supported by an implementation

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

func (PhysicalDeviceVulkan11Features) PopulateCPointer

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

func (*PhysicalDeviceVulkan11Features) PopulateHeader

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

func (*PhysicalDeviceVulkan11Features) PopulateOutData

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

type PhysicalDeviceVulkan11Properties

type PhysicalDeviceVulkan11Properties 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

	// SubgroupSize is the default number of invocations in each subgroup
	SubgroupSize int
	// SubgroupSupportedStages describes the shader stages that group operations with
	// subgroup scope are supported in
	SubgroupSupportedStages core1_0.ShaderStageFlags
	// SubgroupSupportedOperations specifies the sets of group operations with subgroup
	// scope supported on this Device
	SubgroupSupportedOperations core1_1.SubgroupFeatureFlags
	// SubgroupQuadOperationsInAllStages specifies whether quad group operations are available
	// in all stages, or are restricted to fragment and compute stages
	SubgroupQuadOperationsInAllStages bool

	// PointClippingBehavior specifies the point clipping behavior supported by the implementation
	PointClippingBehavior core1_1.PointClippingBehavior
	// MaxMultiviewViewCount is one greater than the maximum view index that can be used in a
	// subpass
	MaxMultiviewViewCount int
	// MaxMultiviewInstanceIndex is the maximum valid value of instance index allowed to be
	// generated by a drawing command recorded within a subpass of a multiview RenderPass instance
	MaxMultiviewInstanceIndex int
	// ProtectedNoFault specifies how an implementation behaves when an application attempts to write
	// to unprotected memory in a protected Queue operation, read from protected memory in an
	// unprotected Queue operation, or perform a query in a protected Queue operation
	ProtectedNoFault bool
	// MaxPerSetDescriptors is a maximum number of descriptors (summed over all descriptor types)
	// in a single DescriptorSet that is guaranteed to satisfy any implementation-dependent contraints
	// on the size of a DescriptorSet itself
	MaxPerSetDescriptors int
	// MaxMemoryAllocationSize is the maximum size of a memory allocation that can be created,
	// even if there is more space available in the heap
	MaxMemoryAllocationSize int

	common.NextOutData
}

PhysicalDeviceVulkan11Properties specifies PhysicalDevice properties for functionality promoted to Vulkan 1.1

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

func (*PhysicalDeviceVulkan11Properties) PopulateHeader

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

func (*PhysicalDeviceVulkan11Properties) PopulateOutData

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

type PhysicalDeviceVulkan12Features

type PhysicalDeviceVulkan12Features struct {
	// SamplerMirrorClampToEdge indicates whether the implementation supports the
	// SamplerAddressModeMirrorClampToEdge sampler address mode
	SamplerMirrorClampToEdge bool
	// DrawIndirectCount indicates whether the implementation supports the
	// CommandBuffer.CmdDrawIndirectCount and CommandBuffer.CmdDrawIndexedIndirectCount functions
	DrawIndirectCount bool
	// StorageBuffer8BitAccess indicates whether objects in the StorageBuffer,
	// ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration
	// can have 8-bit integer members
	StorageBuffer8BitAccess bool
	// UniformAndStorageBuffer8BitAccess indicates whether objects in the Uniform storage class
	// with the Block decoration can have 8-bit integer members
	UniformAndStorageBuffer8BitAccess bool
	// StoragePushConstant8 indicates whether objects in the PushConstant storage class can
	// have 8-bit integer members
	StoragePushConstant8 bool
	// ShaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed
	// integer atomic operations on Buffer objects
	ShaderBufferInt64Atomics bool
	// ShaderSharedInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed
	// integer atomic operations on shared memory
	ShaderSharedInt64Atomics bool
	// ShaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code
	ShaderFloat16 bool
	// ShaderInt8 indicates whether 8-bit integers (signed and unsigned) are supported in shader
	// code
	ShaderInt8 bool
	// DescriptorIndexing indicates whether the implementation supports the minimum set of
	// descriptor indexing features as described in the Feature Requirements section
	DescriptorIndexing bool

	// ShaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments
	// can be indexed by dynamically uniform integer expressions in shader code
	ShaderInputAttachmentArrayDynamicIndexing bool
	// ShaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel
	// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
	ShaderUniformTexelBufferArrayDynamicIndexing bool
	// ShaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel
	// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
	ShaderStorageTexelBufferArrayDynamicIndexing bool
	// ShaderUniformBufferArrayNonUniformIndexing indicates whether arrays of uniform Buffer objects
	// can be indexed by non-uniform integer expressions in shader code
	ShaderUniformBufferArrayNonUniformIndexing bool
	// ShaderSampledImageArrayNonUniformIndexing indicates whether arrays of Sampler objects or sampled
	// Image objects can be indexed by non-uniform integer expressions in shader code
	ShaderSampledImageArrayNonUniformIndexing bool
	// ShaderStorageBufferArrayNonUniformIndexing indicates whether arrays of storage Buffer objects can
	// be indexed by non-uniform integer expressions in shader code
	ShaderStorageBufferArrayNonUniformIndexing bool
	// ShaderStorageImageArrayNonUniformIndexing indicates whether arrays of storage Image objects can
	// be indexed by non-uniform integer expressions in shader code
	ShaderStorageImageArrayNonUniformIndexing bool
	// ShaderInputAttachmentArrayNonUniformIndexing indicates whether arrays of input attachments
	// can be indexed by non-uniform integer expressions in shader code
	ShaderInputAttachmentArrayNonUniformIndexing bool
	// ShaderUniformTexelBufferArrayNonUniformIndexing indicates whether arrays of uniform texel
	// Buffer objects can be indexed by non-uniform integer expressions in shader code
	ShaderUniformTexelBufferArrayNonUniformIndexing bool
	// ShaderStorageTexelBufferArrayNonUniformIndexing indicates whether arrays of storage texel
	// Buffer objects can be indexed by non-uniform integer expressions in shader code
	ShaderStorageTexelBufferArrayNonUniformIndexing bool

	// DescriptorBindingUniformBufferUpdateAfterBind indicates whether the implementation
	// supports updating uniform Buffer descriptors after a set is bound
	DescriptorBindingUniformBufferUpdateAfterBind bool
	// DescriptorBindingSampledImageUpdateAfterBind indicates whether the implementation supports
	// updating sampled Image descriptors after a set is bound
	DescriptorBindingSampledImageUpdateAfterBind bool
	// DescriptorBindingStorageImageUpdateAfterBind indicates whether the implementation supports
	// updating storage Image descriptors after a set is bound
	DescriptorBindingStorageImageUpdateAfterBind bool
	// DescriptorBindingStorageBufferUpdateAfterBind indicates whether the implementation supports
	// updating storage Buffer descriptors after a set is bound
	DescriptorBindingStorageBufferUpdateAfterBind bool
	// DescriptorBindingUniformTexelBufferUpdateAfterBind indicates whether the implementation
	// supports updating uniform texel Buffer descriptors after a set is bound
	DescriptorBindingUniformTexelBufferUpdateAfterBind bool
	// DescriptorBindingStorageTexelBufferUpdateAfterBind indicates whether the implementation
	// supports updating storage texel buffer descriptors after a set is bound
	DescriptorBindingStorageTexelBufferUpdateAfterBind bool

	// DescriptorBindingUpdateUnusedWhilePending indicates whether the implementation supports
	// updating descriptors while the set is in use
	DescriptorBindingUpdateUnusedWhilePending bool
	// DescriptorBindingPartiallyBound indicates whether the implementation supports statically
	// using a DescriptorSet binding in which some descriptors are not valid
	DescriptorBindingPartiallyBound bool
	// DescriptorBindingVariableDescriptorCount indicates whether the implementation supports
	// DescriptorSet with a variable-sized last binding
	DescriptorBindingVariableDescriptorCount bool

	// RuntimeDescriptorArray indicates whether the implementation supports the SPIR-V
	// RuntimeDescriptorArray capability
	RuntimeDescriptorArray bool
	// SamplerFilterMinmax indicates whether the implementation supports a minimum set of
	// required formats supporting min/max filtering as defined by the
	// filterMinmaxSingleComponentFormats property minimum requirements
	SamplerFilterMinmax bool
	// ScalarBlockLayout indicates that the implementation supports the layout of resource blocks
	// in shaders using scalar alignment
	ScalarBlockLayout bool
	// ImagelessFramebuffer indicates that the implementation supports specifying the ImageView for
	// attachments at RenderPass begin time via RenderPassAttachmentBeginInfo
	ImagelessFramebuffer bool
	// UniformBufferStandardLayout indicates that the implementation supports the same layouts for
	// uniform Buffer objects as for storage and other kinds of Buffer objects
	UniformBufferStandardLayout bool
	// ShaderSubgroupExtendedTypes is a boolean specifying whether subgroup operations can use
	// 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these
	// types in group operations with subgroup scope, if the implementation supports the types
	ShaderSubgroupExtendedTypes bool
	// SeparateDepthStencilLayouts indicates whether the implementation supports an ImageMemoryBarrier
	// for a depth/stencil Image with only one of core1_0.ImageAspectDepth or core1_0.ImageAspectStencil,
	// and whether ImageLayoutDepthAttachmentOptimal, ImageLayoutDepthReadOnlyOptimal,
	// ImageLayoutStencilAttachmentOptimal, ImageLayoutStencilReadOnlyOptimal can be used
	SeparateDepthStencilLayouts bool
	// HostQueryReset indicates that the implementation supports resetting queries from the host with
	// QueryPool.Reset
	HostQueryReset bool
	// TimelineSemaphore indicates whether Semaphore objects created with a SemaphoreType of
	// SemaphoreTypeTimeline are supported
	TimelineSemaphore bool
	// BufferDeviceAddress indicates that the implementation supports accessing Buffer memory in shaders
	// as storage Buffer objects via an address queries from Device.GetBufferDeviceAddress
	BufferDeviceAddress bool
	// BufferDeviceAddressCaptureReplay indicates that the implementation supports saving and
	// reusing Buffer and Device addresses, e.g. for trace capture and replay
	BufferDeviceAddressCaptureReplay bool
	// BufferDeviceAddressMultiDevice indicates that the implementation supports the
	// BufferDeviceAddress, RayTracingPipeline and RayQuery features for logical Device objects
	// created with multiple PhysicalDevice objects
	BufferDeviceAddressMultiDevice bool
	// VulkanMemoryModel indicates whether the Vulkan Memory Model is supported
	VulkanMemoryModel bool
	// VulkanMemoryModelDeviceScope indicates whether the Vulkan Memory Model can use Device
	// scope synchronization
	VulkanMemoryModelDeviceScope bool
	// VulkanMemoryModelAvailabilityVisibilityChains indicates whether the Vulkan Memory Model
	// can use availability and visibility chains with more than one element
	VulkanMemoryModelAvailabilityVisibilityChains bool
	// ShaderOutputViewportIndex indicates whether the implementation supports the
	// ShaderViewportIndex SPIR-V capability enabling variables decorated with the ViewportIndex
	// built-in to be exported from vertex or tessellation evaluation shaders
	ShaderOutputViewportIndex bool
	// ShaderOutputLayer indicates whether the implementation supports the ShaderLayer SPIR-V
	// capability enabling variables decorated with the Layer built-in to be exported from vertex
	// or tessellation evaluation shaders
	ShaderOutputLayer bool
	// SubgroupBroadcastDynamicID indicates whether the "Id" operand of OpGroupNonUniformBroadcast
	// can be dynamically uniform within a subgroup, and whether the "Index" operand of
	// OpGroupNonUniformQuadBroadcast can be dynamically uniform within the derivative group
	SubgroupBroadcastDynamicID bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceVulkan12Features describes the Vulkan 1.2 features that can be supported by an implementation

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

func (PhysicalDeviceVulkan12Features) PopulateCPointer

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

func (*PhysicalDeviceVulkan12Features) PopulateHeader

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

func (*PhysicalDeviceVulkan12Features) PopulateOutData

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

type PhysicalDeviceVulkan12Properties

type PhysicalDeviceVulkan12Properties struct {
	// DriverID is a unique identifier for the driver of the PhysicalDevice
	DriverID DriverID
	// DriverName is a string which is the name of the driver
	DriverName string
	// DriverInfo is a string with additional information about the driver
	DriverInfo string
	// ConformanceVersion is the version of the Vulkan conformance test this driver is
	// comformant against
	ConformanceVersion ConformanceVersion

	// DenormBehaviorIndependence indicates whether, and how, denorm behavior can be set
	// independently for different bit widths
	DenormBehaviorIndependence ShaderFloatControlsIndependence
	// RoundingModeIndependence indicates whether, and how, rounding modes can be set
	// independently for different bit widths
	RoundingModeIndependence ShaderFloatControlsIndependence

	// ShaderSignedZeroInfNanPreserveFloat16 indicates whether the sign of zero, NaN, and
	// +/- infinity can be preserved in 16-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat16 bool
	// ShaderSignedZeroInfNanPreserveFloat32 indicates whether the sign of zero, NaN, and
	// +/- infinity can be preserved in 32-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat32 bool
	// ShaderSignedZeroInfNanPreserveFloat64 indicates whether the sign of zero, NaN, and
	// +/- infinity can be preserved in 64-bit floating-point computations
	ShaderSignedZeroInfNanPreserveFloat64 bool
	// ShaderDenormPreserveFloat16 indicates whether denormals can be preserved in 16-bit
	// floating-point computations
	ShaderDenormPreserveFloat16 bool
	// ShaderDenormPreserveFloat32 indicates whether denormals can be preserved in 32-bit
	// floating-point computations
	ShaderDenormPreserveFloat32 bool
	// ShaderDenormPreserveFloat64 indicates whether denormals can be preserved in 64-bit
	// floating-point computations
	ShaderDenormPreserveFloat64 bool
	// ShaderDenormFlushToZeroFloat16 indicates whether denormals can be flushed to zero
	// in 16-bit floating-point computations
	ShaderDenormFlushToZeroFloat16 bool
	// ShaderDenormFlushToZeroFloat32 indicates whether denormals can be flushed to zero
	// in 32-bit floating-point computations
	ShaderDenormFlushToZeroFloat32 bool
	// ShaderDenormFlushToZeroFloat64 indicates whether denormals can be flushed to zero
	// in 64-bit floating-point computations
	ShaderDenormFlushToZeroFloat64 bool
	// ShaderRoundingModeRTEFloat16 indicates whether an implementation supports the
	// round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTEFloat16 bool
	// ShaderRoundingModeRTEFloat32 indicates whether an implementation supports the
	// round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTEFloat32 bool
	// ShaderRoundingModeRTEFloat64 indicates whether an implementation supports the
	// round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTEFloat64 bool
	// ShaderRoundingModeRTZFloat16 indicates whether an implementation supports the
	// round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTZFloat16 bool
	// ShaderRoundingModeRTZFloat32 indicates whether an implementation supports the
	// round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTZFloat32 bool
	// ShaderRoundingModeRTZFloat64 indicates whether an implementation supports the
	// round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion
	// instructions
	ShaderRoundingModeRTZFloat64 bool

	// MaxUpdateAfterBindDescriptorsInAllPools is the maximum number of descriptors
	// (summed over all descriptor types) that can be created across all pools that are
	// created with DescriptorPoolCreateUpdateAfterBind
	MaxUpdateAfterBindDescriptorsInAllPools int
	// ShaderUniformBufferArrayNonUniformIndexingNative indicates whether uniform Buffer
	// descriptors natively support nonuniform indexing
	ShaderUniformBufferArrayNonUniformIndexingNative bool
	// ShaderSampledImageArrayNonUniformIndexingNative indicates whether Sampler and Image
	// descriptors natively support nonuniform indexing
	ShaderSampledImageArrayNonUniformIndexingNative bool
	// ShaderStorageBufferArrayNonUniformIndexingNative indicates whether storage Buffer
	// descriptors natively support nonuniform indexing
	ShaderStorageBufferArrayNonUniformIndexingNative bool
	// ShaderStorageImageArrayNonUniformIndexingNative indicates whether storage Image
	// descriptors natively support nonuniform indexing
	ShaderStorageImageArrayNonUniformIndexingNative bool
	// ShaderInputAttachmentArrayNonUniformIndexingNative indicates whether input attachment
	// descriptors natively support nonuniform indexing
	ShaderInputAttachmentArrayNonUniformIndexingNative bool

	// RobustBufferAccessUpdateAfterBind indicates whether RobustBufferAccess can be enabled
	// in a Device simultaneously with DescriptorBindingUniformBufferUpdateAfterBind,
	// DescriptorBindingStorageBufferUpdateAfterBind,
	// DescriptorBindingUniformTexelBufferUpdateAfterBind, and/or
	// DescriptorBindingStorageTexelBufferUpdateAfterBind
	RobustBufferAccessUpdateAfterBind bool
	// QuadDivergentImplicitLod indicates whether imlicit level of detail calculations for Image
	// operations have well-defined results when the Image and/or Sampler objects used for
	// the instructions are not uniform within a quad
	QuadDivergentImplicitLod bool

	// MaxPerStageDescriptorUpdateAfterBindSamplers is similar to MaxPerStageDescriptorSamplers
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindSamplers int
	// MaxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to
	// MaxPerStageDescriptorUniformBuffers but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindUniformBuffers int
	// MaxPerStageDescriptorUpdateAfterBindStorageBuffers is similar to
	// MaxPerStageDescriptorStorageBuffers but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindStorageBuffers int
	// MaxPerStageDescriptorUpdateAfterBindSampledImages is similar to
	// MaxPerStageDescriptorSampledImages but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindSampledImages int
	// MaxPerStageDescriptorUpdateAfterBindStorageImages is similar to
	// MaxPerStageDescriptorStorageImages but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindStorageImages int
	// MaxPerStageDescriptorUpdateAfterBindInputAttachments is similar to
	// MaxPerStageDescriptorInputAttachments but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageDescriptorUpdateAfterBindInputAttachments int
	// MaxPerStageUpdateAfterBindResources is similar to MaxPerStageResources but counts
	// descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxPerStageUpdateAfterBindResources int

	// MaxDescriptorSetUpdateAfterBindSamplers is similar to MaxDescriptorSetSamplers but counts
	// descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindSamplers int
	// MaxDescriptorSetUpdateAfterBindUniformBuffers is similar to MaxDescriptorSetUniformBuffers
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindUniformBuffers int
	// MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to
	// MaxDescriptorSetUniformBuffersDynamic but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic int
	// MaxDescriptorSetUpdateAfterBindStorageBuffers is similar to MaxDescriptorSetStorageBuffers
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageBuffers int
	// MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to
	// MaxDescriptorSetStorageBuffersDynamic but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic int
	// MaxDescriptorSetUpdateAfterBindSampledImages is similar to MaxDescriptorSetSampledImages
	// but counts descriptors from DescriptorSet objects created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindSampledImages int
	// MaxDescriptorSetUpdateAfterBindStorageImages is similar to MaxDescriptorSetStorageImages
	// but counts descriptors from descriptor sets created with or without
	// DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindStorageImages int
	// MaxDescriptorSetUpdateAfterBindInputAttachments is similar to
	// MaxDescriptorSetInputAttachments but counts descriptors from DescriptorSet objects
	// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
	MaxDescriptorSetUpdateAfterBindInputAttachments int

	// SupportedDepthResolveModes indicates the set of supported depth resolve modes
	SupportedDepthResolveModes ResolveModeFlags
	// SupportedStencilResolveModes idnicates the set of supported stencil resolve modes
	SupportedStencilResolveModes ResolveModeFlags
	// IndependentResolveNone is true if the implementation supports setting the depth and
	// stencil resolve modes to different values when one of those modes is ResolveModeNone
	IndependentResolveNone bool
	// IndependentResolve is true if the implementation supports all combinations of the supported
	// depth and stencil resolve modes, including setting either depth or stencil resolve mode
	// to ResolveModeNone
	IndependentResolve bool

	// FilterMinmaxSingleComponentFormats indicates whether a minimum set of required formats
	// support min/max filtering
	FilterMinmaxSingleComponentFormats bool
	// FilterMinmaxImageComponentMapping indicates whether the implementation supports non-identity
	// component mapping of the Image when doing min/max filtering
	FilterMinmaxImageComponentMapping bool

	// MaxTimelineSemaphoreValueDifference indicates the maximum difference allowed by the
	// implementation between the current value of a timeline Semaphore and any pending
	// signal or wait operations
	MaxTimelineSemaphoreValueDifference uint64
	// FramebufferIntegerColorSampleCounts indicates the color sample counts that are supported
	// for all Framebuffer color attachments with integer formats
	FramebufferIntegerColorSampleCounts core1_0.SampleCountFlags

	common.NextOutData
}

PhysicalDeviceVulkan12Properties specifies PhysicalDevice properties for functionality promoted to Vulkan 1.2

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

func (*PhysicalDeviceVulkan12Properties) PopulateHeader

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

func (*PhysicalDeviceVulkan12Properties) PopulateOutData

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

type PhysicalDeviceVulkanMemoryModelFeatures

type PhysicalDeviceVulkanMemoryModelFeatures struct {
	// VulkanMemoryModel indicates whether the Vulkan Memory Model is supported
	VulkanMemoryModel bool
	// VulkanMemoryModelDeviceScope indicates whether the Vulkan Memory Model can use Device
	// scope synchronization
	VulkanMemoryModelDeviceScope bool
	// VulkanMemoryModelAvailabilityVisibilityChains indicates whether the Vulkan Memory Model
	// can use available and visibility chains with more than one element
	VulkanMemoryModelAvailabilityVisibilityChains bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceVulkanMemoryModelFeatures describes features supported by the memory model

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

func (PhysicalDeviceVulkanMemoryModelFeatures) PopulateCPointer

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

func (*PhysicalDeviceVulkanMemoryModelFeatures) PopulateHeader

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

func (*PhysicalDeviceVulkanMemoryModelFeatures) PopulateOutData

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

type Pipeline

type Pipeline interface {
	core1_1.Pipeline
}

Pipeline represents compute, ray tracing, and graphics pipelines

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.Pipeline. Otherwise, it will return nil. This method will always return a core1_2.VulkanPipeline, even if it is provided a VulkanPipeline from a higher core version. Two Vulkan 1.2 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.2, it will return a core1_2.Pipeline. Otherwise, it will left out of the returned slice. This method will always return a core1_2.VulkanPipeline, even if it is provided a VulkanPipeline from a higher core version. Two Vulkan 1.2 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_1.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.2.

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.2, it will return a core1_2.PipelineCache. Otherwise, it will return nil. This method will always return a core1_2.VulkanPipelineCache, even if it is provided a VulkanPipelineCache from a higher core version. Two Vulkan 1.2 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_1.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.2.

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 cache that supports at least core 1.2, it will return a core1_2.PipelineLayout. Otherwise, it will return nil. This method will always return a core1_2.VulkanPipelineLayout, even if it is provided a VulkanPipelineLayout from a higher core version. Two Vulkan 1.2 compatible PipelineLayout objects with the same PipelineLayout.Handle will return the same interface value when passed to this method.

type QueryPool

type QueryPool interface {
	core1_1.QueryPool

	// Reset resets queries in this QueryPool
	//
	// firstQuery - The initial query index to reset
	//
	// queryCount - The number of queries to reset
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetQueryPool.html
	Reset(firstQuery, queryCount int)
}

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

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.QueryPool. Otherwise, it will return nil. This method will always return a core1_2.VulkanQueryPool, even if it is provided a VulkanQueryPool from a higher core version. Two Vulkan 1.2 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_1.Queue
}

Queue represents a Device resource on which work is performed

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.Queue. Otherwise, it will return nil. This method will always return a core1_2.VulkanQueue, even if it is provided a VulkanQueue from a higher core version. Two Vulkan 1.2 compatible Queue objects with the same Queue.Handle will return the same interface value when passed to this method.

type RenderPass

type RenderPass interface {
	core1_1.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.2.

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.2, it will return a core1_2.RenderPass. Otherwise, it will return nil. This method will always return a core1_2.VulkanRenderPass, even if it is provided a VulkanRenderPass from a higher core version. Two Vulkan 1.2 compatible RenderPass objects with the same RenderPass.Handle will return the same interface value when passed to this method.

type RenderPassAttachmentBeginInfo

type RenderPassAttachmentBeginInfo struct {
	// Attachments is a slice of ImageView objects, each of which will be used as the corresponding
	// attachment in the RenderPass instance
	Attachments []core1_0.ImageView

	common.NextOptions
}

RenderPassAttachmentBeginInfo specifies Image objects to be used as Framebuffer attachments

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

func (RenderPassAttachmentBeginInfo) PopulateCPointer

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

type RenderPassCreateInfo2

type RenderPassCreateInfo2 struct {
	// Flags is reserved for future use
	Flags core1_0.RenderPassCreateFlags

	// Attachments is a slice of AttachmentDescription2 structures describing the attachments
	// used by the RenderPass
	Attachments []AttachmentDescription2
	// Subpasses is a slice of SubpassDescription2 structures describing each subpass
	Subpasses []SubpassDescription2
	// Dependencies is a slice of SubpassDependency2 structures describing dependencies
	// between pairs of subpasses
	Dependencies []SubpassDependency2

	// CorrelatedViewMasks is a slice of view masks indicating sets of views that may be
	// more efficient to render concurrently
	CorrelatedViewMasks []uint32

	common.NextOptions
}

RenderPassCreateInfo2 specifies parameters of a newly-created RenderPass

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

func (RenderPassCreateInfo2) PopulateCPointer

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

type ResolveModeFlags

type ResolveModeFlags int32

ResolveModeFlags indicates supported depth and stencil resolve modes

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

func (ResolveModeFlags) Register

func (f ResolveModeFlags) Register(str string)

func (ResolveModeFlags) String

func (f ResolveModeFlags) String() string

type Sampler

type Sampler interface {
	core1_1.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.2.

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.2, it will return a core1_2.Sampler. Otherwise, it will return nil. This method will always return a core1_2.VulkanSampler, even if it is provided a VulkanSampler from a higher core version. Two Vulkan 1.2 compatible Sampler objects with the same Sampler.Handle will return the same interface value when passed to this method.

type SamplerReductionMode

type SamplerReductionMode int32

SamplerReductionMode specifies reduction mode for texture filtering

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

const (
	// FormatFeatureSampledImageFilterMinmax specifies the Image can be used as a sampled Image
	// with a min or max SamplerReductionMode
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageFilterMinmax core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT

	// SamplerReductionModeMax specifies that texel values are combined by taking
	// the component-wise maximum of values in the footprint with non-zero weights
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionMode.html
	SamplerReductionModeMax SamplerReductionMode = C.VK_SAMPLER_REDUCTION_MODE_MAX
	// SamplerReductionModeMin specifies that texel values are combined by taking the
	// component-wise minimum of values in the footprint with non-zero weights
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionMode.html
	SamplerReductionModeMin SamplerReductionMode = C.VK_SAMPLER_REDUCTION_MODE_MIN
	// SamplerReductionModeWeightedAverage specifies that texel values are combined by
	// computing a weighted average of values in the footprint
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionMode.html
	SamplerReductionModeWeightedAverage SamplerReductionMode = C.VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
)

func (SamplerReductionMode) Register

func (e SamplerReductionMode) Register(str string)

func (SamplerReductionMode) String

func (e SamplerReductionMode) String() string

type SamplerReductionModeCreateInfo

type SamplerReductionModeCreateInfo struct {
	// ReductionMode controls how texture filtering combines texel values
	ReductionMode SamplerReductionMode

	common.NextOptions
}

SamplerReductionModeCreateInfo specifies a Sampler reduction mode

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

func (SamplerReductionModeCreateInfo) PopulateCPointer

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

type SamplerYcbcrConversion

type SamplerYcbcrConversion interface {
	core1_1.SamplerYcbcrConversion
}

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

This interface includes all commands included in Vulkan 1.2.

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

func PromoteSamplerYcbcrConversion

func PromoteSamplerYcbcrConversion(ycbcr core1_1.SamplerYcbcrConversion) SamplerYcbcrConversion

PromoteSamplerYcbcrConversion accepts a SamplerYcbcrConversion object from any core version. If provided a sampler ycbcr conversion that supports at least core 1.2, it will return a core1_2.SamplerYcbcrConversion. Otherwise, it will return nil. This method will always return a core1_2.VulkanSamplerYcbcrConversion, even if it is provided a VulkanSamplerYcbcrConversion from a higher core version. Two Vulkan 1.2 compatible SamplerYcbcrConversion objects with the same SamplerYcbcrConversion.Handle will return the same interface value when passed to this method.

type Semaphore

type Semaphore interface {
	core1_1.Semaphore

	// CounterValue queries the current state of this timeline Semaphore
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetSemaphoreCounterValue.html
	CounterValue() (uint64, common.VkResult, error)
}

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.2.

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.2, it will return a core1_2.Semaphore. Otherwise, it will return nil. This method will always return a core1_2.VulkanSemaphore, even if it is provided a VulkanSemaphore from a higher core version. Two Vulkan 1.2 compatible Semaphore objects with the same Semaphore.Handle will return the same interface value when passed to this method.

type SemaphoreSignalInfo

type SemaphoreSignalInfo struct {
	// Semaphore is the Semaphore object to signal
	Semaphore core1_0.Semaphore
	// Value is the value to signal
	Value uint64

	common.NextOptions
}

SemaphoreSignalInfo contains information about a Semaphore signal operation

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

func (SemaphoreSignalInfo) PopulateCPointer

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

type SemaphoreType

type SemaphoreType int32

SemaphoreType specifies the type of a Semaphore object

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

func (SemaphoreType) Register

func (e SemaphoreType) Register(str string)

func (SemaphoreType) String

func (e SemaphoreType) String() string

type SemaphoreTypeCreateInfo

type SemaphoreTypeCreateInfo struct {
	// SemaphoreType specifies the type of the Semaphore
	SemaphoreType SemaphoreType
	// InitialValue is the initial payload value if SemaphoreType is SemaphoreTypeTimeline
	InitialValue uint64

	common.NextOptions
}

SemaphoreTypeCreateInfo specifies the type of a newly-created Semaphore

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

func (SemaphoreTypeCreateInfo) PopulateCPointer

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

type SemaphoreWaitFlags

type SemaphoreWaitFlags int32

SemaphoreWaitFlags specifies additional parameters of a Semaphore wait operation

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

func (SemaphoreWaitFlags) Register

func (f SemaphoreWaitFlags) Register(str string)

func (SemaphoreWaitFlags) String

func (f SemaphoreWaitFlags) String() string

type SemaphoreWaitInfo

type SemaphoreWaitInfo struct {
	// Flags specifies additional parameters for the Semaphore wait operation
	Flags SemaphoreWaitFlags
	// Semaphores is a slice of Semaphore objects to wait on
	Semaphores []core1_0.Semaphore
	// Values is a slice of timeline Semaphore values
	Values []uint64

	common.NextOptions
}

SemaphoreWaitInfo contains information about the Semaphore wait condition

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

func (SemaphoreWaitInfo) PopulateCPointer

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

type ShaderFloatControlsIndependence

type ShaderFloatControlsIndependence int32

ShaderFloatControlsIndependence specifies whether, and how, shader float controls can be set separately

func (ShaderFloatControlsIndependence) Register

func (e ShaderFloatControlsIndependence) Register(str string)

func (ShaderFloatControlsIndependence) String

type ShaderModule

type ShaderModule interface {
	core1_1.ShaderModule
}

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

This interface includes all commands included in Vulkan 1.2.

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.2, it will return a core1_2.ShaderModule. Otherwise, it will return nil. This method will always return a core1_2.VulkanShaderModule, even if it is provided a VulkanShaderModule from a higher core version. Two Vulkan 1.2 compatible ShaderModule objects with the same ShaderModule.Handle will return the same interface value when passed to this method.

type SubpassBeginInfo

type SubpassBeginInfo struct {
	// Contents specifies how the commands in the next subpass will be provided
	Contents core1_0.SubpassContents

	common.NextOptions
}

SubpassBeginInfo specifies subpass begin information

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

func (SubpassBeginInfo) PopulateCPointer

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

type SubpassDependency2

type SubpassDependency2 struct {
	// SrcSubpass is the subpass index of the first subpass in the dependency, or
	// core1_0.SubpassExternal
	SrcSubpass int
	// DstSubpass is the subpass index of the second subpass in the dependency, or
	// core1_0.SubpassExternal
	DstSubpass int
	// SrcStageMask specifies the source stage mask
	SrcStageMask core1_0.PipelineStageFlags
	// DstStageMask specifies the destination stage mask
	DstStageMask core1_0.PipelineStageFlags
	// SrcAccessMask specifies a source access mask
	SrcAccessMask core1_0.AccessFlags
	// DstAccessMask specifies a source access mask
	DstAccessMask core1_0.AccessFlags
	// DependencyFlags is a set of dependency flags
	DependencyFlags core1_0.DependencyFlags
	// ViewOffset controls which views in the source subpass the views in the destination
	// subpass depend on
	ViewOffset int

	common.NextOptions
}

SubpassDependency2 specifies a subpass dependency

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

func (SubpassDependency2) PopulateCPointer

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

type SubpassDescription2

type SubpassDescription2 struct {
	// Flags specifies usage of the subpass
	Flags core1_0.SubpassDescriptionFlags
	// PipelineBindPoint specifies the Pipeline type supported for this subpass
	PipelineBindPoint core1_0.PipelineBindPoint
	// ViewMask describes which views rendering is broadcast to in this subpass, when
	// multiview is enabled
	ViewMask uint32
	// InputAttachments is a slice of AttachmentReference2 structures defining the input
	// attachments for this subpass and their layouts
	InputAttachments []AttachmentReference2
	// ColorAttachments is a slice of AttachmentReference2 structures defining the color
	// attachments for this subpass and their layouts
	ColorAttachments []AttachmentReference2
	// ResolveAttachments is a slice of AttachmentReference2 structures defining the resolve
	// attachments for this subpass and their layouts
	ResolveAttachments []AttachmentReference2
	// DepthStencilAttachment specifies the depth/stencil attachment for this subpass and
	// its layout
	DepthStencilAttachment *AttachmentReference2
	// PreserveAttachments is a slice of RenderPass attachment indices identifying attachments
	// that are not used by this subpass, but whose contents must be preserved throughout the
	// subpass
	PreserveAttachments []int

	common.NextOptions
}

SubpassDescription2 specifies a subpass description

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

func (SubpassDescription2) PopulateCPointer

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

type SubpassDescriptionDepthStencilResolve

type SubpassDescriptionDepthStencilResolve struct {
	// DepthResolveMode describes the depth resolve mode
	DepthResolveMode ResolveModeFlags
	// StencilResolveMode describes the stencil resolve mode
	StencilResolveMode ResolveModeFlags
	// DepthStencilResolveAttachment defines the depth/stencil resolve attachment
	// for this subpass and its layout
	DepthStencilResolveAttachment *AttachmentReference2

	common.NextOptions
}

SubpassDescriptionDepthStencilResolve specifies depth/stencil resolve operations for a subpass

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

func (SubpassDescriptionDepthStencilResolve) PopulateCPointer

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

type SubpassEndInfo

type SubpassEndInfo struct {
	common.NextOptions
}

SubpassEndInfo specifies subpass end information

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

func (SubpassEndInfo) PopulateCPointer

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

type TimelineSemaphoreSubmitInfo

type TimelineSemaphoreSubmitInfo struct {
	// WaitSemaphoreValues is a slice of values for the corresponding Semaphore objects in
	// SubmitInfo.WaitSemaphores to wait for
	WaitSemaphoreValues []uint64
	// SignalSemaphoreValues is a slice of values for the corresponding Semaphore objects in
	// SubmitInfo.SignalSemaphores to set when signaled
	SignalSemaphoreValues []uint64

	common.NextOptions
}

TimelineSemaphoreSubmitInfo specifies signal and wait values for timeline Semaphore objects

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

func (TimelineSemaphoreSubmitInfo) PopulateCPointer

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

type VulkanBuffer

type VulkanBuffer struct {
	core1_1.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_1.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_1.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) CmdBeginRenderPass2

func (c *VulkanCommandBuffer) CmdBeginRenderPass2(renderPassBegin core1_0.RenderPassBeginInfo, subpassBegin SubpassBeginInfo) error

func (*VulkanCommandBuffer) CmdDrawIndexedIndirectCount

func (c *VulkanCommandBuffer) CmdDrawIndexedIndirectCount(buffer core1_0.Buffer, offset uint64, countBuffer core1_0.Buffer, countBufferOffset uint64, maxDrawCount, stride int)

func (*VulkanCommandBuffer) CmdDrawIndirectCount

func (c *VulkanCommandBuffer) CmdDrawIndirectCount(buffer core1_0.Buffer, offset uint64, countBuffer core1_0.Buffer, countBufferOffset uint64, maxDrawCount, stride int)

func (*VulkanCommandBuffer) CmdEndRenderPass2

func (c *VulkanCommandBuffer) CmdEndRenderPass2(subpassEnd SubpassEndInfo) error

func (*VulkanCommandBuffer) CmdNextSubpass2

func (c *VulkanCommandBuffer) CmdNextSubpass2(subpassBegin SubpassBeginInfo, subpassEnd SubpassEndInfo) error

type VulkanCommandPool

type VulkanCommandPool struct {
	core1_1.CommandPool
}

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

type VulkanDescriptorPool

type VulkanDescriptorPool struct {
	core1_1.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_1.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_1.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 {
	core1_1.DescriptorUpdateTemplate
}

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

type VulkanDevice

type VulkanDevice struct {
	core1_1.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) CreateRenderPass2

func (d *VulkanDevice) CreateRenderPass2(allocator *driver.AllocationCallbacks, options RenderPassCreateInfo2) (core1_0.RenderPass, common.VkResult, error)

func (*VulkanDevice) GetBufferDeviceAddress

func (d *VulkanDevice) GetBufferDeviceAddress(o BufferDeviceAddressInfo) (uint64, error)

func (*VulkanDevice) GetBufferOpaqueCaptureAddress

func (d *VulkanDevice) GetBufferOpaqueCaptureAddress(o BufferDeviceAddressInfo) (uint64, error)

func (*VulkanDevice) GetDeviceMemoryOpaqueCaptureAddress

func (d *VulkanDevice) GetDeviceMemoryOpaqueCaptureAddress(o DeviceMemoryOpaqueCaptureAddressInfo) (uint64, error)

func (*VulkanDevice) SignalSemaphore

func (d *VulkanDevice) SignalSemaphore(o SemaphoreSignalInfo) (common.VkResult, error)

func (*VulkanDevice) WaitSemaphores

func (d *VulkanDevice) WaitSemaphores(timeout time.Duration, o SemaphoreWaitInfo) (common.VkResult, error)

type VulkanDeviceMemory

type VulkanDeviceMemory struct {
	core1_1.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_1.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_1.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_1.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_1.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_1.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
}

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

type VulkanInstanceScopedPhysicalDevice

type VulkanInstanceScopedPhysicalDevice struct {
	core1_1.InstanceScopedPhysicalDevice
}

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

type VulkanPhysicalDevice

type VulkanPhysicalDevice struct {
	core1_1.PhysicalDevice

	InstanceScoped1_2 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_2

func (p *VulkanPhysicalDevice) InstanceScopedPhysicalDevice1_2() InstanceScopedPhysicalDevice

type VulkanPipeline

type VulkanPipeline struct {
	core1_1.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_1.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_1.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_1.QueryPool

	DeviceDriver    driver.Driver
	Device          driver.VkDevice
	QueryPoolHandle driver.VkQueryPool
}

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

func (*VulkanQueryPool) Reset

func (q *VulkanQueryPool) Reset(firstQuery, queryCount int)

type VulkanQueue

type VulkanQueue struct {
	core1_1.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_1.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_1.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 {
	core1_1.SamplerYcbcrConversion
}

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

type VulkanSemaphore

type VulkanSemaphore struct {
	core1_1.Semaphore

	DeviceDriver    driver.Driver
	Device          driver.VkDevice
	SemaphoreHandle driver.VkSemaphore
}

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

func (*VulkanSemaphore) CounterValue

func (s *VulkanSemaphore) CounterValue() (uint64, common.VkResult, error)

type VulkanShaderModule

type VulkanShaderModule struct {
	core1_1.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