Documentation ¶
Index ¶
- Constants
- Variables
- type AccessFlags
- type AttachmentDescription
- type AttachmentDescriptionFlags
- type AttachmentLoadOp
- type AttachmentReference
- type AttachmentStoreOp
- type BindSparseInfo
- type BlendFactor
- type BlendOp
- type BorderColor
- type Buffer
- type BufferCopy
- type BufferCreateFlags
- type BufferCreateInfo
- type BufferImageCopy
- type BufferMemoryBarrier
- type BufferUsageFlags
- type BufferView
- type BufferViewCreateFlags
- type BufferViewCreateInfo
- type ClearAttachment
- type ClearColorValue
- type ClearRect
- type ClearValue
- type ClearValueDepthStencil
- type ClearValueFloat
- type ClearValueInt32
- type ClearValueUint32
- type ColorComponentFlags
- type CommandBuffer
- type CommandBufferAllocateInfo
- type CommandBufferBeginInfo
- type CommandBufferInheritanceInfo
- type CommandBufferLevel
- type CommandBufferResetFlags
- type CommandBufferUsageFlags
- type CommandCounter
- type CommandPool
- type CommandPoolCreateFlags
- type CommandPoolCreateInfo
- type CommandPoolResetFlags
- type CompareOp
- type ComponentMapping
- type ComponentSwizzle
- type ComputePipelineCreateInfo
- type CopyDescriptorSet
- type CullModeFlags
- type DependencyFlags
- type DescriptorBufferInfo
- type DescriptorImageInfo
- type DescriptorPool
- type DescriptorPoolCreateFlags
- type DescriptorPoolCreateInfo
- type DescriptorPoolResetFlags
- type DescriptorPoolSize
- type DescriptorSet
- type DescriptorSetAllocateInfo
- type DescriptorSetLayout
- type DescriptorSetLayoutBinding
- type DescriptorSetLayoutCreateFlags
- type DescriptorSetLayoutCreateInfo
- type DescriptorType
- type Device
- type DeviceCreateFlags
- type DeviceCreateInfo
- type DeviceMemory
- type DeviceQueueCreateFlags
- type DeviceQueueCreateInfo
- type DynamicState
- type Event
- type EventCreateFlags
- type EventCreateInfo
- type ExtensionProperties
- type Extent2D
- type Extent3D
- type Fence
- type FenceCreateFlags
- type FenceCreateInfo
- type Filter
- type Format
- type FormatFeatureFlags
- type FormatProperties
- type Framebuffer
- type FramebufferCreateFlags
- type FramebufferCreateInfo
- type FrontFace
- type GraphicsPipelineCreateInfo
- type Image
- type ImageAspectFlags
- type ImageBlit
- type ImageCopy
- type ImageCreateFlags
- type ImageCreateInfo
- type ImageFormatProperties
- type ImageLayout
- type ImageMemoryBarrier
- type ImageResolve
- type ImageSubresource
- type ImageSubresourceLayers
- type ImageSubresourceRange
- type ImageTiling
- type ImageType
- type ImageUsageFlags
- type ImageView
- type ImageViewCreateFlags
- type ImageViewCreateInfo
- type ImageViewType
- type IndexType
- type Instance
- type InstanceCreateFlags
- type InstanceCreateInfo
- type LayerProperties
- type LogicOp
- type MappedMemoryRange
- type MemoryAllocateInfo
- type MemoryBarrier
- type MemoryHeap
- type MemoryHeapFlags
- type MemoryMapFlags
- type MemoryPropertyFlags
- type MemoryRequirements
- type MemoryType
- type ObjectType
- type Offset2D
- type Offset3D
- type PhysicalDevice
- type PhysicalDeviceFeatures
- type PhysicalDeviceLimits
- type PhysicalDeviceMemoryProperties
- type PhysicalDeviceProperties
- type PhysicalDeviceSparseProperties
- type PhysicalDeviceType
- type Pipeline
- type PipelineBindPoint
- type PipelineCache
- type PipelineCacheCreateFlags
- type PipelineCacheCreateInfo
- type PipelineCacheHeaderVersion
- type PipelineColorBlendAttachmentState
- type PipelineColorBlendStateCreateFlags
- type PipelineColorBlendStateCreateInfo
- type PipelineCreateFlags
- type PipelineDepthStencilStateCreateFlags
- type PipelineDepthStencilStateCreateInfo
- type PipelineDynamicStateCreateFlags
- type PipelineDynamicStateCreateInfo
- type PipelineInputAssemblyStateCreateFlags
- type PipelineInputAssemblyStateCreateInfo
- type PipelineLayout
- type PipelineLayoutCreateFlags
- type PipelineLayoutCreateInfo
- type PipelineMultisampleStateCreateFlags
- type PipelineMultisampleStateCreateInfo
- type PipelineRasterizationStateCreateFlags
- type PipelineRasterizationStateCreateInfo
- type PipelineShaderStageCreateFlags
- type PipelineShaderStageCreateInfo
- type PipelineStageFlags
- type PipelineTessellationStateCreateFlags
- type PipelineTessellationStateCreateInfo
- type PipelineVertexInputStateCreateInfo
- type PipelineViewportStateCreateFlags
- type PipelineViewportStateCreateInfo
- type PolygonMode
- type PrimitiveTopology
- type PushConstantRange
- type QueryControlFlags
- type QueryPipelineStatisticFlags
- type QueryPool
- type QueryPoolCreateFlags
- type QueryPoolCreateInfo
- type QueryResultFlags
- type QueryType
- type Queue
- type QueueFamilyProperties
- type QueueFlags
- type Rect2D
- type RenderPass
- type RenderPassBeginInfo
- type RenderPassCreateFlags
- type RenderPassCreateInfo
- type SampleCountFlags
- type Sampler
- type SamplerAddressMode
- type SamplerCreateFlags
- type SamplerCreateInfo
- type SamplerMipmapMode
- type Semaphore
- type SemaphoreCreateFlags
- type SemaphoreCreateInfo
- type ShaderModule
- type ShaderModuleCreateFlags
- type ShaderModuleCreateInfo
- type ShaderStageFlags
- type SharingMode
- type SparseBufferMemoryBindInfo
- type SparseImageFormatFlags
- type SparseImageFormatProperties
- type SparseImageMemoryBind
- type SparseImageMemoryBindInfo
- type SparseImageMemoryRequirements
- type SparseImageOpaqueMemoryBindInfo
- type SparseMemoryBind
- type SparseMemoryBindFlags
- type StencilFaceFlags
- type StencilOp
- type StencilOpState
- type SubmitInfo
- type SubpassContents
- type SubpassDependency
- type SubpassDescription
- type SubpassDescriptionFlags
- type SubresourceLayout
- type VertexInputAttributeDescription
- type VertexInputBindingDescription
- type VertexInputRate
- type Viewport
- type VulkanBuffer
- func (b *VulkanBuffer) APIVersion() common.APIVersion
- func (b *VulkanBuffer) BindBufferMemory(memory DeviceMemory, offset int) (common.VkResult, error)
- func (b *VulkanBuffer) Destroy(allocationCallbacks *driver.AllocationCallbacks)
- func (b *VulkanBuffer) DeviceHandle() driver.VkDevice
- func (b *VulkanBuffer) Driver() driver.Driver
- func (b *VulkanBuffer) Handle() driver.VkBuffer
- func (b *VulkanBuffer) MemoryRequirements() *MemoryRequirements
- type VulkanBufferView
- type VulkanCommandBuffer
- func (c *VulkanCommandBuffer) APIVersion() common.APIVersion
- func (c *VulkanCommandBuffer) Begin(o CommandBufferBeginInfo) (common.VkResult, error)
- func (c *VulkanCommandBuffer) CmdBeginQuery(queryPool QueryPool, query int, flags QueryControlFlags)
- func (c *VulkanCommandBuffer) CmdBeginRenderPass(contents SubpassContents, o RenderPassBeginInfo) error
- func (c *VulkanCommandBuffer) CmdBindDescriptorSets(bindPoint PipelineBindPoint, layout PipelineLayout, sets []DescriptorSet, ...)
- func (c *VulkanCommandBuffer) CmdBindIndexBuffer(buffer Buffer, offset int, indexType IndexType)
- func (c *VulkanCommandBuffer) CmdBindPipeline(bindPoint PipelineBindPoint, pipeline Pipeline)
- func (c *VulkanCommandBuffer) CmdBindVertexBuffers(buffers []Buffer, bufferOffsets []int)
- func (c *VulkanCommandBuffer) CmdBlitImage(sourceImage Image, sourceImageLayout ImageLayout, destinationImage Image, ...) error
- func (c *VulkanCommandBuffer) CmdClearAttachments(attachments []ClearAttachment, rects []ClearRect) error
- func (c *VulkanCommandBuffer) CmdClearColorImage(image Image, imageLayout ImageLayout, color ClearColorValue, ...)
- func (c *VulkanCommandBuffer) CmdClearDepthStencilImage(image Image, imageLayout ImageLayout, depthStencil *ClearValueDepthStencil, ...)
- func (c *VulkanCommandBuffer) CmdCopyBuffer(srcBuffer Buffer, dstBuffer Buffer, copyRegions []BufferCopy) error
- func (c *VulkanCommandBuffer) CmdCopyBufferToImage(buffer Buffer, image Image, layout ImageLayout, regions []BufferImageCopy) error
- func (c *VulkanCommandBuffer) CmdCopyImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, ...) error
- func (c *VulkanCommandBuffer) CmdCopyImageToBuffer(srcImage Image, srcImageLayout ImageLayout, dstBuffer Buffer, ...) error
- func (c *VulkanCommandBuffer) CmdCopyQueryPoolResults(queryPool QueryPool, firstQuery, queryCount int, dstBuffer Buffer, ...)
- func (c *VulkanCommandBuffer) CmdDispatch(groupCountX, groupCountY, groupCountZ int)
- func (c *VulkanCommandBuffer) CmdDispatchIndirect(buffer Buffer, offset int)
- func (c *VulkanCommandBuffer) CmdDraw(vertexCount, instanceCount int, firstVertex, firstInstance uint32)
- func (c *VulkanCommandBuffer) CmdDrawIndexed(indexCount, instanceCount int, firstIndex uint32, vertexOffset int, ...)
- func (c *VulkanCommandBuffer) CmdDrawIndexedIndirect(buffer Buffer, offset int, drawCount, stride int)
- func (c *VulkanCommandBuffer) CmdDrawIndirect(buffer Buffer, offset int, drawCount, stride int)
- func (c *VulkanCommandBuffer) CmdEndQuery(queryPool QueryPool, query int)
- func (c *VulkanCommandBuffer) CmdEndRenderPass()
- func (c *VulkanCommandBuffer) CmdExecuteCommands(commandBuffers []CommandBuffer)
- func (c *VulkanCommandBuffer) CmdFillBuffer(dstBuffer Buffer, dstOffset int, size int, data uint32)
- func (c *VulkanCommandBuffer) CmdNextSubpass(contents SubpassContents)
- func (c *VulkanCommandBuffer) CmdPipelineBarrier(srcStageMask, dstStageMask PipelineStageFlags, dependencies DependencyFlags, ...) error
- func (c *VulkanCommandBuffer) CmdPushConstants(layout PipelineLayout, stageFlags ShaderStageFlags, offset int, ...)
- func (c *VulkanCommandBuffer) CmdResetEvent(event Event, stageMask PipelineStageFlags)
- func (c *VulkanCommandBuffer) CmdResetQueryPool(queryPool QueryPool, startQuery, queryCount int)
- func (c *VulkanCommandBuffer) CmdResolveImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, ...) error
- func (c *VulkanCommandBuffer) CmdSetBlendConstants(blendConstants [4]float32)
- func (c *VulkanCommandBuffer) CmdSetDepthBias(depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor float32)
- func (c *VulkanCommandBuffer) CmdSetDepthBounds(min, max float32)
- func (c *VulkanCommandBuffer) CmdSetEvent(event Event, stageMask PipelineStageFlags)
- func (c *VulkanCommandBuffer) CmdSetLineWidth(lineWidth float32)
- func (c *VulkanCommandBuffer) CmdSetScissor(scissors []Rect2D)
- func (c *VulkanCommandBuffer) CmdSetStencilCompareMask(faceMask StencilFaceFlags, compareMask uint32)
- func (c *VulkanCommandBuffer) CmdSetStencilReference(faceMask StencilFaceFlags, reference uint32)
- func (c *VulkanCommandBuffer) CmdSetStencilWriteMask(faceMask StencilFaceFlags, writeMask uint32)
- func (c *VulkanCommandBuffer) CmdSetViewport(viewports []Viewport)
- func (c *VulkanCommandBuffer) CmdUpdateBuffer(dstBuffer Buffer, dstOffset int, dataSize int, data []byte)
- func (c *VulkanCommandBuffer) CmdWaitEvents(events []Event, srcStageMask PipelineStageFlags, ...) error
- func (c *VulkanCommandBuffer) CmdWriteTimestamp(pipelineStage PipelineStageFlags, queryPool QueryPool, query int)
- func (c *VulkanCommandBuffer) CommandCounter() *CommandCounter
- func (c *VulkanCommandBuffer) CommandPoolHandle() driver.VkCommandPool
- func (c *VulkanCommandBuffer) CommandsRecorded() int
- func (c *VulkanCommandBuffer) DeviceHandle() driver.VkDevice
- func (c *VulkanCommandBuffer) DispatchesRecorded() int
- func (c *VulkanCommandBuffer) DrawsRecorded() int
- func (c *VulkanCommandBuffer) Driver() driver.Driver
- func (c *VulkanCommandBuffer) End() (common.VkResult, error)
- func (c *VulkanCommandBuffer) Free()
- func (c *VulkanCommandBuffer) Handle() driver.VkCommandBuffer
- func (c *VulkanCommandBuffer) Reset(flags CommandBufferResetFlags) (common.VkResult, error)
- type VulkanCommandPool
- func (p *VulkanCommandPool) APIVersion() common.APIVersion
- func (p *VulkanCommandPool) Destroy(callbacks *driver.AllocationCallbacks)
- func (p *VulkanCommandPool) DeviceHandle() driver.VkDevice
- func (p *VulkanCommandPool) Driver() driver.Driver
- func (p *VulkanCommandPool) Handle() driver.VkCommandPool
- func (p *VulkanCommandPool) Reset(flags CommandPoolResetFlags) (common.VkResult, error)
- type VulkanDescriptorPool
- func (p *VulkanDescriptorPool) APIVersion() common.APIVersion
- func (p *VulkanDescriptorPool) Destroy(callbacks *driver.AllocationCallbacks)
- func (p *VulkanDescriptorPool) DeviceHandle() driver.VkDevice
- func (p *VulkanDescriptorPool) Driver() driver.Driver
- func (p *VulkanDescriptorPool) Handle() driver.VkDescriptorPool
- func (p *VulkanDescriptorPool) Reset(flags DescriptorPoolResetFlags) (common.VkResult, error)
- type VulkanDescriptorSet
- func (s *VulkanDescriptorSet) APIVersion() common.APIVersion
- func (s *VulkanDescriptorSet) DescriptorPoolHandle() driver.VkDescriptorPool
- func (s *VulkanDescriptorSet) DeviceHandle() driver.VkDevice
- func (s *VulkanDescriptorSet) Driver() driver.Driver
- func (s *VulkanDescriptorSet) Free() (common.VkResult, error)
- func (s *VulkanDescriptorSet) Handle() driver.VkDescriptorSet
- type VulkanDescriptorSetLayout
- func (h *VulkanDescriptorSetLayout) APIVersion() common.APIVersion
- func (h *VulkanDescriptorSetLayout) Destroy(callbacks *driver.AllocationCallbacks)
- func (h *VulkanDescriptorSetLayout) DeviceHandle() driver.VkDevice
- func (h *VulkanDescriptorSetLayout) Driver() driver.Driver
- func (h *VulkanDescriptorSetLayout) Handle() driver.VkDescriptorSetLayout
- type VulkanDevice
- func (d *VulkanDevice) APIVersion() common.APIVersion
- func (d *VulkanDevice) AllocateCommandBuffers(o CommandBufferAllocateInfo) ([]CommandBuffer, common.VkResult, error)
- func (d *VulkanDevice) AllocateDescriptorSets(o DescriptorSetAllocateInfo) ([]DescriptorSet, common.VkResult, error)
- func (d *VulkanDevice) AllocateMemory(allocationCallbacks *driver.AllocationCallbacks, o MemoryAllocateInfo) (DeviceMemory, common.VkResult, error)
- func (d *VulkanDevice) CreateBuffer(allocationCallbacks *driver.AllocationCallbacks, o BufferCreateInfo) (Buffer, common.VkResult, error)
- func (d *VulkanDevice) CreateBufferView(allocationCallbacks *driver.AllocationCallbacks, options BufferViewCreateInfo) (BufferView, common.VkResult, error)
- func (d *VulkanDevice) CreateCommandPool(allocationCallbacks *driver.AllocationCallbacks, o CommandPoolCreateInfo) (CommandPool, common.VkResult, error)
- func (d *VulkanDevice) CreateComputePipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, ...) ([]Pipeline, common.VkResult, error)
- func (d *VulkanDevice) CreateDescriptorPool(allocationCallbacks *driver.AllocationCallbacks, o DescriptorPoolCreateInfo) (DescriptorPool, common.VkResult, error)
- func (d *VulkanDevice) CreateDescriptorSetLayout(allocationCallbacks *driver.AllocationCallbacks, ...) (DescriptorSetLayout, common.VkResult, error)
- func (d *VulkanDevice) CreateEvent(allocationCallbacks *driver.AllocationCallbacks, o EventCreateInfo) (Event, common.VkResult, error)
- func (d *VulkanDevice) CreateFence(allocationCallbacks *driver.AllocationCallbacks, o FenceCreateInfo) (Fence, common.VkResult, error)
- func (d *VulkanDevice) CreateFramebuffer(allocationCallbacks *driver.AllocationCallbacks, o FramebufferCreateInfo) (Framebuffer, common.VkResult, error)
- func (d *VulkanDevice) CreateGraphicsPipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, ...) ([]Pipeline, common.VkResult, error)
- func (d *VulkanDevice) CreateImage(allocationCallbacks *driver.AllocationCallbacks, o ImageCreateInfo) (Image, common.VkResult, error)
- func (d *VulkanDevice) CreateImageView(allocationCallbacks *driver.AllocationCallbacks, o ImageViewCreateInfo) (ImageView, common.VkResult, error)
- func (d *VulkanDevice) CreatePipelineCache(allocationCallbacks *driver.AllocationCallbacks, o PipelineCacheCreateInfo) (PipelineCache, common.VkResult, error)
- func (d *VulkanDevice) CreatePipelineLayout(allocationCallbacks *driver.AllocationCallbacks, o PipelineLayoutCreateInfo) (PipelineLayout, common.VkResult, error)
- func (d *VulkanDevice) CreateQueryPool(allocationCallbacks *driver.AllocationCallbacks, o QueryPoolCreateInfo) (QueryPool, common.VkResult, error)
- func (d *VulkanDevice) CreateRenderPass(allocationCallbacks *driver.AllocationCallbacks, o RenderPassCreateInfo) (RenderPass, common.VkResult, error)
- func (d *VulkanDevice) CreateSampler(allocationCallbacks *driver.AllocationCallbacks, o SamplerCreateInfo) (Sampler, common.VkResult, error)
- func (d *VulkanDevice) CreateSemaphore(allocationCallbacks *driver.AllocationCallbacks, o SemaphoreCreateInfo) (Semaphore, common.VkResult, error)
- func (d *VulkanDevice) CreateShaderModule(allocationCallbacks *driver.AllocationCallbacks, o ShaderModuleCreateInfo) (ShaderModule, common.VkResult, error)
- func (d *VulkanDevice) Destroy(callbacks *driver.AllocationCallbacks)
- func (d *VulkanDevice) Driver() driver.Driver
- func (d *VulkanDevice) FlushMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error)
- func (d *VulkanDevice) FreeCommandBuffers(buffers []CommandBuffer)
- func (d *VulkanDevice) FreeDescriptorSets(sets []DescriptorSet) (common.VkResult, error)
- func (d *VulkanDevice) FreeMemory(deviceMemory DeviceMemory, allocationCallbacks *driver.AllocationCallbacks)
- func (d *VulkanDevice) GetQueue(queueFamilyIndex int, queueIndex int) Queue
- func (d *VulkanDevice) Handle() driver.VkDevice
- func (d *VulkanDevice) InvalidateMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error)
- func (d *VulkanDevice) IsDeviceExtensionActive(extensionName string) bool
- func (d *VulkanDevice) ResetFences(fences []Fence) (common.VkResult, error)
- func (d *VulkanDevice) UpdateDescriptorSets(writes []WriteDescriptorSet, copies []CopyDescriptorSet) error
- func (d *VulkanDevice) WaitForFences(waitForAll bool, timeout time.Duration, fences []Fence) (common.VkResult, error)
- func (d *VulkanDevice) WaitIdle() (common.VkResult, error)
- type VulkanDeviceMemory
- func (m *VulkanDeviceMemory) APIVersion() common.APIVersion
- func (m *VulkanDeviceMemory) Commitment() int
- func (m *VulkanDeviceMemory) DeviceHandle() driver.VkDevice
- func (m *VulkanDeviceMemory) Driver() driver.Driver
- func (m *VulkanDeviceMemory) FlushAll() (common.VkResult, error)
- func (m *VulkanDeviceMemory) Free(allocationCallbacks *driver.AllocationCallbacks)
- func (m *VulkanDeviceMemory) Handle() driver.VkDeviceMemory
- func (m *VulkanDeviceMemory) InvalidateAll() (common.VkResult, error)
- func (m *VulkanDeviceMemory) Map(offset int, size int, flags MemoryMapFlags) (unsafe.Pointer, common.VkResult, error)
- func (m *VulkanDeviceMemory) Unmap()
- type VulkanEvent
- func (e *VulkanEvent) APIVersion() common.APIVersion
- func (e *VulkanEvent) Destroy(callbacks *driver.AllocationCallbacks)
- func (e *VulkanEvent) DeviceHandle() driver.VkDevice
- func (e *VulkanEvent) Driver() driver.Driver
- func (e *VulkanEvent) Handle() driver.VkEvent
- func (e *VulkanEvent) Reset() (common.VkResult, error)
- func (e *VulkanEvent) Set() (common.VkResult, error)
- func (e *VulkanEvent) Status() (common.VkResult, error)
- type VulkanFence
- func (f *VulkanFence) APIVersion() common.APIVersion
- func (f *VulkanFence) Destroy(callbacks *driver.AllocationCallbacks)
- func (f *VulkanFence) DeviceHandle() driver.VkDevice
- func (f *VulkanFence) Driver() driver.Driver
- func (f *VulkanFence) Handle() driver.VkFence
- func (f *VulkanFence) Reset() (common.VkResult, error)
- func (f *VulkanFence) Status() (common.VkResult, error)
- func (f *VulkanFence) Wait(timeout time.Duration) (common.VkResult, error)
- type VulkanFramebuffer
- func (b *VulkanFramebuffer) APIVersion() common.APIVersion
- func (b *VulkanFramebuffer) Destroy(callbacks *driver.AllocationCallbacks)
- func (b *VulkanFramebuffer) DeviceHandle() driver.VkDevice
- func (b *VulkanFramebuffer) Driver() driver.Driver
- func (b *VulkanFramebuffer) Handle() driver.VkFramebuffer
- type VulkanImage
- func (i *VulkanImage) APIVersion() common.APIVersion
- func (i *VulkanImage) BindImageMemory(memory DeviceMemory, offset int) (common.VkResult, error)
- func (i *VulkanImage) Destroy(callbacks *driver.AllocationCallbacks)
- func (i *VulkanImage) DeviceHandle() driver.VkDevice
- func (i *VulkanImage) Driver() driver.Driver
- func (i *VulkanImage) Handle() driver.VkImage
- func (i *VulkanImage) MemoryRequirements() *MemoryRequirements
- func (i *VulkanImage) SparseMemoryRequirements() []SparseImageMemoryRequirements
- func (i *VulkanImage) SubresourceLayout(subresource *ImageSubresource) *SubresourceLayout
- type VulkanImageView
- type VulkanInstance
- func (i *VulkanInstance) APIVersion() common.APIVersion
- func (i *VulkanInstance) Destroy(callbacks *driver.AllocationCallbacks)
- func (i *VulkanInstance) Driver() driver.Driver
- func (i *VulkanInstance) EnumeratePhysicalDevices() ([]PhysicalDevice, common.VkResult, error)
- func (i *VulkanInstance) Handle() driver.VkInstance
- func (i *VulkanInstance) IsInstanceExtensionActive(extensionName string) bool
- type VulkanPhysicalDevice
- func (d *VulkanPhysicalDevice) CreateDevice(allocationCallbacks *driver.AllocationCallbacks, options DeviceCreateInfo) (Device, common.VkResult, error)
- func (d *VulkanPhysicalDevice) DeviceAPIVersion() common.APIVersion
- func (d *VulkanPhysicalDevice) Driver() driver.Driver
- func (d *VulkanPhysicalDevice) EnumerateDeviceExtensionProperties() (map[string]*ExtensionProperties, common.VkResult, error)
- func (d *VulkanPhysicalDevice) EnumerateDeviceExtensionPropertiesForLayer(layerName string) (map[string]*ExtensionProperties, common.VkResult, error)
- func (d *VulkanPhysicalDevice) EnumerateDeviceLayerProperties() (map[string]*LayerProperties, common.VkResult, error)
- func (d *VulkanPhysicalDevice) Features() *PhysicalDeviceFeatures
- func (d *VulkanPhysicalDevice) FormatProperties(format Format) *FormatProperties
- func (d *VulkanPhysicalDevice) Handle() driver.VkPhysicalDevice
- func (d *VulkanPhysicalDevice) ImageFormatProperties(format Format, imageType ImageType, tiling ImageTiling, usages ImageUsageFlags, ...) (*ImageFormatProperties, common.VkResult, error)
- func (d *VulkanPhysicalDevice) InstanceAPIVersion() common.APIVersion
- func (d *VulkanPhysicalDevice) MemoryProperties() *PhysicalDeviceMemoryProperties
- func (d *VulkanPhysicalDevice) Properties() (*PhysicalDeviceProperties, error)
- func (d *VulkanPhysicalDevice) QueueFamilyProperties() []*QueueFamilyProperties
- func (d *VulkanPhysicalDevice) SparseImageFormatProperties(format Format, imageType ImageType, samples SampleCountFlags, ...) []SparseImageFormatProperties
- type VulkanPipeline
- type VulkanPipelineCache
- func (c *VulkanPipelineCache) APIVersion() common.APIVersion
- func (c *VulkanPipelineCache) CacheData() ([]byte, common.VkResult, error)
- func (c *VulkanPipelineCache) Destroy(callbacks *driver.AllocationCallbacks)
- func (c *VulkanPipelineCache) DeviceHandle() driver.VkDevice
- func (c *VulkanPipelineCache) Driver() driver.Driver
- func (c *VulkanPipelineCache) Handle() driver.VkPipelineCache
- func (c *VulkanPipelineCache) MergePipelineCaches(srcCaches []PipelineCache) (common.VkResult, error)
- type VulkanPipelineLayout
- func (l *VulkanPipelineLayout) APIVersion() common.APIVersion
- func (l *VulkanPipelineLayout) Destroy(callbacks *driver.AllocationCallbacks)
- func (l *VulkanPipelineLayout) DeviceHandle() driver.VkDevice
- func (l *VulkanPipelineLayout) Driver() driver.Driver
- func (l *VulkanPipelineLayout) Handle() driver.VkPipelineLayout
- type VulkanQueryPool
- func (p *VulkanQueryPool) APIVersion() common.APIVersion
- func (p *VulkanQueryPool) Destroy(callbacks *driver.AllocationCallbacks)
- func (p *VulkanQueryPool) DeviceHandle() driver.VkDevice
- func (p *VulkanQueryPool) Driver() driver.Driver
- func (p *VulkanQueryPool) Handle() driver.VkQueryPool
- func (p *VulkanQueryPool) PopulateResults(firstQuery, queryCount int, results []byte, resultStride int, ...) (common.VkResult, error)
- type VulkanQueue
- func (q *VulkanQueue) APIVersion() common.APIVersion
- func (q *VulkanQueue) BindSparse(fence Fence, bindInfos []BindSparseInfo) (common.VkResult, error)
- func (q *VulkanQueue) DeviceHandle() driver.VkDevice
- func (q *VulkanQueue) Driver() driver.Driver
- func (q *VulkanQueue) Handle() driver.VkQueue
- func (q *VulkanQueue) Submit(fence Fence, o []SubmitInfo) (common.VkResult, error)
- func (q *VulkanQueue) WaitIdle() (common.VkResult, error)
- type VulkanRenderPass
- func (p *VulkanRenderPass) APIVersion() common.APIVersion
- func (p *VulkanRenderPass) Destroy(callbacks *driver.AllocationCallbacks)
- func (p *VulkanRenderPass) DeviceHandle() driver.VkDevice
- func (p *VulkanRenderPass) Driver() driver.Driver
- func (p *VulkanRenderPass) Handle() driver.VkRenderPass
- func (p *VulkanRenderPass) RenderAreaGranularity() Extent2D
- type VulkanSampler
- type VulkanSemaphore
- type VulkanShaderModule
- func (m *VulkanShaderModule) APIVersion() common.APIVersion
- func (m *VulkanShaderModule) Destroy(callbacks *driver.AllocationCallbacks)
- func (m *VulkanShaderModule) DeviceHandle() driver.VkDevice
- func (m *VulkanShaderModule) Driver() driver.Driver
- func (m *VulkanShaderModule) Handle() driver.VkShaderModule
- type WriteDescriptorSet
- type WriteDescriptorSetExtensionSource
Constants ¶
const ( // BufferCreateSparseBinding specifies that the buffer will be backed using sparse memory // binding. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html BufferCreateSparseBinding BufferCreateFlags = C.VK_BUFFER_CREATE_SPARSE_BINDING_BIT // BufferCreateSparseResidency specifies that the buffer can be partially backed using // sparse memory binding. Buffers created with this flag must also be created with the // BufferCreateSparseBinding flag. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html BufferCreateSparseResidency BufferCreateFlags = C.VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT // BufferCreateSparseAliased specifies that the buffer will be backed using sparse memory // binding with memory ranges that might also simultaneously be backing another buffer // (or another portion of the same buffer). Buffers created with this flag must also be // created with the BufferCreateSparseBinding flag. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html BufferCreateSparseAliased BufferCreateFlags = C.VK_BUFFER_CREATE_SPARSE_ALIASED_BIT // BufferUsageTransferSrc specifies that the buffer can be used as the source of a transfer command // (see the definition of PipelineStageTransfer). // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageTransferSrc BufferUsageFlags = C.VK_BUFFER_USAGE_TRANSFER_SRC_BIT // BufferUsageTransferDst specifies that the buffer can be used as the destination of a transfer // command. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageTransferDst BufferUsageFlags = C.VK_BUFFER_USAGE_TRANSFER_DST_BIT // BufferUsageUniformTexelBuffer specifies that the buffer can be used to create a BufferView // suitable for occupying a DescriptorSet slot of type DescriptorTypeUniformTexelBuffer. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageUniformTexelBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT // BufferUsageStorageTexelBuffer specifies that the buffer can be used to create a BufferView // suitable for occupying a DescriptorSet slot of type DescriptorTypeStorageTexelBuffer. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageStorageTexelBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT // BufferUsageUniformBuffer specifies that the buffer can be used in a DescriptorBufferInfo // suitable for occupying a DescriptorSet slot either of type DescriptorTypeUniformBuffer // or DescriptorTypeUniformBufferDynamic // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageUniformBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT // BufferUsageStorageBuffer specifies that the buffer can be used in a DescriptorBufferInfo // suitable for occupying a DescriptorSet slot either of type DescriptorTypeStorageBuffer or // DescriptorTypeStorageBufferDynamic. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageStorageBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_STORAGE_BUFFER_BIT // BufferUsageIndexBuffer specifies that the buffer is suitable for passing as the buffer parameter // to CommandBuffer.CmdBindIndexBuffer. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageIndexBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_INDEX_BUFFER_BIT // BufferUsageVertexBuffer specifies that the buffer is suitable for passing as an element of the // buffers slice to CommandBuffer.CmdBindVertexBuffers. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageVertexBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_VERTEX_BUFFER_BIT // BufferUsageIndirectBuffer specifies that the buffer is suitable for passing as the buffer parameter // to CommandBuffer.CmdDrawIndirect, CommandBuffer.CmdDrawIndexedIndirect, // or CommandBuffer.CmdDispatchIndirect. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageIndirectBuffer BufferUsageFlags = C.VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT // SharingModeExclusive specifies that access to any range or image subresource of the object will be // exclusive to a single queue family at a time. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSharingMode.html SharingModeExclusive SharingMode = C.VK_SHARING_MODE_EXCLUSIVE // SharingModeConcurrent specifies that concurrent access to any range or image subresource of the // object from multiple queue families is supported. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSharingMode.html SharingModeConcurrent SharingMode = C.VK_SHARING_MODE_CONCURRENT )
const ( // CommandBufferUsageOneTimeSubmit specifies that each recording of the CommandBuffer will only // be submitted once, and the CommandBuffer will be reset and recorded again between each submission // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html CommandBufferUsageOneTimeSubmit CommandBufferUsageFlags = C.VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT // CommandBufferUsageRenderPassContinue specifies that a secondary CommandBuffer is considered to // be entirely inside a RenderPass. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html CommandBufferUsageRenderPassContinue CommandBufferUsageFlags = C.VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT // CommandBufferUsageSimultaneousUse specifies that a CommandBuffer can be resubmitted to a Queue // while it is in the pending state, and recorded into multiple primary CommandBuffer objects // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html CommandBufferUsageSimultaneousUse CommandBufferUsageFlags = C.VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT // QueryControlPrecise specifies the precision of occlusion queries // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryControlFlagBits.html QueryControlPrecise QueryControlFlags = C.VK_QUERY_CONTROL_PRECISE_BIT // QueryPipelineStatisticInputAssemblyVertices specifies that queries managed by the pool // will count the number of vertices processed by the input assembly stage. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticInputAssemblyVertices QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT // QueryPipelineStatisticInputAssemblyPrimitives specifies that queries managed by the pool // will count the number of primitives processed by the input assembly stage. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticInputAssemblyPrimitives QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT // QueryPipelineStatisticVertexShaderInvocations specifies that queries managed by the pool // will count the number of vertex shader invocations. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticVertexShaderInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT // QueryPipelineStatisticGeometryShaderInvocations specifies that queries managed by the pool // will count the number of geometry shader invocations. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticGeometryShaderInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT // QueryPipelineStatisticGeometryShaderPrimitives specifies that queries managed by the pool will // count the number of primitives generated by geometry shader invocations. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticGeometryShaderPrimitives QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT // QueryPipelineStatisticClippingInvocations specifies that queries managed by the pool will // count the number of primitives processed by the primitive clipping stage of the pipeline. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticClippingInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT // QueryPipelineStatisticClippingPrimitives specifies that the queries managed by the pool // will count the number of primitives output by the primitive clipping stage of the pipeline. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticClippingPrimitives QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT // QueryPipelineStatisticFragmentShaderInvocations specifies that the queries managed by the // pool will count the number of fragment shader invocations. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticFragmentShaderInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT // QueryPipelineStatisticTessellationControlShaderPatches specifies that the queries managed by // the pool will count the number of patches processed by the tessellation control shader. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticTessellationControlShaderPatches QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT // QueryPipelineStatisticTessellationEvaluationShaderInvocations specifies that the queries managed // by the pool will count the number of invocations of the tessellation evaluation shader. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticTessellationEvaluationShaderInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT // QueryPipelineStatisticComputeShaderInvocations specifies that queries managed by the pool will // count the number of compute shader invocations. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html QueryPipelineStatisticComputeShaderInvocations QueryPipelineStatisticFlags = C.VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT )
const ( // CommandBufferResetReleaseResources specifies that most or all memory resources currently owned // by the CommandBuffer should be returned to the parent CommandPool // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferResetFlagBits.html CommandBufferResetReleaseResources CommandBufferResetFlags = C.VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT // CommandBufferLevelPrimary specifies a primary CommandBuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferLevel.html CommandBufferLevelPrimary CommandBufferLevel = C.VK_COMMAND_BUFFER_LEVEL_PRIMARY // CommandBufferLevelSecondary specifies a secondary CommandBuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferLevel.html CommandBufferLevelSecondary CommandBufferLevel = C.VK_COMMAND_BUFFER_LEVEL_SECONDARY // IndexTypeUInt16 specifies that indices are 16-bit unsigned integer values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndexType.html IndexTypeUInt16 IndexType = C.VK_INDEX_TYPE_UINT16 // IndexTypeUInt32 specifies that indices are 32-bit unsigned integer values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndexType.html IndexTypeUInt32 IndexType = C.VK_INDEX_TYPE_UINT32 // StencilFaceFront specifies that only the front set of stencil state is updated // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilFaceFlagBits.html StencilFaceFront StencilFaceFlags = C.VK_STENCIL_FACE_FRONT_BIT // StencilFaceBack specifies that only the back set of stencil state is updated // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilFaceFlagBits.html StencilFaceBack StencilFaceFlags = C.VK_STENCIL_FACE_BACK_BIT )
const ( // CommandPoolResetReleaseResources specifies that resetting a CommandPool recycles all of the // resources from the CommandPool back to the system // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolResetFlagBits.html CommandPoolResetReleaseResources CommandPoolResetFlags = C.VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT // CommandPoolCreateTransient specifies that CommandBuffer objects allocated from the pool // will be short-lived, meaning that they will be reset within a relatively short timeframe. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html CommandPoolCreateTransient CommandPoolCreateFlags = C.VK_COMMAND_POOL_CREATE_TRANSIENT_BIT // CommandPoolCreateResetBuffer allows any CommandBuffer allocated from a pool to be individually // reset to the initial state. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html CommandPoolCreateResetBuffer CommandPoolCreateFlags = C.VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT )
const ( // SparseImageFormatSingleMipTail specifies that the Image uses a single mip tail region for all // array layers // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html SparseImageFormatSingleMipTail SparseImageFormatFlags = C.VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT // SparseImageFormatAlignedMipSize specifies that the first mip level whose dimensions are not // integer multiples of the corresponding dimensions of the sparse Image block begins the // mip tail region // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html SparseImageFormatAlignedMipSize SparseImageFormatFlags = C.VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT // SparseImageFormatNonstandardBlockSize specifies that the Image uses non-standard sparse Image // block dimensions // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html SparseImageFormatNonstandardBlockSize SparseImageFormatFlags = C.VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT // ImageAspectColor specifies the color aspect // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html ImageAspectColor ImageAspectFlags = C.VK_IMAGE_ASPECT_COLOR_BIT // ImageAspectDepth speciifies the depth aspect // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html ImageAspectDepth ImageAspectFlags = C.VK_IMAGE_ASPECT_DEPTH_BIT // ImageAspectStencil specifies the stencil aspect // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html ImageAspectStencil ImageAspectFlags = C.VK_IMAGE_ASPECT_STENCIL_BIT // ImageAspectMetadata specifies the metadata aspect, used for sparse resource operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html ImageAspectMetadata ImageAspectFlags = C.VK_IMAGE_ASPECT_METADATA_BIT )
const ( // ImageCreateSparseBinding specifies that the Image will be backed using sparse memory // binding // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html ImageCreateSparseBinding ImageCreateFlags = C.VK_IMAGE_CREATE_SPARSE_BINDING_BIT // ImageCreateSparseResidency specifies that the Image can be partially backed using sparse // memory binding // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html ImageCreateSparseResidency ImageCreateFlags = C.VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT // ImageCreateSparseAliased specifies that the Image will be backed using sparse memory binding // with memory ranges that might also simultaneously be backing another Image or another portion // of the same Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html ImageCreateSparseAliased ImageCreateFlags = C.VK_IMAGE_CREATE_SPARSE_ALIASED_BIT // ImageCreateMutableFormat specifies that the Image can be used to create an ImageView with // a different format from the Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html ImageCreateMutableFormat ImageCreateFlags = C.VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT // ImageCreateCubeCompatible specifies that the Image can be used to create an ImageView of // type ImageViewTypeCube or ImageViewTypeCubeArray // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html ImageCreateCubeCompatible ImageCreateFlags = C.VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT // ImageLayoutUndefined specifies that the layout is unknown // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutUndefined ImageLayout = C.VK_IMAGE_LAYOUT_UNDEFINED // ImageLayoutGeneral supports all types of Device access // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutGeneral ImageLayout = C.VK_IMAGE_LAYOUT_GENERAL // ImageLayoutColorAttachmentOptimal must only be used as a color or resolve attachment // in a Framebuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutColorAttachmentOptimal ImageLayout = C.VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // ImageLayoutDepthStencilAttachmentOptimal specifies a layout for both the depth and stencil // aspects of a depth/stencil format Image allowing read and write access as a depth/stencil // attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutDepthStencilAttachmentOptimal ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL // ImageLayoutDepthStencilReadOnlyOptimal specifies a layout for both the depth and stencil // aspects of a depth/stencil format Image allowing read only access as a depth/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 ImageLayoutDepthStencilReadOnlyOptimal ImageLayout = C.VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL // ImageLayoutShaderReadOnlyOptimal specifies a layout allowing read-only access in a shader // as a sampled Image, combined Image/Sampler, or input attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutShaderReadOnlyOptimal ImageLayout = C.VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // ImageLayoutTransferSrcOptimal must only be used as a source Image of a transfer command // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutTransferSrcOptimal ImageLayout = C.VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL // ImageLayoutTransferDstOptimal must only be used as a destination Image of a transfer // command // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutTransferDstOptimal ImageLayout = C.VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL // ImageLayoutPreInitialized specifies that an Image object's memory is in a defined layout // and can be populated by data, but that it has not yet been initialized by the driver // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html ImageLayoutPreInitialized ImageLayout = C.VK_IMAGE_LAYOUT_PREINITIALIZED // ImageTilingOptimal specifies optimal tiling // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageTiling.html ImageTilingOptimal ImageTiling = C.VK_IMAGE_TILING_OPTIMAL // ImageTilingLinear specifies linear tiling // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageTiling.html ImageTilingLinear ImageTiling = C.VK_IMAGE_TILING_LINEAR // ImageType1D specifies a one-dimensional Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageType.html ImageType1D ImageType = C.VK_IMAGE_TYPE_1D // ImageType2D specifies a two-dimensional Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageType.html ImageType2D ImageType = C.VK_IMAGE_TYPE_2D // ImageType3D specifies a three-dimensional Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageType.html ImageType3D ImageType = C.VK_IMAGE_TYPE_3D // ImageUsageTransferSrc specifies that the Image can be used as the source of a transfer // command // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageTransferSrc ImageUsageFlags = C.VK_IMAGE_USAGE_TRANSFER_SRC_BIT // ImageUsageTransferDst specifies that the Image can be used as the destination of a // transfer command // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageTransferDst ImageUsageFlags = C.VK_IMAGE_USAGE_TRANSFER_DST_BIT // ImageUsageSampled specifies that the Image can be used to create an ImageView suitable // for occupying a DescriptorSet slot either of DescriptorTypeSampledImage or // DescriptorTypeCombinedImageSampler, and be sampled by a shader // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageSampled ImageUsageFlags = C.VK_IMAGE_USAGE_SAMPLED_BIT // ImageUsageStorage specifies that the Image can be used to create an ImageView suitable for // occupying a DescriptorSet slot of type DescriptorTypeStorageImage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageStorage ImageUsageFlags = C.VK_IMAGE_USAGE_STORAGE_BIT // ImageUsageColorAttachment specifies that the image can be used to create an ImageView // suitable for use as a color or resolve attachment in a Framebuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageColorAttachment ImageUsageFlags = C.VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT // ImageUsageDepthStencilAttachment specifies that the Image can be used to create an ImageView // suitable for use as a depth/stencil or depth/stencil resolve attachment in a Framebuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageDepthStencilAttachment ImageUsageFlags = C.VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT // ImageUsageTransientAttachment specifies that implementations may support using memory // allocations with MemoryPropertyLazilyAllocated to back an image with this usage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageTransientAttachment ImageUsageFlags = C.VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT // ImageUsageInputAttachment specifies that the image can be used to create an ImageView // suitable for occupying a DescriptorSet slot of type DescriptorTypeInputAttachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html ImageUsageInputAttachment ImageUsageFlags = C.VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT // Samples1 specifies an Image with one sample per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples1 SampleCountFlags = C.VK_SAMPLE_COUNT_1_BIT // Samples2 specifies an Image with 2 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples2 SampleCountFlags = C.VK_SAMPLE_COUNT_2_BIT // Samples4 specifies an Image with 4 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples4 SampleCountFlags = C.VK_SAMPLE_COUNT_4_BIT // Samples8 specifies an Image with 8 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples8 SampleCountFlags = C.VK_SAMPLE_COUNT_8_BIT // Samples16 specifies an Image with 16 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples16 SampleCountFlags = C.VK_SAMPLE_COUNT_16_BIT // Samples32 specifies an Image with 32 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples32 SampleCountFlags = C.VK_SAMPLE_COUNT_32_BIT // Samples64 specifies an Image with 64 samples per pixel // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html Samples64 SampleCountFlags = C.VK_SAMPLE_COUNT_64_BIT )
const ( // ComponentSwizzleIdentity specifies that the component is set to the identity swizzle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleIdentity ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_IDENTITY // ComponentSwizzleZero specifies that the component is set to zero // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleZero ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_ZERO // ComponentSwizzleOne specifies that hte component is set to either 1 or 1.0, depending // on the type of the ImageView format // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleOne ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_ONE // ComponentSwizzleRed specifies that the component is set to the value of the R component // of the Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleRed ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_R // ComponentSwizzleGreen specifies that the component is set to the value of the G component // of the Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleGreen ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_G // ComponentSwizzleBlue specifies that the component is set to the value of the B component // of the Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleBlue ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_B // ComponentSwizzleAlpha specifies that the component is set to the value of the A component // of the Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html ComponentSwizzleAlpha ComponentSwizzle = C.VK_COMPONENT_SWIZZLE_A // ImageViewType1D specifies a 1-dimensional ImageView // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewType1D ImageViewType = C.VK_IMAGE_VIEW_TYPE_1D // ImageViewType2D specifies a 2-dimensional ImageView // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewType2D ImageViewType = C.VK_IMAGE_VIEW_TYPE_2D // ImageViewType3D specifies a 3-dimensional ImageView // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewType3D ImageViewType = C.VK_IMAGE_VIEW_TYPE_3D // ImageViewTypeCube specifies a cube map // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewTypeCube ImageViewType = C.VK_IMAGE_VIEW_TYPE_CUBE // ImageViewType1DArray specifies an ImageView that is an array of 1-dimensional images // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewType1DArray ImageViewType = C.VK_IMAGE_VIEW_TYPE_1D_ARRAY // ImageViewType2DArray specifies an ImageView that is an array of 2-dimensional images // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewType2DArray ImageViewType = C.VK_IMAGE_VIEW_TYPE_2D_ARRAY // ImageViewTypeCubeArray specifies an ImageView that is an array of cube maps // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html ImageViewTypeCubeArray ImageViewType = C.VK_IMAGE_VIEW_TYPE_CUBE_ARRAY )
const ( // QueueGraphics specifies that Queue objects in this Queue family support graphics operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html QueueGraphics QueueFlags = C.VK_QUEUE_GRAPHICS_BIT // QueueCompute specifies that Queue objects in this Queue family support compute operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html QueueCompute QueueFlags = C.VK_QUEUE_COMPUTE_BIT // QueueTransfer specifies that Queue objects in this Queue family support transfer operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html QueueTransfer QueueFlags = C.VK_QUEUE_TRANSFER_BIT // QueueSparseBinding specifies that Queue objects in this Queue family support sparse // memory management operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html QueueSparseBinding QueueFlags = C.VK_QUEUE_SPARSE_BINDING_BIT // MemoryPropertyDeviceLocal specifies that memory allocated with this type is the most efficient // for Device access // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html MemoryPropertyDeviceLocal MemoryPropertyFlags = C.VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT // MemoryPropertyHostVisible specifies that memory allocated with this type can be mapped // for host access using DeviceMemory.Map // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html MemoryPropertyHostVisible MemoryPropertyFlags = C.VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT // MemoryPropertyHostCoherent specifies that the host cache management commands // Device.FlushMappedMemoryRanges and Device.InvalidateMappedMemoryRanges are not needed // to flush host writes to the Device or make Device writes visible to the host, respectively // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html MemoryPropertyHostCoherent MemoryPropertyFlags = C.VK_MEMORY_PROPERTY_HOST_COHERENT_BIT // MemoryPropertyLazilyAllocated specifies that the memory type only allows Device access to // the memory MemoryPropertyLazilyAllocated MemoryPropertyFlags = C.VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT // MemoryHeapDeviceLocal specifies that the heap corresponds to device-local memory // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeapFlagBits.html MemoryHeapDeviceLocal MemoryHeapFlags = C.VK_MEMORY_HEAP_DEVICE_LOCAL_BIT // PhysicalDeviceTypeOther specifies that the Device does not match any other available types // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html PhysicalDeviceTypeOther PhysicalDeviceType = C.VK_PHYSICAL_DEVICE_TYPE_OTHER // PhysicalDeviceTypeIntegratedGPU specifies that the Device is typically one embedded in or // tightly coupled with the host // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html PhysicalDeviceTypeIntegratedGPU PhysicalDeviceType = C.VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU // PhysicalDeviceTypeDiscreteGPU specifies that the Device is typically a separate processor // connected to the host via an interlink // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html PhysicalDeviceTypeDiscreteGPU PhysicalDeviceType = C.VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU // PhysicalDeviceTypeVirtualGPU specifies that the Device is typically a virtual node in // a virtualization environment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html PhysicalDeviceTypeVirtualGPU PhysicalDeviceType = C.VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU // PhysicalDeviceTypeCPU specifies that the Device is typically running on the same processors // as the host PhysicalDeviceTypeCPU PhysicalDeviceType = C.VK_PHYSICAL_DEVICE_TYPE_CPU )
const ( // QueryTypeOcclusion specifies an occlusion query // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryType.html QueryTypeOcclusion QueryType = C.VK_QUERY_TYPE_OCCLUSION // QueryTypePipelineStatistics specifies a pipeline statistics query // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryType.html QueryTypePipelineStatistics QueryType = C.VK_QUERY_TYPE_PIPELINE_STATISTICS // QueryTypeTimestamp specifies a timestamp query // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryType.html QueryTypeTimestamp QueryType = C.VK_QUERY_TYPE_TIMESTAMP // QueryResult64Bit specifies the results will be written as an array of 64-bit unsigned // integer values (instead of 32-bit unsigned integer values) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html QueryResult64Bit QueryResultFlags = C.VK_QUERY_RESULT_64_BIT // QueryResultWait specifies that Vulkan will wait for each query's status to become available // before retrieving its results // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html QueryResultWait QueryResultFlags = C.VK_QUERY_RESULT_WAIT_BIT // QueryResultWithAvailability specifies that the availability status accompanies the results // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html QueryResultWithAvailability QueryResultFlags = C.VK_QUERY_RESULT_WITH_AVAILABILITY_BIT // QueryResultPartial specifies that returning partial results is acceptable // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html QueryResultPartial QueryResultFlags = C.VK_QUERY_RESULT_PARTIAL_BIT )
const ( // AttachmentDescriptionMayAlias specifies that the attachment aliases the same DeviceMemory // as other attachments // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescriptionFlagBits.html AttachmentDescriptionMayAlias AttachmentDescriptionFlags = C.VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT // AttachmentLoadOpLoad specifies that the previous contents of the Image within the render // area will be preserved // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentLoadOp.html AttachmentLoadOpLoad AttachmentLoadOp = C.VK_ATTACHMENT_LOAD_OP_LOAD // AttachmentLoadOpClear specifies that the contents within the rendera area will be cleared // to a uniform value, which is specified when a RenderPass instance is begun // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentLoadOp.html AttachmentLoadOpClear AttachmentLoadOp = C.VK_ATTACHMENT_LOAD_OP_CLEAR // AttachmentLoadOpDontCare specifies that the previous contents within the area need not // be preserved // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentLoadOp.html AttachmentLoadOpDontCare AttachmentLoadOp = C.VK_ATTACHMENT_LOAD_OP_DONT_CARE // AttachmentStoreOpStore specifies the contents generated during the RenderPass and within // the render area are written to memory // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentStoreOp.html AttachmentStoreOpStore AttachmentStoreOp = C.VK_ATTACHMENT_STORE_OP_STORE // AttachmentStoreOpDontCare specifies the contents within the render area are not // needed after rendering, and may be discarded // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentStoreOp.html AttachmentStoreOpDontCare AttachmentStoreOp = C.VK_ATTACHMENT_STORE_OP_DONT_CARE // DependencyByRegion specifies that dependencies will be Framebuffer local // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html DependencyByRegion DependencyFlags = C.VK_DEPENDENCY_BY_REGION_BIT // PipelineBindPointGraphics specifies binding as a graphics Pipeline // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineBindPoint.html PipelineBindPointGraphics PipelineBindPoint = C.VK_PIPELINE_BIND_POINT_GRAPHICS // PipelineBindPointCompute specifies binding as a compute Pipeline // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineBindPoint.html PipelineBindPointCompute PipelineBindPoint = C.VK_PIPELINE_BIND_POINT_COMPUTE // SubpassExternal is a subpass index sentinel expanding synchronization scope outside a // subpass // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_SUBPASS_EXTERNAL.html SubpassExternal = int(C.VK_SUBPASS_EXTERNAL) )
const ( // LodClampNone is a special constant value used for SamplerCreateInfo.MaxLod to indicate // that maximum LOD clamping should not be performed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_LOD_CLAMP_NONE.html LodClampNone float32 = C.VK_LOD_CLAMP_NONE // BorderColorFloatTransparentBlack specifies a transparent, floating-point format, // black color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorFloatTransparentBlack BorderColor = C.VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK // BorderColorIntTransparentBlack specifies a transparent, integer format, black color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorIntTransparentBlack BorderColor = C.VK_BORDER_COLOR_INT_TRANSPARENT_BLACK // BorderColorFloatOpaqueBlack specifies an opaque, floating-point format, black color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorFloatOpaqueBlack BorderColor = C.VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK // BorderColorIntOpaqueBlack specifies an opaque, integer format, black color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorIntOpaqueBlack BorderColor = C.VK_BORDER_COLOR_INT_OPAQUE_BLACK // BorderColorFloatOpaqueWhite specifies an opaque, floating-point format, white color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorFloatOpaqueWhite BorderColor = C.VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE // BorderColorIntOpaqueWhite specifies an opaque, integer format, white color // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html BorderColorIntOpaqueWhite BorderColor = C.VK_BORDER_COLOR_INT_OPAQUE_WHITE // CompareOpNever specifies that the comparison always evaluates false // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpNever CompareOp = C.VK_COMPARE_OP_NEVER // CompareOpLess specifies that the comparison evaluates reference < test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpLess CompareOp = C.VK_COMPARE_OP_LESS // CompareOpEqual specifies that the comparison evaluates reference == test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpEqual CompareOp = C.VK_COMPARE_OP_EQUAL // CompareOpLessOrEqual specifies that the comparison evaluates reference <= test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpLessOrEqual CompareOp = C.VK_COMPARE_OP_LESS_OR_EQUAL // CompareOpGreater specifies that the comparison evaluates reference > test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpGreater CompareOp = C.VK_COMPARE_OP_GREATER // CompareOpNotEqual specifies that the comparison evaluates reference != test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpNotEqual CompareOp = C.VK_COMPARE_OP_NOT_EQUAL // CompareOpGreaterOrEqual specifies that the comparison evaluates reference >= test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpGreaterOrEqual CompareOp = C.VK_COMPARE_OP_GREATER_OR_EQUAL // CompareOpAlways specifies that the comparison always evaluates true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html CompareOpAlways CompareOp = C.VK_COMPARE_OP_ALWAYS // FilterNearest specifies nearest filtering // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFilter.html FilterNearest Filter = C.VK_FILTER_NEAREST // FilterLinear specifies linear filtering // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFilter.html FilterLinear Filter = C.VK_FILTER_LINEAR // SamplerMipmapModeNearest specifies nearest filtering // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerMipmapMode.html SamplerMipmapModeNearest SamplerMipmapMode = C.VK_SAMPLER_MIPMAP_MODE_NEAREST // SamplerMipmapModeLinear specifiest linear filtering // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerMipmapMode.html SamplerMipmapModeLinear SamplerMipmapMode = C.VK_SAMPLER_MIPMAP_MODE_LINEAR // SamplerAddressModeRepeat specifies that the repeat wrap mode will be used // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html SamplerAddressModeRepeat SamplerAddressMode = C.VK_SAMPLER_ADDRESS_MODE_REPEAT // SamplerAddressModeMirroredRepeat specifies that the mirrored repeat wrap mode will be used // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html SamplerAddressModeMirroredRepeat SamplerAddressMode = C.VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT // SamplerAddressModeClampToEdge specifies that the clamp-to-edge wrap mode will be used // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html SamplerAddressModeClampToEdge SamplerAddressMode = C.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE // SamplerAddressModeClampToBorder specifies that the clamp-to-border wrap mode will be used // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html SamplerAddressModeClampToBorder SamplerAddressMode = C.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER )
const ( // BlendFactorZero provides 0 for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorZero BlendFactor = C.VK_BLEND_FACTOR_ZERO // BlendFactorOne provides 1 for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOne BlendFactor = C.VK_BLEND_FACTOR_ONE // BlendFactorSrcColor provides R(s0), G(s0), and B(s0) to color blend operations and // A(s0) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorSrcColor BlendFactor = C.VK_BLEND_FACTOR_SRC_COLOR // BlendFactorOneMinusSrcColor provides 1-R(s0), 1-G(s0), and 1-B(s0) to color blend operations // and 1-A(s0) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusSrcColor BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR // BlendFactorDstColor provides R(d), G(d), and B(d) to color blend operations and A(d) // to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorDstColor BlendFactor = C.VK_BLEND_FACTOR_DST_COLOR // BlendFactorOneMinusDstColor provides 1-R(d), 1-G(d), and 1-B(d) to color blend operations // and 1-A(d) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusDstColor BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR // BlendFactorSrcAlpha provides A(s0) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorSrcAlpha BlendFactor = C.VK_BLEND_FACTOR_SRC_ALPHA // BlendFactorOneMinusSrcAlpha provides 1-A(s0) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusSrcAlpha BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA // BlendFactorDstAlpha provides A(d) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorDstAlpha BlendFactor = C.VK_BLEND_FACTOR_DST_ALPHA // BlendFactorOneMinusDstAlpha provides 1-A(d) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusDstAlpha BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA // BlendFactorConstantColor provides R(c), G(c), and B(c) to color blend operations and // A(c) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorConstantColor BlendFactor = C.VK_BLEND_FACTOR_CONSTANT_COLOR // BlendFactorOneMinusConstantColor provides 1-R(c), 1-G(c), and 1-B(c) to color blend // operations and 1-A(c) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusConstantColor BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR // BlendFactorConstantAlpha provides A(c) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorConstantAlpha BlendFactor = C.VK_BLEND_FACTOR_CONSTANT_ALPHA // BlendFactorOneMinusConstantAlpha provides 1-A(c) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusConstantAlpha BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA // BlendFactorSrcAlphaSaturate provides MIN(A(s0), 1-A(d)) for all channels to color blend // operations and 1 to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorSrcAlphaSaturate BlendFactor = C.VK_BLEND_FACTOR_SRC_ALPHA_SATURATE // BlendFactorSrc1Color provides R(s1), G(s1), and B(s1) to color blend operations and // A(s1) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorSrc1Color BlendFactor = C.VK_BLEND_FACTOR_SRC1_COLOR // BlendFactorOneMinusSrc1Color provides 1-R(s1), 1-G(s1), and 1-B(s1) to color blend // operations and 1-A(s1) to alpha blend operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusSrc1Color BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR // BlendFactorSrc1Alpha provides A(s1) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorSrc1Alpha BlendFactor = C.VK_BLEND_FACTOR_SRC1_ALPHA // BlendFactorOneMinusSrc1Alpha provides 1-A(s1) for all channels to the blend operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html BlendFactorOneMinusSrc1Alpha BlendFactor = C.VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA // BlendOpAdd outputs the following, given s0 is the source color, d is the destination // color, sf is the source blend factor, and df is the destination blend factor: // * Color blend operation: [R(s0) * R(sf) + R(d) * R(df), G(s0) * G(sf) + G(d) * G(df), // B(s0) * B(sf) + B(d) * B(df)] // * Alpha blend operation: A(s0) * A(sf) + A(d) * A(df) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html BlendOpAdd BlendOp = C.VK_BLEND_OP_ADD // BlendOpSubtract outputs the following, given s0 is the source color, d is the destination // color, sf is the source blend factor, and df is the destination blend factor: // * Color blend operation: [R(s0) * R(sf) - R(d) * R(df), G(s0) * G(sf) - G(d) * G(df), // B(s0) * B(sf) - B(d) * B(df)] // * Alpha blend operation: A(s0) * A(sf) - A(d) * A(df) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html BlendOpSubtract BlendOp = C.VK_BLEND_OP_SUBTRACT // BlendOpMin outputs the following, given s0 is the source color and d is the destination color: // * Color blend operation: [MIN(R(s0), R(d)), MIN(G(s0), G(d)), MIN(B(s0), B(d))] // * Alpha blend operation: MIN(A(s0), A(d)) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html BlendOpMin BlendOp = C.VK_BLEND_OP_MIN // BlendOpMax outputs the following, given s0 is the source color and d is the destination color: // * Color blend operation: [MAX(R(s0), R(d)), MAX(G(s0), G(d)), MAX(B(s0), B(d))] // * Alpha blend operation: MAX(A(s0), A(d)) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html BlendOpMax BlendOp = C.VK_BLEND_OP_MAX // LogicOpClear sets the output value to 0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpClear LogicOp = C.VK_LOGIC_OP_CLEAR // LogicOpAnd sets the output value to s0 & d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpAnd LogicOp = C.VK_LOGIC_OP_AND // LogicOpAndReverse sets the output value to s0 & ~d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpAndReverse LogicOp = C.VK_LOGIC_OP_AND_REVERSE // LogicOpCopy sets the output value to s0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpCopy LogicOp = C.VK_LOGIC_OP_COPY // LogicOpAndInverted sets the output value to ~s0 & d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpAndInverted LogicOp = C.VK_LOGIC_OP_AND_INVERTED // LogicOpNoop sets the output value to d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpNoop LogicOp = C.VK_LOGIC_OP_NO_OP // LogicOpXor sets the output value to s0 ^ d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpXor LogicOp = C.VK_LOGIC_OP_XOR // LogicOpOr sets the output value to s0 | d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpOr LogicOp = C.VK_LOGIC_OP_OR // LogicOpNor sets the output value to ~(s0 | d) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpNor LogicOp = C.VK_LOGIC_OP_NOR // LogicOpEquivalent sets the output value to ~(s0 ^ d) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpEquivalent LogicOp = C.VK_LOGIC_OP_EQUIVALENT // LogicOpInvert sets the output value to ~d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpInvert LogicOp = C.VK_LOGIC_OP_INVERT // LogicOpOrReverse sets the output value to s0 | ~d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpOrReverse LogicOp = C.VK_LOGIC_OP_OR_REVERSE // LogicOpCopyInverted sets the output value to ~s0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpCopyInverted LogicOp = C.VK_LOGIC_OP_COPY_INVERTED // LogicOpOrInverted sets the output value to ~s0 | d // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpOrInverted LogicOp = C.VK_LOGIC_OP_OR_INVERTED // LogicOpNand sets the output value to ~(s0 & d) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpNand LogicOp = C.VK_LOGIC_OP_NAND // LogicOpSet sets the output value to 0xFFFFF... // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html LogicOpSet LogicOp = C.VK_LOGIC_OP_SET )
const ( // PolygonModeFill specifies that polygons are rendered using the polygon rasterization rules // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPolygonMode.html PolygonModeFill PolygonMode = C.VK_POLYGON_MODE_FILL // PolygonModeLine specifies that polygon edges are drawn as line segments // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPolygonMode.html PolygonModeLine PolygonMode = C.VK_POLYGON_MODE_LINE // PolygonModePoint specifies that polygon vertices are drawn as points // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPolygonMode.html PolygonModePoint PolygonMode = C.VK_POLYGON_MODE_POINT // CullModeFront specifies that front-facing triangles are discarded // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCullModeFlagBits.html CullModeFront CullModeFlags = C.VK_CULL_MODE_FRONT_BIT // CullModeBack specifies that back-facing triangles are discarded // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCullModeFlagBits.html CullModeBack CullModeFlags = C.VK_CULL_MODE_BACK_BIT // FrontFaceCounterClockwise specifies that a triangle with positive area is considered // front-facing // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFrontFace.html FrontFaceCounterClockwise FrontFace = C.VK_FRONT_FACE_COUNTER_CLOCKWISE // FrontFaceClockwise specifies that a triangle with negative area is considered front-facing // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFrontFace.html FrontFaceClockwise FrontFace = C.VK_FRONT_FACE_CLOCKWISE )
const ( // VKSuccess indicates the command was successfully completed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKSuccess common.VkResult = C.VK_SUCCESS // VKNotReady indicates a Fence or query has not yet completed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKNotReady common.VkResult = C.VK_NOT_READY // VKTimeout indicates a wait operation has not completed in the specified time // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKTimeout common.VkResult = C.VK_TIMEOUT // VKEventSet indicates an Event is signaled // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKEventSet common.VkResult = C.VK_EVENT_SET // VKEventReset indicates an Event is unsignaled // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKEventReset common.VkResult = C.VK_EVENT_RESET // VKIncomplete indicates a return array was too small for the result // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKIncomplete common.VkResult = C.VK_INCOMPLETE // VKErrorOutOfHostMemory indicates a host memory allocation has failed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorOutOfHostMemory common.VkResult = C.VK_ERROR_OUT_OF_HOST_MEMORY // VKErrorOutOfDeviceMemory indicates a DeviceMemory allocation has failed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorOutOfDeviceMemory common.VkResult = C.VK_ERROR_OUT_OF_DEVICE_MEMORY // VKErrorInitializationFailed indicates initialization of an object could not be completed // for implementation-specific reasons // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorInitializationFailed common.VkResult = C.VK_ERROR_INITIALIZATION_FAILED // VKErrorDeviceLost indicates the logical or physical device has been lost // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorDeviceLost common.VkResult = C.VK_ERROR_DEVICE_LOST // VKErrorMemoryMapFailed indicates mapping of a memory object has failed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorMemoryMapFailed common.VkResult = C.VK_ERROR_MEMORY_MAP_FAILED // VKErrorLayerNotPresent indicates a requested layer is not present or could not be loaded // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorLayerNotPresent common.VkResult = C.VK_ERROR_LAYER_NOT_PRESENT // VKErrorExtensionNotPresent indicates a requested extension is not supported // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorExtensionNotPresent common.VkResult = C.VK_ERROR_EXTENSION_NOT_PRESENT // VKErrorFeatureNotPresent indicates a requested feature is not supported // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorFeatureNotPresent common.VkResult = C.VK_ERROR_FEATURE_NOT_PRESENT // VKErrorIncompatibleDriver indicates the requested version of Vulkan is not supported // by the driver or is otherwise incompatible for implementation-specific reasons // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorIncompatibleDriver common.VkResult = C.VK_ERROR_INCOMPATIBLE_DRIVER // VKErrorTooManyObjects indicates too many objects of the type have already been created // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorTooManyObjects common.VkResult = C.VK_ERROR_TOO_MANY_OBJECTS // VKErrorFormatNotSupported indicates a requested format is not supported on this Device // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorFormatNotSupported common.VkResult = C.VK_ERROR_FORMAT_NOT_SUPPORTED // VKErrorFragmentedPool indicates a pool allocation has failed due to fragmentation of the // pool's memory // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorFragmentedPool common.VkResult = C.VK_ERROR_FRAGMENTED_POOL // VKErrorUnknown indicates an unknown error has occurred, either the application has // provided invalid input, or an implementation failure has occurred // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VKErrorUnknown common.VkResult = C.VK_ERROR_UNKNOWN )
const AttachmentUnused int = C.VK_ATTACHMENT_UNUSED
AttachmentUnused indicates that a render pass attachment is not used
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_ATTACHMENT_UNUSED.html
Variables ¶
var FormatMapping = make(map[Format]string)
Functions ¶
This section is empty.
Types ¶
type AccessFlags ¶
type AccessFlags int32
AccessFlags specifies memory access types that will participate in a memory dependency
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html
const ( // AccessIndirectCommandRead specifies read access to indirect command data read as part // of an indirect build, trace, drawing or dispatching command. Such access occurs in the // PipelineStageDrawIndirect pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessIndirectCommandRead AccessFlags = C.VK_ACCESS_INDIRECT_COMMAND_READ_BIT // AccessIndexRead specifies read access to an index buffer as part of an indexed drawing // command, bound by vkCmdBindIndexBuffer. Such access occurs in the // PipelineStageVertexInput pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessIndexRead AccessFlags = C.VK_ACCESS_INDEX_READ_BIT // AccessVertexAttributeRead specifies read access to a vertex buffer as part of a drawing // command, bound by vkCmdBindVertexBuffers. Such access occurs in the // PipelineStageVertexInput pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessVertexAttributeRead AccessFlags = C.VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT // AccessUniformRead specifies read access to a uniform buffer in any shader pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessUniformRead AccessFlags = C.VK_ACCESS_UNIFORM_READ_BIT // AccessInputAttachmentRead specifies read access to an input attachment within a render // pass during subpass shading or fragment shading. Such access occurs in the // PipelineStage2SubpassShadingHuawei or PipelineStageFragmentShader // pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessInputAttachmentRead AccessFlags = C.VK_ACCESS_INPUT_ATTACHMENT_READ_BIT // AccessShaderRead specifies read access to a uniform buffer, uniform texel buffer, // sampled image, storage buffer, physical storage buffer, shader binding table, storage // texel buffer, or storage image in any shader pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessShaderRead AccessFlags = C.VK_ACCESS_SHADER_READ_BIT // AccessShaderWrite specifies write access to a storage buffer, physical storage buffer, // storage texel buffer, or storage image in any shader pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessShaderWrite AccessFlags = C.VK_ACCESS_SHADER_WRITE_BIT // AccessColorAttachmentRead specifies read access to a color attachment, such as via // blending, logic operations, or via certain subpass load operations. It does not include // advanced blend operations. Such access occurs in the // PipelineStageColorAttachmentOutput pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessColorAttachmentRead AccessFlags = C.VK_ACCESS_COLOR_ATTACHMENT_READ_BIT // AccessColorAttachmentWrite specifies write access to a color, resolve, or depth/stencil // resolve attachment during a render pass or via certain subpass load and store operations. // Such access occurs in the PipelineStageColorAttachmentOutput pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessColorAttachmentWrite AccessFlags = C.VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT // AccessDepthStencilAttachmentRead specifies read access to a depth/stencil attachment, via // depth or stencil operations or via certain subpass load operations. Such access occurs in // the PipelineStageEarlyFragmentTests or PipelineStageLateFramentTests // pipeline stages. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessDepthStencilAttachmentRead AccessFlags = C.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT // AccessDepthStencilAttachmentWrite specifies write access to a depth/stencil attachment, // via depth or stencil operations or via certain subpass load and store operations. Such // access occurs in the PipelineStageEarlyFragmentTests or // PipelineStageLateFragmentTests pipeline stages. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessDepthStencilAttachmentWrite AccessFlags = C.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT // AccessTransferRead specifies read access to an image or buffer in a copy operation. Such // access occurs in the PipelineStage2AllTransfer pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessTransferRead AccessFlags = C.VK_ACCESS_TRANSFER_READ_BIT // AccessTransferWrite specifies write access to an image or buffer in a clear or copy // operation. Such access occurs in the PipelineStage2AllTransfer pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessTransferWrite AccessFlags = C.VK_ACCESS_TRANSFER_WRITE_BIT // AccessHostRead specifies read access by a host operation. Accesses of this type are not // performed through a resource, but directly on memory. Such access occurs in the // PipelineStageHost pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessHostRead AccessFlags = C.VK_ACCESS_HOST_READ_BIT // AccessHostWrite specifies write access by a host operation. Accesses of this type are not // performed through a resource, but directly on memory. Such access occurs in the // PipelineStageHost pipeline stage. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessHostWrite AccessFlags = C.VK_ACCESS_HOST_WRITE_BIT // AccessMemoryRead specifies all read accesses. It is always valid in any access mask, // and is treated as equivalent to setting all READ access flags that are valid where it is // used. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessMemoryRead AccessFlags = C.VK_ACCESS_MEMORY_READ_BIT // AccessMemoryWrite specifies all write accesses. It is always valid in any access mask, // and is treated as equivalent to setting all WRITE access flags that are valid where it // is used. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccessFlags.html AccessMemoryWrite AccessFlags = C.VK_ACCESS_MEMORY_WRITE_BIT )
func (AccessFlags) Register ¶
func (f AccessFlags) Register(str string)
func (AccessFlags) String ¶
func (f AccessFlags) String() string
type AttachmentDescription ¶
type AttachmentDescription struct { // Flags specifies additional properties of the attachment Flags AttachmentDescriptionFlags // Format specifies the format of the ImageView that will be used for the attachment Format Format // Samples specifies the number of samples of the Image Samples 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 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 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 AttachmentLoadOp // StencilStoreOp specifies how the contents of stencil components of the attachment are treated // at the end of the subpass where it is last used StencilStoreOp AttachmentStoreOp // InitialLayout is the layout the attachment Image subresource will be in when a RenderPass // instance begins InitialLayout ImageLayout // FinalLayout is the layout the attachment Image subresource will be transitioned to when // a RenderPass instance ends FinalLayout ImageLayout }
AttachmentDescription specifies an attachment description
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescription.html
type AttachmentDescriptionFlags ¶
type AttachmentDescriptionFlags int32
AttachmentDescriptionFlags specifies additional properties of an attachment
func (AttachmentDescriptionFlags) Register ¶
func (f AttachmentDescriptionFlags) Register(str string)
func (AttachmentDescriptionFlags) String ¶
func (f AttachmentDescriptionFlags) String() string
type AttachmentLoadOp ¶
type AttachmentLoadOp int32
AttachmentLoadOp specifies how contents of an attachment are treated at the beginning of a subpass
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentLoadOp.html
func (AttachmentLoadOp) Register ¶
func (e AttachmentLoadOp) Register(str string)
func (AttachmentLoadOp) String ¶
func (e AttachmentLoadOp) String() string
type AttachmentReference ¶
type AttachmentReference struct { // Attachment is either an integer value identifying an attachment at the corresponding // index or AttachmentUnused to signify that it is not used Attachment int // Layout specifies the layout the attachment uses during the subpass Layout ImageLayout }
AttachmentReference specifies an attachment reference
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentReference.html
type AttachmentStoreOp ¶
type AttachmentStoreOp int32
AttachmentStoreOp specifies how contents of an attachment are treated at the end of a subpass
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentStoreOp.html
func (AttachmentStoreOp) Register ¶
func (e AttachmentStoreOp) Register(str string)
func (AttachmentStoreOp) String ¶
func (e AttachmentStoreOp) String() string
type BindSparseInfo ¶ added in v0.2.0
type BindSparseInfo struct { // WaitSemaphores is a slice of Semaphore objects upon which to wait before the sparse // binding operations for this batch begin execution WaitSemaphores []Semaphore // SignalSemaphores a slice of Semaphore objects which will be signaled when the sparse binding // operations for this batch have completed execution SignalSemaphores []Semaphore // BufferBinds is a slice of SparseBufferMemoryBindInfo structures BufferBinds []SparseBufferMemoryBindInfo // ImageOpaqueBinds is a slice of SparseImageOpaqueBindInfo structures, indicating opaque // sparse Image bindings to perform ImageOpaqueBinds []SparseImageOpaqueMemoryBindInfo // ImageBinds is a slice of SparseImageMemoryBindInfo structures, indicating sparse Image // bindings to perform ImageBinds []SparseImageMemoryBindInfo common.NextOptions }
BindSparseInfo specifies a sparse binding operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindSparseInfo.html
type BlendFactor ¶
type BlendFactor int32
BlendFactor specifies Framebuffer blending factors
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html
func (BlendFactor) Register ¶
func (e BlendFactor) Register(str string)
func (BlendFactor) String ¶
func (e BlendFactor) String() string
type BlendOp ¶
type BlendOp int32
BlendOp specifies Framebuffer blending operations
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html
type BorderColor ¶
type BorderColor int32
BorderColor specifies border color used for texture lookups
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html
func (BorderColor) Register ¶
func (e BorderColor) Register(str string)
func (BorderColor) String ¶
func (e BorderColor) String() string
type Buffer ¶
type Buffer interface { // Handle is the internal Vulkan object handle for this Buffer Handle() driver.VkBuffer // DeviceHandle is the internal Vulkan object handle for the Device this Buffer belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Buffer Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Buffer. If it is // at least vulkan 1.1, core1_1.PromoteBuffer can be used to promote this to a // core1_1.Buffer, etc. APIVersion() common.APIVersion // Destroy deletes this buffer and underlying structures from the device. **Warning** // after destruction, this object will still exist, but the Vulkan object handle // that backs it will be invalid. Do not call further methods on this object. // // callbacks - An set of allocation callbacks to control the memory free behavior of this command // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyBuffer.html Destroy(callbacks *driver.AllocationCallbacks) // MemoryRequirements returns the memory requirements for this Buffer. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferMemoryRequirements.html MemoryRequirements() *MemoryRequirements // BindBufferMemory binds DeviceMemory to this Buffer // // memory - A DeviceMemory object describing the device memory to attach // // offset - The start offset of the region of memory which is to be bound to the buffer. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkBindBufferMemory.html BindBufferMemory(memory DeviceMemory, offset int) (common.VkResult, error) }
Buffer represents a linear array of data, which is used for various purposes by binding it to a graphics or compute pipeline.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBuffer.html
type BufferCopy ¶
type BufferCopy struct { // SrcOffset is the starting offset in bytes from the start of the source Buffer SrcOffset int // DstOffset is the starting offset in bytes from the start of the dest Buffer DstOffset int // Size is the number of bytes to copy Size int }
BufferCopy specifies a buffer copy operation via CommandBuffer.CmdCopyBuffer
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCopy.html
func (BufferCopy) PopulateCPointer ¶
type BufferCreateFlags ¶
type BufferCreateFlags int32
BufferCreateFlags specifies additional parameters of a Buffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html
func (BufferCreateFlags) Register ¶
func (f BufferCreateFlags) Register(str string)
func (BufferCreateFlags) String ¶
func (f BufferCreateFlags) String() string
type BufferCreateInfo ¶
type BufferCreateInfo struct { // Flags specifies additional parameters of the buffer Flags BufferCreateFlags // Size is the size in bytes of the buffer to be created Size int // Usage spcifies allowed usages of the buffer Usage BufferUsageFlags // SharingMode specifies the sharing mode of the buffer when it will be accessed by multiple // queue families SharingMode SharingMode // QueueFamilyIndices is a slice of queue families that will access this buffer. It is ignored // if SharingMode is not SharingModeConcurrent. QueueFamilyIndices []int // NextOptions allows additional creation option structures to be chained common.NextOptions }
BufferCreateInfo specifies the parameters of a newly-created buffer object
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferCreateInfo.html
type BufferImageCopy ¶
type BufferImageCopy struct { // BufferOffset is the offset in bytes from the start of the Buffer BufferOffset int // BufferRowLength is the size in texels of the rows of the image stored in the Buffer. // 0 indicates that the ImageExtent controls this value BufferRowLength int // BufferImageHeight is the height in texels of the image stored in the Buffer // 0 indicates that the ImageExtent controls this value BufferImageHeight int // ImageSubresource is used to specify the specific image subresources of the Image ImageSubresource ImageSubresourceLayers // ImageOffset selects the initial x, y, and z offset in texels of the Image subregion ImageOffset Offset3D // ImageExtent is the size in texels of the Image subregion ImageExtent Extent3D }
BufferImageCopy specifies a buffer image copy operation via CommandBuffer.CmdCopyBufferToImage or CommandBuffer.CmdCopyImageToBuffer
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferImageCopy.html
func (BufferImageCopy) PopulateCPointer ¶
type BufferMemoryBarrier ¶
type BufferMemoryBarrier struct { // SrcAccessMask specifies a source access mask SrcAccessMask AccessFlags // DstAccessMask specifies a destination access mask DstAccessMask AccessFlags // SrcQueueFamilyIndex is the source queue family for a queue family ownership transfer SrcQueueFamilyIndex int // DstQueueFamilyIndex is the source queue family for a queue family ownership transfer DstQueueFamilyIndex int // Buffer is the buffer whose backing memory is affected by the barrier Buffer Buffer // Offset is an offset in bytes into the backing memory for Buffer Offset int // Size is a size in bytes of the affected area of backing memory for Buffer Size int common.NextOptions }
BufferMemoryBarrier specifies a buffer memory barrier
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferMemoryBarrier.html
type BufferUsageFlags ¶
type BufferUsageFlags int32
BufferUsageFlags specifies allowed usage of a Buffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html
func (BufferUsageFlags) Register ¶
func (f BufferUsageFlags) Register(str string)
func (BufferUsageFlags) String ¶
func (f BufferUsageFlags) String() string
type BufferView ¶
type BufferView interface { // Handle is the internal Vulkan object handle for this BufferView Handle() driver.VkBufferView // DeviceHandle is the internal Vulkan object handle for the Device this BufferView belongs to DeviceHandle() driver.VkDevice // Driver is the vulkan wrapper driver used by this BufferView Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Buffer. If it is // at least vulkan 1.1, core1_1.PromoteBufferView can be used to promote this to a // core1_1.BufferView, etc. APIVersion() common.APIVersion // Destroy deletes this buffer and the underlying structures from the device. **Warning** // after destruction, this object will continue to exist, but the Vulkan object handle // that backs it will be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyBufferView.html Destroy(callbacks *driver.AllocationCallbacks) }
BufferView represents a contiguous range of a buffer and a specific format to be used to interpret the data.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferView.html
type BufferViewCreateFlags ¶
type BufferViewCreateFlags int32
BufferViewCreateFlags is a set of flags reserved for future use
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferViewCreateFlags.html
func (BufferViewCreateFlags) Register ¶
func (f BufferViewCreateFlags) Register(str string)
func (BufferViewCreateFlags) String ¶
func (f BufferViewCreateFlags) String() string
type BufferViewCreateInfo ¶
type BufferViewCreateInfo struct { // Buffer is the Buffer on which the view will be created Buffer Buffer // Flags is reserved for future use Flags BufferViewCreateFlags // Format describes the format of the data element in the Buffer Format Format // Offset is the offset in bytes from the base address of the Buffer Offset int // Range is the size in bytes of the BufferView Range int common.NextOptions }
BufferViewCreateInfo specifies the parameters of a newly-created BufferView object
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferViewCreateInfo.html
type ClearAttachment ¶
type ClearAttachment struct { // AspectMask is a mask selecting the color, depth, and/or stencil aspects of the attachment // to be cleared AspectMask ImageAspectFlags // ColorAttachment is an index into the currently-bound color attachments ColorAttachment int // ClearValue is the color or depth/stencil value to clear the attachment to ClearValue ClearValue }
ClearAttachment specifies a clear attachment
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClearAttachment.html
func (ClearAttachment) PopulateCPointer ¶
type ClearColorValue ¶
ClearColorValue specifies a clear color value
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClearColorValue.html
type ClearRect ¶
type ClearRect struct { // Rect is the two-dimensional region to be cleared Rect Rect2D // BaseArrayLayer is the first layer to be cleared BaseArrayLayer int // LayerCount is the number of layers to clear LayerCount int }
ClearRect specifies a clear rectangle
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClearRect.html
type ClearValue ¶
ClearValue specifies a clear value
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClearValue.html
type ClearValueDepthStencil ¶
type ClearValueDepthStencil struct { // Depth is the clear value for the depth aspect of the depth/stencil attachment Depth float32 // Stencil is the clear value of the stencil aspect of the depth/stencil attachment Stencil uint32 }
ClearValueDepthStencil is a ClearValue specifying a clear depth stencil value
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClearDepthStencilValue.html
func (ClearValueDepthStencil) PopulateValueUnion ¶
func (s ClearValueDepthStencil) PopulateValueUnion(c unsafe.Pointer)
type ClearValueFloat ¶
type ClearValueFloat [4]float32
ClearValueFloat is a ClearValue and ClearColorValue representing 4 32-bit float color channels
func (ClearValueFloat) PopulateColorUnion ¶
func (v ClearValueFloat) PopulateColorUnion(c unsafe.Pointer)
func (ClearValueFloat) PopulateValueUnion ¶
func (v ClearValueFloat) PopulateValueUnion(c unsafe.Pointer)
type ClearValueInt32 ¶
type ClearValueInt32 [4]int32
ClearValueInt32 is a ClearValue and ClearColorValue representing 4 signed 32-bit integer color channels
func (ClearValueInt32) PopulateColorUnion ¶
func (v ClearValueInt32) PopulateColorUnion(c unsafe.Pointer)
func (ClearValueInt32) PopulateValueUnion ¶
func (v ClearValueInt32) PopulateValueUnion(c unsafe.Pointer)
type ClearValueUint32 ¶
type ClearValueUint32 [4]uint32
ClearValueUint32 is a ClearValue and ClearColorValue representing 4 unsigned 32-bit integer color channels
func (ClearValueUint32) PopulateColorUnion ¶
func (v ClearValueUint32) PopulateColorUnion(c unsafe.Pointer)
func (ClearValueUint32) PopulateValueUnion ¶
func (v ClearValueUint32) PopulateValueUnion(c unsafe.Pointer)
type ColorComponentFlags ¶
type ColorComponentFlags int32
ColorComponentFlags controls which components are written to the framebuffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html
const ( // ColorComponentRed specifies that the R value is written to the color attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html ColorComponentRed ColorComponentFlags = C.VK_COLOR_COMPONENT_R_BIT // ColorComponentGreen specifies that the G value is written to the color attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html ColorComponentGreen ColorComponentFlags = C.VK_COLOR_COMPONENT_G_BIT // ColorComponentBlue specifies that the B value is written to the color attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html ColorComponentBlue ColorComponentFlags = C.VK_COLOR_COMPONENT_B_BIT // ColorComponentAlpha specifies that the A value is written to the color attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html ColorComponentAlpha ColorComponentFlags = C.VK_COLOR_COMPONENT_A_BIT )
func (ColorComponentFlags) String ¶
func (c ColorComponentFlags) String() string
type CommandBuffer ¶
type CommandBuffer interface { // Handle is the internal Vulkan object handle for this CommandBuffer Handle() driver.VkCommandBuffer // Driver is the vulkan wrapper driver used by this CommandBuffer Driver() driver.Driver // DeviceHandle is the internal Vulkan object handle for the Device this CommandBuffer belongs to DeviceHandle() driver.VkDevice // CommandPoolHandle is the internal Vulkan object handle for the CommandPool used to allocate // this CommandBuffer CommandPoolHandle() driver.VkCommandPool // APIVersion is the maximum Vulkan API version supported by this CommandBuffer. If it is at // least vulkan 1.1, core1_1.PromoteCommandBuffer can be used to promote this to a core1_1.CommandBuffer, // etc. APIVersion() common.APIVersion // Free frees this command buffer and usually returns the underlying memory to the CommandPool // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeCommandBuffers.html Free() // Begin starts recording on this CommandBuffer // // o - Defines additional information about how the CommandBuffer begins recording // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkBeginCommandBuffer.html Begin(o CommandBufferBeginInfo) (common.VkResult, error) // End finishes recording on this command buffer // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEndCommandBuffer.html End() (common.VkResult, error) // Reset returns this CommandBuffer to its initial state // // flags - Options controlling the reset operation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetCommandBuffer.html Reset(flags CommandBufferResetFlags) (common.VkResult, error) // CommandsRecorded returns the number of commands recorded to this CommandBuffer since the last time // Begin was called CommandsRecorded() int // DrawsRecorded returns the number of draw commands recorded to this CommandBuffer since the last time // Begin was called DrawsRecorded() int // DispatchesRecorded returns the number of dispatch commands recorded to this CommandBuffer since // the last time Begin was called DispatchesRecorded() int // CmdBeginRenderPass begins a new RenderPass // // contents - Specifies how the commands in the first subpass will be provided // // o - Specifies the RenderPass to begin an instance of, and the Framebuffer the instance uses // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBeginRenderPass.html CmdBeginRenderPass(contents SubpassContents, o RenderPassBeginInfo) error // CmdEndRenderPass ends the current RenderPass // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdEndRenderPass.html CmdEndRenderPass() // CmdBindPipeline binds a pipeline object to this CommandBuffer // // bindPoint - Specifies to which bind point the Pipeline is bound // // pipeline - The Pipeline to be bound // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBindPipeline.html CmdBindPipeline(bindPoint PipelineBindPoint, pipeline Pipeline) // CmdDraw draws primitives without indexing the vertices // // vertexCount - The number of vertices to draw // // instanceCount - The number of instances to draw // // firstVertex - The index of the first vertex to draw // // firstInstance - The instance ID of the first instance to draw // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDraw.html CmdDraw(vertexCount, instanceCount int, firstVertex, firstInstance uint32) // CmdDrawIndexed draws primitives with indexed vertices // // indexCount - The number of vertices to draw // // instanceCount - The number of instances to draw // // firstIndex - The base index within the index Buffer // // vertexOffset - The value added to the vertex index before indexing into the vertex Buffer // // firstInstance - The instance ID of the first instance to draw // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDrawIndexed.html CmdDrawIndexed(indexCount, instanceCount int, firstIndex uint32, vertexOffset int, firstInstance uint32) // CmdBindVertexBuffers binds vertex Buffers to this CommandBuffer // // buffers - A slice of Buffer objects // // bufferOffsets - A slice of Buffer offsets // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBindVertexBuffers.html CmdBindVertexBuffers(buffers []Buffer, bufferOffsets []int) // CmdBindIndexBuffer binds an index Buffer to this CommandBuffer // // buffer - The Buffer being bound // // offset - The starting offset in bytes within Buffer, used in index Buffer address calculations // // indexType - Specifies the size of the indices // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBindIndexBuffer.html CmdBindIndexBuffer(buffer Buffer, offset int, indexType IndexType) // CmdCopyBuffer copies data between Buffer regions // // srcBuffer - The source Buffer // // dstBuffer - The destination Buffer // // copyRegions - A slice of structures specifying the regions to copy // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyBuffer.html CmdCopyBuffer(srcBuffer Buffer, dstBuffer Buffer, copyRegions []BufferCopy) error // CmdBindDescriptorSets binds DescriptorSets to this CommandBuffer // // bindPoint - Indicates the type of the pipeline that will use the descriptors // // layout - A PipelineLayout object used to program the bindings // // sets - A slice of DescriptorSet objects describing the DescriptorSets to bind // // dynamicOffsets - A slice of values specifying dynamic offsets // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBindDescriptorSets.html CmdBindDescriptorSets(bindPoint PipelineBindPoint, layout PipelineLayout, sets []DescriptorSet, dynamicOffsets []int) // CmdPipelineBarrier inserts a memory dependency into the recorded commands // // srcStageMask - Specifies the source stages // // dstStageMask - Specifies the destination stages // // dependencies - Specifies how execution and memory dependencies are formed // // memoryBarriers - A slice of MemoryBarrier structures // // bufferMemoryBarriers - A slice of BufferMemoryBarrier structures // // imageMemoryBarriers - A slice of ImageMemoryBarrier structures // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdPipelineBarrier.html CmdPipelineBarrier(srcStageMask, dstStageMask PipelineStageFlags, dependencies DependencyFlags, memoryBarriers []MemoryBarrier, bufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarriers []ImageMemoryBarrier) error // CmdCopyBufferToImage copies data from a Buffer to an Image // // buffer - The source buffer // // image - The destination Image // // layout - The layout of the destination Image subresources for the copy // // regions - A slice of BufferImageCopy structures specifying the regions to copy // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyBufferToImage.html CmdCopyBufferToImage(buffer Buffer, image Image, layout ImageLayout, regions []BufferImageCopy) error // CmdBlitImage copies regions of an Image, potentially performing format conversion // // sourceImage - The source Image // // sourceImageLayout - The layout of the source Image subresources for the blit // // destinationImage - The destination Image // // destinationImageLayout - The layout of the destination Image subresources for the blit // // regions - A slice of ImageBlit structures specifying the regions to blit // // filter - Specifies the filter to apply if the blits require scaling // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBlitImage.html CmdBlitImage(sourceImage Image, sourceImageLayout ImageLayout, destinationImage Image, destinationImageLayout ImageLayout, regions []ImageBlit, filter Filter) error // CmdPushConstants updates the values of push constants // // layout - The pipeline layout used to program the push constant updates // // stageFlags - Specifies the shader stages that will use the push constants in the updated range // // offset - The start offset of the push constant range to update, in units of bytes // // valueBytes - A slice of bytes containing the new push constant values // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdPushConstants.html CmdPushConstants(layout PipelineLayout, stageFlags ShaderStageFlags, offset int, valueBytes []byte) // CmdSetViewport sets the viewport dynamically for a CommandBuffer // // viewports - A slice of Viewport structures specifying viewport parameters // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetViewport.html CmdSetViewport(viewports []Viewport) // CmdSetScissor sets scissor rectangles dynamically for a CommandBuffer // // scissors - A slice of Rect2D structures specifying scissor rectangles // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetScissor.html CmdSetScissor(scissors []Rect2D) // CmdCopyImage copies data between Images // // srcImage - The source Image // // srcImageLayout - The current layout of the source Image subresource // // dstImage - The destination Image // // dstImageLayout - The current layout of the destination Image subresource // // regions - A slice of ImageCopy structures specifying the regions to copy // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyImage.html CmdCopyImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regions []ImageCopy) error // CmdNextSubpass transitions to the next subpass of a RenderPass // // contents - Specifies how the commands in the next subpass will be provided // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdNextSubpass.html CmdNextSubpass(contents SubpassContents) // CmdWaitEvents waits for one or more events and inserts a set of memory // // events - A slice of Event objects to wait on // // srcStageMask - Specifies the source stage mask // // dstStageMask - Specifies the destination stage mask // // memoryBarriers - A slice of MemoryBarrier structures // // bufferMemoryBarriers - A slice of BufferMemoryBarrier structures // // imageMemoryBarriers - A slice of ImageMemoryBarrier structures // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdWaitEvents.html CmdWaitEvents(events []Event, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, memoryBarriers []MemoryBarrier, bufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarriers []ImageMemoryBarrier) error // CmdSetEvent sets an Event object to the signaled state // // event - The Event that will be signaled // // stageMask - Specifies teh source stage mask used to determine the first synchronization scope // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetEvent.html CmdSetEvent(event Event, stageMask PipelineStageFlags) // CmdClearColorImage clears regions of a color Image // // image - The Image to be cleared // // imageLayout - Specifies the current layout of the Image subresource ranges to be cleared // // color - A ClearColorValue containing the values that the Image subresource ranges will be cleared to // // ranges - A slice of ImageSubresourceRange structures describing a range of mipmap levels, array layers, // and aspects to be cleared. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdClearColorImage.html CmdClearColorImage(image Image, imageLayout ImageLayout, color ClearColorValue, ranges []ImageSubresourceRange) // CmdResetQueryPool resets queries in a QueryPool // // queryPool - The QueryPool managing the queries being reset // // startQuery - 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/vkCmdResetQueryPool.html CmdResetQueryPool(queryPool QueryPool, startQuery, queryCount int) // CmdBeginQuery begins a query // // queryPool - The QueryPool that will manage the results of the query // // query - The query index within the QueryPool that will contain the results // // flags - Specifies constraints on the types of queries that can be performed // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBeginQuery.html CmdBeginQuery(queryPool QueryPool, query int, flags QueryControlFlags) // CmdEndQuery ends a query // // queryPool - The QueryPool that is managing the results of the query // // query - The query index within the QueryPool where the result is stored // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdEndQuery.html CmdEndQuery(queryPool QueryPool, query int) // CmdCopyQueryPoolResults copies the results of queries in a QueryPool to a Buffer object // // queryPool - The QueryPool managing the queries containing the desired results // // firstQuery - The initial query index // // queryCount - The number of queries // // dstBuffer - A Buffer object that will receive the results of the copy command // // dstOffset - An offset into the destination Buffer // // stride - The stride in bytes between the results for individual queries within the destination Buffer // // flags - Specifies how and when results are returned // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyQueryPoolResults.html CmdCopyQueryPoolResults(queryPool QueryPool, firstQuery, queryCount int, dstBuffer Buffer, dstOffset, stride int, flags QueryResultFlags) // CmdExecuteCommands executes a secondary CommandBuffer from a primary CommandBuffer // // commandBuffers - A slice of CommandBuffer objects, which are recorded to execute in the primary CommandBuffer // in the order they are listed in the slice // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdExecuteCommands.html CmdExecuteCommands(commandBuffers []CommandBuffer) // CmdClearAttachments clears regions within bound Framebuffer attachments // // attachments - A slice of ClearAttachment structures defining the attachments to clear and the clear values to use. // // rects - A slice of ClearRect structures defining regions within each selected attachment to clear // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdClearAttachments.html CmdClearAttachments(attachments []ClearAttachment, rects []ClearRect) error // CmdClearDepthStencilImage fills regions of a combined depth/stencil image // // image - The Image to be cleared // // imageLayout - Specifies the current layout of the Image subresource ranges to be cleared // // depthStencil - Contains the values that the depth and stencil images will be cleared to // // ranges - A slice of ImageSubrsourceRange structures describing a range of mipmap levels, array layers, // and aspects to be cleared // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdClearDepthStencilImage.html CmdClearDepthStencilImage(image Image, imageLayout ImageLayout, depthStencil *ClearValueDepthStencil, ranges []ImageSubresourceRange) // CmdCopyImageToBuffer copies image data into a buffer // // srcImage - The source Image // // srcImageLayout - The layout of the source Image subresources for the copy // // dstBuffer - The desination Buffer // // regions - A slice of BufferImageCopy structures specifying the regions to copy // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyImageToBuffer.html CmdCopyImageToBuffer(srcImage Image, srcImageLayout ImageLayout, dstBuffer Buffer, regions []BufferImageCopy) error // CmdDispatch dispatches compute work items // // groupCountX - the number of local workgroups to dispatch in the X dimension // // groupCountY - the number of local workgroups to dispatch in the Y dimension // // groupCountZ - the number of local workgroups to dispatch in the Z dimension // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDispatch.html CmdDispatch(groupCountX, groupCountY, groupCountZ int) // CmdDispatchIndirect dispatches compute work items with indirect parameters // // buffer - The Buffer containing dispatch parameters // // offset - The byte offset into the Buffer where parameters begin // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDispatchIndirect.html CmdDispatchIndirect(buffer Buffer, offset int) // CmdDrawIndexedIndirect draws primitives with indirect parameters and indexed vertices // // buffer - The Buffer containing draw parameters // // offset - The byte offset into the Buffer where parameters begin // // drawCount - The number of draws to execute, which can be zero // // stride - The byte stride between successive sets of draw parameters // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDrawIndexedIndirect.html CmdDrawIndexedIndirect(buffer Buffer, offset int, drawCount, stride int) // CmdDrawIndirect draws primitives with indirect parameters // // buffer - The buffer containing draw parameters // // offset - The byte offset into the Buffer where parameters begin // // drawCount - The number of draws to execute, which can be zero // // stride - The byte stride between successive sets of draw parameters // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdDrawIndirect.html CmdDrawIndirect(buffer Buffer, offset int, drawCount, stride int) // CmdFillBuffer fills a region of a buffer with a fixed value // // dstBuffer - The Buffer to be filled // // dstOffset - The byte offset into the Buffer at which to start filling, must be a multiple of 4 // // size - The number of bytes to fill // // data - The 4-byte word written repeatedly to the Buffer to fill size bytes of data. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdFillBuffer.html CmdFillBuffer(dstBuffer Buffer, dstOffset int, size int, data uint32) // CmdResetEvent resets an Event object to non-signaled state // // event - The Event that will be unsignaled // // stageMask - Specifies the source stage mask used to determine when the Event is unsignaled // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdResetEvent.html CmdResetEvent(event Event, stageMask PipelineStageFlags) // CmdResolveImage resolves regions of an Image // // srcImage - The source Image // // srcImageLayout - The layout of the source Image subresources for the resolve // // dstImage - The destination Image // // dstImageLayout - The layout of the destination Image subresources for the resolve // // regions - A slice of ImageResolve structure specifying the regions to resolve // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdResolveImage.html CmdResolveImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regions []ImageResolve) error // CmdSetBlendConstants sets the values of the blend constants // // blendConstants - An array of four values specifying the R, G, B, and A components of the blend // color used in blending, depending on the blend factor // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetBlendConstants.html CmdSetBlendConstants(blendConstants [4]float32) // CmdSetDepthBias sets depth bias factors and clamp dynamically for the CommandBuffer // // depthBiasConstantFactor - The scalar factor controlling the constant depth value added to each fragment // // depthBiasClamp - The maximum (or minimum) depth bias of a fragment // // depthBiasSlopeFactor - The scalar factor applied to a fragment's slope in depth bias calculations // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthBias.html CmdSetDepthBias(depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor float32) // CmdSetDepthBounds sets depth bounds range dynamically for the CommandBuffer // // min - The minimum depth bound // // max - The maximum depth bound // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthBounds.html CmdSetDepthBounds(min, max float32) // CmdSetLineWidth sets line width dynamically for the CommandBuffer // // lineWidth - The width of rasterized line segments // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineWidth.html CmdSetLineWidth(lineWidth float32) // CmdSetStencilCompareMask sets the stencil compare mask dynamically for the CommandBuffer // // faceMask - Specifies the set of stencil state for which to update the compare mask // // compareMask - The new value to use as the stencil compare mask // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetStencilCompareMask.html CmdSetStencilCompareMask(faceMask StencilFaceFlags, compareMask uint32) // CmdSetStencilReference sets stencil reference value dynamically for the CommandBuffer // // faceMask - Specifies the set of stencil state for which to update the reference value // // reference - The new value to use as the stencil reference value // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetStencilReference.html CmdSetStencilReference(faceMask StencilFaceFlags, reference uint32) // CmdSetStencilWriteMask sets the stencil write mask dynamically for the CommandBuffer // // faceMask - Specifies the set of stencil state for which to update the write mask // // reference - The new value to use as the stencil write mask // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetStencilWriteMask.html CmdSetStencilWriteMask(faceMask StencilFaceFlags, writeMask uint32) // CmdUpdateBuffer updates a buffer's contents from host memory // // dstBuffer - The Buffer to be updated // // dstOffset - The byte offset into the Buffer to start updating, must be a multiple of 4 // // dataSize - The number of bytes to update, must be a multiple of 4 // // data - The source data for the buffer update, must be at least dataSize bytes in size // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdUpdateBuffer.html CmdUpdateBuffer(dstBuffer Buffer, dstOffset int, dataSize int, data []byte) // CmdWriteTimestamp writes a device timestamp into a query object // // pipelineStage - Specifies a stage of the pipeline // // queryPool - The QueryPool that will manage the timestamp // // query - The query within the QueryPool that will contain the timestamp // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdWriteTimestamp.html CmdWriteTimestamp(pipelineStage PipelineStageFlags, queryPool QueryPool, query int) }
CommandBuffer is an object used to record commands which can be subsequently submitted to a device queue for execution.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBuffer.html
type CommandBufferAllocateInfo ¶
type CommandBufferAllocateInfo struct { // Level specifies the CommandBuffer level Level CommandBufferLevel // CommandBufferCount is the number of CommandBuffer objects to allocate from the CommandPool CommandBufferCount int // CommandPool is the CommandPool from which the CommandBuffer objects are allocated CommandPool CommandPool common.NextOptions }
CommandBufferAllocateInfo specifies the allocation parameters for the CommandBuffer object
type CommandBufferBeginInfo ¶
type CommandBufferBeginInfo struct { // Flags specifies usage behavior for the CommandBuffer Flags CommandBufferUsageFlags // InheritanceInfo specifies inheritance from the primary to secondary CommandBuffer. If this // structure is used with a primary CommandBuffer, then this field is ignored InheritanceInfo *CommandBufferInheritanceInfo common.NextOptions }
CommandBufferBeginInfo specifies a CommandBuffer begin operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferBeginInfo.html
type CommandBufferInheritanceInfo ¶
type CommandBufferInheritanceInfo struct { // Framebuffer refers to the Framebuffer object that the CommandBuffer will be rendering to // if it is executed within a RenderPass instance. It can be nil if the Framebuffer is not // known. Framebuffer Framebuffer // RenderPass is a RenderPass object defining which render passes the CommandBuffer will be // compatible with and can be executed within RenderPass RenderPass // Subpass is the index of hte subpass within the RenderPass instance that the CommandBuffer // will be executed within Subpass int // OcclusionQueryEnable specifies whether the CommandBuffer can be executed while an occlusion // query is active in the primary CommandBuffer OcclusionQueryEnable bool // QueryFlags specifies the query flags that can be used by an active occlusion query in the // primary CommandBuffer when this secondary CommandBuffer is executed QueryFlags QueryControlFlags // PipelineStatistics specifies the set of pipeline statistics that can be counted by an // active query in the primary CommandBuffer when this secondary CommandBuffer is executed PipelineStatistics QueryPipelineStatisticFlags common.NextOptions }
CommandBufferInheritanceInfo specifies CommandBuffer inheritance information
type CommandBufferLevel ¶
type CommandBufferLevel int32
CommandBufferLevel specifies a CommandBuffer level
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferLevel.html
func (CommandBufferLevel) Register ¶
func (e CommandBufferLevel) Register(str string)
func (CommandBufferLevel) String ¶
func (e CommandBufferLevel) String() string
type CommandBufferResetFlags ¶
type CommandBufferResetFlags int32
CommandBufferResetFlags controls behavior of a CommandBuffer reset
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferResetFlagBits.html
func (CommandBufferResetFlags) Register ¶
func (f CommandBufferResetFlags) Register(str string)
func (CommandBufferResetFlags) String ¶
func (f CommandBufferResetFlags) String() string
type CommandBufferUsageFlags ¶
type CommandBufferUsageFlags int32
CommandBufferUsageFlags specifies usage behavior for a CommandBuffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html
func (CommandBufferUsageFlags) Register ¶
func (f CommandBufferUsageFlags) Register(str string)
func (CommandBufferUsageFlags) String ¶
func (f CommandBufferUsageFlags) String() string
type CommandCounter ¶
CommandCounter stores the number of commands, draws, dispatches, etc. executed since the last time the CommandBuffer was restarted. These are stored in a struct so that different CommandBuffer objects with the same CommandBuffer.Handle can share these counts
type CommandPool ¶
type CommandPool interface { // Handle is the internal Vulkan object handle for this CommandPool Handle() driver.VkCommandPool // DeviceHandle is the internal Vulkan object handle for the Device this CommandPool belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this CommandPool Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this CommandPool. If it is // at least Vulkan 1.1, core1_1.PromoteCommandPool can be used to promote this to a core1_1.CommandPool, // etc. APIVersion() common.APIVersion // Destroy destroys the CommandPool object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs // it will be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyCommandPool.html Destroy(callbacks *driver.AllocationCallbacks) // Reset resets the CommandPool, recycling all the resources from all the CommandBuffer objects // allocated from the CommandPool back to the CommandPool. All CommandBuffer objects that // have been allocated from the CommandPool are put in the initial state. // // flags - Controls the reset operation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetCommandPool.html Reset(flags CommandPoolResetFlags) (common.VkResult, error) }
CommandPool is an opaque object that CommandBuffer memory is allocated from
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandPool.html
type CommandPoolCreateFlags ¶
type CommandPoolCreateFlags int32
CommandPoolCreateFlags specifies usage behavior for a CommandPool
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html
func (CommandPoolCreateFlags) Register ¶
func (f CommandPoolCreateFlags) Register(str string)
func (CommandPoolCreateFlags) String ¶
func (f CommandPoolCreateFlags) String() string
type CommandPoolCreateInfo ¶
type CommandPoolCreateInfo struct { // QueueFamilyIndex designates a queue family. All CommandBuffer objects allocated from this // CommandPool must be submitted on queues from the same queue family QueueFamilyIndex int // Flags indicates usage behavior for the pool and CommandBuffer objects allocated from it Flags CommandPoolCreateFlags common.NextOptions }
CommandPoolCreateInfo specifies parameters of a newly-created CommandPool
type CommandPoolResetFlags ¶
type CommandPoolResetFlags int32
CommandPoolResetFlags controls behavior of a CommandPool reset
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolResetFlagBits.html
func (CommandPoolResetFlags) Register ¶
func (f CommandPoolResetFlags) Register(str string)
func (CommandPoolResetFlags) String ¶
func (f CommandPoolResetFlags) String() string
type CompareOp ¶
type CompareOp int32
CompareOp is comparison operators for depth, stencil, and Sampler operations
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html
type ComponentMapping ¶
type ComponentMapping struct { // R specifies the component value placed in the R component of the output vector R ComponentSwizzle // G specifies the component value placed in the G component of the output vector G ComponentSwizzle // B specifies the component value placed in the B component of the output vector B ComponentSwizzle // A specifies the component value placed in the A component of the output vector A ComponentSwizzle }
ComponentMapping specifies a color component mapping
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentMapping.html
type ComponentSwizzle ¶
type ComponentSwizzle int32
ComponentSwizzle specifies how a component is swizzled
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html
func (ComponentSwizzle) Register ¶
func (e ComponentSwizzle) Register(str string)
func (ComponentSwizzle) String ¶
func (e ComponentSwizzle) String() string
type ComputePipelineCreateInfo ¶
type ComputePipelineCreateInfo struct { // Flags specifies how the Pipeline will be generated Flags PipelineCreateFlags // Stage describes the compute shader Stage PipelineShaderStageCreateInfo // Layout is the description of binding locations used by both the Pipeline and DescriptorSet // objects used with the Pipeline Layout PipelineLayout // BasePipeline is a Pipeline to derive from BasePipeline Pipeline // BasePipelineIndex is an index into the createInfos parameters to use as a Pipeline to derive from BasePipelineIndex int common.NextOptions }
ComputePipelineCreateInfo specifies parameters of a newly-created compute Pipeline
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkComputePipelineCreateInfo.html
type CopyDescriptorSet ¶
type CopyDescriptorSet struct { // SrcSet is the source descriptor set SrcSet DescriptorSet // SrcBinding is the source descriptor binding SrcBinding int // SrcArrayElement is the source descriptor array element SrcArrayElement int // DstSet is the destination descriptor set DstSet DescriptorSet // DstBinding is the destination descriptor binding DstBinding int // DstArrayElement is the destination descriptor array element DstArrayElement int // DescriptorCount is number of descriptors to copy from source to destination DescriptorCount int common.NextOptions }
CopyDescriptorSet specifies a copy descriptor set operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCopyDescriptorSet.html
type CullModeFlags ¶
type CullModeFlags int32
CullModeFlags controls triangle culling
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCullModeFlagBits.html
func (CullModeFlags) Register ¶
func (f CullModeFlags) Register(str string)
func (CullModeFlags) String ¶
func (f CullModeFlags) String() string
type DependencyFlags ¶
type DependencyFlags int32
DependencyFlags specifies how execution and memory dependencies are formed
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html
func (DependencyFlags) Register ¶
func (f DependencyFlags) Register(str string)
func (DependencyFlags) String ¶
func (f DependencyFlags) String() string
type DescriptorBufferInfo ¶
type DescriptorBufferInfo struct { // Buffer is the Buffer resource Buffer Buffer // Offset is the offset in bytes from the start of Buffer Offset int // Range is the size in bytes that is used for this descriptor update Range int }
DescriptorBufferInfo specifies descriptor Buffer information
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBufferInfo.html
type DescriptorImageInfo ¶
type DescriptorImageInfo struct { // Sampler is a Sampler object, and is used in descriptor updates for DescriptorTypeSampler and // DescriptorTypeCombinedImageSampler descriptors if the binding being update does not use // immutable sampler Sampler Sampler // ImageView is an ImageView object, and is used in descriptor updates for DescriptorTypeSampledImage, // DescriptorTypeStorageImage, DescriptorTypeCombinedImageSampler, and DescriptorTypeInputAttachment ImageView ImageView // ImageLayout is the layout that the Image subresources accessible form ImageView will be in // at the time this descriptor is accessed ImageLayout ImageLayout }
DescriptorImageInfo specifies descriptor Image information
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorImageInfo.html
type DescriptorPool ¶
type DescriptorPool interface { // Handle is the internal Vulkan object handle for this DescriptorPool Handle() driver.VkDescriptorPool // DeviceHandle is the internal Vulkan object handle for the Device this DescriptorPool belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this DescriptorPool Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this DescriptorPool. If it is at // least Vulkan 1.1, core1_1.PromoteDescriptorPool can be used to promote this to a core1_1.DescriptorPool, // etc. APIVersion() common.APIVersion // Destroy destroys the DescriptorPool object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will // be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyDescriptorPool.html Destroy(callbacks *driver.AllocationCallbacks) // Reset resets the DescriptorPool and recycles all of the resources from all of the DescriptorSet // objects allocated from the DescriptorPool back to the DescriptorPool, and the DescriptorSet // objects are implicitly freed. // // flags - Reserved (always 0) // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetDescriptorPool.html Reset(flags DescriptorPoolResetFlags) (common.VkResult, error) }
DescriptorPool maintains a pool of descriptors, from which DescriptorSet objects are allocated.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorPool.html
type DescriptorPoolCreateFlags ¶
type DescriptorPoolCreateFlags int32
DescriptorPoolCreateFlags specifies parameters of a newly-created DescriptorPool
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateInfo.html
const ( // DescriptorPoolCreateFreeDescriptorSet specifies that DescriptorSet objects can return their // individual allocations to the pool // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateFlagBits.html DescriptorPoolCreateFreeDescriptorSet DescriptorPoolCreateFlags = C.VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT )
func (DescriptorPoolCreateFlags) Register ¶
func (f DescriptorPoolCreateFlags) Register(str string)
func (DescriptorPoolCreateFlags) String ¶
func (f DescriptorPoolCreateFlags) String() string
type DescriptorPoolCreateInfo ¶
type DescriptorPoolCreateInfo struct { // Flags specifies certain supported operations on the pool Flags DescriptorPoolCreateFlags // MaxSets is the maximum number of DescriptorSet objects that can be allocated from the pool MaxSets int // PoolSizes is a slice of DescriptorPoolSize structures, each containing a descriptor type // and number of descriptors of that type to be allocated in the pool PoolSizes []DescriptorPoolSize common.NextOptions }
DescriptorPoolCreateInfo specifies parameters of a newly-created DescriptorPool
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateInfo.html
type DescriptorPoolResetFlags ¶
type DescriptorPoolResetFlags int32
DescriptorPoolResetFlags is reserved for future use
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolResetFlags.html
func (DescriptorPoolResetFlags) Register ¶
func (f DescriptorPoolResetFlags) Register(str string)
func (DescriptorPoolResetFlags) String ¶
func (f DescriptorPoolResetFlags) String() string
type DescriptorPoolSize ¶
type DescriptorPoolSize struct { // Type is the type of descriptor Type DescriptorType // DescriptorCount is the number of descriptors of that type ot allocate DescriptorCount int }
DescriptorPoolSize specifies DescriptorPool size
type DescriptorSet ¶
type DescriptorSet interface { // Handle is the internal Vulkan object handle for this DescriptorPool Handle() driver.VkDescriptorSet // DescriptorPoolHandle is the internal Vulkan object handle for the DescriptorPool this DescriptorSet // was allocated from DescriptorPoolHandle() driver.VkDescriptorPool // DeviceHandle is the internal Vulkan object handle for the Device this DescriptorSet belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this DescriptorSet Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this DescriptorSet. If it is at least // Vulkan 1.1, core1_1.PromoteDescriptorSet can be used to promote this to a core1_1.DescriptorSet, // etc. APIVersion() common.APIVersion // Free frees this DescriptorSet // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeDescriptorSets.html Free() (common.VkResult, error) }
DescriptorSet is an opaque object allocated from a DescriptorPool
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetDescriptorPool.html
type DescriptorSetAllocateInfo ¶
type DescriptorSetAllocateInfo struct { // DescriptorPool is the pool which the sets will be allocated from DescriptorPool DescriptorPool // SetLayouts is a slice of DescriptorSetLayout objects, which each member specifying how the // corresponding DescriptorSet is allocated SetLayouts []DescriptorSetLayout common.NextOptions }
DescriptorSetAllocateInfo specifies the allocation parameters for DescritporSet objects
type DescriptorSetLayout ¶
type DescriptorSetLayout interface { // Handle is the internal Vulkan object handle for this DescriptorSetLayout Handle() driver.VkDescriptorSetLayout // DeviceHandle is the internal Vulkan object handle for the Device this DescriptorSetLayout belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this DescriptorSetLayout Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this DescriptorSetLayout. If it is at // least Vulkan 1.1, core1_1.PromoteDescriptorSetLayout can be used to promote this to a // core1_1.DescriptorSetLayout, etc. APIVersion() common.APIVersion // Destroy destroys the DescriptorSetLayout object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will // be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyDescriptorSetLayout.html Destroy(callbacks *driver.AllocationCallbacks) }
DescriptorSetLayout is a group of zero or more descriptor bindings definitions.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayout.html
type DescriptorSetLayoutBinding ¶
type DescriptorSetLayoutBinding struct { // Binding is the binding number of this entry and corresponds to a resource of the same // binding number in the shader stages Binding int // DescriptorType specifies which type of resource descriptors are used for this binding DescriptorType DescriptorType // DescriptorCount is the number of descriptors contained in the binding DescriptorCount int // StageFlags specifies which pipeline shader stages can access a resource for this binding StageFlags ShaderStageFlags // ImmutableSamplers is a slice of Sampler objects that will be copied into the set layout // and used for the corresponding binding. ImmutableSamplers []Sampler }
DescriptorSetLayoutBinding specifies a DescriptorSetLayout binding
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutBinding.html
type DescriptorSetLayoutCreateFlags ¶
type DescriptorSetLayoutCreateFlags int32
DescriptorSetLayoutCreateFlags specifies DescriptorSetLayout properties
func (DescriptorSetLayoutCreateFlags) Register ¶
func (f DescriptorSetLayoutCreateFlags) Register(str string)
func (DescriptorSetLayoutCreateFlags) String ¶
func (f DescriptorSetLayoutCreateFlags) String() string
type DescriptorSetLayoutCreateInfo ¶
type DescriptorSetLayoutCreateInfo struct { // Flags specifies options for DescriptorSetLayout creation Flags DescriptorSetLayoutCreateFlags // Bindings is a slice of DescriptorSetLayoutBinding structures Bindings []DescriptorSetLayoutBinding common.NextOptions }
DescriptorSetLayoutCreateInfo specifies parameters of a newly-created DescriptorSetLayout
type DescriptorType ¶
type DescriptorType int32
DescriptorType specifies the type of a descriptor in a DescriptorSet
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html
const ( // DescriptorTypeSampler specifies a Sampler descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeSampler DescriptorType = C.VK_DESCRIPTOR_TYPE_SAMPLER // DescriptorTypeCombinedImageSampler specifies a combined Image Sampler descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeCombinedImageSampler DescriptorType = C.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER // DescriptorTypeSampledImage specifies a sampled Image descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeSampledImage DescriptorType = C.VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE // DescriptorTypeStorageImage specifies a storage Image descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeStorageImage DescriptorType = C.VK_DESCRIPTOR_TYPE_STORAGE_IMAGE // DescriptorTypeUniformTexelBuffer specifies a uniform texel Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeUniformTexelBuffer DescriptorType = C.VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER // DescriptorTypeStorageTexelBuffer specifies a storage texel Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeStorageTexelBuffer DescriptorType = C.VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER // DescriptorTypeUniformBuffer specifies a uniform Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeUniformBuffer DescriptorType = C.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER // DescriptorTypeStorageBuffer specifies a storage Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeStorageBuffer DescriptorType = C.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER // DescriptorTypeUniformBufferDynamic specifies a dynamic uniform Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeUniformBufferDynamic DescriptorType = C.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC // DescriptorTypeStorageBufferDynamic specifies a dynamic storage Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeStorageBufferDynamic DescriptorType = C.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC // DescriptorTypeInputAttachment specifies an input attachment descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html DescriptorTypeInputAttachment DescriptorType = C.VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT )
func (DescriptorType) Register ¶
func (e DescriptorType) Register(str string)
func (DescriptorType) String ¶
func (e DescriptorType) String() string
type Device ¶
type Device interface { // Handle is the internal Vulkan object handle for this Device Handle() driver.VkDevice // Driver is the Vulkan wrapper drive used by this Device Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Device. If it is at least // Vulkan 1.1, core1_1.PromoteDevice can be used to promote this to a core1_1.Device, etc. APIVersion() common.APIVersion // IsDeviceExtensionActive will return true if a Device extension with the provided name was // activated on Device creation // // extensionName - The name of the extension to query IsDeviceExtensionActive(extensionName string) bool // CreateBuffer creates a new Buffer object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Buffer // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateBuffer.html CreateBuffer(allocationCallbacks *driver.AllocationCallbacks, o BufferCreateInfo) (Buffer, common.VkResult, error) // CreateBufferView creates a new BufferView object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the BufferView // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateBufferView.html CreateBufferView(allocationCallbacks *driver.AllocationCallbacks, o BufferViewCreateInfo) (BufferView, common.VkResult, error) // CreateCommandPool creates a new CommandPool object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the CommandPool // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateCommandPool.html CreateCommandPool(allocationCallbacks *driver.AllocationCallbacks, o CommandPoolCreateInfo) (CommandPool, common.VkResult, error) // CreateDescriptorPool creates a new DescriptorPool object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the DescriptorPool // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateDescriptorPool.html CreateDescriptorPool(allocationCallbacks *driver.AllocationCallbacks, o DescriptorPoolCreateInfo) (DescriptorPool, common.VkResult, error) // CreateDescriptorSetLayout creates a new DescriptorSetLayout object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the DescriptorSetLayout // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateDescriptorSetLayout.html CreateDescriptorSetLayout(allocationCallbacks *driver.AllocationCallbacks, o DescriptorSetLayoutCreateInfo) (DescriptorSetLayout, common.VkResult, error) // CreateEvent creates a new Event object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Event // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateEvent.html CreateEvent(allocationCallbacks *driver.AllocationCallbacks, options EventCreateInfo) (Event, common.VkResult, error) // CreateFence creates a new Fence object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Fence // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateFence.html CreateFence(allocationCallbacks *driver.AllocationCallbacks, o FenceCreateInfo) (Fence, common.VkResult, error) // CreateFramebuffer creates a new Framebuffer object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Framebuffer // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateFramebuffer.html CreateFramebuffer(allocationCallbacks *driver.AllocationCallbacks, o FramebufferCreateInfo) (Framebuffer, common.VkResult, error) // CreateGraphicsPipelines creates a slice of new Pipeline objects which can be used for drawing graphics // // pipelineCache - A PipelineCache object which can be used to accelerate pipeline creation // // allocationCallbacks - Controls host memory allocation // // o - A slice of GraphicsPipelineCreateInfo structures containing parameters affecting the creation of the Pipeline objects // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateGraphicsPipelines.html CreateGraphicsPipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, o []GraphicsPipelineCreateInfo) ([]Pipeline, common.VkResult, error) // CreateComputePipelines creates a slice of new Pipeline objects which can be used for dispatching compute workloads // // pipelineCache - A PipelineCache object which can be used to accelerate pipeline creation // // allocationCallbacks - Controls host memory allocation // // o - A slice of ComputePipelineCreateInfo structures containing parameters affecting the creation of the Pipeline objects // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateComputePipelines.html CreateComputePipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, o []ComputePipelineCreateInfo) ([]Pipeline, common.VkResult, error) // CreateImage creates a new Image object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Image // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateImage.html CreateImage(allocationCallbacks *driver.AllocationCallbacks, options ImageCreateInfo) (Image, common.VkResult, error) // CreateImageView creates a new ImageView object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the ImageView // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateImageView.html CreateImageView(allocationCallbacks *driver.AllocationCallbacks, o ImageViewCreateInfo) (ImageView, common.VkResult, error) // CreatePipelineCache creates a new PipelineCache object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the PipelineCache // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePipelineCache.html CreatePipelineCache(allocationCallbacks *driver.AllocationCallbacks, o PipelineCacheCreateInfo) (PipelineCache, common.VkResult, error) // CreatePipelineLayout creates a new PipelineLayout object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the PipelineLayout // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePipelineLayout.html CreatePipelineLayout(allocationCallbacks *driver.AllocationCallbacks, o PipelineLayoutCreateInfo) (PipelineLayout, common.VkResult, error) // CreateQueryPool creates a new QueryPool object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the QueryPool // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateQueryPool.html CreateQueryPool(allocationCallbacks *driver.AllocationCallbacks, o QueryPoolCreateInfo) (QueryPool, common.VkResult, error) // CreateRenderPass creates a new RenderPass object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the RenderPass // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateRenderPass.html CreateRenderPass(allocationCallbacks *driver.AllocationCallbacks, o RenderPassCreateInfo) (RenderPass, common.VkResult, error) // CreateSampler creates a new Sampler object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Sampler // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateSampler.html CreateSampler(allocationCallbacks *driver.AllocationCallbacks, o SamplerCreateInfo) (Sampler, common.VkResult, error) // CreateSemaphore creates a new Semaphore object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the Semaphore // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateSemaphore.html CreateSemaphore(allocationCallbacks *driver.AllocationCallbacks, o SemaphoreCreateInfo) (Semaphore, common.VkResult, error) // CreateShaderModule creates a new ShaderModule object // // allocationCallbacks - Controls host memory allocation // // o - Parameters affecting the creation of the ShaderModule // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateShaderModule.html CreateShaderModule(allocationCallbacks *driver.AllocationCallbacks, o ShaderModuleCreateInfo) (ShaderModule, common.VkResult, error) // GetQueue gets a Queue object from the Device // // queueFamilyIndex - The index of the queue family to which the Queue belongs // // queueIndex - The index within this queue family of the Queue to retrieve // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceQueue.html GetQueue(queueFamilyIndex int, queueIndex int) Queue // AllocateMemory allocates DeviceMemory // // allocationCallbacks - Controls host memory allocation // // o - Describes the parameters of the allocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkAllocateMemory.html AllocateMemory(allocationCallbacks *driver.AllocationCallbacks, o MemoryAllocateInfo) (DeviceMemory, common.VkResult, error) // FreeMemory frees DeviceMemory. **Warning** after freeing, the DeviceMemory object will continue to // exist, but the Vulkan object handle that backs it will be invalid. Do not call further methods // on the DeviceMemory object. // // deviceMemory - The DeviceMemory object to be freed // // allocationCallbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeMemory.html FreeMemory(deviceMemory DeviceMemory, allocationCallbacks *driver.AllocationCallbacks) // AllocateCommandBuffers allocates CommandBuffer objects from an existing CommandPool // // o - Describes parameters of the allocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkAllocateCommandBuffers.html AllocateCommandBuffers(o CommandBufferAllocateInfo) ([]CommandBuffer, common.VkResult, error) // FreeCommandBuffers frees CommandBuffer objects. **Warning** after freeing, these objects will // continue to exist, but the Vulkan object handles that back them will be invalid. Do not call // further methods on these objects. // // buffers - A slice of CommandBuffer objects to free // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeCommandBuffers.html FreeCommandBuffers(buffers []CommandBuffer) // AllocateDescriptorSets allocates one or more DescriptorSet objects from a DescriptorPool // // o - Describes the parameters of the allocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkAllocateDescriptorSets.html AllocateDescriptorSets(o DescriptorSetAllocateInfo) ([]DescriptorSet, common.VkResult, error) // FreeDescriptorSets frees one or more DescriptorSet objects. **Warning** after freeing, these objects // will continue to exist, but the Vulkan object handles that back them will be invalid. Do not call // further methods on these objects. // // sets - A slice of DescriptorSet objects to free // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeDescriptorSets.html FreeDescriptorSets(sets []DescriptorSet) (common.VkResult, error) // Destroy destroys a logical Device object. **Warning** after destruction, this object will continue // to exist, but the Vulkan object handle that backs it will be invalid. Do not call further methods // on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyDevice.html Destroy(callbacks *driver.AllocationCallbacks) // WaitIdle waits for the Device to become idle // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDeviceWaitIdle.html WaitIdle() (common.VkResult, error) // WaitForFences waits for one or more Fence objects to become signaled // // waitForAll - If true, then the call will wait until all fences in `fences` are signaled. If // false, the call will wait until any fence in `fences` is signaled. // // 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. // // fences - A slice of Fence objects to wait for // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkWaitForFences.html WaitForFences(waitForAll bool, timeout time.Duration, fences []Fence) (common.VkResult, error) // ResetFences resets one or more objects to the unsignaled state // // fences - A slice of Fence objects to reset // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetFences.html ResetFences(fences []Fence) (common.VkResult, error) // UpdateDescriptorSets updates the contents of one or more DescriptorSet objects // // writes - A slice of WriteDescriptorSet structures describing the DescriptorSet objects to // write to // // copies - A slice of CopyDescriptorSet structures describing the DescriptorSet objects to // copy between // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSets.html UpdateDescriptorSets(writes []WriteDescriptorSet, copies []CopyDescriptorSet) error // FlushMappedMemoryRanges flushes one or more mapped memory ranges // // ranges - A slice of MappedMemoryRange structures describing the memory ranges to flush // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFlushMappedMemoryRanges.html FlushMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error) // InvalidateMappedMemoryRanges invalidates one or more mapped memory ranges // // ranges - A slice of MappedMemoryRange structures describing the memory ranges to invalidate // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkInvalidateMappedMemoryRanges.html InvalidateMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error) }
Device represents a logical device on the host
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevice.html
type DeviceCreateFlags ¶
type DeviceCreateFlags int32
DeviceCreateFlags is reserved for future use
func (DeviceCreateFlags) Register ¶
func (f DeviceCreateFlags) Register(str string)
func (DeviceCreateFlags) String ¶
func (f DeviceCreateFlags) String() string
type DeviceCreateInfo ¶
type DeviceCreateInfo struct { // Flags is reserved for future use Flags DeviceCreateFlags // QueueCreateInfos is a slice of DeviceQueueCreateInfo structures describing the Queue objects // that are requested to be created along with the logical Device QueueCreateInfos []DeviceQueueCreateInfo // EnabledFeatures contains boolean indicators of all the features to be enabled EnabledFeatures *PhysicalDeviceFeatures // EnabledExtensionNames is a slice of strings containing the names of extensions to enable // for the created Device EnabledExtensionNames []string common.NextOptions }
DeviceCreateInfo specifies parameters of a newly-created Device
type DeviceMemory ¶
type DeviceMemory interface { // Handle is the internal Vulkan object handle for this DeviceMemory Handle() driver.VkDeviceMemory // DeviceHandle is the internal Vulkan object handle for the Device this DeviceMemory belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this DeviceMemory Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this DeviceMemory. If it is at least // Vulkan 1.1, core1_1.PromoteDeviceMemory can be used to promote this to a core1_1.DeviceMemory, // etc. APIVersion() common.APIVersion // Map maps a memory object into application address space // // offset - A zero-based byte offset from the beginning of the memory object // // size - The size of the memory range to map, or -1 to map from offset to the end of the // allocation // // flags - Reserved (always 0) // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkMapMemory.html Map(offset int, size int, flags MemoryMapFlags) (unsafe.Pointer, common.VkResult, error) // Unmap unmaps a previously-mapped memory object // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUnmapMemory.html Unmap() // Free frees the DeviceMemory. **Warning** after freeing, this object will continue to exist, // but the Vulkan object handle that backs it will be invalid. Do not call further methods on // this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFreeMemory.html Free(callbacks *driver.AllocationCallbacks) // Commitment returns the current number of bytes currently committed to this DeviceMemory // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceMemoryCommitment.html Commitment() int // FlushAll flushes all mapped memory ranges in this DeviceMemory // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkFlushMappedMemoryRanges.html FlushAll() (common.VkResult, error) // InvalidateAll invalidates all mapped memory ranges in this DeviceMemory // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkInvalidateMappedMemoryRanges.html InvalidateAll() (common.VkResult, error) }
DeviceMemory represents a block of memory on the device
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemory.html
type DeviceQueueCreateFlags ¶
type DeviceQueueCreateFlags int32
DeviceQueueCreateFlags specifies behavior of a Queue
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueCreateFlagBits.html
func (DeviceQueueCreateFlags) Register ¶
func (f DeviceQueueCreateFlags) Register(str string)
func (DeviceQueueCreateFlags) String ¶
func (f DeviceQueueCreateFlags) String() string
type DeviceQueueCreateInfo ¶
type DeviceQueueCreateInfo struct { // Flags indicates behavior of the Queue objects Flags DeviceQueueCreateFlags // QueueFamilyIndex indicates the index of the Queue family in which to create the Queue objects // on this Device QueueFamilyIndex int // QueuePriorities is a slice of normalized floating point values, specifying priorities of work // that will be submitted to each created queue QueuePriorities []float32 common.NextOptions }
DeviceQueueCreateInfo specifies parameters of a newly-created Device Queue
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueCreateInfo.html
type DynamicState ¶
type DynamicState int32
DynamicState indicates which dynamic state is taken from dynamic state commands
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html
const ( // DynamicStateViewport specifies that PipelineViewportStateCreateInfo.Viewports will be ignored // and must be set dynamically with CommandBuffer.CmdSetViewport before any drawing commands // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateViewport DynamicState = C.VK_DYNAMIC_STATE_VIEWPORT // DynamicStateScissor specifies that PipelineViewportStateCreateInfo.Scissors will be ignored // and must be set dynamically with CommandBuffer.CmdSetScissor before any drawing commands // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateScissor DynamicState = C.VK_DYNAMIC_STATE_SCISSOR // DynamicStateLineWidth specifies that PipelineRasterizationStateCreateInfo.LineWidth // will be ignored and must be set dynamically with CommandBuffer.CmdSetLineWidth before any // drawing commands // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateLineWidth DynamicState = C.VK_DYNAMIC_STATE_LINE_WIDTH // DynamicStateDepthBias specifies that PipelineRasterizationStateCreateInfo.DepthBiasConstantFactor, // PipelineRasterizationStateCreateInfo.DepthBiasClamp, and PipelineRasterizationStateCreateInfo.DepthBiasSlopeFactor // will be ignored and must be set dynamically with CommandBuffer.CmdSetDepthBias before any // draws are performed with PipelineRasterizationStateCreateInfo.DepthBiasEnabled set to true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateDepthBias DynamicState = C.VK_DYNAMIC_STATE_DEPTH_BIAS // DynamicStateBlendConstants specifies that PipelineColorBlendStateCreateInfo.BlendConstants // will be ignored and must be set dynamically with CommandBuffer.CmdSetBlendConstants before // any draws are performed with PipelineColorBlendAttachmentState.BlendEnabled set to true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateBlendConstants DynamicState = C.VK_DYNAMIC_STATE_BLEND_CONSTANTS // DynamicStateDepthBounds specifies that PipelineDepthStencilStateCreateInfo.MinDepthBounds and // PipelineDepthStencilStateCreateInfo.MaxDepthBounds will be ignored and must be set dynamically // with CommandBuffer.CmdSetDepthBounds before any draws are performed with // PipelineDepthStencilStateCreateInfo.DepthBoundsTestEnable set to true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateDepthBounds DynamicState = C.VK_DYNAMIC_STATE_DEPTH_BOUNDS // DynamicStateStencilCompareMask specifies that PipelineDepthStencilStateCreateInfo.Front.CompareMask and // PipelineDepthStencilStateCreateInfo.Back.CompareMask will be ignored and must be set dynamically with // CommandBuffer.CmdSetStencilCompareMask before any draws are performed with // PipelineDepthStencilStateCreateInfo.StencilTestEnable set to true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateStencilCompareMask DynamicState = C.VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK // DynamicStateStencilWriteMask specifies that // PipelineDepthStencilStateCreateInfo.Front.WriteMask and PipelineDepthStencilStateCreateInfo.Back.WriteMask // will be ignored and must be set dynamically with CommandBuffer.CmdSetStencilWriteMask before any draws // are performed with PipelineDepthStencilStateCreateInfo.StencilTestEnable // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateStencilWriteMask DynamicState = C.VK_DYNAMIC_STATE_STENCIL_WRITE_MASK // DynamicStateStencilReference specifies that PipelineDepthStencilStateCreateInfo.Front.Reference // and PipelineDepthStencilStateCreateInfo.Back.Reference must be set dynamically with // CommandBuffer.CmdSetStencilReference before any draws are performed with // PipelineDepthStencilStateCreateInfo.StencilTestEnable set to true // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html DynamicStateStencilReference DynamicState = C.VK_DYNAMIC_STATE_STENCIL_REFERENCE )
func (DynamicState) Register ¶
func (e DynamicState) Register(str string)
func (DynamicState) String ¶
func (e DynamicState) String() string
type Event ¶
type Event interface { // Handle is the internal Vulkan object handle for this Event Handle() driver.VkEvent // DeviceHandle is the internal Vulkan object handle for the Device this Event belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Event Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Event. If it is at least Vulkan // 1.1, core1_1.PromoteEvent can be used to promote this to a core1_1.Event, etc. APIVersion() common.APIVersion // Destroy destroys the Event and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. Destroy(callbacks *driver.AllocationCallbacks) // Set sets this Event to the signaled state // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkSetEvent.html Set() (common.VkResult, error) // Reset sets this Event to the unsignaled state // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetEvent.html Reset() (common.VkResult, error) // Status retrieves the status of this Event // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetEventStatus.html Status() (common.VkResult, error) }
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.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkEvent.html
type EventCreateFlags ¶
type EventCreateFlags int32
EventCreateFlags represents event creation flag bits
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkEventCreateFlagBits.html
func (EventCreateFlags) Register ¶
func (f EventCreateFlags) Register(str string)
func (EventCreateFlags) String ¶
func (f EventCreateFlags) String() string
type EventCreateInfo ¶
type EventCreateInfo struct { // Flags defines additional creation parameters Flags EventCreateFlags common.NextOptions }
EventCreateInfo specifies parameters of a newly-created Event
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkEventCreateInfo.html
type ExtensionProperties ¶
type ExtensionProperties struct { // ExtensionName is a string which is the name of the extension ExtensionName string // SpecVersion is the version of this extension SpecVersion uint }
ExtensionProperties specifies an extension's properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExtensionProperties.html
type Extent2D ¶
type Extent2D struct { // Width is the width of the extent Width int // Height is the height of the extent Height int }
Extent2D specifies a two-dimensional extent
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExtent2D.html
type Extent3D ¶
type Extent3D struct { // Width is the width of the extent Width int // Height is the height of the extent Height int // Depth is the depth of the extent Depth int }
Extent3D specifies a three-dimensional extent
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExtent3D.html
type Fence ¶
type Fence interface { // Handle is the internal Vulkan object handle for this Fence Handle() driver.VkFence // DeviceHandle is the internal Vulkan object handle for the Device this Fence belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Fence Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Fence. If it is at least // Vulkan 1.1, core1_1.PromoteFence can be used to promote this to a core1_1.Fence, etc. APIVersion() common.APIVersion // Destroy destroys this Fence object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocatoin // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyFence.html Destroy(callbacks *driver.AllocationCallbacks) // Wait waits for this fence to become signaled // // 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. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkWaitForFences.html Wait(timeout time.Duration) (common.VkResult, error) // Reset resets this Fence object to the unsignaled state // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkResetFences.html Reset() (common.VkResult, error) // Status returns the status of this Fence // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetFenceStatus.html Status() (common.VkResult, error) }
Fence is a synchronization primitive that can be used to insert a dependency from a queue to the host.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFence.html
type FenceCreateFlags ¶
type FenceCreateFlags int32
FenceCreateFlags specifies initial state and behavior of a Fence
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceCreateFlagBits.html
const ( // FenceCreateSignaled specifies that the Fence object is created in the signaled state // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceCreateFlagBits.html FenceCreateSignaled FenceCreateFlags = C.VK_FENCE_CREATE_SIGNALED_BIT )
func (FenceCreateFlags) Register ¶
func (f FenceCreateFlags) Register(str string)
func (FenceCreateFlags) String ¶
func (f FenceCreateFlags) String() string
type FenceCreateInfo ¶
type FenceCreateInfo struct { // Flags specifies the initial state and behavior of the Fence Flags FenceCreateFlags common.NextOptions }
FenceCreateInfo specifies parameters of a newly-created Fence
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceCreateInfo.html
type Filter ¶
type Filter int32
Filter specifies filters to use for texture lookups
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFilter.html
type Format ¶
type Format int32
Format specifies available image formats
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
const ( // FormatUndefined specifies that the format is not specified // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatUndefined Format = C.VK_FORMAT_UNDEFINED // FormatR4G4UnsignedNormalizedPacked specifies a two-comonent, 8-bit packed unsigned // normalized format that has a 4-bit R components in bits 4..7 and a 4-bit G component // in bits 0..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR4G4UnsignedNormalizedPacked Format = C.VK_FORMAT_R4G4_UNORM_PACK8 // FormatR4G4B4A4UnsignedNormalizedPacked specifies a four-component, 16-bit packed unsigned // normalized format that has a 4-bit R component in bits 12..15, a 4-bit G component in bits // 8..11, a 4-bit B comonent in bits 4..7, and a 4-bit A component in bits 0..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR4G4B4A4UnsignedNormalizedPacked Format = C.VK_FORMAT_R4G4B4A4_UNORM_PACK16 // FormatB4G4R4A4UnsignedNormalizedPacked specifies a four-component 16-bit packed unsigned // normalized format that has a 4-bit B component in bits 12..15, a 4-bit G component in bits // 8..11, a 4-bit R component in bits 4..7, and a 4-bit A component in bits 0..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB4G4R4A4UnsignedNormalizedPacked Format = C.VK_FORMAT_B4G4R4A4_UNORM_PACK16 // FormatR5G6B5UnsignedNormalizedPacked specifies a three-component, 16-bit packed unsigned // normalized format that has a 5-bit R component in bits 11..15, a 6-bit G component in bits // 5..10, and a 5-bit B component in bits 0..4 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR5G6B5UnsignedNormalizedPacked Format = C.VK_FORMAT_R5G6B5_UNORM_PACK16 // FormatB5G6R5UnsignedNormalizedPacked specifies a three-component, 16-bit packed unsigned // normalized format that has a 5-bit B component in bits 11..15, a 6-bit G component in bits // 5..10, and a 5-bit R component in bits 0..4 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB5G6R5UnsignedNormalizedPacked Format = C.VK_FORMAT_B5G6R5_UNORM_PACK16 // FormatR5G5B5A1UnsignedNormalizedPacked specifies a four-component, 16-bit packed unsigned // normalized format that has a 5-bit R component in bits 11..15, a 5-bit G component in bits // 6..10 a 5-bit B component in bits 1..5, and a 1-bit A component in bit 0. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR5G5B5A1UnsignedNormalizedPacked Format = C.VK_FORMAT_R5G5B5A1_UNORM_PACK16 // FormatB5G5R5A1UnsignedNormalizedPacked specifies a four-component, 16-bit packed unsigned // normalized format that has a 5-bit B component inb its 11..15, a 5-bit G comonent in bits 6..10, // a 5-bit R component in bits 1..5, and a 1-bit A component in bit 0. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB5G5R5A1UnsignedNormalizedPacked Format = C.VK_FORMAT_B5G5R5A1_UNORM_PACK16 // FormatA1R5G5B5UnsignedNormalizedPacked specifies a four-component, 16-bit packed unsigned // normalized format that has a 1-bit A component in bit 15, a 5-bit R component in bits 10..14, // a 5-bit G component in bits 5..9, and a 5-bit B component in bits 0..4 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA1R5G5B5UnsignedNormalizedPacked Format = C.VK_FORMAT_A1R5G5B5_UNORM_PACK16 // FormatR8UnsignedNormalized specifies a one-component, 8-bit unsigned normalized format that has // a single 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8UnsignedNormalized Format = C.VK_FORMAT_R8_UNORM // FormatR8SignedNormalized specifies a one-component, 8-bit signed normalized format that has a // single 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8SignedNormalized Format = C.VK_FORMAT_R8_SNORM // FormatR8UnsignedScaled specifies a one-component, 8-bit unsigned scaled integer format that // has a single 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8UnsignedScaled Format = C.VK_FORMAT_R8_USCALED // FormatR8SignedScaled specifies a one-component, 8-bit signed scaled integer format that has a // single 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8SignedScaled Format = C.VK_FORMAT_R8_SSCALED // FormatR8UnsignedInt specifies a one-component, 8-bit unsigned integer format that has a single // 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8UnsignedInt Format = C.VK_FORMAT_R8_UINT // FormatR8SignedInt specifies a one-component, 8-bit signed integer format that has a single // 8-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8SignedInt Format = C.VK_FORMAT_R8_SINT // FormatR8SRGB specifies a one-component, 8-bit unsigned normalized format that has a single // 8-bit R component stored with sRGB nonlinear encoding // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8SRGB Format = C.VK_FORMAT_R8_SRGB // FormatR8G8UnsignedNormalized specifies a two-component, 16-bit unsigned normalized format // that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8UnsignedNormalized Format = C.VK_FORMAT_R8G8_UNORM // FormatR8G8SignedNormalized specifies a two-component, 16-bit signed normalized format that // has an 8-bit R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8SignedNormalized Format = C.VK_FORMAT_R8G8_SNORM // FormatR8G8UnsignedScaled specifies a two-component, 16-bit unsigned scaled integer format // that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8UnsignedScaled Format = C.VK_FORMAT_R8G8_USCALED // FormatR8G8SignedScaled specifies a two-component, 16-bit signed scaled integer format that // has an 8-bit R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8SignedScaled Format = C.VK_FORMAT_R8G8_SSCALED // FormatR8G8UnsignedInt specifies a two-component, 16-bit unsigned integer format that has an // 8-bit R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8UnsignedInt Format = C.VK_FORMAT_R8G8_UINT // FormatR8G8SignedInt specifies a two-component, 16-bit signed integer format that has an 8-bit // R component in byte 0, and an 8-bit G component in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8SignedInt Format = C.VK_FORMAT_R8G8_SINT // FormatR8G8SRGB specifies a two-component, 16-bit unsigned normalized function that has an 8-bit // R component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored with // sRGB nonlinear encoding in byte 1 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8SRGB Format = C.VK_FORMAT_R8G8_SRGB // FormatR8G8B8UnsignedNormalized specifies a three-component, 24-bit unsigned normalized format // that has an 8-bit R component in byte 0, and 8-bit G component in byte 1, and an 8-bit B // component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8UnsignedNormalized Format = C.VK_FORMAT_R8G8B8_UNORM // FormatR8G8B8SignedNormalized specifies a three-component, 24-bit signed normalized format that // has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in // byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8SignedNormalized Format = C.VK_FORMAT_R8G8B8_SNORM // FormatR8G8B8UnsignedScaled specifies a three-component, 24-bit unsigned scaled format that has // an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8UnsignedScaled Format = C.VK_FORMAT_R8G8B8_USCALED // FormatR8G8B8SignedScaled specifies a three-component, 24-bit signed scaled format that has an 8-bit // R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8SignedScaled Format = C.VK_FORMAT_R8G8B8_SSCALED // FormatR8G8B8UnsignedInt specifies a three-component, 24-bit unsigned integer format that has an 8-bit // R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8UnsignedInt Format = C.VK_FORMAT_R8G8B8_UINT // FormatR8G8B8SignedInt specifies a three-component, 24-bit signed integer format that has an 8-bit // R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8SignedInt Format = C.VK_FORMAT_R8G8B8_SINT // FormatR8G8B8SRGB specifies a three-component, 24-bit unsigned normalized format that has an 8-bit // R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB // nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear encoding in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8SRGB Format = C.VK_FORMAT_R8G8B8_SRGB // FormatB8G8R8UnsignedNormalized specifies a three-component, 24-bit unsigned normalized format that has // an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8UnsignedNormalized Format = C.VK_FORMAT_B8G8R8_UNORM // FormatB8G8R8SignedNormalized specifies a three-component, 24-bit signed normalized format that has an 8-bit // // B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8SignedNormalized Format = C.VK_FORMAT_B8G8R8_SNORM // FormatB8G8R8UnsignedScaled specifies a three-component, 24-bit unsigned scaled format that has an 8-bit // B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8UnsignedScaled Format = C.VK_FORMAT_B8G8R8_USCALED // FormatB8G8R8SignedScaled specifies a three-component, 24-bit signed scaled format that has an 8-bit // B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8SignedScaled Format = C.VK_FORMAT_B8G8R8_SSCALED // FormatB8G8R8UnsignedInt specifies a three-component, 24-bit unsigned integer format that has an // 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8UnsignedInt Format = C.VK_FORMAT_B8G8R8_UINT // FormatB8G8R8SignedInt specifies a three-component, 24-bit signed integer format that has an 8-bit // B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8SignedInt Format = C.VK_FORMAT_B8G8R8_SINT // FormatB8G8R8SRGB specifies a three-component, 24-bit unsigned normalized format that has an 8-bit // B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB // nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear encoding in byte 2 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8SRGB Format = C.VK_FORMAT_B8G8R8_SRGB // FormatR8G8B8A8UnsignedNormalized specifies a four-component, 32-bit unsigned normalized format that // has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, // and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8UnsignedNormalized Format = C.VK_FORMAT_R8G8B8A8_UNORM // FormatR8G8B8A8SignedNormalized specifies a four-component, 32-bit signed normalized format that has an // 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an // 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8SignedNormalized Format = C.VK_FORMAT_R8G8B8A8_SNORM // FormatR8G8B8A8UnsignedScaled specifies a four-component, 32-bit unsigned scaled format that has an 8-bit // R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A // component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8UnsignedScaled Format = C.VK_FORMAT_R8G8B8A8_USCALED // FormatR8G8B8A8SignedScaled specifies a four-component, 32-bit signed scaled format that has an 8-bit R // component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A // component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8SignedScaled Format = C.VK_FORMAT_R8G8B8A8_SSCALED // FormatR8G8B8A8UnsignedInt specifies a four-component, 32-bit unsigned integer format that has an 8-bit R // component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A // component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8UnsignedInt Format = C.VK_FORMAT_R8G8B8A8_UINT // FormatR8G8B8A8SignedInt specifies a four-component, 32-bit signed integer format that has an 8-bit R component // in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8SignedInt Format = C.VK_FORMAT_R8G8B8A8_SINT // FormatR8G8B8A8SRGB specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R component // stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte // 1, an 8-bit B component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR8G8B8A8SRGB Format = C.VK_FORMAT_R8G8B8A8_SRGB // FormatB8G8R8A8UnsignedNormalized specifies a four-component, 32-bit unsigned normalized format that has an 8-bit // B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component // in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8UnsignedNormalized Format = C.VK_FORMAT_B8G8R8A8_UNORM // FormatB8G8R8A8SignedNormalized specifies a four-component, 32-bit signed normalized format that has an 8-bit B // component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in // byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8SignedNormalized Format = C.VK_FORMAT_B8G8R8A8_SNORM // FormatB8G8R8A8UnsignedScaled specifies a four-component, 32-bit unsigned scaled format that has an 8-bit B // component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component // in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8UnsignedScaled Format = C.VK_FORMAT_B8G8R8A8_USCALED // FormatB8G8R8A8SignedScaled specifies a four-component, 32-bit signed scaled format that has an 8-bit B component // in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8SignedScaled Format = C.VK_FORMAT_B8G8R8A8_SSCALED // FormatB8G8R8A8UnsignedInt specifies a four-component, 32-bit unsigned integer format that has an 8-bit B // component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component // in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8UnsignedInt Format = C.VK_FORMAT_B8G8R8A8_UINT // FormatB8G8R8A8SignedInt specifies a four-component, 32-bit signed integer format that has an 8-bit B component // in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8SignedInt Format = C.VK_FORMAT_B8G8R8A8_SINT // FormatB8G8R8A8SRGB specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B component // stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte // 1, an 8-bit R component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB8G8R8A8SRGB Format = C.VK_FORMAT_B8G8R8A8_SRGB // FormatA8B8G8R8UnsignedNormalizedPacked specifies a four-component, 32-bit packed unsigned normalized format that // has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, // and an 8-bit R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8UnsignedNormalizedPacked Format = C.VK_FORMAT_A8B8G8R8_UNORM_PACK32 // FormatA8B8G8R8SignedNormalizedPacked specifies a four-component, 32-bit packed signed normalized format that has // an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, // and an 8-bit R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8SignedNormalizedPacked Format = C.VK_FORMAT_A8B8G8R8_SNORM_PACK32 // FormatA8B8G8R8UnsignedScaledPacked specifies a four-component, 32-bit packed unsigned scaled integer format that // has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, // and an 8-bit R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8UnsignedScaledPacked Format = C.VK_FORMAT_A8B8G8R8_USCALED_PACK32 // FormatA8B8G8R8SignedScaledPacked specifies a four-component, 32-bit packed signed scaled integer format that has // an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, // and an 8-bit R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8SignedScaledPacked Format = C.VK_FORMAT_A8B8G8R8_SSCALED_PACK32 // FormatA8B8G8R8UnsignedIntPacked specifies a four-component, 32-bit packed unsigned integer format that has an // 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and // an 8-bit R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8UnsignedIntPacked Format = C.VK_FORMAT_A8B8G8R8_UINT_PACK32 // FormatA8B8G8R8SignedIntPacked specifies a four-component, 32-bit packed signed integer format that has an 8-bit A // component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit // R component in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8SignedIntPacked Format = C.VK_FORMAT_A8B8G8R8_SINT_PACK32 // FormatA8B8G8R8SRGBPacked specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit // A component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23, an 8-bit G // component stored with sRGB nonlinear encoding in bits 8..15, and an 8-bit R component stored with sRGB nonlinear // encoding in bits 0..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA8B8G8R8SRGBPacked Format = C.VK_FORMAT_A8B8G8R8_SRGB_PACK32 // FormatA2R10G10B10UnsignedNormalizedPacked specifies a four-component, 32-bit packed unsigned normalized format // that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits // 10..19, and a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10UnsignedNormalizedPacked Format = C.VK_FORMAT_A2R10G10B10_UNORM_PACK32 // FormatA2R10G10B10SignedNormalizedPacked specifies a four-component, 32-bit packed signed normalized format that // has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, // and a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10SignedNormalizedPacked Format = C.VK_FORMAT_A2R10G10B10_SNORM_PACK32 // FormatA2R10G10B10UnsignedScaledPacked specifies a four-component, 32-bit packed unsigned scaled integer format // that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits // 10..19, and a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10UnsignedScaledPacked Format = C.VK_FORMAT_A2R10G10B10_USCALED_PACK32 // FormatA2R10G10B10SignedScaledPacked specifies a four-component, 32-bit packed signed scaled integer format that // has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, // and a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10SignedScaledPacked Format = C.VK_FORMAT_A2R10G10B10_SSCALED_PACK32 // FormatA2R10G10B10UnsignedIntPacked specifies a four-component, 32-bit packed unsigned integer format that has a // 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and // a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10UnsignedIntPacked Format = C.VK_FORMAT_A2R10G10B10_UINT_PACK32 // FormatA2R10G10B10SignedIntPacked specifies a four-component, 32-bit packed signed integer format that has a // 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and // a 10-bit B component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2R10G10B10SignedIntPacked Format = C.VK_FORMAT_A2R10G10B10_SINT_PACK32 // FormatA2B10G10R10UnsignedNormalizedPacked specifies a four-component, 32-bit packed unsigned normalized format // that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits // 10..19, and a 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10UnsignedNormalizedPacked Format = C.VK_FORMAT_A2B10G10R10_UNORM_PACK32 // FormatA2B10G10R10SignedNormalizedPacked specifies a four-component, 32-bit packed signed normalized format that // has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, // and a 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10SignedNormalizedPacked Format = C.VK_FORMAT_A2B10G10R10_SNORM_PACK32 // FormatA2B10G10R10UnsignedScaledPacked specifies a four-component, 32-bit packed unsigned scaled integer format // that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits // 10..19, and a 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10UnsignedScaledPacked Format = C.VK_FORMAT_A2B10G10R10_USCALED_PACK32 // FormatA2B10G10R10SignedScaledPacked specifies a four-component, 32-bit packed signed scaled integer format that // has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, // and a 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10SignedScaledPacked Format = C.VK_FORMAT_A2B10G10R10_SSCALED_PACK32 // FormatA2B10G10R10UnsignedIntPacked specifies a four-component, 32-bit packed unsigned integer format that has a // 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a // 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10UnsignedIntPacked Format = C.VK_FORMAT_A2B10G10R10_UINT_PACK32 // FormatA2B10G10R10SignedIntPacked specifies a four-component, 32-bit packed signed integer format that has a 2-bit // A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a // 10-bit R component in bits 0..9 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatA2B10G10R10SignedIntPacked Format = C.VK_FORMAT_A2B10G10R10_SINT_PACK32 // FormatR16UnsignedNormalized specifies a one-component, 16-bit unsigned normalized format that has a single // 16-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16UnsignedNormalized Format = C.VK_FORMAT_R16_UNORM // FormatR16SignedNormalized specifies a one-component, 16-bit signed normalized format that has a single 16-bit // R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16SignedNormalized Format = C.VK_FORMAT_R16_SNORM // FormatR16UnsignedScaled specifies a one-component, 16-bit unsigned scaled integer format that has a single // 16-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16UnsignedScaled Format = C.VK_FORMAT_R16_USCALED // FormatR16SignedScaled specifies a one-component, 16-bit signed scaled integer format that has a single // 16-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16SignedScaled Format = C.VK_FORMAT_R16_SSCALED // FormatR16UnsignedInt specifies a one-component, 16-bit unsigned integer format that has a single 16-bit // R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16UnsignedInt Format = C.VK_FORMAT_R16_UINT // FormatR16SignedInt specifies a one-component, 16-bit signed integer format that has a single 16-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16SignedInt Format = C.VK_FORMAT_R16_SINT // FormatR16SignedFloat specifies a one-component, 16-bit signed floating-point format that has a single 16-bit // R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16SignedFloat Format = C.VK_FORMAT_R16_SFLOAT // FormatR16G16UnsignedNormalized specifies a two-component, 32-bit unsigned normalized format that has a 16-bit // R component in bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16UnsignedNormalized Format = C.VK_FORMAT_R16G16_UNORM // FormatR16G16SignedNormalized specifies a two-component, 32-bit signed normalized format that has a 16-bit R // component in bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16SignedNormalized Format = C.VK_FORMAT_R16G16_SNORM // FormatR16G16UnsignedScaled specifies a two-component, 32-bit unsigned scaled integer format that has a 16-bit R // component in bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16UnsignedScaled Format = C.VK_FORMAT_R16G16_USCALED // FormatR16G16SignedScaled specifies a two-component, 32-bit signed scaled integer format that has a 16-bit R // component in bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16SignedScaled Format = C.VK_FORMAT_R16G16_SSCALED // FormatR16G16UnsignedInt specifies a two-component, 32-bit unsigned integer format that has a 16-bit R component in // bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16UnsignedInt Format = C.VK_FORMAT_R16G16_UINT // FormatR16G16SignedInt specifies a two-component, 32-bit signed integer format that has a 16-bit R component in // bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16SignedInt Format = C.VK_FORMAT_R16G16_SINT // FormatR16G16SignedFloat specifies a two-component, 32-bit signed floating-point format that has a 16-bit R // component in bytes 0..1, and a 16-bit G component in bytes 2..3 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16SignedFloat Format = C.VK_FORMAT_R16G16_SFLOAT // FormatR16G16B16UnsignedNormalized specifies a three-component, 48-bit unsigned normalized format that has a // 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16UnsignedNormalized Format = C.VK_FORMAT_R16G16B16_UNORM // FormatR16G16B16SignedNormalized specifies a three-component, 48-bit signed normalized format that has a 16-bit R // component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16SignedNormalized Format = C.VK_FORMAT_R16G16B16_SNORM // FormatR16G16B16UnsignedScaled specifies a three-component, 48-bit unsigned scaled integer format that has a // 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16UnsignedScaled Format = C.VK_FORMAT_R16G16B16_USCALED // FormatR16G16B16SignedScaled specifies a three-component, 48-bit signed scaled integer format that has a // 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16SignedScaled Format = C.VK_FORMAT_R16G16B16_SSCALED // FormatR16G16B16UnsignedInt specifies a three-component, 48-bit unsigned integer format that has a 16-bit R // component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16UnsignedInt Format = C.VK_FORMAT_R16G16B16_UINT // FormatR16G16B16SignedInt specifies a three-component, 48-bit signed integer format that has a 16-bit R component // in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16SignedInt Format = C.VK_FORMAT_R16G16B16_SINT // FormatR16G16B16SignedFloat specifies a three-component, 48-bit signed floating-point format that has a 16-bit R // component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16SignedFloat Format = C.VK_FORMAT_R16G16B16_SFLOAT // FormatR16G16B16A16UnsignedNormalized specifies a four-component, 64-bit unsigned normalized format that has a // 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a // 16-bit A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16UnsignedNormalized Format = C.VK_FORMAT_R16G16B16A16_UNORM // FormatR16G16B16A16SignedNormalized specifies a four-component, 64-bit signed normalized format that has a 16-bit // R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit // A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16SignedNormalized Format = C.VK_FORMAT_R16G16B16A16_SNORM // FormatR16G16B16A16UnsignedScaled specifies a four-component, 64-bit unsigned scaled integer format that has a // 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a // 16-bit A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16UnsignedScaled Format = C.VK_FORMAT_R16G16B16A16_USCALED // FormatR16G16B16A16SignedScaled specifies a four-component, 64-bit signed scaled integer format that has a 16-bit // R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit // A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16SignedScaled Format = C.VK_FORMAT_R16G16B16A16_SSCALED // FormatR16G16B16A16UnsignedInt specifies a four-component, 64-bit unsigned integer format that has a 16-bit R // component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit // A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16UnsignedInt Format = C.VK_FORMAT_R16G16B16A16_UINT // FormatR16G16B16A16SignedInt specifies a four-component, 64-bit signed integer format that has a 16-bit R // component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A // component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16SignedInt Format = C.VK_FORMAT_R16G16B16A16_SINT // FormatR16G16B16A16SignedFloat specifies a four-component, 64-bit signed floating-point format that has a 16-bit // R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit // A component in bytes 6..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR16G16B16A16SignedFloat Format = C.VK_FORMAT_R16G16B16A16_SFLOAT // FormatR32UnsignedInt specifies a one-component, 32-bit unsigned integer format that has a single 32-bit R // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32UnsignedInt Format = C.VK_FORMAT_R32_UINT // FormatR32SignedInt specifies a one-component, 32-bit signed integer format that has a single 32-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32SignedInt Format = C.VK_FORMAT_R32_SINT // FormatR32SignedFloat specifies a one-component, 32-bit signed floating-point format that has a single 32-bit R // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32SignedFloat Format = C.VK_FORMAT_R32_SFLOAT // FormatR32G32UnsignedInt specifies a two-component, 64-bit unsigned integer format that has a 32-bit R component // in bytes 0..3, and a 32-bit G component in bytes 4..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32UnsignedInt Format = C.VK_FORMAT_R32G32_UINT // FormatR32G32SignedInt specifies a two-component, 64-bit signed integer format that has a 32-bit R component in // bytes 0..3, and a 32-bit G component in bytes 4..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32SignedInt Format = C.VK_FORMAT_R32G32_SINT // FormatR32G32SignedFloat specifies a two-component, 64-bit signed floating-point format that has a 32-bit R // component in bytes 0..3, and a 32-bit G component in bytes 4..7 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32SignedFloat Format = C.VK_FORMAT_R32G32_SFLOAT // FormatR32G32B32UnsignedInt specifies a three-component, 96-bit unsigned integer format that has a 32-bit R // component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32UnsignedInt Format = C.VK_FORMAT_R32G32B32_UINT // FormatR32G32B32SignedInt specifies a three-component, 96-bit signed integer format that has a 32-bit R component // in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32SignedInt Format = C.VK_FORMAT_R32G32B32_SINT // FormatR32G32B32SignedFloat specifies a three-component, 96-bit signed floating-point format that has a 32-bit // R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32SignedFloat Format = C.VK_FORMAT_R32G32B32_SFLOAT // FormatR32G32B32A32UnsignedInt specifies a four-component, 128-bit unsigned integer format that has a 32-bit R // component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit // A component in bytes 12..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32A32UnsignedInt Format = C.VK_FORMAT_R32G32B32A32_UINT // FormatR32G32B32A32SignedInt specifies a four-component, 128-bit signed integer format that has a 32-bit R // component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A // component in bytes 12..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32A32SignedInt Format = C.VK_FORMAT_R32G32B32A32_SINT // FormatR32G32B32A32SignedFloat specifies a four-component, 128-bit signed floating-point format that has a 32-bit // R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit // A component in bytes 12..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR32G32B32A32SignedFloat Format = C.VK_FORMAT_R32G32B32A32_SFLOAT // FormatR64UnsignedInt specifies a one-component, 64-bit unsigned integer format that has a single 64-bit R // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64UnsignedInt Format = C.VK_FORMAT_R64_UINT // FormatR64SignedInt specifies a one-component, 64-bit signed integer format that has a single 64-bit R component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64SignedInt Format = C.VK_FORMAT_R64_SINT // FormatR64SignedFloat specifies a one-component, 64-bit signed floating-point format that has a single 64-bit R // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64SignedFloat Format = C.VK_FORMAT_R64_SFLOAT // FormatR64G64UnsignedInt specifies a two-component, 128-bit unsigned integer format that has a 64-bit R component // in bytes 0..7, and a 64-bit G component in bytes 8..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64UnsignedInt Format = C.VK_FORMAT_R64G64_UINT // FormatR64G64SignedInt specifies a two-component, 128-bit signed integer format that has a 64-bit R component in // bytes 0..7, and a 64-bit G component in bytes 8..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64SignedInt Format = C.VK_FORMAT_R64G64_SINT // FormatR64G64SignedFloat specifies a two-component, 128-bit signed floating-point format that has a 64-bit R // component in bytes 0..7, and a 64-bit G component in bytes 8..15 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64SignedFloat Format = C.VK_FORMAT_R64G64_SFLOAT // FormatR64G64B64UnsignedInt specifies a three-component, 192-bit unsigned integer format that has a 64-bit R // component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64UnsignedInt Format = C.VK_FORMAT_R64G64B64_UINT // FormatR64G64B64SignedInt specifies a three-component, 192-bit signed integer format that has a 64-bit R // component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64SignedInt Format = C.VK_FORMAT_R64G64B64_SINT // FormatR64G64B64SignedFloat specifies a three-component, 192-bit signed floating-point format that has a 64-bit // R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64SignedFloat Format = C.VK_FORMAT_R64G64B64_SFLOAT // FormatR64G64B64A64UnsignedInt specifies a four-component, 256-bit unsigned integer format that has a 64-bit R // component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit // A component in bytes 24..31 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64A64UnsignedInt Format = C.VK_FORMAT_R64G64B64A64_UINT // FormatR64G64B64A64SignedInt specifies a four-component, 256-bit signed integer format that has a 64-bit R // component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit // A component in bytes 24..31 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64A64SignedInt Format = C.VK_FORMAT_R64G64B64A64_SINT // FormatR64G64B64A64SignedFloat specifies a four-component, 256-bit signed floating-point format that has a 64-bit // R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a // 64-bit A component in bytes 24..31 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatR64G64B64A64SignedFloat Format = C.VK_FORMAT_R64G64B64A64_SFLOAT // FormatB10G11R11UnsignedFloatPacked specifies a three-component, 32-bit packed unsigned floating-point format // that has a 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component in // bits 0..10 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatB10G11R11UnsignedFloatPacked Format = C.VK_FORMAT_B10G11R11_UFLOAT_PACK32 // FormatE5B9G9R9UnsignedFloatPacked specifies a three-component, 32-bit packed unsigned floating-point format that // has a 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G component // mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatE5B9G9R9UnsignedFloatPacked Format = C.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 // FormatD16UnsignedNormalized specifies a one-component, 16-bit unsigned normalized format that has a single // 16-bit depth component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD16UnsignedNormalized Format = C.VK_FORMAT_D16_UNORM // FormatD24X8UnsignedNormalizedPacked specifies a two-component, 32-bit format that has 24 unsigned normalized // bits in the depth component and, optionally, 8 bits that are unused // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD24X8UnsignedNormalizedPacked Format = C.VK_FORMAT_X8_D24_UNORM_PACK32 // FormatD32SignedFloat specifies a one-component, 32-bit signed floating-point format that has 32 bits in the // depth component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD32SignedFloat Format = C.VK_FORMAT_D32_SFLOAT // FormatS8UnsignedInt specifies a one-component, 8-bit unsigned integer format that has 8 bits in the stencil // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatS8UnsignedInt Format = C.VK_FORMAT_S8_UINT // FormatD16UnsignedNormalizedS8UnsignedInt specifies a two-component, 24-bit format that has 16 unsigned // normalized bits in the depth component and 8 unsigned integer bits in the stencil component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD16UnsignedNormalizedS8UnsignedInt Format = C.VK_FORMAT_D16_UNORM_S8_UINT // FormatD24UnsignedNormalizedS8UnsignedInt specifies a two-component, 32-bit packed format that has 8 unsigned // integer bits in the stencil component, and 24 unsigned normalized bits in the depth component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD24UnsignedNormalizedS8UnsignedInt Format = C.VK_FORMAT_D24_UNORM_S8_UINT // FormatD32SignedFloatS8UnsignedInt specifies a two-component format that has 32 signed float bits in the depth // component and 8 unsigned integer bits in the stencil component. There are optionally 24 bits that are unused // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatD32SignedFloatS8UnsignedInt Format = C.VK_FORMAT_D32_SFLOAT_S8_UINT // FormatBC1_RGBUnsignedNormalized specifies a three-component, block-compressed format where each 64-bit // compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data. This format has no alpha // and is considered opaque // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC1_RGBUnsignedNormalized Format = C.VK_FORMAT_BC1_RGB_UNORM_BLOCK // FormatBC1_RGBsRGB specifies a three-component, block-compressed format where each 64-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format has no // alpha and is considered opaque. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC1_RGBsRGB Format = C.VK_FORMAT_BC1_RGB_SRGB_BLOCK // FormatBC1_RGBAUnsignedNormalized specifies a four-component, block-compressed format where each 64-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1 bit of alpha // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC1_RGBAUnsignedNormalized Format = C.VK_FORMAT_BC1_RGBA_UNORM_BLOCK // FormatBC1_RGBAsRGB specifies a four-component, block-compressed format where each 64-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides 1 bit // of alpha. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC1_RGBAsRGB Format = C.VK_FORMAT_BC1_RGBA_SRGB_BLOCK // FormatBC2_UnsignedNormalized specifies a four-component, block-compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha // values followed by 64 bits encoding RGB values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC2_UnsignedNormalized Format = C.VK_FORMAT_BC2_UNORM_BLOCK // FormatBC2_sRGB specifies a four-component, block-compressed format where each 128-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values // followed by 64 bits encoding RGB values with sRGB nonlinear encoding // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC2_sRGB Format = C.VK_FORMAT_BC2_SRGB_BLOCK // FormatBC3_UnsignedNormalized specifies a four-component, block-compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha // values followed by 64 bits encoding RGB values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC3_UnsignedNormalized Format = C.VK_FORMAT_BC3_UNORM_BLOCK // FormatBC3_sRGB specifies a four-component, block-compressed format where each 128-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values // followed by 64 bits encoding RGB values with sRGB nonlinear encoding // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC3_sRGB Format = C.VK_FORMAT_BC3_SRGB_BLOCK // FormatBC4_UnsignedNormalized specifies a one-component, block-compressed format where each 64-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized red texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC4_UnsignedNormalized Format = C.VK_FORMAT_BC4_UNORM_BLOCK // FormatBC4_SignedNormalized specifies a one-component, block-compressed format where each 64-bit compressed texel // block encodes a 4×4 rectangle of signed normalized red texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC4_SignedNormalized Format = C.VK_FORMAT_BC4_SNORM_BLOCK // FormatBC5_UnsignedNormalized specifies a two-component, block-compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RG texel data with the first 64 bits encoding red // values followed by 64 bits encoding green values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC5_UnsignedNormalized Format = C.VK_FORMAT_BC5_UNORM_BLOCK // FormatBC5_SignedNormalized specifies a two-component, block-compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of signed normalized RG texel data with the first 64 bits encoding red // values followed by 64 bits encoding green values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC5_SignedNormalized Format = C.VK_FORMAT_BC5_SNORM_BLOCK // FormatBC6_UnsignedFloat specifies a three-component, block-compressed format where each 128-bit compressed texel // block encodes a 4×4 rectangle of unsigned floating-point RGB texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC6_UnsignedFloat Format = C.VK_FORMAT_BC6H_UFLOAT_BLOCK // FormatBC6_SignedFloat specifies a three-component, block-compressed format where each 128-bit compressed texel // block encodes a 4×4 rectangle of signed floating-point RGB texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC6_SignedFloat Format = C.VK_FORMAT_BC6H_SFLOAT_BLOCK // FormatBC7_UnsignedNormalized specifies a four-component, block-compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC7_UnsignedNormalized Format = C.VK_FORMAT_BC7_UNORM_BLOCK // FormatBC7_sRGB specifies a four-component, block-compressed format where each 128-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatBC7_sRGB Format = C.VK_FORMAT_BC7_SRGB_BLOCK // FormatETC2_R8G8B8UnsignedNormalized specifies a three-component, ETC2 compressed format where each 64-bit // compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data. This format has no alpha // and is considered opaque // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8UnsignedNormalized Format = C.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK // FormatETC2_R8G8B8sRGB specifies a three-component, ETC2 compressed format where each 64-bit compressed texel // block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format // has no alpha and is considered opaque // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8sRGB Format = C.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK // FormatETC2_R8G8B8A1UnsignedNormalized specifies a four-component, ETC2 compressed format where each 64-bit // compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1 bit of // alpha // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8A1UnsignedNormalized Format = C.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK // FormatETC2_R8G8B8A1sRGB specifies a four-component, ETC2 compressed format where each 64-bit compressed texel // block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides // 1 bit of alpha // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8A1sRGB Format = C.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK // FormatETC2_R8G8B8A8UnsignedNormalized specifies a four-component, ETC2 compressed format where each 128-bit // compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits // encoding alpha values followed by 64 bits encoding RGB values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8A8UnsignedNormalized Format = C.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK // FormatETC2_R8G8B8A8sRGB specifies a four-component, ETC2 compressed format where each 128-bit compressed texel // block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha // values followed by 64 bits encoding RGB values with sRGB nonlinear encoding applied // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatETC2_R8G8B8A8sRGB Format = C.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK // FormatEAC_R11UnsignedNormalized specifies a one-component, ETC2 compressed format where each 64-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized red texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatEAC_R11UnsignedNormalized Format = C.VK_FORMAT_EAC_R11_UNORM_BLOCK // FormatEAC_R11SignedNormalized specifies a one-component, ETC2 compressed format where each 64-bit compressed // texel block encodes a 4×4 rectangle of signed normalized red texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatEAC_R11SignedNormalized Format = C.VK_FORMAT_EAC_R11_SNORM_BLOCK // FormatEAC_R11G11UnsignedNormalized specifies a two-component, ETC2 compressed format where each 128-bit // compressed texel block encodes a 4×4 rectangle of unsigned normalized RG texel data with the first 64 bits // encoding red values followed by 64 bits encoding green values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatEAC_R11G11UnsignedNormalized Format = C.VK_FORMAT_EAC_R11G11_UNORM_BLOCK // FormatEAC_R11G11SignedNormalized specifies a two-component, ETC2 compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of signed normalized RG texel data with the first 64 bits encoding red values // followed by 64 bits encoding green values // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatEAC_R11G11SignedNormalized Format = C.VK_FORMAT_EAC_R11G11_SNORM_BLOCK // FormatASTC4x4_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC4x4_UnsignedNormalized Format = C.VK_FORMAT_ASTC_4x4_UNORM_BLOCK // FormatASTC4x4_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC4x4_sRGB Format = C.VK_FORMAT_ASTC_4x4_SRGB_BLOCK // FormatASTC5x4_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 5×4 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC5x4_UnsignedNormalized Format = C.VK_FORMAT_ASTC_5x4_UNORM_BLOCK // FormatASTC5x4_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 5×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC5x4_sRGB Format = C.VK_FORMAT_ASTC_5x4_SRGB_BLOCK // FormatASTC5x5_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes a 5×5 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC5x5_UnsignedNormalized Format = C.VK_FORMAT_ASTC_5x5_UNORM_BLOCK // FormatASTC5x5_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 5×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // component // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC5x5_sRGB Format = C.VK_FORMAT_ASTC_5x5_SRGB_BLOCK // FormatASTC6x5_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes a 6×5 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC6x5_UnsignedNormalized Format = C.VK_FORMAT_ASTC_6x5_UNORM_BLOCK // FormatASTC6x5_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 6×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC6x5_sRGB Format = C.VK_FORMAT_ASTC_6x5_SRGB_BLOCK // FormatASTC6x6_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes a 6×6 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC6x6_UnsignedNormalized Format = C.VK_FORMAT_ASTC_6x6_UNORM_BLOCK // FormatASTC6x6_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 6×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC6x6_sRGB Format = C.VK_FORMAT_ASTC_6x6_SRGB_BLOCK // FormatASTC8x5_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes an 8×5 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x5_UnsignedNormalized Format = C.VK_FORMAT_ASTC_8x5_UNORM_BLOCK // FormatASTC8x5_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes an 8×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x5_sRGB Format = C.VK_FORMAT_ASTC_8x5_SRGB_BLOCK // FormatASTC8x6_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes an 8×6 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x6_UnsignedNormalized Format = C.VK_FORMAT_ASTC_8x6_UNORM_BLOCK // FormatASTC8x6_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes an 8×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x6_sRGB Format = C.VK_FORMAT_ASTC_8x6_SRGB_BLOCK // FormatASTC8x8_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit compressed // texel block encodes an 8×8 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x8_UnsignedNormalized Format = C.VK_FORMAT_ASTC_8x8_UNORM_BLOCK // FormatASTC8x8_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes an 8×8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC8x8_sRGB Format = C.VK_FORMAT_ASTC_8x8_SRGB_BLOCK // FormatASTC10x5_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 10×5 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x5_UnsignedNormalized Format = C.VK_FORMAT_ASTC_10x5_UNORM_BLOCK // FormatASTC10x5_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 10×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x5_sRGB Format = C.VK_FORMAT_ASTC_10x5_SRGB_BLOCK // FormatASTC10x6_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 10×6 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x6_UnsignedNormalized Format = C.VK_FORMAT_ASTC_10x6_UNORM_BLOCK // FormatASTC10x6_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 10×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x6_sRGB Format = C.VK_FORMAT_ASTC_10x6_SRGB_BLOCK // FormatASTC10x8_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 10×8 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x8_UnsignedNormalized Format = C.VK_FORMAT_ASTC_10x8_UNORM_BLOCK // FormatASTC10x8_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel block // encodes a 10×8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB // components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x8_sRGB Format = C.VK_FORMAT_ASTC_10x8_SRGB_BLOCK // FormatASTC10x10_UnsignedNormalized // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x10_UnsignedNormalized Format = C.VK_FORMAT_ASTC_10x10_UNORM_BLOCK // FormatASTC10x10_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel // block encodes a 10×10 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC10x10_sRGB Format = C.VK_FORMAT_ASTC_10x10_SRGB_BLOCK // FormatASTC12x10_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 12×10 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC12x10_UnsignedNormalized Format = C.VK_FORMAT_ASTC_12x10_UNORM_BLOCK // FormatASTC12x10_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel // block encodes a 12×10 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to // the RGB components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC12x10_sRGB Format = C.VK_FORMAT_ASTC_12x10_SRGB_BLOCK // FormatASTC12x12_UnsignedNormalized specifies a four-component, ASTC compressed format where each 128-bit // compressed texel block encodes a 12×12 rectangle of unsigned normalized RGBA texel data // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC12x12_UnsignedNormalized Format = C.VK_FORMAT_ASTC_12x12_UNORM_BLOCK // FormatASTC12x12_sRGB specifies a four-component, ASTC compressed format where each 128-bit compressed texel // block encodes a 12×12 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to // the RGB components // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html FormatASTC12x12_sRGB Format = C.VK_FORMAT_ASTC_12x12_SRGB_BLOCK )
type FormatFeatureFlags ¶
type FormatFeatureFlags int32
FormatFeatureFlags specifies features supported by a Buffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
const ( // FormatFeatureSampledImage specifies that an ImageView can be sampled from // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureSampledImage FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT // FormatFeatureStorageImage specifies that an ImageView can be used as a storage Image // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureStorageImage FormatFeatureFlags = C.VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT // FormatFeatureStorageImageAtomic specifies that an ImageView can be used as a storage Image // that supports atomic operations // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureStorageImageAtomic FormatFeatureFlags = C.VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT // FormatFeatureUniformTexelBuffer specifies that the format can be used to create a BufferView // that can be bound to a uniform texel Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureUniformTexelBuffer FormatFeatureFlags = C.VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT // FormatFeatureStorageTexelBuffer specifies that the format can be used to create a BufferView // that can be bound to a storage texel Buffer descriptor // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureStorageTexelBuffer FormatFeatureFlags = C.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT // FormatFeatureStorageTexelBufferAtomic specifies that atomic operations are supported on // storage texel Buffer objects with this format // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureStorageTexelBufferAtomic FormatFeatureFlags = C.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT // FormatFeatureVertexBuffer specifies that the format can be used as a vertex attribute // format // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureVertexBuffer FormatFeatureFlags = C.VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT // FormatFeatureColorAttachment specifies that an ImageView can be used as a Framebuffer color // attachment and as an input attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureColorAttachment FormatFeatureFlags = C.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT // FormatFeatureColorAttachmentBlend specifies that an ImageView can be used as a Framebuffer // color attachment that supports blending and as an input attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureColorAttachmentBlend FormatFeatureFlags = C.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT // FormatFeatureDepthStencilAttachment specifies that an ImageView can be used as a Framebuffer // depth/stencil attachment and as an input attachment // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureDepthStencilAttachment FormatFeatureFlags = C.VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT // FormatFeatureBlitSource specifies that an Image can be used as a source Image in a blit // operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureBlitSource FormatFeatureFlags = C.VK_FORMAT_FEATURE_BLIT_SRC_BIT // FormatFeatureBlitDestination specifies that an Image can be used as a destination Image in a // blit operation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureBlitDestination FormatFeatureFlags = C.VK_FORMAT_FEATURE_BLIT_DST_BIT // FormatFeatureSampledImageFilterLinear specifies that an ImageView can be used with a Sampler // that has either of magFilter or minFilter set to FilterLinear, or mipmapMode set to // SamplerMipmapModeLinear // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html FormatFeatureSampledImageFilterLinear FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT )
func (FormatFeatureFlags) Register ¶
func (f FormatFeatureFlags) Register(str string)
func (FormatFeatureFlags) String ¶
func (f FormatFeatureFlags) String() string
type FormatProperties ¶
type FormatProperties struct { // LinearTilingFeatures specifies features supported by Image objects created with a tiling // parameter of ImageTilingLinear LinearTilingFeatures FormatFeatureFlags // OptimalTilingFeatures specifies features supported by Image objects created with a tiling // parameter of ImageTilingOptimal OptimalTilingFeatures FormatFeatureFlags // BufferFeatures specifies features supported by Buffer objects BufferFeatures FormatFeatureFlags }
FormatProperties specifies Image format properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatProperties.html
type Framebuffer ¶
type Framebuffer interface { // Handle is the internal Vulkan object handle for this Framebuffer Handle() driver.VkFramebuffer // DeviceHandle is the internal Vulkan object handle for the Device this Framebuffer belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Framebuffer Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Framebuffer. If it is at least // Vulkan 1.1, core1_1.PromoteFramebuffer can be used to promote this to a core1_1.Framebuffer, etc. APIVersion() common.APIVersion // Destroy destroys this Framebuffer object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. Do // not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyFramebuffer.html Destroy(callbacks *driver.AllocationCallbacks) }
Framebuffer represents a collection of specific memory attachments that a RenderPass uses
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFramebuffer.html
type FramebufferCreateFlags ¶
type FramebufferCreateFlags int32
FramebufferCreateFlags specifies Framebuffer properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateFlagBits.html
func (FramebufferCreateFlags) Register ¶
func (f FramebufferCreateFlags) Register(str string)
func (FramebufferCreateFlags) String ¶
func (f FramebufferCreateFlags) String() string
type FramebufferCreateInfo ¶
type FramebufferCreateInfo struct { // Attachments is a slice ImageView objects, each of which will be used as the corresponding // attachment in a RenderPass instance Attachments []ImageView // Flags is a bitmask of FramebufferCreateFlags Flags FramebufferCreateFlags // Width is the width of the Framebuffer Width int // Height is the height of the Framebuffer Height int // Layers is the depth of the Framebuffer Layers uint32 // RenderPass is a RenderPass defining what render passes the Framebuffer will be compatible with RenderPass RenderPass common.NextOptions }
FramebufferCreateInfo specifies parameters of a newly-created Framebuffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateInfo.html
type FrontFace ¶
type FrontFace int32
FrontFace interprets polygon front-facing orientation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFrontFace.html
type GraphicsPipelineCreateInfo ¶
type GraphicsPipelineCreateInfo struct { // Flags specifies how the Pipeline will be generated Flags PipelineCreateFlags // Stages is a slice of PipelineShaderStageCreateInfo structures describing the set of shader // stages to be included in the graphics Pipeline Stages []PipelineShaderStageCreateInfo // VertexInputState defines vertex input state for use with vertex shading VertexInputState *PipelineVertexInputStateCreateInfo // InputAssemblyState determines input assembly behavior for vertex shading InputAssemblyState *PipelineInputAssemblyStateCreateInfo // TessellationState defines tessellation state used by tessellation shaders TessellationState *PipelineTessellationStateCreateInfo // ViewportState defines viewport state used when rasterization is enabled ViewportState *PipelineViewportStateCreateInfo // RasterizationState defines rasterization state RasterizationState *PipelineRasterizationStateCreateInfo // MultisampleState defines multisample state used when rasterization is enabled MultisampleState *PipelineMultisampleStateCreateInfo // DepthStencilState defines depth/stencil state used when rasterization is enabled for depth // or stencil attachments accessed during rendering DepthStencilState *PipelineDepthStencilStateCreateInfo // ColorBlendState defines color blend state used when rasterization is enabled for any // color attachments accessed during rendering ColorBlendState *PipelineColorBlendStateCreateInfo // DynamicState defines which properties of the Pipeline state object are dynamic and can // be changed independently of the Pipeline state DynamicState *PipelineDynamicStateCreateInfo // Layout is the description of binding locations used by both the Pipeline and DescriptorSet // objects used with the Pipeline Layout PipelineLayout // RenderPass is a RenderPass object describing the environment in which the Pipeline will be used RenderPass RenderPass // Subpass is the index of the subpass in the RenderPass where this Pipeline will be used Subpass int // BasePipeline is a Pipeline object to derive from BasePipeline Pipeline // BasePipelineIndex is an index into the createInfos parameter to use as a Pipeline to derive from BasePipelineIndex int common.NextOptions }
GraphicsPipelineCreateInfo specifies parameters of a newly-created graphics Pipeline
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html
type Image ¶
type Image interface { // Handle is the internal Vulkan object handle for this Image Handle() driver.VkImage // DeviceHandle is the internal Vulkan object handle for the Device this Image belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Image Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Image. If it is at least Vulkan // 1.1, core1_1.PromoteImage can be used to promote this to a core1_1.Image, etc. APIVersion() common.APIVersion // Destroy destroys this Image object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyImage.html Destroy(callbacks *driver.AllocationCallbacks) // MemoryRequirements returns the memory requirements for this Image // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageMemoryRequirements.html MemoryRequirements() *MemoryRequirements // BindImageMemory binds a DeviceMemory object to this Image object // // memory - Describes the DeviceMemory to attach // // offset - The start offset of the region of memory which is to be bound to the image. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkBindImageMemory.html BindImageMemory(memory DeviceMemory, offset int) (common.VkResult, error) // SubresourceLayout retrieves information about an Image subresource // // subresource - Selects a specific subresource from the Image // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSubresourceLayout.html SubresourceLayout(subresource *ImageSubresource) *SubresourceLayout // SparseMemoryRequirements queries the memory requirements for a sparse image // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSparseMemoryRequirements.html SparseMemoryRequirements() []SparseImageMemoryRequirements }
Image represents multidimensional arrays of data which can be used for various purposes.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImage.html
type ImageAspectFlags ¶
type ImageAspectFlags int32
ImageAspectFlags specifies which aspects of an Image are included in a view
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
func (ImageAspectFlags) Register ¶
func (f ImageAspectFlags) Register(str string)
func (ImageAspectFlags) String ¶
func (f ImageAspectFlags) String() string
type ImageBlit ¶
type ImageBlit struct { // SrcSubresource is the subresource to blit from SrcSubresource ImageSubresourceLayers // SrcOffsets is a slice of Offset3D structures specifying the bounds of the source region // within the source subresource SrcOffsets [2]Offset3D // DstSubresource is the subresource to blit to DstSubresource ImageSubresourceLayers // DstOffsets is a slice of Offset3D structures specifying the bounds of the destination region // within the destination subresource DstOffsets [2]Offset3D }
ImageBlit specifies an Image blit operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageBlit.html
type ImageCopy ¶
type ImageCopy struct { // SrcSubresource specifies the Image subresources of the Image objects used for the // source Image data SrcSubresource ImageSubresourceLayers // SrcOffset selects the initial x, y, and z offsets in texels of the sub-regions of the // source Image data SrcOffset Offset3D // DstSubresource specifies the Image subresource of the Image objects used for the // destination Image data DstSubresource ImageSubresourceLayers // DstOffset selects the initial x, y, and z offsets in texels of the sub-regions of the // destination Image data DstOffset Offset3D // Extent is the size in texels of the Image to copy in width, height, and depth Extent Extent3D }
ImageCopy specifies an Image copy operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCopy.html
type ImageCreateFlags ¶
type ImageCreateFlags int32
ImageCreateFlags specifies additional parameters of an Image
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
func (ImageCreateFlags) Register ¶
func (f ImageCreateFlags) Register(str string)
func (ImageCreateFlags) String ¶
func (f ImageCreateFlags) String() string
type ImageCreateInfo ¶ added in v0.2.0
type ImageCreateInfo struct { // Flags describes additional parameters of the Image Flags ImageCreateFlags // ImageType specifies the basic dimensionality of the Image ImageType ImageType // Format describes the format and type of the texel blocks that will be contained in the Image Format Format // Extent Describes the number of data elements in each dimension of the base level Extent Extent3D // MipLevels describes the number of levels of detail available for minified sampling of the image MipLevels int // ArrayLayers is the number of layers in the IMage ArrayLayers int // Samples specifies the number of samples per texel Samples SampleCountFlags // Tiling specifies the tiling arrangement of the texel blocks in memory Tiling ImageTiling // Usage describes the intended usage of the Image Usage ImageUsageFlags // SharingMode specifies the sharing mode of the Image when it will be accessed by multiple // Queue families SharingMode SharingMode // QueueFamilyIndices is a slice of queue families that will access this Image QueueFamilyIndices []uint32 // InitialLayout specifies the initial ImageLayout of all Image subresources of the Image InitialLayout ImageLayout common.NextOptions }
ImageCreateInfo specifies the parameters of a newly-created Image object
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateInfo.html
type ImageFormatProperties ¶
type ImageFormatProperties struct { // MaxExtent are the maximum Image dimensions MaxExtent Extent3D // MaxMipLevels is the maximum number of mipmap levels MaxMipLevels int // MaxArrayLayers is the maximum number of array layers MaxArrayLayers int // SampleCounts specifies all the supported sample counts for this Image SampleCounts SampleCountFlags // MaxResourceSize is an upper bound on the total Image size in bytes MaxResourceSize int }
ImageFormatProperties specifies an Image format properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageFormatProperties.html
type ImageLayout ¶
type ImageLayout int32
ImageLayout represents the layout of Image and image subresources
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html
func (ImageLayout) Register ¶
func (e ImageLayout) Register(str string)
func (ImageLayout) String ¶
func (e ImageLayout) String() string
type ImageMemoryBarrier ¶
type ImageMemoryBarrier struct { // SrcAccessMask specifies a source access mask SrcAccessMask AccessFlags // DstAccessMask specifies a destination access mask DstAccessMask AccessFlags // OldLayout is the old layout in an image layout transition OldLayout ImageLayout // NewLayout is the new layout in an image layout transition NewLayout ImageLayout // SrcQueueFamilyIndex is the source queue family for a queue family ownership transfer SrcQueueFamilyIndex int // DstQueueFamilyIndex is the destination queue family for a queue family ownership transfer DstQueueFamilyIndex int // Image is the Image object affected by this barrier Image Image // SubresourceRange describes the image subresource range within Image that is affected by this barrier SubresourceRange ImageSubresourceRange common.NextOptions }
ImageMemoryBarrier specifies the parameters of an image memory barrier
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageMemoryBarrier.html
type ImageResolve ¶
type ImageResolve struct { // SrcSubresource specifies the Image subresources of the Image objects used for the source // destination Image data SrcSubresource ImageSubresourceLayers // SrcOffset selects the initial x, y, and z offsets in texels of the sub-regions of the // source Image data SrcOffset Offset3D // DstSubresource specifies the Image subresources of the Image objects used for the // destination Image data, respectively DstSubresource ImageSubresourceLayers // DstOffset selects the initial x, y, and z offsets in texels of the sub-regions of the // destination Image data DstOffset Offset3D // Extent is the size in texels of the source Image to resolve in width, height, and depth Extent Extent3D }
ImageResolve specifies an Image resolve operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageResolve.html
func (ImageResolve) PopulateCPointer ¶
type ImageSubresource ¶
type ImageSubresource struct { // AspectMask selects the Image aspect AspectMask ImageAspectFlags // MipLevel selects the mipmap level MipLevel uint32 // ArrayLayer selects the array layer ArrayLayer uint32 }
ImageSubresource specifies an Image subresource
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageSubresource.html
type ImageSubresourceLayers ¶
type ImageSubresourceLayers struct { // AspectMask selects the color, depth, and/or stencil aspects to be copied AspectMask ImageAspectFlags // MipLevel is the mipmap level to copy MipLevel int // BaseArrayLayer is the starting layer to copy BaseArrayLayer int // LayerCount is the number of layers to copy LayerCount int }
ImageSubresourceLayers specifies an Image subresource layers
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageSubresourceLayers.html
type ImageSubresourceRange ¶
type ImageSubresourceRange struct { // AspectMask specifies which aspect(s) of the Image are included in the view AspectMask ImageAspectFlags // BaseMipLevel is the first mipmap level accessible to the view BaseMipLevel int // LevelCount is the number of mipmap levels accessible to the view LevelCount int // BaseArrayLayer is the first array layer accessible to the view BaseArrayLayer int // LayerCount is the number of array layers accessible to the view LayerCount int }
ImageSubresourceRange specifies an Image subresource range
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageSubresourceRange.html
type ImageTiling ¶
type ImageTiling int32
ImageTiling specifies the tiling arrangement of data in an Image
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageTiling.html
func (ImageTiling) Register ¶
func (e ImageTiling) Register(str string)
func (ImageTiling) String ¶
func (e ImageTiling) String() string
type ImageType ¶
type ImageType int32
ImageType specifies the type of an Image object
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageType.html
type ImageUsageFlags ¶
type ImageUsageFlags int32
ImageUsageFlags specifies intended usage of an Image
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html
func (ImageUsageFlags) Register ¶
func (f ImageUsageFlags) Register(str string)
func (ImageUsageFlags) String ¶
func (f ImageUsageFlags) String() string
type ImageView ¶
type ImageView interface { // Handle is the internal Vulkan object handle for this ImageView Handle() driver.VkImageView // DeviceHandle is the internal Vulkan object handle for the Device this ImageView belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this ImageView Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this ImageView. If it is at least Vulkan // 1.1, core1_1.PromoteImageView can be used to promote this to a core1_1.ImageView, etc. APIVersion() common.APIVersion // Destroy destroys the ImageView object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. Do not // call further methods on this object. Destroy(callbacks *driver.AllocationCallbacks) }
ImageView represents contiguous ranges of Image subresources and contains additional metadata
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageView.html
type ImageViewCreateFlags ¶
type ImageViewCreateFlags int32
ImageViewCreateFlags specifies additional parameters of an ImageView
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewCreateFlagBits.html
func (ImageViewCreateFlags) Register ¶
func (f ImageViewCreateFlags) Register(str string)
func (ImageViewCreateFlags) String ¶
func (f ImageViewCreateFlags) String() string
type ImageViewCreateInfo ¶
type ImageViewCreateInfo struct { // Image is an Image on which the view will be created Image Image // Flags describes additional parameters of the ImageView Flags ImageViewCreateFlags // ViewType specifies the type of the ImageView ViewType ImageViewType // Format describes the format and type used to interpret texel blocks in the Image Format Format // Components specifies a remapping of color components Components ComponentMapping // SubresourceRange selects the set of mipmap levels and array layers to be accessible // to the view SubresourceRange ImageSubresourceRange common.NextOptions }
ImageViewCreateInfo specifies parameters of a newly-created ImageView
type ImageViewType ¶
type ImageViewType int32
ImageViewType represents the type of ImageView objects that can be created
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html
func (ImageViewType) Register ¶
func (e ImageViewType) Register(str string)
func (ImageViewType) String ¶
func (e ImageViewType) String() string
type IndexType ¶
type IndexType int32
IndexType represents the type of index buffer indices
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndexType.html
type Instance ¶
type Instance interface { // Handle is the internal Vulkan object handle for this Instance Handle() driver.VkInstance // Driver ist he Vulkan wrapper driver used by this Instance Driver() driver.Driver // APIVersion is the maximum VUlkan API supported by this Instance. If it is at least Vulkan 1.1, // core1_1.PromoteInstance can be used to promote this to a core1_1.Instance, etc. APIVersion() common.APIVersion // IsInstanceExtensionActive will return true if an Instance extension with the provided name was // activated on Instance creation // // extensionName - THe name of the extension to query IsInstanceExtensionActive(extensionName string) bool // EnumeratePhysicalDevices enumerates the physical devices accessible to this Instance // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumeratePhysicalDevices.html EnumeratePhysicalDevices() ([]PhysicalDevice, common.VkResult, error) // Destroy destroys the Instance object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyInstance.html Destroy(callbacks *driver.AllocationCallbacks) }
Instance stores per-application state for Vulkan
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInstance.html
type InstanceCreateFlags ¶
type InstanceCreateFlags int32
InstanceCreateFlags specifies behavior of the Instance
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkInstanceCreateFlagBits.html
func (InstanceCreateFlags) Register ¶
func (f InstanceCreateFlags) Register(str string)
func (InstanceCreateFlags) String ¶
func (f InstanceCreateFlags) String() string
type InstanceCreateInfo ¶
type InstanceCreateInfo struct { // ApplicationName is a string containing the name of the application ApplicationName string // ApplicationVersion contains the developer-supplied verison number of the application ApplicationVersion common.Version // EngineName is a string containing the name of the engine, if any, used to create // the application EngineName string // EngineVersion contains the developer-supplied version number of the engine used to // create the application EngineVersion common.Version // APIVersion must be the highest version of Vulkan that the application is designed to use APIVersion common.APIVersion // Flags indicates the behavior of the Instance Flags InstanceCreateFlags // EnabledExtensionNames is a slice of strings containing the names of extensions to enable EnabledExtensionNames []string // EnabledLayerNames is a slice of strings containing the names of layers to enable for the // created Instance EnabledLayerNames []string common.NextOptions }
InstanceCreateInfo specifies parameters of a newly-created Instance
type LayerProperties ¶
type LayerProperties struct { // LayerName is a string which is the name of the layer LayerName string // SpecVersion is the Vulkan version the layer was written to SpecVersion common.Version // ImplementationVersion is the version of this layer ImplementationVersion common.Version // Description is a string which provides additional details that can be used by the // application to identify the layer Description string }
LayerProperties specifies layer properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLayerProperties.html
type LogicOp ¶
type LogicOp int32
LogicOp represents Framebuffer logical operations
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html
type MappedMemoryRange ¶
type MappedMemoryRange struct { // Memory is the DeviceMemory object to which this range belongs Memory DeviceMemory // Offset is the zero-based byte offset from the beginning of the DeviceMemory objects Offset int // Size is either the size of the range or -1 to affect the range from offset to the end // of the current mapping of the allocation Size int common.NextOptions }
MappedMemoryRange specifies a mapped memory range
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMappedMemoryRange.html
type MemoryAllocateInfo ¶
type MemoryAllocateInfo struct { // AllocationSize is the size of the allocation in bytes AllocationSize int // MemoryTypeIndex is an index identifying a memory type from the MemoryTypes slice of // PhysicalDeviceMemoryProperties MemoryTypeIndex int common.NextOptions }
MemoryAllocateInfo contains parameters of a memory allocation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateInfo.html
type MemoryBarrier ¶
type MemoryBarrier struct { // SrcAccessMask specifies a source access mask SrcAccessMask AccessFlags // DstAccessMask specifies a destination access mask DstAccessMask AccessFlags common.NextOptions }
MemoryBarrier specifies a global memory barrier
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryBarrier.html
type MemoryHeap ¶
type MemoryHeap struct { // Size is the total memory size in bytes in the heap Size int // Flags specifies attribute flags for the heap Flags MemoryHeapFlags }
MemoryHeap specifies a memory heap
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeap.html
type MemoryHeapFlags ¶
type MemoryHeapFlags int32
MemoryHeapFlags specifies attribute flags for a heap
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeapFlagBits.html
func (MemoryHeapFlags) Register ¶
func (f MemoryHeapFlags) Register(str string)
func (MemoryHeapFlags) String ¶
func (f MemoryHeapFlags) String() string
type MemoryMapFlags ¶
type MemoryMapFlags int32
MemoryMapFlags reserved for future use
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryMapFlags.html
func (MemoryMapFlags) String ¶
func (f MemoryMapFlags) String() string
type MemoryPropertyFlags ¶
type MemoryPropertyFlags int32
MemoryPropertyFlags specifies properties for a memory type
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html
func (MemoryPropertyFlags) Register ¶
func (f MemoryPropertyFlags) Register(str string)
func (MemoryPropertyFlags) String ¶
func (f MemoryPropertyFlags) String() string
type MemoryRequirements ¶
type MemoryRequirements struct { // Size is the size, in bytes, of the memory allocation required for the resource Size int // Alignment is the alignment, in bytes, of the offset within the allocation required // for the resource Alignment int // MemoryTypeBits is a bitmask and contains one bit set for every supported memory type // for the resource. Bit i is set if and only if the memory type i in PhysicalDeviceMemoryProperties // for the PhysicalDevice is supported for the resource MemoryTypeBits uint32 }
MemoryRequirements specifies memory requirements
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryRequirements.html
type MemoryType ¶
type MemoryType struct { // PropertyFlags specifies properties for this memory type PropertyFlags MemoryPropertyFlags // HeapIndex describes which memory heap this memory type corresponds to HeapIndex int }
MemoryType specifies memory type
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryType.html
type ObjectType ¶
type ObjectType int32
ObjectType specifies an enumeration to track object handle types
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html
const ( // ObjectTypeUnknown specifies an unknown or undefined handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeUnknown ObjectType = C.VK_OBJECT_TYPE_UNKNOWN // ObjectTypeInstance specifies an Instance handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeInstance ObjectType = C.VK_OBJECT_TYPE_INSTANCE // ObjectTypePhysicalDevice specifies a PhysicalDevice handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypePhysicalDevice ObjectType = C.VK_OBJECT_TYPE_PHYSICAL_DEVICE // ObjectTypeDevice specifies a Device handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeDevice ObjectType = C.VK_OBJECT_TYPE_DEVICE // ObjectTypeQueue specifies a Queue handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeQueue ObjectType = C.VK_OBJECT_TYPE_QUEUE // ObjectTypeSemaphore specifies a Semaphore handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeSemaphore ObjectType = C.VK_OBJECT_TYPE_SEMAPHORE // ObjectTypeCommandBuffer specifies a CommandBuffer handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeCommandBuffer ObjectType = C.VK_OBJECT_TYPE_COMMAND_BUFFER // ObjectTypeFence specifies a Fence handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeFence ObjectType = C.VK_OBJECT_TYPE_FENCE // ObjectTypeDeviceMemory specifies a DeviceMemory handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeDeviceMemory ObjectType = C.VK_OBJECT_TYPE_DEVICE_MEMORY // ObjectTypeBuffer specifies a Buffer handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeBuffer ObjectType = C.VK_OBJECT_TYPE_BUFFER // ObjectTypeImage specifies an Image handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeImage ObjectType = C.VK_OBJECT_TYPE_IMAGE // ObjectTypeEvent specifies an Event handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeEvent ObjectType = C.VK_OBJECT_TYPE_EVENT // ObjectTypeQueryPool specifies a QueryPool handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeQueryPool ObjectType = C.VK_OBJECT_TYPE_QUERY_POOL // ObjectTypeBufferView specifies a BufferView handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeBufferView ObjectType = C.VK_OBJECT_TYPE_BUFFER_VIEW // ObjectTypeImageView specifies an ImageView handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeImageView ObjectType = C.VK_OBJECT_TYPE_IMAGE_VIEW // ObjectTypeShaderModule specifies a ShaderModule handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeShaderModule ObjectType = C.VK_OBJECT_TYPE_SHADER_MODULE // ObjectTypePipelineCache specifies a PipelineCache handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypePipelineCache ObjectType = C.VK_OBJECT_TYPE_PIPELINE_CACHE // ObjectTypePipelineLayout specifies a PipelineLayout handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypePipelineLayout ObjectType = C.VK_OBJECT_TYPE_PIPELINE_LAYOUT // ObjectTypeRenderPass specifies a RenderPass handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeRenderPass ObjectType = C.VK_OBJECT_TYPE_RENDER_PASS // ObjectTypePipeline specifies a Pipeline handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypePipeline ObjectType = C.VK_OBJECT_TYPE_PIPELINE // ObjectTypeDescriptorSetLayout specifies a DescriptorSetLayout handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeDescriptorSetLayout ObjectType = C.VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT // ObjectTypeSampler specifies a Sampler handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeSampler ObjectType = C.VK_OBJECT_TYPE_SAMPLER // ObjectTypeDescriptorPool specifies a DescriptorPool handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeDescriptorPool ObjectType = C.VK_OBJECT_TYPE_DESCRIPTOR_POOL // ObjectTypeDescriptorSet specifies a DescriptorSet handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeDescriptorSet ObjectType = C.VK_OBJECT_TYPE_DESCRIPTOR_SET // ObjectTypeFramebuffer specifies a Framebuffer handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeFramebuffer ObjectType = C.VK_OBJECT_TYPE_FRAMEBUFFER // ObjectTypeCommandPool specifies a CommandPool handle // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html ObjectTypeCommandPool ObjectType = C.VK_OBJECT_TYPE_COMMAND_POOL )
func (ObjectType) Register ¶
func (e ObjectType) Register(str string)
func (ObjectType) String ¶
func (e ObjectType) String() string
type Offset2D ¶
Offset2D specifies a 2-dimensional offset
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOffset2D.html
type Offset3D ¶
type Offset3D struct { // X is the x offset X int // Y is the y offset Y int // Z is the z offset Z int }
Offset3D specifies a 3-dimensional offset
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOffset3D.html
type PhysicalDevice ¶
type PhysicalDevice interface { // Handle is the internal Vulkan object handle for this PhysicalDevice Handle() driver.VkPhysicalDevice // Driver is the Vulkan wrapper driver used by this PhysicalDevice Driver() driver.Driver // InstanceAPIVersion is the maximum Vulkan API version supported by instance-scoped functionality // on this PhysicalDevice. This is usually the same as DeviceAPIVersion, but in some rare cases, it // may be higher. If it is at least Vulkan 1.1, core1_1.PromoteInstanceScopedPhysicalDevice can // be used to promote this to a core1_1.InstanceScopedPhysicalDevice, etc. InstanceAPIVersion() common.APIVersion // DeviceAPIVersion is the maximum Vulkan API version supported by device-scoped functionality on this // PhysicalDevice. This represents the highest API version supported by ALL functionality on this // PhysicalDevice. If it is at least Vulkan 1.1, core1_1.PromotePhysicalDevice can be used to promote // this to a core1_1.PhysicalDevice, etc. DeviceAPIVersion() common.APIVersion // CreateDevice creates a new logical device as a connection to this PhysicalDevice // // allocationCallbacks - Controls host memory allocation // // options - Parameters affecting the creation of the Device // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreateDevice.html CreateDevice(allocationCallbacks *driver.AllocationCallbacks, options DeviceCreateInfo) (Device, common.VkResult, error) // QueueFamilyProperties reports properties of the queues of this PhysicalDevice // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html QueueFamilyProperties() []*QueueFamilyProperties // Properties returns properties of this PhysicalDevice // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceProperties.html Properties() (*PhysicalDeviceProperties, error) // Features reports capabilities of this PhysicalDevice // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceFeatures.html Features() *PhysicalDeviceFeatures // EnumerateDeviceExtensionProperties returns properties of available PhysicalDevice extensions // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumerateDeviceExtensionProperties.html EnumerateDeviceExtensionProperties() (map[string]*ExtensionProperties, common.VkResult, error) // EnumerateDeviceExtensionPropertiesForLayer returns properties of available PhysicalDevice extensions // for the specifies layer // // layerName - Name of the layer to retrieve extensions from // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumerateDeviceExtensionProperties.html EnumerateDeviceExtensionPropertiesForLayer(layerName string) (map[string]*ExtensionProperties, common.VkResult, error) // EnumerateDeviceLayerProperties returns properties of available PhysicalDevice layers // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumerateDeviceLayerProperties.html EnumerateDeviceLayerProperties() (map[string]*LayerProperties, common.VkResult, error) // MemoryProperties reports memory information for this PhysicalDevice // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceMemoryProperties.html MemoryProperties() *PhysicalDeviceMemoryProperties // FormatProperties lists this PhysicalDevice object's format capabilities // // format - The format whose properties are queried // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceFormatProperties.html FormatProperties(format Format) *FormatProperties // ImageFormatProperties lists this PhysicalDevice object's image format capabilities // // format - Specifies the Image format // // imageType - Specifies the Image type // // tiling - Specifies the Image tiling // // usages - Specifies the intended usage of the Image // // flags - Specifies additional parmeters of the Image // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties.html ImageFormatProperties(format Format, imageType ImageType, tiling ImageTiling, usages ImageUsageFlags, flags ImageCreateFlags) (*ImageFormatProperties, common.VkResult, error) // SparseImageFormatProperties retrieves properties of an image format applied to sparse images // // format - The Image format // // imageType - The dimensionality of the Image // // samples - Specifies the number of samples per texel // // usages - Describes the intended usage of the Image // // tiling - The tiling arrangement of the texel blocks in memory // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html SparseImageFormatProperties(format Format, imageType ImageType, samples SampleCountFlags, usages ImageUsageFlags, tiling ImageTiling) []SparseImageFormatProperties }
PhysicalDevice represents a single complete implementation of Vulkan available to the host, of which there are a finite number.
PhysicalDevice objects are unusual in that they exist between the Instance and (logical) Device level. As a result, PhysicalDevices are the only object that can be extended by both Instance and Device extensions. As a result, 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.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevice.html
type PhysicalDeviceFeatures ¶
type PhysicalDeviceFeatures struct { // RobustBufferAccess specifies that access to Buffer objects are bounds-checked against the // range of the Buffer descriptor RobustBufferAccess bool // FullDrawIndexUint32 specifies the full 32-bit range of indices is supported for indexed // draw calls when using an IndexType of IndexTypeUInt32 FullDrawIndexUint32 bool // ImageCubeArray specifies whether ImageView objects with an ImageViewType of ImageViewTypeCubeArray // can be created ImageCubeArray bool // IndependentBlend specifies whether the PipelineColorBlendAttachmentState settings are controlled // independently per-attachment. If this feature is not enabled, the PipelineColorBlendAttachmentState // settings for all color attachments must be identical IndependentBlend bool // GeometryShader specifies whether geometry shaders are supported GeometryShader bool // TessellationShader specifies whether tessellation control and evaluation shaders are supported TessellationShader bool // SampleRateShading specifies whether sample shading and multisample interpolation are supported SampleRateShading bool // DualSrcBlend specifies whether blend operations which take two sources are supported DualSrcBlend bool // LogicOp specifies whether logic operations are supported LogicOp bool // MultiDrawIndirect specifies whether multiple draw indirect is supported. If this feature is not // enabled, the drawCount parameter to CommandBuffer.CmdDrawIndirect and CommandBuffer.CmdDrawIndexedIndirect // must be 0 or 1 MultiDrawIndirect bool // DrawIndirectFirstInstance specifies whether indirect drawing calls support the firstInstance // parameter DrawIndirectFirstInstance bool // DepthClamp specifies whether depth clamping is supported DepthClamp bool // DepthBiasClamp specifies whether depth bias clamping is supported DepthBiasClamp bool // FillModeNonSolid specifies whether point and wireframe fill modes are supported FillModeNonSolid bool // DepthBounds specifies whether depth bounds tests are supported DepthBounds bool // WideLines specifies whether lines with width other than 1.0 are supported WideLines bool // LargePoints specifies whether points with size greater than 1.0 are supported LargePoints bool // AlphaToOne specifies whether the implementation is able to replace the alpha // value of the fragment shader color output in the multisample coverage fragment // operation. If this feature is not enabled, then the alphaToOneEnable member // of PipelineMultisampleStateCreateInfo must be set to false AlphaToOne bool // MultiViewport specifies whether more than one viewport is supported MultiViewport bool // SamplerAnisotropy specifies whether anisotropic filtering is supported SamplerAnisotropy bool // TextureCompressionEtc2 specifies whether all of the ETC2 and EAC compressed texture // formats are supported. If the feature is not enabled, PhysicalDevice.FormatProperties // and PhysicalDevice.ImageFormatProperties can be used to check for supported properties // of individual formats as normal TextureCompressionEtc2 bool // TextureCompressionAstcLdc specifies whether all of the ASTC LDR compressed texture // formats are supported. If the feature is not enabled, PhysicalDevice.FormatProperties // and PhysicalDevice.ImageFormatProperties can be used to check for supported properties // of individual formats as normal TextureCompressionAstcLdc bool // TextureCompressionBc specifies whether all of the BC compressed texture formats are supported // If the feature is not enabled, PhysicalDevice.FormatProperties and // PhysicalDevice.ImageFormatProperties can be used to check for supported properties of //individual formats as normal TextureCompressionBc bool // OcclusionQueryPrecise specifies whether occlusion queries returning actual sample counts // are supported OcclusionQueryPrecise bool // PipelineStatisticsQuery specifies whether the Pipeline statistics queries are supported PipelineStatisticsQuery bool // VertexPipelineStoresAndAtomics specifies whether storage Buffer objects and Image objects // support stores and atomic operations in the vertex, tessellation, and geometry shader stages VertexPipelineStoresAndAtomics bool // FragmentStoresAndAtomics specifies whether storage Buffer objects and Image objects support // stores and atomic operations in the fragment shader stages FragmentStoresAndAtomics bool // ShaderTessellationAndGeometryPointSize specifies whether the PointSize built-in decoration // is available in the tessellation control, tessellation evaluation, and geometry shader stages ShaderTessellationAndGeometryPointSize bool // ShaderImageGatherExtended specifies whether the extended set of Image gather instructions // are available in shader code ShaderImageGatherExtended bool // ShaderStorageImageExtendedFormats specifies whether all the "storage Image extended formats" // are supported ShaderStorageImageExtendedFormats bool // ShaderStorageImageMultisample specifies whether multisampled storage Image objects are supported ShaderStorageImageMultisample bool // ShaderStorageImageReadWithoutFormat specifies whether storage Image objects require a format // qualifier to be specified when reading ShaderStorageImageReadWithoutFormat bool // ShaderStorageImageWriteWithoutFormat specifies whether storage Image objects require a format // qualifier to be specified when writing ShaderStorageImageWriteWithoutFormat bool // ShaderUniformBufferArrayDynamicIndexing specifies whether arrays of uniform Buffrer objects can // be indexed by dynamically uniform integer expressions in shader code ShaderUniformBufferArrayDynamicIndexing bool // ShaderSampledImageArrayDynamicIndexing specifies whether arrays of Sampler objects or sampled Image // objects can be indexed by dynamically uniform expressions in shader code ShaderSampledImageArrayDynamicIndexing bool // ShaderStorageBufferArrayDynamicIndexing specifies whether arrays of storage Buffer objects // can be indexed by dynamically uniform integer expressions in shader code ShaderStorageBufferArrayDynamicIndexing bool // ShaderStorageImageArrayDynamicIndexing specifies arrays of storage Image objects can be // indexed by dynamically uniform integer expressions in shader code ShaderStorageImageArrayDynamicIndexing bool // ShaderClipDistance specifies whether clip distances are supported in shader code ShaderClipDistance bool // ShaderCullDistance specifies whether cull distances are supported in shader code ShaderCullDistance bool // ShaderFloat64 specifies whether 64-bit floats (doubles) are supported in shader code ShaderFloat64 bool // ShaderInt64 specifies whether 64-bit integer (signed and unsigned) are supported in shader // code ShaderInt64 bool // ShaderInt16 specifies whether 16-bit integers (signed and unsigned) are supported in shader // code ShaderInt16 bool // ShaderResourceResidency specifies whether Image operations that return resource residency // information are supported in shader code ShaderResourceResidency bool // ShaderResourceMinLod specifies whether Image operations specifying the minimum resource LOD // are supported in shader code ShaderResourceMinLod bool // SparseBinding specifies whether resource memory can be managed at opaque sparse block level // instead of at object level SparseBinding bool // SparseResidencyBuffer specifies whether the Device can access partially resident Buffer objects SparseResidencyBuffer bool // SparseResidencyImage2D specifies whether the Device can access partially resident 2D Image // objects with 1 sample per pixel SparseResidencyImage2D bool // SparseResidencyImage3D specifies whether the Device can access partially resident 3D Image // objects SparseResidencyImage3D bool // SparseResidency2Samples specifies whether the PhysicalDevice can access partially resident // 2D Image objects with 2 samples per pixel SparseResidency2Samples bool // SparseResidency4Samples specifies whether the PhysicalDevice can access partially resident // 2D Image objects with 4 samples per pixel SparseResidency4Samples bool // SparseResidency8Samples specifies whether the PhysicalDevice can access partially resident // 2D Image objects with 8 samples per pixel SparseResidency8Samples bool // SparseResidency16Samples specifies whether the PhysicalDevice can access partially resident // 2D Image objects with 16 samples per pixel SparseResidency16Samples bool // SparseResidencyAliased specifies whether the PhysicalDevice can correctly access data aliased // into multiple locations SparseResidencyAliased bool // VariableMultisampleRate specifies whether all Pipeline objects that will be bound to a // CommandBuffer during a subpass which uses no attachments must have the same value for // PipelineMultisampleStateCreateInfo.rasterizationSamples VariableMultisampleRate bool // InheritedQueries specifies whether a secondary CommandBuffer may be executed while a // query is active InheritedQueries bool }
PhysicalDeviceFeatures describes the fine-grained features that can be supported by an implementation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures.html
func (*PhysicalDeviceFeatures) PopulateCPointer ¶
func (*PhysicalDeviceFeatures) PopulateFromCPointer ¶
func (p *PhysicalDeviceFeatures) PopulateFromCPointer(cPointer unsafe.Pointer)
type PhysicalDeviceLimits ¶
type PhysicalDeviceLimits struct { // MaxImageDimension1D is the largest dimension (width) that is guaranteed to be supported // for all Image objects created with an ImageType of ImageType1D MaxImageDimension1D int // MaxImageDimension2D is the largest dimension (width or height) that is guaranteed to be // supported for all Image objects created with an ImageType of ImageType2D and without // ImageCreateCubeCompatible set in flags MaxImageDimension2D int // MaxImageDimension3D is the largest dimension (width, height, or depth) that is guaranteed // to be supported for all Image objects created with an ImageType of ImageType3D MaxImageDimension3D int // MaxImageDimensionCube is the largest dimension (width or height) that is guaranteed to // be supported for all Image objects created with an ImageType of ImageType2D and with // ImageCreateCubeCompatible set in flags MaxImageDimensionCube int // MaxImageArrayLayers is the maximum number of layers for an Image MaxImageArrayLayers int // MaxTexelBufferElements is the maximum number of addressable texels for a BufferView // created on a Buffer which was created with the BufferUsageUniformTexelBuffer or // BufferUsageStorageTexelBuffer usages set in BufferCreateInfo MaxTexelBufferElements int // MaxUniformBufferRange is the maximum value that can be specified in the range member // of a DescriptorBufferInfo structure passed to Device.UpdateDescriptorSets for // descriptors of type DescriptorTypeUniformBuffer or DescriptorTypeUniformBufferDynamic MaxUniformBufferRange int // MaxStorageBufferRange is the maximum value that can be specified in the range member of // a DescriptorBufferInfo structure passed to Device.UpdateDescriptorSets for // descriptors of type DescriptorTypeStorageBuffer or DescriptorTypeStorageBufferDynamic MaxStorageBufferRange int // MaxPushConstantsSize is the maximum size, in bytes, of the pool of push constant memory MaxPushConstantsSize int // MaxMemoryAllocationCount is the maximum number of DeviceMemory allocations, as created // by Device.AllocateMemory, which can simultaneously exist MaxMemoryAllocationCount int // MaxSamplerAllocationCount is the maximum number of Sampler objects, as created by // Device.CreateSampler, which can simultaneously exist on a device MaxSamplerAllocationCount int // BufferImageGranularity si the granularity, in bytes, at which Buffer or linear // Image resources, and optimal Image resources can be bound to adjacent offsets in the // same DeviceMemory object without aliasing BufferImageGranularity int // SparseAddressSpaceSize is the total amount of address space available, in bytes, // for sparse memory resources SparseAddressSpaceSize int // MaxBoundDescriptorSets is the maximum number of DescriptorSet objects that can be // simultaneously used by a Pipeline MaxBoundDescriptorSets int // MaxPerStageDescriptorSamplers is the maximum number of Sample objects that can be // accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorSamplers int // MaxPerStageDescriptorUniformBuffers is the maximum number of uniform Buffer objects // that can be accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorUniformBuffers int // MaxPerStageDescriptorStorageBuffers is the maximum number of storage Buffer objects // that can be accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorStorageBuffers int // MaxPerStageDescriptorSampledImages is the maximum number of sampled Image objects that // can be accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorSampledImages int // MaxPerStageDescriptorStorageImages is the maximum number of storage Image objects that // can be accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorStorageImages int // MaxPerStageDescriptorInputAttachments is the maximum number of input attachments that // can be accessible to a single shader stage in a PipelineLayout MaxPerStageDescriptorInputAttachments int // MaxPerStageResources is the maximum number of resources that can be accessible to a single // shader stage in a PipelineLayout. Descriptors with a type of DescriptorTypeCombinedImageSampler, // DescriptorTypeSampledImage, DescriptorTypeStorageImage, DescriptorTypeUniformTexelBuffer // DescriptorTypeStorageTexelBuffer, DescriptorTypeUniformBuffer, DescriptorTypeStorageBuffer, // DescriptorTypeUniformBufferDynamic, DescriptorTypeStorageBufferDynamic, and // DescriptorTypeInputAttachment all count against this limit MaxPerStageResources int // MaxDescriptorSetSamplers is the maximum number of Sampler objects that can be included in // a PipelineLayout MaxDescriptorSetSamplers int // MaxDescriptorSetUniformBuffers ist he maximum number of uniform Buffer objects that can // be included in a PipelineLayout MaxDescriptorSetUniformBuffers int // MaxDescriptorSetUniformBuffersDynamic is the maximum number of dynamic uniform Buffer // objects that can be included in a PipelineLayout MaxDescriptorSetUniformBuffersDynamic int // MaxDescriptorSetStorageBuffers is the maximum number of storage Buffer objects that can be // included in a PipelineLayout MaxDescriptorSetStorageBuffers int // MaxDescriptorSetStorageBuffersDynamic is the maximum number of dynamic storage Buffer // objects that can be included in a PipelineLayout MaxDescriptorSetStorageBuffersDynamic int // MaxDescriptorSetSampledImages is the maximum number of sampled Image objects that can // be included in a PipelineLayout MaxDescriptorSetSampledImages int // MaxDescriptorSetStorageImages is the maximum number of storage Image objects that can // be included in a PipelineLayout MaxDescriptorSetStorageImages int // MaxDescriptorSetInputAttachments is the maximum number of input attachments that can be // included in a PipelineLayout MaxDescriptorSetInputAttachments int // MaxVertexInputAttributes is the maximum number of vertex input attributes that can // be specified for a graphics Pipeline MaxVertexInputAttributes int // MaxVertexInputBindings is the maximum number of vertex Buffer objects that can be specified // for providing vertex attributes to a graphics Pipeline MaxVertexInputBindings int // MaxVertexInputAttributeOffset is the maximum vertex input attribute offset that can be added // to the vertex input binding stride MaxVertexInputAttributeOffset int // MaxVertexInputBindingStride is the maximum vertex input binding stride that can be specified // in a vertex input binding MaxVertexInputBindingStride int // MaxVertexOutputComponents is the maximum number of components of output variables which // can be output by a vertex shader MaxVertexOutputComponents int // MaxTessellationGenerationLevel is the maximum tessellation generation level supported // by the fixed-function tessellation primitive generator MaxTessellationGenerationLevel int // MaxTessellationPatchSize is the maximum patch size, in vertices, of patches that can // be processed by the tessellation control shader and tessellation primitive generator MaxTessellationPatchSize int // MaxTessellationControlPerVertexInputComponents is the maximum number of components // of input variables which can be provided as per-vertex inputs to the tessellation // control shader MaxTessellationControlPerVertexInputComponents int // MaxTessellationControlPerVertexOutputComponents is the maximum number of components of // per-vertex output variables which can be output from the tessellation control shader // stage MaxTessellationControlPerVertexOutputComponents int // MaxTessellationControlPerPatchOutputComponents is the maximum number of comonents of // per-patch output variables which can be output from the tessellation control shader // stage MaxTessellationControlPerPatchOutputComponents int // MaxTessellationControlTotalOutputComponents is the maximum total number of components // of per-vertex and per-patch output variables which can be output from the tessellation // control shader stage MaxTessellationControlTotalOutputComponents int // MaxTessellationEvaluationInputComponents is the maximum number of components of input // variables which can be provided as per-vertex inputs to the tessellation evaluation shader // stage MaxTessellationEvaluationInputComponents int // MaxTessellationEvaluationOutputComponents is the maximum number of components of per-vertex // output variables which can be output from the tessellation evaluation shader stage MaxTessellationEvaluationOutputComponents int // MaxGeometryShaderInvocations is the maximum invocation count supported for instanced // geometry shaders MaxGeometryShaderInvocations int // MaxGeometryInputComponents is the maximum number of components of input variables which // can be provided as inputs to the geometry shader stage MaxGeometryInputComponents int // MaxGeometryOutputComponents is the maximum number of components of output variables // which can be output from the geometry shader stage MaxGeometryOutputComponents int // MaxGeometryOutputVertices is the maximum number of vertices which can be emitted by any // geometry shader MaxGeometryOutputVertices int // MaxGeometryTotalOutputComponents is the maximum total number of components of output variables, // across all emitted vertices, which can be output from the geometry shader stage MaxGeometryTotalOutputComponents int // MaxFragmentInputComponents is the maximum number of components of input variables which can // be provided as inputs to the fragment shader stage MaxFragmentInputComponents int // MaxFragmentOutputAttachments is the maximum number of output attachments which can be // written to by the fragment shader stage MaxFragmentOutputAttachments int // MaxFragmentDualSrcAttachments is the maximum number of output attachments which can be // written to by the fragment shader stage when blending is enabled and one of the dual source // blend modes is in use MaxFragmentDualSrcAttachments int // MaxFragmentCombinedOutputResources is the total number of storage Buffer objects, storage // Image objects, and output Location decorated color attachments which can be used in the // fragment shader stage MaxFragmentCombinedOutputResources int // variables declared with the Workgroup storage class in shader modules in the compute shader // stage MaxComputeSharedMemorySize int // MaxComputeWorkGroupCount is the maximum number of local workgroups that can be dispatched // by a single dispatching command MaxComputeWorkGroupCount [3]int // MaxComputeWorkGroupInvocations is the maximum total number of compute shader invocations in // a single local workgroup MaxComputeWorkGroupInvocations int // MaxComputeWorkGroupSize is the maximum size of a local compute workgroup, per dimension MaxComputeWorkGroupSize [3]int // SubPixelPrecisionBits is the number of bits of subpixel precision in Framebuffer coordinates // xf and yf SubPixelPrecisionBits int // SubTexelPrecisionBits is the number of bits of precision in the division along an axis of // an Image used for minification and magnification filters SubTexelPrecisionBits int // MipmapPrecisionBits is the number of bits of division that the LOD calculation for mipmap // fetching get snapped to when determining the contribution from each mip level to the mip // filtered results MipmapPrecisionBits int // MaxDrawIndexedIndexValue is the maximum index value that can be used for indexed draw // calls when using 32-bit indices MaxDrawIndexedIndexValue int // MaxDrawIndirectCount is the maximum draw count that is supported for indirect drawing calls MaxDrawIndirectCount int // MaxSamplerLodBias is the maximum absolute sampler LOD bias MaxSamplerLodBias float32 // MaxSamplerAnisotropy is the maximum degree of sampler anisotropy MaxSamplerAnisotropy float32 // MaxViewports is the maximum number of active viewports MaxViewports int // MaxViewportDimensions are the maximum viewport dimensions in the X (width) and Y (height) // dimensions, respectively MaxViewportDimensions [2]int // ViewportBoundsRange is the [minimum, maximum] range that the corners of a viewport must be // contained in ViewportBoundsRange [2]float32 // ViewportSubPixelBits is the number of bits of subpixel precision for viewport bounds ViewportSubPixelBits int // MinMemoryMapAlignment is the minimum required alignment, in bytes, of host visible memory // allocations within the host address space MinMemoryMapAlignment int // MinTexelBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset // member of the BufferViewCreateInfo structure for texel Buffer objects MinTexelBufferOffsetAlignment int // MinUniformBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset // member of the DescriptorBufferInfo structure for uniform Buffer objects MinUniformBufferOffsetAlignment int // MinStorageBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset // member of the DescriptorBufferInfo structure for storage Buffer objects MinStorageBufferOffsetAlignment int // MinTexelOffset is the minimum offset value for the ConstOffset Image operand and any of the // OpImageSample... or OpImageFetch... Image instructions MinTexelOffset int // MaxTexelOffset is the maximum offset value for the ConstOffset Image operand and any of the // OpImageSample... or OpImageFetch... Image instructions MaxTexelOffset int // MinTexelGatherOffset is the minimum offset value for the Offset, ConstOffset, or ConstOffsets // image operands of any of the OpImage...Gather Image instructions MinTexelGatherOffset int // MaxTexelGatherOffset is the maximum offset value for the Offset, ConstOffset, or ConstOffsets // image operands of any of the OpImage...Gather Image instructions MaxTexelGatherOffset int // MinInterpolationOffset is the base minimum (inclusive) negative offset value for the Offset // operand of the InterpolateAtOffset extended instruction. MinInterpolationOffset float32 // MaxInterpolationOffset is the base maximum (inclusive) negative offset value for the Offset // operand of the InterpolateAtOffset extended instruction. MaxInterpolationOffset float32 // SubPixelInterpolationOffsetBits is the number of fractional bits that the x and y offsets // to the InterpolateAtOffset extended instruction may be rounded to as fixed-point values. SubPixelInterpolationOffsetBits int // MaxFramebufferWidth is the maximum width for a Framebuffer MaxFramebufferWidth int // MaxFramebufferHeight is the maximum height for a Framebuffer MaxFramebufferHeight int // MaxFramebufferLayers is the maximum layer count for a layered Framebuffer MaxFramebufferLayers int // FramebufferColorSampleCounts indicates the color sample counts that are supported for all // Framebuffer color atttachments with floating- or fixed-point formats FramebufferColorSampleCounts SampleCountFlags // FramebufferDepthSampleCounts indicates the supported depth sample counts for all Framebuffer // depth/stencil attachments, when the format includes a depth component FramebufferDepthSampleCounts SampleCountFlags // FramebufferStencilSampleCounts indicates the supported stencil sample counts for all // Framebuffer depth/stencil attachments, when the format includes a stencil component FramebufferStencilSampleCounts SampleCountFlags // FramebufferNoAttachmentsSampleCount indicates the supported sample counts for a subpass which // uses no attachments FramebufferNoAttachmentsSampleCounts SampleCountFlags // MaxColorAttachments is the maximum number of color attachments that can be used by a // subpass in a RenderPass MaxColorAttachments int // SampledImageColorSampleCounts indicates the sample counts supported for all 2D Image objects // created with ImageTilingOptimal, usage containing ImageUsageSampled, and a non-integer color // format SampledImageColorSampleCounts SampleCountFlags // SampledImageIntegerSampleCounts indicates the sample counts supported for all 2D Image objects // created with ImageTilingOptimal, usage containing UsageSampled, and an integer color format SampledImageIntegerSampleCounts SampleCountFlags // SampledImageDepthSampleCounts indicates the sample counts supported for all 2D Image objects // created with ImageTilingOptimal, usage containing ImageUsageSampled, and a depth format SampledImageDepthSampleCounts SampleCountFlags // SampledImageStencilSampleCounts indicates the sample counts supported for all 2D Image objects // created with ImageTilingOptimal, usage containing ImageUsageSampled, and a stencil format SampledImageStencilSampleCounts SampleCountFlags // StorageImageSampleCounts indicates the Sample counts supported for all 2D images created // with ImageTilingOptimal, and usage containing ImageUsageStorage StorageImageSampleCounts SampleCountFlags // MaxSampleMaskWords is the maximum number of array elements in a variable decorated with // the SampleMask built-in decoration MaxSampleMaskWords int // TimestampComputeAndGraphics specifies support for timestamps on all graphics and compute // queues TimestampComputeAndGraphics bool // TimestampPeriod is the number of nanoseconds required for a timestamp query to be incremented // by 1 TimestampPeriod float32 // MaxClipDistances is the maximum number of clip distances that can be used in a single shader // stage MaxClipDistances int // MaxCullDistances is the maximum number of cull distances that can be used in a single shader // stage MaxCullDistances int // MaxCombinedClipAndCullDistances is the maximum combined number of clip and cull distances // that can be used in a single shader stage MaxCombinedClipAndCullDistances int // DiscreteQueuePriorities is the number of discrete priorities that can be assigned to a Queue // based on the value of each member of DeviceQueueCreateInfo.QueuePriorities DiscreteQueuePriorities int // PointSizeRange is the range [minimum,maximum] of supported sizes for points PointSizeRange [2]float32 // LineWidthRange is the range [minimum,maximum] of supported widths for lines LineWidthRange [2]float32 // PointSizeGranularity is the granularity of supported point sizes PointSizeGranularity float32 // LineWidthGranularity is the granularity of supported line widths LineWidthGranularity float32 // StrictLines specifies whether lines are rasterized according to the preferred method of // rasterization StrictLines bool // StandardSampleLocations specifies whether rasterization uses the standard sample locations StandardSampleLocations bool // OptimalBufferCopyOffsetAlignment is the optimal Buffer offset alignment in bytes for // CommandBuffer.CmdCopyBufferToImage and CommandBuffer.CmdCopyImageToBuffer OptimalBufferCopyOffsetAlignment int // OptimalBufferCopyRowPitchAlignment is the optimal Buffer row pitch alignment in bytes // for CommandBuffer.CmdCopyBufferToImage and CommandBuffer.CmdCopyImageToBuffer OptimalBufferCopyRowPitchAlignment int // NonCoherentAtomSize is the size and alignment in bytes that bounds concurrent access // to host-mapped device memory NonCoherentAtomSize int }
PhysicalDeviceLimits reports implementation-dependent PhysicalDevice limits
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLimits.html
type PhysicalDeviceMemoryProperties ¶
type PhysicalDeviceMemoryProperties struct { // MemoryTypes is a slice of MemoryType structures describing the memory types that can be // used to access memory allocated from the heaps specified by MemoryHeaps MemoryTypes []MemoryType // MemoryHeaps is a slice of MemoryHeap structures describing the memory heaps from which // memory can be allocated MemoryHeaps []MemoryHeap }
PhysicalDeviceMemoryProperties specifies PhysicalDevice memory properties
type PhysicalDeviceProperties ¶
type PhysicalDeviceProperties struct { // DeviceType specifies the type of this device DriverType PhysicalDeviceType // DriverName is the name of the PhysicalDevice DriverName string // APIVersion is the version of Vulkan supported by this PhysicalDevice APIVersion common.APIVersion // DriverVersion is the vendor-specified version of the driver DriverVersion common.Version // VendorID is a unique identifier for the vendor of the PhysicalDevice VendorID uint32 // DeviceID is a unique identifier for the PhysicalDevice among all devices available from // the vendor DeviceID uint32 // PipelineCacheUUID represents a UUID for the Device PipelineCacheUUID uuid.UUID // Limits specifies device-specific limits of the PhysicalDevice Limits *PhysicalDeviceLimits // SparseProperties specifies various sparse related properties of the PhysicalDevice SparseProperties *PhysicalDeviceSparseProperties }
PhysicalDeviceProperties specifies PhysicalDevice properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceProperties.html
func (*PhysicalDeviceProperties) PopulateFromCPointer ¶
func (p *PhysicalDeviceProperties) PopulateFromCPointer(cPointer unsafe.Pointer) error
type PhysicalDeviceSparseProperties ¶
type PhysicalDeviceSparseProperties struct { // ResidencyStandard2DBlockShape is true if the PhysicalDevice will access all single-sample // 2D sparse resources using th standard sparse Image block shapes ResidencyStandard2DBlockShape bool // ResidencyStandard2DMultisampleBlockShape is true if the PhysicalDevice will access all // multisample 2D sparse resources using the standard sparse Image block shapes ResidencyStandard2DMultisampleBlockShape bool // ResidencyStandard3DBlockShape is true if the PhysicalDevice will access all 3D sparse // resources using the standard sparse Image block shapes ResidencyStandard3DBlockShape bool // ResidencyAlignedMipSize is true if Image objects with mip level dimensions that are not integer // multiples of the corresponding dimensions of the sparse Image block may be placed in the // mip tail ResidencyAlignedMipSize bool // ResidencyNonResidentStrict specifies whether the PhysicalDevice can consistently access non- // resident regions of a resource ResidencyNonResidentStrict bool }
PhysicalDeviceSparseProperties specifies PhysicalDevice sparse memory properties
type PhysicalDeviceType ¶
type PhysicalDeviceType int32
PhysicalDeviceType represents supported PhysicalDevice types
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html
func (PhysicalDeviceType) Register ¶
func (e PhysicalDeviceType) Register(str string)
func (PhysicalDeviceType) String ¶
func (e PhysicalDeviceType) String() string
type Pipeline ¶
type Pipeline interface { // Handle is the internal Vulkan object handle for this Pipeline Handle() driver.VkPipeline // DeviceHandle is the internal Vulkan object handle for the Device this Pipeline belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Pipeline Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Pipeline. If it is at least Vulkan // 1.1, core1_1.PromotePipeline can be used to promote this to a core1_1.Pipeline, etc. APIVersion() common.APIVersion // Destroy destroys the Pipeline object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will be // invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPipeline.html Destroy(callbacks *driver.AllocationCallbacks) }
Pipeline represents compute, ray tracing, and graphics pipelines
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipeline.html
type PipelineBindPoint ¶
type PipelineBindPoint int32
PipelineBindPoint specifies the bind point of a Pipeline object to a CommandBuffer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineBindPoint.html
func (PipelineBindPoint) Register ¶
func (e PipelineBindPoint) Register(str string)
func (PipelineBindPoint) String ¶
func (e PipelineBindPoint) String() string
type PipelineCache ¶
type PipelineCache interface { // Handle is the internal Vulkan object handle for this PipelineCache Handle() driver.VkPipelineCache // DeviceHandle is the internal Vulkan object handle for the Device this PipelineCache belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this PipelineCache Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this PipelineCache. If it is at least // Vulkan 1.1, core1_1.PromotePipelineCache can be used to promote this to a core1_1.PipelineCache, // etc. APIVersion() common.APIVersion // Destroy destroys the PipelineCache object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will // be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPipelineCache.html Destroy(callbacks *driver.AllocationCallbacks) // CacheData gets the data store from this PipelineCache // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPipelineCacheData.html CacheData() ([]byte, common.VkResult, error) // MergePipelineCaches combines the data stores of multiple PipelineCache object into this one // // srcCaches - A slice of PipelineCache objects which will be merged into this PipelineCache // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkMergePipelineCaches.html MergePipelineCaches(srcCaches []PipelineCache) (common.VkResult, error) }
PipelineCache allows the result of Pipeline construction to be reused between Pipeline objects and between runs of an application.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCache.html
type PipelineCacheCreateFlags ¶
type PipelineCacheCreateFlags int32
PipelineCacheCreateFlags specifies the behavior of the PipelineCache
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheCreateFlagBits.html
func (PipelineCacheCreateFlags) Register ¶
func (f PipelineCacheCreateFlags) Register(str string)
func (PipelineCacheCreateFlags) String ¶
func (f PipelineCacheCreateFlags) String() string
type PipelineCacheCreateInfo ¶
type PipelineCacheCreateInfo struct { // Flags specifies the behavior of the PipelineCache Flags PipelineCacheCreateFlags // InitialData contains previously-retrieved PipelineCache data InitialData []byte common.NextOptions }
PipelineCacheCreateInfo specifies parameters of a newly-created PipelineCache
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheCreateInfo.html
type PipelineCacheHeaderVersion ¶
type PipelineCacheHeaderVersion int32
PipelineCacheHeaderVersion encodes the PipelineCache version
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheHeaderVersion.html
const ( // PipelineCacheHeaderVersionOne specifies version 1 of the PipelineCache // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheHeaderVersion.html PipelineCacheHeaderVersionOne PipelineCacheHeaderVersion = C.VK_PIPELINE_CACHE_HEADER_VERSION_ONE )
func (PipelineCacheHeaderVersion) Register ¶
func (e PipelineCacheHeaderVersion) Register(str string)
func (PipelineCacheHeaderVersion) String ¶
func (e PipelineCacheHeaderVersion) String() string
type PipelineColorBlendAttachmentState ¶
type PipelineColorBlendAttachmentState struct { // BlendEnabled controls whether blending is enabled for the corresponding color attachment BlendEnabled bool // SrcColorBlendFactor selects which blend factor is used to determine the source factors // [R(sf), G(sf), B(sf)] SrcColorBlendFactor BlendFactor // DstColorBlendFactor selects which blend factor is used to determine the destination factors // [R(df), G(df), B(df)] DstColorBlendFactor BlendFactor // ColorBlendOp selects which blend operation is used to calculate the RGBG values to write to // the color attachment ColorBlendOp BlendOp // SrcAlphaBlendFactor selects which blend factor is used to determine the source factor A(sf) SrcAlphaBlendFactor BlendFactor // DstAlphaBlendFactor selects which blend factor is used to determine the detination factor A(sf) DstAlphaBlendFactor BlendFactor // AlphaBlendOp selects which blend operation is used to calculate the alpha values to write to the color // attachment AlphaBlendOp BlendOp // ColorWriteMask specifies which of the R, G, B, and/or A components are enabled for writing ColorWriteMask ColorComponentFlags }
PipelineColorBlendAttachmentState specifies a Pipeline color blend attachment state
type PipelineColorBlendStateCreateFlags ¶
type PipelineColorBlendStateCreateFlags uint32
PipelineColorBlendStateCreateFlags specifies additional parameters of an Image
func (PipelineColorBlendStateCreateFlags) Register ¶
func (f PipelineColorBlendStateCreateFlags) Register(str string)
func (PipelineColorBlendStateCreateFlags) String ¶
func (f PipelineColorBlendStateCreateFlags) String() string
type PipelineColorBlendStateCreateInfo ¶
type PipelineColorBlendStateCreateInfo struct { // Flags specifies additional color blending information Flags PipelineColorBlendStateCreateFlags // LogicOpEnabled controls whether to apply logical operations LogicOpEnabled bool // LogicOp selects which logical operation to apply LogicOp LogicOp // BlendConstants is an array of 4 values used as the R, G, B, and A components of the // blend constant that are used in blending, depending on the blend factor BlendConstants [4]float32 // Attachments is a slice of PipelineColorBlendAttachmentState structures defining blend state // for each color attachment Attachments []PipelineColorBlendAttachmentState common.NextOptions }
PipelineColorBlendStateCreateInfo specifies parameters of a newly-created Pipeline color blend state
type PipelineCreateFlags ¶
type PipelineCreateFlags int32
PipelineCreateFlags controls how a Pipeline is created
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits.html
const ( // PipelineCreateDisableOptimization specifies that the created Pipeline will not be optimized // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits.html PipelineCreateDisableOptimization PipelineCreateFlags = C.VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT // PipelineCreateAllowDerivatives specifies that the Pipeline to be created is allowed to // be the parent of a Pipeline that will be created in a subsequent Pipeline creation call PipelineCreateAllowDerivatives PipelineCreateFlags = C.VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT // PipelineCreateDerivative specifies that the Pipeline to be created will be a child of a // previously-created parent Pipeline PipelineCreateDerivative PipelineCreateFlags = C.VK_PIPELINE_CREATE_DERIVATIVE_BIT )
func (PipelineCreateFlags) Register ¶
func (f PipelineCreateFlags) Register(str string)
func (PipelineCreateFlags) String ¶
func (f PipelineCreateFlags) String() string
type PipelineDepthStencilStateCreateFlags ¶
type PipelineDepthStencilStateCreateFlags uint32
PipelineDepthStencilStateCreateFlags are reserved for future use
func (PipelineDepthStencilStateCreateFlags) Register ¶
func (f PipelineDepthStencilStateCreateFlags) Register(str string)
func (PipelineDepthStencilStateCreateFlags) String ¶
func (f PipelineDepthStencilStateCreateFlags) String() string
type PipelineDepthStencilStateCreateInfo ¶
type PipelineDepthStencilStateCreateInfo struct { // Flags specifies additional depth/stencil state information Flags PipelineDepthStencilStateCreateFlags // DepthTestEnable controls whether depth testing is enabled DepthTestEnable bool // DepthWriteEnable controls whether depth writes are enabled when DepthTestEnable is true DepthWriteEnable bool // DepthCompareOp specifies the comparison operator to use in the depth comparison step // of the depth test DepthCompareOp CompareOp // DepthBoundsTestEnable controls whether depth bounds testing is enabled DepthBoundsTestEnable bool // StencilTestEnable controls whether stencil testing is enabled StencilTestEnable bool // Front controls the parameters of the stencil test for front-facing triangles Front StencilOpState // Back controls the parameters of the stencil test for back-facing triangles Back StencilOpState // MinDepthBounds is the minimum depth bound used in the depth bounds test MinDepthBounds float32 // MaxDepthBounds is the maximum depth bound used in the depth bounds test MaxDepthBounds float32 common.NextOptions }
PipelineDepthStencilStateCreateInfo specifies parameters of a newly-created Pipeline depth stencil state
type PipelineDynamicStateCreateFlags ¶
type PipelineDynamicStateCreateFlags uint32
PipelineDynamicStateCreateFlags is reserved for future use
func (PipelineDynamicStateCreateFlags) Register ¶
func (f PipelineDynamicStateCreateFlags) Register(str string)
func (PipelineDynamicStateCreateFlags) String ¶
func (f PipelineDynamicStateCreateFlags) String() string
type PipelineDynamicStateCreateInfo ¶
type PipelineDynamicStateCreateInfo struct { // Flags is reserved for future use Flags PipelineDynamicStateCreateFlags // DynamicStates is a slice of DynamicState values specifying which pieces of Pipeline state // will use the values from dynamic state commands rather than from Pipeline state creation // information DynamicStates []DynamicState common.NextOptions }
PipelineDynamicStateCreateInfo specifies parameters of a newly-created Pipeline dynamic state
type PipelineInputAssemblyStateCreateFlags ¶
type PipelineInputAssemblyStateCreateFlags uint32
PipelineInputAssemblyStateCreateFlags reserved for future use
func (PipelineInputAssemblyStateCreateFlags) Register ¶
func (f PipelineInputAssemblyStateCreateFlags) Register(str string)
func (PipelineInputAssemblyStateCreateFlags) String ¶
func (f PipelineInputAssemblyStateCreateFlags) String() string
type PipelineInputAssemblyStateCreateInfo ¶
type PipelineInputAssemblyStateCreateInfo struct { // Flags is reserved for future use Flags PipelineInputAssemblyStateCreateFlags // Topology defines the primitive topology Topology PrimitiveTopology // PrimitiveRestartEnable controls whether a special vertex index value is treated as // restarting the assembly of primitives PrimitiveRestartEnable bool common.NextOptions }
PipelineInputAssemblyStateCreateInfo specifies parameters of a newly-created Pipeline input assembly state
type PipelineLayout ¶
type PipelineLayout interface { // Handle is the internal Vulkan object handle for this PipelineLayout Handle() driver.VkPipelineLayout // DeviceHandle is the internal Vulkan object handle for the Device this PipelineLayout belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this PipelineLayout Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this PipelineLayout. If it is at least // Vulkan 1.1, core1_1.PromotePipelineLayout can be used to promote this to a core1_1.PipelineLayout, // etc. APIVersion() common.APIVersion // Destroy destroys the PipelineLayout object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will be // invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPipelineLayout.html Destroy(callbacks *driver.AllocationCallbacks) }
PipelineLayout provides access to descriptor sets to Pipeline objects by combining zero or more descriptor sets and zero or more push constant ranges.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineLayout.html
type PipelineLayoutCreateFlags ¶
type PipelineLayoutCreateFlags uint32
PipelineLayoutCreateFlags represents PipelineLayout creation flag bits
func (PipelineLayoutCreateFlags) Register ¶
func (f PipelineLayoutCreateFlags) Register(str string)
func (PipelineLayoutCreateFlags) String ¶
func (f PipelineLayoutCreateFlags) String() string
type PipelineLayoutCreateInfo ¶
type PipelineLayoutCreateInfo struct { // Flags specifies options for PipelineLayout creation Flags PipelineLayoutCreateFlags // SetLayouts is a slice of DescriptorSetLayout objects SetLayouts []DescriptorSetLayout // PushConstantRanges is a slice of PushConstantRange structures defining a set of push constant // ranges for use in a single PipelineLayout PushConstantRanges []PushConstantRange common.NextOptions }
PipelineLayoutCreateInfo creates a new PipelineLayout object
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineLayoutCreateInfo.html
type PipelineMultisampleStateCreateFlags ¶
type PipelineMultisampleStateCreateFlags uint32
PipelineMultisampleStateCreateFlags is reserved for future use
func (PipelineMultisampleStateCreateFlags) Register ¶
func (f PipelineMultisampleStateCreateFlags) Register(str string)
func (PipelineMultisampleStateCreateFlags) String ¶
func (f PipelineMultisampleStateCreateFlags) String() string
type PipelineMultisampleStateCreateInfo ¶
type PipelineMultisampleStateCreateInfo struct { // Flags is reserved for future use Flags PipelineMultisampleStateCreateFlags // RasterizationSamples specifies the number of samples used in rasterization RasterizationSamples SampleCountFlags // SampleShadingEnable can be used to enable sample shading SampleShadingEnable bool // MinSampleShading specifies a minimum fraction of sample shading if SampleShadingEnable // is set to true MinSampleShading float32 // SampleMask is a slice of unsigned 32-bit integers used in the sample mask test SampleMask []uint32 // AlphaToCoverageEnable controls whether a temporary coverage value is generated based on // the alpha component of the fragment's first color output AlphaToCoverageEnable bool // AlphaToOneEnable controls whether the alpha component of the fragment's first color output // is replaced with 1 AlphaToOneEnable bool common.NextOptions }
PipelineMultisampleStateCreateInfo specifies parameters of a newly-created Pipeline multisample state
type PipelineRasterizationStateCreateFlags ¶
type PipelineRasterizationStateCreateFlags uint32
PipelineRasterizationStateCreateFlags is reserved for future use
func (PipelineRasterizationStateCreateFlags) Register ¶
func (f PipelineRasterizationStateCreateFlags) Register(str string)
func (PipelineRasterizationStateCreateFlags) String ¶
func (f PipelineRasterizationStateCreateFlags) String() string
type PipelineRasterizationStateCreateInfo ¶
type PipelineRasterizationStateCreateInfo struct { // Flags is reserved for future use Flags PipelineRasterizationStateCreateFlags // DepthClampEnable controls whether to clamp the fragment's depth values DepthClampEnable bool // RasterizerDiscardEnable controls whether primitives are discarded immediately before the // rasterization stage RasterizerDiscardEnable bool // PolygonMode is the triangle rendering mode PolygonMode PolygonMode // CullMode is the triangle facing direction used for primitive culling CullMode CullModeFlags // FrontFace specifies the front-facing triangle orientation to be used for culling FrontFace FrontFace // DepthBiasEnable controls whether to bias fragment depth values DepthBiasEnable bool // DepthBiasClamp is the maximum (or minimum) depth bias of a fragment DepthBiasClamp float32 // DepthBiasConstantFactor is a scalar factor controlling the constant depth value added // to each fragment DepthBiasConstantFactor float32 // DepthBiasSlopeFactor is a scalar factor applied to a fragment's slope in depth bias // calculations DepthBiasSlopeFactor float32 // LineWidth is the width of rasterized line segments LineWidth float32 common.NextOptions }
PipelineRasterizationStateCreateInfo specifies parameters of a newly-created Pipeline rasterization state
type PipelineShaderStageCreateFlags ¶ added in v0.2.0
type PipelineShaderStageCreateFlags int32
PipelineShaderStageCreateFlags controls how a Pipeline shader stage is created
func (PipelineShaderStageCreateFlags) Register ¶ added in v0.2.0
func (f PipelineShaderStageCreateFlags) Register(str string)
func (PipelineShaderStageCreateFlags) String ¶ added in v0.2.0
func (f PipelineShaderStageCreateFlags) String() string
type PipelineShaderStageCreateInfo ¶
type PipelineShaderStageCreateInfo struct { // Flags specifies how the Pipeline shader stage will be generated Flags PipelineShaderStageCreateFlags // Name is a string specifying the entry point name of the shader for this stage Name string // Stage specifies a single Pipeline stage Stage ShaderStageFlags // Module contains the shader code for this stage Module ShaderModule // SpecializationInfo is a map specifying specialization contents SpecializationInfo map[uint32]any common.NextOptions }
PipelineShaderStageCreateInfo specifies parameters of a newly-created Pipeline shader stage
type PipelineStageFlags ¶
type PipelineStageFlags int32
PipelineStageFlags specifies Pipeline stages
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html
const ( // PipelineStageTopOfPipe is equivalent to PipelineStageAllCommands with AccessFlags set to 0 // when specified in the second synchronization scope, but specifies no stage of execution when // specified in the first scope // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageTopOfPipe PipelineStageFlags = C.VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT // PipelineStageDrawIndirect specifies the stage of the Pipeline where DrawIndirect... // and DispatchIndirect... data structures are consumed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageDrawIndirect PipelineStageFlags = C.VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT // PipelineStageVertexInput specifies the stage of the Pipeline where vertex and index buffers are // consumed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageVertexInput PipelineStageFlags = C.VK_PIPELINE_STAGE_VERTEX_INPUT_BIT // PipelineStageVertexShader specifies the vertex shader stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageVertexShader PipelineStageFlags = C.VK_PIPELINE_STAGE_VERTEX_SHADER_BIT // PipelineStageTessellationControlShader specifies the tessellation control shader stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageTessellationControlShader PipelineStageFlags = C.VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT // PipelineStageTessellationEvaluationShader specifies the tessellation evaluation shader stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageTessellationEvaluationShader PipelineStageFlags = C.VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT // PipelineStageGeometryShader specifies the geometry shader stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageGeometryShader PipelineStageFlags = C.VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT // PipelineStageFragmentShader specifies the fragment shader stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageFragmentShader PipelineStageFlags = C.VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT // PipelineStageEarlyFragmentTests specifies the stage of the Pipeline where early fragment tests // (depth and stencil tests before fragment shading) are performed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageEarlyFragmentTests PipelineStageFlags = C.VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT // PipelineStageLateFragmentTests specifies the stage of the Pipeline where late fragment tests // (depth and stencil tests after fragment shading) are performed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageLateFragmentTests PipelineStageFlags = C.VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT // PipelineStageColorAttachmentOutput specifies the stage of the Pipeline after blending where // the final color values are output from the Pipeline // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageColorAttachmentOutput PipelineStageFlags = C.VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT // PipelineStageComputeShader specifies the execution of a compute shader // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageComputeShader PipelineStageFlags = C.VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT // PipelineStageTransfer specifies the following commands: // * All copy commands including CommandBuffer.CmdCopyQueryPoolResults // * CommandBuffer.CmdBlitImage // * CommandBuffer.CmdResolveImage // * All clear commands, with the exception of CommandBuffer.CmdClearAttachments // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageTransfer PipelineStageFlags = C.VK_PIPELINE_STAGE_TRANSFER_BIT // PipelineStageBottomOfPipe is equivalent to PipelineStageAllCommands with AccessFlags set to 0 // when specified in the first synchronization scope, but specifies no stage of execution when // specified in the second scope // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageBottomOfPipe PipelineStageFlags = C.VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT // PipelineStageHost specifies a pseudo-stage indicating execution on the host of reads/writes // of DeviceMemory. This stage is not invoked by any commands recorded in a CommandBuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageHost PipelineStageFlags = C.VK_PIPELINE_STAGE_HOST_BIT // PipelineStageAllGraphics specifies the execution of all graphics Pipeline stages, and is // equivalent to the logical OR of: // * PipelineStageDrawIndirect // * PipelineStageVertexInput // * PipelineStageVertexShader // * PipelineStageTessellationControlShader // * PipelineStageTessellationEvaluationShader // * PipelineStageGeometryShader // * PipelineStageFragmentShader // * PipelineStageEarlyFragmentTests // * PipelineStageLateFragmentTests // * PipelineColorAttachmentOutput // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageAllGraphics PipelineStageFlags = C.VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT // PipelineStageAllCommands specifies all operations performed by all commands supported on the // queue it is used with // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html PipelineStageAllCommands PipelineStageFlags = C.VK_PIPELINE_STAGE_ALL_COMMANDS_BIT )
func (PipelineStageFlags) Register ¶
func (f PipelineStageFlags) Register(str string)
func (PipelineStageFlags) String ¶
func (f PipelineStageFlags) String() string
type PipelineTessellationStateCreateFlags ¶
type PipelineTessellationStateCreateFlags uint32
PipelineTessellationStateCreateFlags is reserved for future use
func (PipelineTessellationStateCreateFlags) Register ¶
func (f PipelineTessellationStateCreateFlags) Register(str string)
func (PipelineTessellationStateCreateFlags) String ¶
func (f PipelineTessellationStateCreateFlags) String() string
type PipelineTessellationStateCreateInfo ¶
type PipelineTessellationStateCreateInfo struct { // Flags is reserved for future use Flags PipelineTessellationStateCreateFlags // PatchControlPoints is the number of control points per patch PatchControlPoints uint32 common.NextOptions }
PipelineTessellationStateCreateInfo specifies parameters of a newly-created Pipeline tessellation state
type PipelineVertexInputStateCreateInfo ¶
type PipelineVertexInputStateCreateInfo struct { // VertexBindingDescriptions is a slice of VertexInputBindingDescription structures VertexBindingDescriptions []VertexInputBindingDescription // VertexAttributeDescriptions is a slice of VertexInputAttributeDescription structures VertexAttributeDescriptions []VertexInputAttributeDescription common.NextOptions }
PipelineVertexInputStateCreateInfo specifies parameters of a newly-created Pipeline vertex input state
type PipelineViewportStateCreateFlags ¶
type PipelineViewportStateCreateFlags uint32
PipelineViewportStateCreateFlags is reserved for future use
func (PipelineViewportStateCreateFlags) Register ¶
func (f PipelineViewportStateCreateFlags) Register(str string)
func (PipelineViewportStateCreateFlags) String ¶
func (f PipelineViewportStateCreateFlags) String() string
type PipelineViewportStateCreateInfo ¶
type PipelineViewportStateCreateInfo struct { // Viewports is a slice of Viewport structures, defining viewport transforms Viewports []Viewport // Scissors is a slice of Rect2D structures defining the rectangular bounds of the scissor for // the corresponding viewport Scissors []Rect2D // Flags is reserved for future use Flags PipelineViewportStateCreateFlags common.NextOptions }
PipelineViewportStateCreateInfo specifies parameters of a newly-created Pipeline viewport state
type PolygonMode ¶
type PolygonMode int32
PolygonMode controls polygon rasterization mode
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPolygonMode.html
func (PolygonMode) Register ¶
func (e PolygonMode) Register(str string)
func (PolygonMode) String ¶
func (e PolygonMode) String() string
type PrimitiveTopology ¶
type PrimitiveTopology int32
PrimitiveTopology represents supported primitive topologies
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html
const ( // PrimitiveTopologyPointList specifies a series of separate point primitives // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyPointList PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_POINT_LIST // PrimitiveTopologyLineList specifies a series of separate line primitives // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyLineList PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_LINE_LIST // PrimitiveTopologyLineStrip specifies a series of connected line primitives with consecutive // lines sharing a vertex // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyLineStrip PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP // PrimitiveTopologyTriangleList specifies a series of separate triangle primitives // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyTriangleList PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST // PrimitiveTopologyTriangleStrip specifies a series of connected triangle primitives with // consecutive triangles sharing an edge // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyTriangleStrip PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP // PrimitiveTopologyTriangleFan specifies a series of connected triangle primitives with all triangles // sharing a common vertex // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyTriangleFan PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN // PrimitiveTopologyLineListWithAdjacency specifies a series of separate line primitives with adjacency // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyLineListWithAdjacency PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY // PrimitiveTopologyLineStripWithAdjacency specifies a series of connected line primitives // with adjacency, with consecutive primitives sharing three vertices // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyLineStripWithAdjacency PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY // PrimitiveTopologyTriangleListWithAdjacency specifies a series of separate triangle primitives // with adjacency // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyTriangleListWithAdjacency PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY // PrimitiveTopologyTriangleStripWithAdjacency specifies connected triangle primitives with // adjacency, with consecutive triangles sharing an edge // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyTriangleStripWithAdjacency PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY // PrimitiveTopologyPatchList specifies separate patch primitives // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html PrimitiveTopologyPatchList PrimitiveTopology = C.VK_PRIMITIVE_TOPOLOGY_PATCH_LIST )
func (PrimitiveTopology) Register ¶
func (e PrimitiveTopology) Register(str string)
func (PrimitiveTopology) String ¶
func (e PrimitiveTopology) String() string
type PushConstantRange ¶
type PushConstantRange struct { // StageFlags describes the shader stages that will access a range of push constants StageFlags ShaderStageFlags // Offset is the start offset consumed by the range, in bytes. Must be a multiple of 4 Offset int // Size is the size consumed by the range, in bytes. Must be a multiple of 4 Size int }
PushConstantRange specifies a push constant range
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPushConstantRange.html
type QueryControlFlags ¶
type QueryControlFlags int32
QueryControlFlags specifies constraints on a query
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryControlFlagBits.html
func (QueryControlFlags) Register ¶
func (f QueryControlFlags) Register(str string)
func (QueryControlFlags) String ¶
func (f QueryControlFlags) String() string
type QueryPipelineStatisticFlags ¶
type QueryPipelineStatisticFlags int32
QueryPipelineStatisticFlags specifies queried Pipeline statistics
func (QueryPipelineStatisticFlags) Register ¶
func (f QueryPipelineStatisticFlags) Register(str string)
func (QueryPipelineStatisticFlags) String ¶
func (f QueryPipelineStatisticFlags) String() string
type QueryPool ¶
type QueryPool interface { // Handle is the internal Vulkan object handle for this QueryPool Handle() driver.VkQueryPool // DeviceHandle is the internal Vulkan object handle for the Device this QueryPool belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this QueryPool Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this QueryPool. If it is at least // Vulkan 1.1, core1_1.PromoteQueryPool can be used to promote this to a core1_1.QueryPool, etc. APIVersion() common.APIVersion // Destroy destroys the QueryPool object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyQueryPool.html Destroy(callbacks *driver.AllocationCallbacks) // PopulateResults retrieves the status and results for a set of queries, and populates those results // into a preallocated byte array // // firstQuery - The initial query index // // queryCount - The number of queries to read // // results - A user-allocated slice of bytes where the results will be written // // resultStride - The stride in bytes between results for individual queries // // flags - Specifies how and when results are returned // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetQueryPoolResults.html PopulateResults(firstQuery, queryCount int, results []byte, resultStride int, flags QueryResultFlags) (common.VkResult, error) }
QueryPool is a collection of a specific number of queries of a particular type.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPool.html
type QueryPoolCreateFlags ¶
type QueryPoolCreateFlags uint32
QueryPoolCreateFlags is reserved for future use
func (QueryPoolCreateFlags) Register ¶
func (f QueryPoolCreateFlags) Register(str string)
func (QueryPoolCreateFlags) String ¶
func (f QueryPoolCreateFlags) String() string
type QueryPoolCreateInfo ¶
type QueryPoolCreateInfo struct { // Flags is reserved for future use Flags QueryPoolCreateFlags // QueryType specifies the type of queries managed by the QueryPool QueryType QueryType // QueryCount is the number of queries managed by the QueryPool QueryCount int // PipelineStatistics specifies which counters will be returned in queries on the // new QueryPool PipelineStatistics QueryPipelineStatisticFlags common.NextOptions }
QueryPoolCreateInfo specifies parameters of a newly-created QueryPool
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPoolCreateInfo.html
type QueryResultFlags ¶
type QueryResultFlags int32
QueryResultFlags specifies how and when query results are returned
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html
func (QueryResultFlags) Register ¶
func (f QueryResultFlags) Register(str string)
func (QueryResultFlags) String ¶
func (f QueryResultFlags) String() string
type QueryType ¶
type QueryType int32
QueryType specifies the type of queries managed by a QueryPool
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryType.html
type Queue ¶
type Queue interface { // Handle is the internal Vulkan object handle for this Queue Handle() driver.VkQueue // DeviceHandle is the internal Vulkan object handle for the Device this Queue belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Queue Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Queue. If it is at least Vulkan 1.1, // core1_1.PromoteQueue can be used to promote this to a core1_1.Queue, etc. APIVersion() common.APIVersion // WaitIdle waits for this Queue to become idle // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkQueueWaitIdle.html WaitIdle() (common.VkResult, error) // Submit submits a sequence of Semaphore or CommandBuffer objects to this queue // // fence - An optional Fence object to be signaled once all submitted CommandBuffer objects have // completed execution. // // o - A slice of SubmitInfo structures, each specifying a CommandBuffer submission batch // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkQueueSubmit.html Submit(fence Fence, o []SubmitInfo) (common.VkResult, error) // BindSparse binds DeviceMemory to a sparse resource object // // fence - An optional Fence object to be signaled. // // bindInfos - A slice of BindSparseInfo structures, each speicfying a sparse binding submission batch // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkQueueBindSparse.html BindSparse(fence Fence, bindInfos []BindSparseInfo) (common.VkResult, error) }
Queue represents a Device resource on which work is performed
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueue.html
type QueueFamilyProperties ¶ added in v0.2.0
type QueueFamilyProperties struct { // QueueFlags indicates capabilities of the Queue objects in this Queue family QueueFlags QueueFlags // QueueCount is the number of Queue objects in this Queue family QueueCount int // TimestampValidBits is the number of meaningful bits in the timestamps written via // CommandBuffer.CmdWriteTimestamp TimestampValidBits uint32 // MinImageTransferGranularity is the minimum granularity supported for Image transfer // operations on the Queue objects in this Queue family MinImageTransferGranularity Extent3D }
QueueFamilyProperties provides information about a Queue family
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFamilyProperties.html
type QueueFlags ¶
type QueueFlags int32
QueueFlags specifies capabilities of Queue objects in a Queue family
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html
func (QueueFlags) Register ¶
func (f QueueFlags) Register(str string)
func (QueueFlags) String ¶
func (f QueueFlags) String() string
type Rect2D ¶
type Rect2D struct { // Offset specifies the rectangle offset Offset Offset2D // Extent specifies the rectangle extent Extent Extent2D }
Rect2D specifies a two-dimensional subregion
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRect2D.html
type RenderPass ¶
type RenderPass interface { // Handle is the internal Vulkan object handle for this RenderPass Handle() driver.VkRenderPass // DeviceHandle is the internal Vulkan object handle for the Device this RenderPass belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this RenderPass Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this RenderPass. If it is at least Vulkan // 1.1, core1_1.PromoteRenderPass can be used to promote this to a core1_1.RenderPass, etc. APIVersion() common.APIVersion // Destroy destroys the RenderPass object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will // be invalid. Do not call further methods on this object. // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyRenderPass.html Destroy(callbacks *driver.AllocationCallbacks) // RenderAreaGranularity returns the granularity for optimal render area // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetRenderAreaGranularity.html RenderAreaGranularity() Extent2D }
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
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderPass.html
type RenderPassBeginInfo ¶
type RenderPassBeginInfo struct { // RenderPass is the RenderPass to begin an instance of RenderPass RenderPass // Framebuffer is the Framebuffer containing the attachments that are used with the // RenderPass Framebuffer Framebuffer // RenderArea is the render area that is affected by this RenderPass instance RenderArea Rect2D // ClearValues is a slice of ClearValue structures containing clear values for each attachment // if the attachment uses an AttachmentLoadOp value of AttachmentLoadOpClear. Elements of the slice // corresponding to attachments that do not use AttachmentLoadOpClear are ignored ClearValues []ClearValue common.NextOptions }
RenderPassBeginInfo specifies RenderPass begin information
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPassBeginInfo.html
type RenderPassCreateFlags ¶
type RenderPassCreateFlags int32
RenderPassCreateFlags specifies additional properties of a RenderPass
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateFlagBits.html
func (RenderPassCreateFlags) Register ¶
func (f RenderPassCreateFlags) Register(str string)
func (RenderPassCreateFlags) String ¶
func (f RenderPassCreateFlags) String() string
type RenderPassCreateInfo ¶
type RenderPassCreateInfo struct { // Flags is a bitmask of RenderPassCreateFlags Flags RenderPassCreateFlags // Attachments is a slice of AttachmentDescription structures describing the attachments // used by the RenderPass Attachments []AttachmentDescription // Subpasses is a slice of SubpassDescription structures describing each subpass Subpasses []SubpassDescription // SubpassDependencies is a slice of SubpassDependency structures describing dependencies // between pairs of subpasses SubpassDependencies []SubpassDependency common.NextOptions }
RenderPassCreateInfo specifies parameters of a newly-created RenderPass
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateInfo.html
type SampleCountFlags ¶
type SampleCountFlags int32
SampleCountFlags specifies sample counts supported for an Image used for storage operations
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html
func (SampleCountFlags) Count ¶
func (f SampleCountFlags) Count() int
func (SampleCountFlags) RegisterSamples ¶
func (f SampleCountFlags) RegisterSamples(str string, sampleCount int)
func (SampleCountFlags) String ¶
func (f SampleCountFlags) String() string
type Sampler ¶
type Sampler interface { // Handle is the internal Vulkan object handle for this Sampler Handle() driver.VkSampler // DeviceHandle is the internal Vulkan object handle for the Device this Sampler belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Sampler Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Sampler. If it is at least Vulkan // 1.1, core1_1.PromoteSampler can be used to promote this to a core1_1.Sampler, etc. APIVersion() common.APIVersion // Destroy destroys the Sampler object and the underlying structures. **Warning** after destruction, // this object will continue to exist, but the Vulkan objec thandle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroySampler.html Destroy(callbacks *driver.AllocationCallbacks) }
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.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSampler.html
type SamplerAddressMode ¶
type SamplerAddressMode int32
SamplerAddressMode specifies behavior of sampling with texture coordinates outside an Image
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html
func (SamplerAddressMode) Register ¶
func (e SamplerAddressMode) Register(str string)
func (SamplerAddressMode) String ¶
func (e SamplerAddressMode) String() string
type SamplerCreateFlags ¶
type SamplerCreateFlags int32
SamplerCreateFlags specifies additional parameters of a Sampler
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerCreateFlagBits.html
func (SamplerCreateFlags) Register ¶
func (f SamplerCreateFlags) Register(str string)
func (SamplerCreateFlags) String ¶
func (f SamplerCreateFlags) String() string
type SamplerCreateInfo ¶
type SamplerCreateInfo struct { // Flags describes additional parameters of the Sampler Flags SamplerCreateFlags // MagFilter specifies the magnification filter to apply to lookups MagFilter Filter // MinFilter specifies the minification filter to apply to lookups MinFilter Filter // MipmapMode specifies the mipmap filter to apply to lookups MipmapMode SamplerMipmapMode // AddressModeU specifies the addressing mode for U coordinates outside [0,1) AddressModeU SamplerAddressMode // AddressModeV specifies the addressing mode for V coordinates outside [0,1) AddressModeV SamplerAddressMode // AddressModeW specifies the addressing mode for W coordinates outside [0,1) AddressModeW SamplerAddressMode // MipLodBias is the bias to be added to mipmap level-of-detail calculations and bias provided // by Image sampling functions MipLodBias float32 // MinLod is used to clamp the minimum of the computed level-of-detail value MinLod float32 // MaxLod is used to clamp the maximum of the computed level-of-detail value- to avoid // clamping the maximum value, set MaxLod to the constant LodClampNone MaxLod float32 // AnisotropyEnable is true to enable anisotropic filtering AnisotropyEnable bool // MaxAnisotropy is the anisotropy value clamp used by the Sampler when AnisotropyEnable is true MaxAnisotropy float32 // CompareEnable is true to enable comparison against a reference value during lookups, or // false otherwise CompareEnable bool // CompareOp specifies the comparison operator to apply to fetched data before filtering CompareOp CompareOp // BorderColor specifies the predefined border color to use BorderColor BorderColor // UnnormalizedCoordinates controls whether to use unnormalized or normalized texel coordinates // to address texels of the image. When set to true, the range of the Image coordinates used // to lookup the texel is in the range of 0 to the Image size in each dimension. When set to // false, the range of Image coordinates is 0..1 UnnormalizedCoordinates bool common.NextOptions }
SamplerCreateInfo specifies parameters of a newly-created Sampler
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerCreateInfo.html
type SamplerMipmapMode ¶
type SamplerMipmapMode int32
SamplerMipmapMode specifies the mipmap mode used for texture lookups
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerMipmapMode.html
func (SamplerMipmapMode) Register ¶
func (e SamplerMipmapMode) Register(str string)
func (SamplerMipmapMode) String ¶
func (e SamplerMipmapMode) String() string
type Semaphore ¶
type Semaphore interface { // Handle is the internal Vulkan object handle for this Semaphore Handle() driver.VkSemaphore // DeviceHandle is the internal Vulkan object handle for the Device this Semaphore belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this Semaphore Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this Semaphore. If it is at least // Vulkan 1.1, core1_1.PromoteSemaphore can be used to promote this to a core1_1.Semaphore APIVersion() common.APIVersion // Destroy destroys the Semaphore object and the underlying structures. **Warning** after destruciton, // this object will continue to exist, but the Vulkan object handle that backs it will be invalid. // Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroySemaphore.html Destroy(callbacks *driver.AllocationCallbacks) }
Semaphore is a synchronization primitive that can be used to insert a dependency between Queue operations or between a Queue operation and the host.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphore.html
type SemaphoreCreateFlags ¶
type SemaphoreCreateFlags int32
SemaphoreCreateFlags is reserved for future use
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreCreateFlags.html
func (SemaphoreCreateFlags) Register ¶
func (f SemaphoreCreateFlags) Register(str string)
func (SemaphoreCreateFlags) String ¶
func (f SemaphoreCreateFlags) String() string
type SemaphoreCreateInfo ¶
type SemaphoreCreateInfo struct { // Flags is reserved future use Flags SemaphoreCreateFlags common.NextOptions }
SemaphoreCreateInfo specifies parameters of a newly-created Semaphore
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreCreateInfo.html
type ShaderModule ¶
type ShaderModule interface { // Handle is the internal Vulkan object handle for this ShaderModule Handle() driver.VkShaderModule // DeviceHandle is the internal Vulkan object handle for the Device this ShaderModule belongs to DeviceHandle() driver.VkDevice // Driver is the Vulkan wrapper driver used by this ShaderModule Driver() driver.Driver // APIVersion is the maximum Vulkan API version supported by this ShaderModule. If it is at least // Vulkan 1.1, core1_1.PromoteShaderModule can be used to promote this to a core1_1.ShaderModule, etc. APIVersion() common.APIVersion // Destroy destroys the ShaderModule object and the underlying structures. **Warning** after // destruction, this object will continue to exist, but the Vulkan object handle that backs it will // be invalid. Do not call further methods on this object. // // callbacks - Controls host memory deallocation // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyShaderModule.html Destroy(callbacks *driver.AllocationCallbacks) }
ShaderModule objects contain shader code and one or more entry points.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderModule.html
type ShaderModuleCreateFlags ¶
type ShaderModuleCreateFlags int32
ShaderModuleCreateFlags is reserved for future use
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderModuleCreateFlags.html
func (ShaderModuleCreateFlags) Register ¶
func (f ShaderModuleCreateFlags) Register(str string)
func (ShaderModuleCreateFlags) String ¶
func (f ShaderModuleCreateFlags) String() string
type ShaderModuleCreateInfo ¶
type ShaderModuleCreateInfo struct { // Code is the code that is used to create the ShaderModule. The type and format of the code // is determined from the content of the data Code []uint32 // Flags is reserved for future use Flags ShaderModuleCreateFlags common.NextOptions }
ShaderModuleCreateInfo specifies parameters of a newly-created ShaderModule
type ShaderStageFlags ¶
type ShaderStageFlags int32
ShaderStageFlags specifies a Pipeline stage
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html
const ( // StageVertex specifies the vertex stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageVertex ShaderStageFlags = C.VK_SHADER_STAGE_VERTEX_BIT // StageTessellationControl specifies the tessellation control stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageTessellationControl ShaderStageFlags = C.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT // StageTessellationEvaluation specifies the tessellation evaluation stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageTessellationEvaluation ShaderStageFlags = C.VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT // StageGeometry specifies the geometry stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageGeometry ShaderStageFlags = C.VK_SHADER_STAGE_GEOMETRY_BIT // StageFragment specifies the fragment stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageFragment ShaderStageFlags = C.VK_SHADER_STAGE_FRAGMENT_BIT // StageCompute specifies the compute stage // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html StageCompute ShaderStageFlags = C.VK_SHADER_STAGE_COMPUTE_BIT // StageAllGraphics is a combination of bits used as shorthand to specify all graphics // stages (excluding the compute stage) StageAllGraphics ShaderStageFlags = C.VK_SHADER_STAGE_ALL_GRAPHICS // StageAll is a combination of bits used as a shorthand to specify all shader stages // supported by the Device, including all additional stages which are introduced by // extensions StageAll ShaderStageFlags = C.VK_SHADER_STAGE_ALL )
func (ShaderStageFlags) Register ¶
func (f ShaderStageFlags) Register(str string)
func (ShaderStageFlags) String ¶
func (f ShaderStageFlags) String() string
type SharingMode ¶
type SharingMode int32
SharingMode represents Buffer and Image sharing modes
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSharingMode.html
func (SharingMode) Register ¶
func (e SharingMode) Register(str string)
func (SharingMode) String ¶
func (e SharingMode) String() string
type SparseBufferMemoryBindInfo ¶
type SparseBufferMemoryBindInfo struct { // Buffer is the Buffer object to be bound Buffer Buffer // Binds is a slice of SparseMemoryBind structures Binds []SparseMemoryBind }
SparseBufferMemoryBindInfo specifies a sparse buffer memory bind operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseBufferMemoryBindInfo.html
type SparseImageFormatFlags ¶
type SparseImageFormatFlags int32
SparseImageFormatFlags specifies additional information about a sparse Image resource
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html
func (SparseImageFormatFlags) Register ¶
func (f SparseImageFormatFlags) Register(str string)
func (SparseImageFormatFlags) String ¶
func (f SparseImageFormatFlags) String() string
type SparseImageFormatProperties ¶
type SparseImageFormatProperties struct { // AspectMask specifies which aspects of the Image the properties apply to AspectMask ImageAspectFlags // ImageGranularity is the width, height, and depth of the sparse Image block in texels // or compressed texel blocks ImageGranularity Extent3D // Flags specifies additional information about the sparse resource Flags SparseImageFormatFlags }
SparseImageFormatProperties specifies sparse Image format properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatProperties.html
type SparseImageMemoryBind ¶
type SparseImageMemoryBind struct { // Subresource is the Image aspect and region of interest in the Image Subresource ImageSubresource // Offset are the coordinates of the first texel within the Image subresource to bind Offset Offset3D // Extent is the size in texels of the region within the Image subresource to bind Extent Extent3D // Memory is the DeviceMemory object that the sparse Image blocks of the Image are bound to Memory DeviceMemory // MemoryOffset is an offset into the DeviceMemory object MemoryOffset int // Flags are sparse memory binding flags Flags SparseMemoryBindFlags }
SparseImageMemoryBind specifies sparse Image memory bind
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryBind.html
type SparseImageMemoryBindInfo ¶
type SparseImageMemoryBindInfo struct { // Image is the Image object to be bound Image Image // Binds is a slice of SparseImageMemoryBind structures Binds []SparseImageMemoryBind }
SparseImageMemoryBindInfo specifies sparse Image memory bind information
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageMemoryBindInfo.html
type SparseImageMemoryRequirements ¶
type SparseImageMemoryRequirements struct { // FormatProperties specifies properties of the Image format FormatProperties SparseImageFormatProperties // ImageMipTailFirstLod is the first mip level at which Image subresources are included in the mip tail region ImageMipTailFirstLod int // ImageMipTailSize is the memory size in (in bytes) of the mip tail region ImageMipTailSize int // ImageMipTailOffset is the opaque memory offset used to bind the mip tail region(s) ImageMipTailOffset int // ImageMipTailStride is the offset stride between each array-layer's mip tail ImageMipTailStride int }
SparseImageMemoryRequirements specifies sparse image memory requirements
type SparseImageOpaqueMemoryBindInfo ¶
type SparseImageOpaqueMemoryBindInfo struct { // Image is the Image object to be bound Image Image // Binds is a slice of SparseMemoryBind structures Binds []SparseMemoryBind }
SparseImageOpaqueMemoryBindInfo specifies sparse Image opaque memory bind information
type SparseMemoryBind ¶
type SparseMemoryBind struct { // ResourceOffset is the offset into the resource ResourceOffset int // Size is the size of the memory region to be bound Size int // Memory is the DeviceMemory object that the range of the resource is bound to Memory DeviceMemory // MemoryOffset is the offset into the DeviceMemory object to bind the resource range to MemoryOffset int // Flags specifies usage of the binding operation Flags SparseMemoryBindFlags }
SparseMemoryBind specifies a sparse memory bind operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBind.html
func (SparseMemoryBind) PopulateCPointer ¶
type SparseMemoryBindFlags ¶
type SparseMemoryBindFlags int32
SparseMemoryBindFlags specifies usage of a sparse memory binding operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBindFlagBits.html
const ( // SparseMemoryBindMetadata specifies that the memory being bound is only for the // metadata aspect // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBindFlagBits.html SparseMemoryBindMetadata SparseMemoryBindFlags = C.VK_SPARSE_MEMORY_BIND_METADATA_BIT )
func (SparseMemoryBindFlags) Register ¶
func (f SparseMemoryBindFlags) Register(str string)
func (SparseMemoryBindFlags) String ¶
func (f SparseMemoryBindFlags) String() string
type StencilFaceFlags ¶
type StencilFaceFlags int32
StencilFaceFlags specifies sets of stencil state for which to update the compare mask
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilFaceFlagBits.html
func (StencilFaceFlags) Register ¶
func (f StencilFaceFlags) Register(str string)
func (StencilFaceFlags) String ¶
func (f StencilFaceFlags) String() string
type StencilOp ¶
type StencilOp int32
StencilOp represents the stencil comparison function
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html
const ( // StencilKeep keeps the current value // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilKeep StencilOp = C.VK_STENCIL_OP_KEEP // StencilZero sets the value to 0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilZero StencilOp = C.VK_STENCIL_OP_ZERO // StencilReplace sets the value to Reference // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilReplace StencilOp = C.VK_STENCIL_OP_REPLACE // StencilIncrementAndClamp increments the current value and clamps to the maximum // representable unsigned value // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilIncrementAndClamp StencilOp = C.VK_STENCIL_OP_INCREMENT_AND_CLAMP // StencilDecrementAndClamp decrements the current value and clamps to 0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilDecrementAndClamp StencilOp = C.VK_STENCIL_OP_DECREMENT_AND_CLAMP // StencilInvert bitwise-inverts the current value // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilInvert StencilOp = C.VK_STENCIL_OP_INVERT // StencilIncrementAndWrap increments the current value and wraps to 0 when the // maximum would have been exceeded // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilIncrementAndWrap StencilOp = C.VK_STENCIL_OP_INCREMENT_AND_WRAP // StencilDecrementAndWrap decrements the current value and wraps to the maximum possible // value when the value would go below 0 // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html StencilDecrementAndWrap StencilOp = C.VK_STENCIL_OP_DECREMENT_AND_WRAP )
type StencilOpState ¶
type StencilOpState struct { // FailOp specifies the action performed on samples that fail the stencil test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOpState.html FailOp StencilOp // PassOp specifies the action performed on samples that pass both the depth and stencil tests // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOpState.html PassOp StencilOp // DepthFailOp specifies the action performed on samples that pass the stencil test and fail // the depth test // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOpState.html DepthFailOp StencilOp // CompareOp specifies the comparison operator used in the stencil test CompareOp CompareOp // CompareMask selects the bits of the unsigned integer stencil values participating in the // stencil test CompareMask uint32 // WriteMask selects the bits of the unsigned integer stencil values updated by the stencil // test in the stencil Framebuffer attachment WriteMask uint32 // Reference is an integer stencil reference value that is used in the unsigned stencil // comparison Reference uint32 }
StencilOpState specifies stencil operation state
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilOpState.html
type SubmitInfo ¶
type SubmitInfo struct { // CommandBuffers is a slice of CommandBuffer objects to execute in the batch CommandBuffers []CommandBuffer // WaitSemaphores is a slice of Semaphore objects upon which to wait before the CommandBuffer // objects for this batch begin execution WaitSemaphores []Semaphore // WaitDstStageMask is a slice of PipelineStageFlags at which each corresponding semaphore // wait will occur WaitDstStageMask []PipelineStageFlags // SignalSemaphores is a slice of Semaphore objects which will be signaled when the // CommandBuffer objects for this batch have completed execution SignalSemaphores []Semaphore common.NextOptions }
SubmitInfo specifies a Queue submit operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubmitInfo.html
type SubpassContents ¶
type SubpassContents int32
SubpassContents specifies how commands in the first subpass of a RenderPass are provided
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassContents.html
const ( // SubpassContentsInline specifies that the contents of the subpass will be recorded inline in // the primary CommandBuffer and secondary CommandBuffer objects must not be executed within // the subpass. // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassContents.html SubpassContentsInline SubpassContents = C.VK_SUBPASS_CONTENTS_INLINE // SubpassContentsSecondaryCommandBuffers specifies that the contents are recorded in // secondary CommandBuffer objects that will be called from the primary CommandBuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassContents.html SubpassContentsSecondaryCommandBuffers SubpassContents = C.VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS )
func (SubpassContents) Register ¶
func (e SubpassContents) Register(str string)
func (SubpassContents) String ¶
func (e SubpassContents) String() string
type SubpassDependency ¶
type SubpassDependency struct { // DependencyFlags is a bitmask of DependencyFlags DependencyFlags DependencyFlags // SrcSubpass is the subpass index of the first subpass in the dependency, or SubpassExternal SrcSubpass int // DstSubpass is the subpass index of the second subpass in the dependency, or SubpassExternal DstSubpass int // SrcStageMask specifies the source stage mask SrcStageMask PipelineStageFlags // DstStageMask specifies the destination stage mask DstStageMask PipelineStageFlags // SrcAccessMask specifies a source access mask SrcAccessMask AccessFlags // DstAccessMask specifies a destination access mask DstAccessMask AccessFlags }
SubpassDependency specifies a subpass dependency
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDependency.html
type SubpassDescription ¶
type SubpassDescription struct { // Flags specifies usage of the subpass Flags SubpassDescriptionFlags // PipelineBindPoint specifies the Pipeline type supported by this subpass PipelineBindPoint PipelineBindPoint // InputAttachments is a slice of AttachmentReference structures defining the input attachments // for this subpass and their layouts InputAttachments []AttachmentReference // ColorAttachments is a slice of AttachmentReference structures defining the color attachments // for this subpass and their layouts ColorAttachments []AttachmentReference // ResolveAttachments is a slice of AttachmentReference structures defining the resolve // attachments for this subpass and their layouts ResolveAttachments []AttachmentReference // DepthStencilAttachment specifies the depth/stencil attachment for this subpass and its // layout DepthStencilAttachment *AttachmentReference // PreserveAttachments is a slice of indices identifying attachments that are not used by // this subpass, but whose contents must be preserved throughout the subpass PreserveAttachments []int }
SubpassDescription specifies a subpass description
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDescription.html
type SubpassDescriptionFlags ¶
type SubpassDescriptionFlags int32
SubpassDescriptionFlags specifies usage of a subpass
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDescriptionFlagBits.html
func (SubpassDescriptionFlags) Register ¶
func (f SubpassDescriptionFlags) Register(str string)
func (SubpassDescriptionFlags) String ¶
func (f SubpassDescriptionFlags) String() string
type SubresourceLayout ¶
type SubresourceLayout struct { // Offset is the byte offset from the start of the Image or the plane where the Image // subresource begins Offset int // Size is the size in bytes of the image subresource Size int // RowPitch describes the number of bytes between each row of texels in an Image RowPitch int // ArrayPitch describes the number of bytes between each layer of an Image ArrayPitch int // DepthPitch describes the number of bytes between each slice of a 3D image DepthPitch int }
SubresourceLayout specifies the subresource layer
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubresourceLayout.html
type VertexInputAttributeDescription ¶
type VertexInputAttributeDescription struct { // Location is the shader input location number for this attribute Location uint32 // Binding is the binding number which this attribute takes its data from Binding int // Format is the size and type of the vertex attribute data Format Format // Offset is a byte offset of this attribute relative to the start of an element in the vertex // input binding Offset int }
VertexInputAttributeDescription specifies a vertex input attribute description
type VertexInputBindingDescription ¶
type VertexInputBindingDescription struct { // InputRate specifies whether vertex attribute addressing is a function of the vertex index // or the instance index InputRate VertexInputRate // Binding isthe bidning number that this structure describes Binding int // Stride is the byte stride between consecutive elements within the buffer Stride int }
VertexInputBindingDescription specifies a vertex input binding description
type VertexInputRate ¶ added in v0.2.0
type VertexInputRate int32
VertexInputRate specifies the rate at which vertex attributes are pulled from buffers
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVertexInputRate.html
const ( // VertexInputRateVertex specifies that vertex attribute addressing is a function of the vertex index // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVertexInputRate.html VertexInputRateVertex VertexInputRate = C.VK_VERTEX_INPUT_RATE_VERTEX // VertexInputRateInstance specifies that vertex attribute addressing is a function of the // instance index // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVertexInputRate.html VertexInputRateInstance VertexInputRate = C.VK_VERTEX_INPUT_RATE_INSTANCE )
func (VertexInputRate) Register ¶ added in v0.2.0
func (e VertexInputRate) Register(str string)
func (VertexInputRate) String ¶ added in v0.2.0
func (e VertexInputRate) String() string
type Viewport ¶
type Viewport struct { // X is the x-coordinate of the viewport's upper-left corner X float32 // Y is the y-coordinate of the viewport's upper-left corner Y float32 // Width is the viewport's width Width float32 // Height is the viewport's height Height float32 // MinDepth is the near depth range for the viewport MinDepth float32 // MaxDepth is the far depth range for the viewport MaxDepth float32 }
Viewport specifies a viewport
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkViewport.html
type VulkanBuffer ¶
type VulkanBuffer struct {
// contains filtered or unexported fields
}
VulkanBuffer is an implementation of the Buffer interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanBuffer) APIVersion ¶
func (b *VulkanBuffer) APIVersion() common.APIVersion
func (*VulkanBuffer) BindBufferMemory ¶
func (b *VulkanBuffer) BindBufferMemory(memory DeviceMemory, offset int) (common.VkResult, error)
func (*VulkanBuffer) Destroy ¶
func (b *VulkanBuffer) Destroy(allocationCallbacks *driver.AllocationCallbacks)
func (*VulkanBuffer) DeviceHandle ¶
func (b *VulkanBuffer) DeviceHandle() driver.VkDevice
func (*VulkanBuffer) Driver ¶
func (b *VulkanBuffer) Driver() driver.Driver
func (*VulkanBuffer) Handle ¶
func (b *VulkanBuffer) Handle() driver.VkBuffer
func (*VulkanBuffer) MemoryRequirements ¶
func (b *VulkanBuffer) MemoryRequirements() *MemoryRequirements
type VulkanBufferView ¶
type VulkanBufferView struct {
// contains filtered or unexported fields
}
VulkanBufferView is an implementation of the BufferView interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanBufferView) APIVersion ¶
func (v *VulkanBufferView) APIVersion() common.APIVersion
func (*VulkanBufferView) Destroy ¶
func (v *VulkanBufferView) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanBufferView) DeviceHandle ¶
func (v *VulkanBufferView) DeviceHandle() driver.VkDevice
func (*VulkanBufferView) Driver ¶
func (v *VulkanBufferView) Driver() driver.Driver
func (*VulkanBufferView) Handle ¶
func (v *VulkanBufferView) Handle() driver.VkBufferView
type VulkanCommandBuffer ¶
type VulkanCommandBuffer struct {
// contains filtered or unexported fields
}
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) APIVersion ¶
func (c *VulkanCommandBuffer) APIVersion() common.APIVersion
func (*VulkanCommandBuffer) Begin ¶
func (c *VulkanCommandBuffer) Begin(o CommandBufferBeginInfo) (common.VkResult, error)
func (*VulkanCommandBuffer) CmdBeginQuery ¶
func (c *VulkanCommandBuffer) CmdBeginQuery(queryPool QueryPool, query int, flags QueryControlFlags)
func (*VulkanCommandBuffer) CmdBeginRenderPass ¶
func (c *VulkanCommandBuffer) CmdBeginRenderPass(contents SubpassContents, o RenderPassBeginInfo) error
func (*VulkanCommandBuffer) CmdBindDescriptorSets ¶
func (c *VulkanCommandBuffer) CmdBindDescriptorSets(bindPoint PipelineBindPoint, layout PipelineLayout, sets []DescriptorSet, dynamicOffsets []int)
func (*VulkanCommandBuffer) CmdBindIndexBuffer ¶
func (c *VulkanCommandBuffer) CmdBindIndexBuffer(buffer Buffer, offset int, indexType IndexType)
func (*VulkanCommandBuffer) CmdBindPipeline ¶
func (c *VulkanCommandBuffer) CmdBindPipeline(bindPoint PipelineBindPoint, pipeline Pipeline)
func (*VulkanCommandBuffer) CmdBindVertexBuffers ¶
func (c *VulkanCommandBuffer) CmdBindVertexBuffers(buffers []Buffer, bufferOffsets []int)
func (*VulkanCommandBuffer) CmdBlitImage ¶
func (c *VulkanCommandBuffer) CmdBlitImage(sourceImage Image, sourceImageLayout ImageLayout, destinationImage Image, destinationImageLayout ImageLayout, regions []ImageBlit, filter Filter) error
func (*VulkanCommandBuffer) CmdClearAttachments ¶
func (c *VulkanCommandBuffer) CmdClearAttachments(attachments []ClearAttachment, rects []ClearRect) error
func (*VulkanCommandBuffer) CmdClearColorImage ¶
func (c *VulkanCommandBuffer) CmdClearColorImage(image Image, imageLayout ImageLayout, color ClearColorValue, ranges []ImageSubresourceRange)
func (*VulkanCommandBuffer) CmdClearDepthStencilImage ¶
func (c *VulkanCommandBuffer) CmdClearDepthStencilImage(image Image, imageLayout ImageLayout, depthStencil *ClearValueDepthStencil, ranges []ImageSubresourceRange)
func (*VulkanCommandBuffer) CmdCopyBuffer ¶
func (c *VulkanCommandBuffer) CmdCopyBuffer(srcBuffer Buffer, dstBuffer Buffer, copyRegions []BufferCopy) error
func (*VulkanCommandBuffer) CmdCopyBufferToImage ¶
func (c *VulkanCommandBuffer) CmdCopyBufferToImage(buffer Buffer, image Image, layout ImageLayout, regions []BufferImageCopy) error
func (*VulkanCommandBuffer) CmdCopyImage ¶
func (c *VulkanCommandBuffer) CmdCopyImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regions []ImageCopy) error
func (*VulkanCommandBuffer) CmdCopyImageToBuffer ¶
func (c *VulkanCommandBuffer) CmdCopyImageToBuffer(srcImage Image, srcImageLayout ImageLayout, dstBuffer Buffer, regions []BufferImageCopy) error
func (*VulkanCommandBuffer) CmdCopyQueryPoolResults ¶
func (c *VulkanCommandBuffer) CmdCopyQueryPoolResults(queryPool QueryPool, firstQuery, queryCount int, dstBuffer Buffer, dstOffset, stride int, flags QueryResultFlags)
func (*VulkanCommandBuffer) CmdDispatch ¶
func (c *VulkanCommandBuffer) CmdDispatch(groupCountX, groupCountY, groupCountZ int)
func (*VulkanCommandBuffer) CmdDispatchIndirect ¶
func (c *VulkanCommandBuffer) CmdDispatchIndirect(buffer Buffer, offset int)
func (*VulkanCommandBuffer) CmdDraw ¶
func (c *VulkanCommandBuffer) CmdDraw(vertexCount, instanceCount int, firstVertex, firstInstance uint32)
func (*VulkanCommandBuffer) CmdDrawIndexed ¶
func (c *VulkanCommandBuffer) CmdDrawIndexed(indexCount, instanceCount int, firstIndex uint32, vertexOffset int, firstInstance uint32)
func (*VulkanCommandBuffer) CmdDrawIndexedIndirect ¶
func (c *VulkanCommandBuffer) CmdDrawIndexedIndirect(buffer Buffer, offset int, drawCount, stride int)
func (*VulkanCommandBuffer) CmdDrawIndirect ¶
func (c *VulkanCommandBuffer) CmdDrawIndirect(buffer Buffer, offset int, drawCount, stride int)
func (*VulkanCommandBuffer) CmdEndQuery ¶
func (c *VulkanCommandBuffer) CmdEndQuery(queryPool QueryPool, query int)
func (*VulkanCommandBuffer) CmdEndRenderPass ¶
func (c *VulkanCommandBuffer) CmdEndRenderPass()
func (*VulkanCommandBuffer) CmdExecuteCommands ¶
func (c *VulkanCommandBuffer) CmdExecuteCommands(commandBuffers []CommandBuffer)
func (*VulkanCommandBuffer) CmdFillBuffer ¶
func (c *VulkanCommandBuffer) CmdFillBuffer(dstBuffer Buffer, dstOffset int, size int, data uint32)
func (*VulkanCommandBuffer) CmdNextSubpass ¶
func (c *VulkanCommandBuffer) CmdNextSubpass(contents SubpassContents)
func (*VulkanCommandBuffer) CmdPipelineBarrier ¶
func (c *VulkanCommandBuffer) CmdPipelineBarrier(srcStageMask, dstStageMask PipelineStageFlags, dependencies DependencyFlags, memoryBarriers []MemoryBarrier, bufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarriers []ImageMemoryBarrier) error
func (*VulkanCommandBuffer) CmdPushConstants ¶
func (c *VulkanCommandBuffer) CmdPushConstants(layout PipelineLayout, stageFlags ShaderStageFlags, offset int, valueBytes []byte)
func (*VulkanCommandBuffer) CmdResetEvent ¶
func (c *VulkanCommandBuffer) CmdResetEvent(event Event, stageMask PipelineStageFlags)
func (*VulkanCommandBuffer) CmdResetQueryPool ¶
func (c *VulkanCommandBuffer) CmdResetQueryPool(queryPool QueryPool, startQuery, queryCount int)
func (*VulkanCommandBuffer) CmdResolveImage ¶
func (c *VulkanCommandBuffer) CmdResolveImage(srcImage Image, srcImageLayout ImageLayout, dstImage Image, dstImageLayout ImageLayout, regions []ImageResolve) error
func (*VulkanCommandBuffer) CmdSetBlendConstants ¶
func (c *VulkanCommandBuffer) CmdSetBlendConstants(blendConstants [4]float32)
func (*VulkanCommandBuffer) CmdSetDepthBias ¶
func (c *VulkanCommandBuffer) CmdSetDepthBias(depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor float32)
func (*VulkanCommandBuffer) CmdSetDepthBounds ¶
func (c *VulkanCommandBuffer) CmdSetDepthBounds(min, max float32)
func (*VulkanCommandBuffer) CmdSetEvent ¶
func (c *VulkanCommandBuffer) CmdSetEvent(event Event, stageMask PipelineStageFlags)
func (*VulkanCommandBuffer) CmdSetLineWidth ¶
func (c *VulkanCommandBuffer) CmdSetLineWidth(lineWidth float32)
func (*VulkanCommandBuffer) CmdSetScissor ¶
func (c *VulkanCommandBuffer) CmdSetScissor(scissors []Rect2D)
func (*VulkanCommandBuffer) CmdSetStencilCompareMask ¶
func (c *VulkanCommandBuffer) CmdSetStencilCompareMask(faceMask StencilFaceFlags, compareMask uint32)
func (*VulkanCommandBuffer) CmdSetStencilReference ¶
func (c *VulkanCommandBuffer) CmdSetStencilReference(faceMask StencilFaceFlags, reference uint32)
func (*VulkanCommandBuffer) CmdSetStencilWriteMask ¶
func (c *VulkanCommandBuffer) CmdSetStencilWriteMask(faceMask StencilFaceFlags, writeMask uint32)
func (*VulkanCommandBuffer) CmdSetViewport ¶
func (c *VulkanCommandBuffer) CmdSetViewport(viewports []Viewport)
func (*VulkanCommandBuffer) CmdUpdateBuffer ¶
func (c *VulkanCommandBuffer) CmdUpdateBuffer(dstBuffer Buffer, dstOffset int, dataSize int, data []byte)
func (*VulkanCommandBuffer) CmdWaitEvents ¶
func (c *VulkanCommandBuffer) CmdWaitEvents(events []Event, srcStageMask PipelineStageFlags, dstStageMask PipelineStageFlags, memoryBarriers []MemoryBarrier, bufferMemoryBarriers []BufferMemoryBarrier, imageMemoryBarriers []ImageMemoryBarrier) error
func (*VulkanCommandBuffer) CmdWriteTimestamp ¶
func (c *VulkanCommandBuffer) CmdWriteTimestamp(pipelineStage PipelineStageFlags, queryPool QueryPool, query int)
func (*VulkanCommandBuffer) CommandCounter ¶
func (c *VulkanCommandBuffer) CommandCounter() *CommandCounter
func (*VulkanCommandBuffer) CommandPoolHandle ¶
func (c *VulkanCommandBuffer) CommandPoolHandle() driver.VkCommandPool
func (*VulkanCommandBuffer) CommandsRecorded ¶
func (c *VulkanCommandBuffer) CommandsRecorded() int
func (*VulkanCommandBuffer) DeviceHandle ¶
func (c *VulkanCommandBuffer) DeviceHandle() driver.VkDevice
func (*VulkanCommandBuffer) DispatchesRecorded ¶
func (c *VulkanCommandBuffer) DispatchesRecorded() int
func (*VulkanCommandBuffer) DrawsRecorded ¶
func (c *VulkanCommandBuffer) DrawsRecorded() int
func (*VulkanCommandBuffer) Driver ¶
func (c *VulkanCommandBuffer) Driver() driver.Driver
func (*VulkanCommandBuffer) Free ¶
func (c *VulkanCommandBuffer) Free()
func (*VulkanCommandBuffer) Handle ¶
func (c *VulkanCommandBuffer) Handle() driver.VkCommandBuffer
func (*VulkanCommandBuffer) Reset ¶
func (c *VulkanCommandBuffer) Reset(flags CommandBufferResetFlags) (common.VkResult, error)
type VulkanCommandPool ¶
type VulkanCommandPool struct {
// contains filtered or unexported fields
}
VulkanCommandPool is an implementation of the CommandPool interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanCommandPool) APIVersion ¶
func (p *VulkanCommandPool) APIVersion() common.APIVersion
func (*VulkanCommandPool) Destroy ¶
func (p *VulkanCommandPool) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanCommandPool) DeviceHandle ¶
func (p *VulkanCommandPool) DeviceHandle() driver.VkDevice
func (*VulkanCommandPool) Driver ¶
func (p *VulkanCommandPool) Driver() driver.Driver
func (*VulkanCommandPool) Handle ¶
func (p *VulkanCommandPool) Handle() driver.VkCommandPool
func (*VulkanCommandPool) Reset ¶
func (p *VulkanCommandPool) Reset(flags CommandPoolResetFlags) (common.VkResult, error)
type VulkanDescriptorPool ¶
type VulkanDescriptorPool struct {
// contains filtered or unexported fields
}
VulkanDescriptorPool is an implementation of the DescriptorPool interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanDescriptorPool) APIVersion ¶
func (p *VulkanDescriptorPool) APIVersion() common.APIVersion
func (*VulkanDescriptorPool) Destroy ¶
func (p *VulkanDescriptorPool) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanDescriptorPool) DeviceHandle ¶
func (p *VulkanDescriptorPool) DeviceHandle() driver.VkDevice
func (*VulkanDescriptorPool) Driver ¶
func (p *VulkanDescriptorPool) Driver() driver.Driver
func (*VulkanDescriptorPool) Handle ¶
func (p *VulkanDescriptorPool) Handle() driver.VkDescriptorPool
func (*VulkanDescriptorPool) Reset ¶
func (p *VulkanDescriptorPool) Reset(flags DescriptorPoolResetFlags) (common.VkResult, error)
type VulkanDescriptorSet ¶
type VulkanDescriptorSet struct {
// contains filtered or unexported fields
}
VulkanDescriptorSet is an implementation of the DescriptorSet interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanDescriptorSet) APIVersion ¶
func (s *VulkanDescriptorSet) APIVersion() common.APIVersion
func (*VulkanDescriptorSet) DescriptorPoolHandle ¶
func (s *VulkanDescriptorSet) DescriptorPoolHandle() driver.VkDescriptorPool
func (*VulkanDescriptorSet) DeviceHandle ¶
func (s *VulkanDescriptorSet) DeviceHandle() driver.VkDevice
func (*VulkanDescriptorSet) Driver ¶
func (s *VulkanDescriptorSet) Driver() driver.Driver
func (*VulkanDescriptorSet) Handle ¶
func (s *VulkanDescriptorSet) Handle() driver.VkDescriptorSet
type VulkanDescriptorSetLayout ¶
type VulkanDescriptorSetLayout struct {
// contains filtered or unexported fields
}
VulkanDescriptorSetLayout is an implementation of the DescriptorSetLayout interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanDescriptorSetLayout) APIVersion ¶
func (h *VulkanDescriptorSetLayout) APIVersion() common.APIVersion
func (*VulkanDescriptorSetLayout) Destroy ¶
func (h *VulkanDescriptorSetLayout) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanDescriptorSetLayout) DeviceHandle ¶
func (h *VulkanDescriptorSetLayout) DeviceHandle() driver.VkDevice
func (*VulkanDescriptorSetLayout) Driver ¶
func (h *VulkanDescriptorSetLayout) Driver() driver.Driver
func (*VulkanDescriptorSetLayout) Handle ¶
func (h *VulkanDescriptorSetLayout) Handle() driver.VkDescriptorSetLayout
type VulkanDevice ¶
type VulkanDevice struct {
// contains filtered or unexported fields
}
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) APIVersion ¶
func (d *VulkanDevice) APIVersion() common.APIVersion
func (*VulkanDevice) AllocateCommandBuffers ¶
func (d *VulkanDevice) AllocateCommandBuffers(o CommandBufferAllocateInfo) ([]CommandBuffer, common.VkResult, error)
func (*VulkanDevice) AllocateDescriptorSets ¶
func (d *VulkanDevice) AllocateDescriptorSets(o DescriptorSetAllocateInfo) ([]DescriptorSet, common.VkResult, error)
func (*VulkanDevice) AllocateMemory ¶
func (d *VulkanDevice) AllocateMemory(allocationCallbacks *driver.AllocationCallbacks, o MemoryAllocateInfo) (DeviceMemory, common.VkResult, error)
func (*VulkanDevice) CreateBuffer ¶
func (d *VulkanDevice) CreateBuffer(allocationCallbacks *driver.AllocationCallbacks, o BufferCreateInfo) (Buffer, common.VkResult, error)
func (*VulkanDevice) CreateBufferView ¶
func (d *VulkanDevice) CreateBufferView(allocationCallbacks *driver.AllocationCallbacks, options BufferViewCreateInfo) (BufferView, common.VkResult, error)
func (*VulkanDevice) CreateCommandPool ¶
func (d *VulkanDevice) CreateCommandPool(allocationCallbacks *driver.AllocationCallbacks, o CommandPoolCreateInfo) (CommandPool, common.VkResult, error)
func (*VulkanDevice) CreateComputePipelines ¶
func (d *VulkanDevice) CreateComputePipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, o []ComputePipelineCreateInfo) ([]Pipeline, common.VkResult, error)
func (*VulkanDevice) CreateDescriptorPool ¶
func (d *VulkanDevice) CreateDescriptorPool(allocationCallbacks *driver.AllocationCallbacks, o DescriptorPoolCreateInfo) (DescriptorPool, common.VkResult, error)
func (*VulkanDevice) CreateDescriptorSetLayout ¶
func (d *VulkanDevice) CreateDescriptorSetLayout(allocationCallbacks *driver.AllocationCallbacks, o DescriptorSetLayoutCreateInfo) (DescriptorSetLayout, common.VkResult, error)
func (*VulkanDevice) CreateEvent ¶
func (d *VulkanDevice) CreateEvent(allocationCallbacks *driver.AllocationCallbacks, o EventCreateInfo) (Event, common.VkResult, error)
func (*VulkanDevice) CreateFence ¶
func (d *VulkanDevice) CreateFence(allocationCallbacks *driver.AllocationCallbacks, o FenceCreateInfo) (Fence, common.VkResult, error)
func (*VulkanDevice) CreateFramebuffer ¶
func (d *VulkanDevice) CreateFramebuffer(allocationCallbacks *driver.AllocationCallbacks, o FramebufferCreateInfo) (Framebuffer, common.VkResult, error)
func (*VulkanDevice) CreateGraphicsPipelines ¶
func (d *VulkanDevice) CreateGraphicsPipelines(pipelineCache PipelineCache, allocationCallbacks *driver.AllocationCallbacks, o []GraphicsPipelineCreateInfo) ([]Pipeline, common.VkResult, error)
func (*VulkanDevice) CreateImage ¶
func (d *VulkanDevice) CreateImage(allocationCallbacks *driver.AllocationCallbacks, o ImageCreateInfo) (Image, common.VkResult, error)
func (*VulkanDevice) CreateImageView ¶
func (d *VulkanDevice) CreateImageView(allocationCallbacks *driver.AllocationCallbacks, o ImageViewCreateInfo) (ImageView, common.VkResult, error)
func (*VulkanDevice) CreatePipelineCache ¶
func (d *VulkanDevice) CreatePipelineCache(allocationCallbacks *driver.AllocationCallbacks, o PipelineCacheCreateInfo) (PipelineCache, common.VkResult, error)
func (*VulkanDevice) CreatePipelineLayout ¶
func (d *VulkanDevice) CreatePipelineLayout(allocationCallbacks *driver.AllocationCallbacks, o PipelineLayoutCreateInfo) (PipelineLayout, common.VkResult, error)
func (*VulkanDevice) CreateQueryPool ¶
func (d *VulkanDevice) CreateQueryPool(allocationCallbacks *driver.AllocationCallbacks, o QueryPoolCreateInfo) (QueryPool, common.VkResult, error)
func (*VulkanDevice) CreateRenderPass ¶
func (d *VulkanDevice) CreateRenderPass(allocationCallbacks *driver.AllocationCallbacks, o RenderPassCreateInfo) (RenderPass, common.VkResult, error)
func (*VulkanDevice) CreateSampler ¶
func (d *VulkanDevice) CreateSampler(allocationCallbacks *driver.AllocationCallbacks, o SamplerCreateInfo) (Sampler, common.VkResult, error)
func (*VulkanDevice) CreateSemaphore ¶
func (d *VulkanDevice) CreateSemaphore(allocationCallbacks *driver.AllocationCallbacks, o SemaphoreCreateInfo) (Semaphore, common.VkResult, error)
func (*VulkanDevice) CreateShaderModule ¶
func (d *VulkanDevice) CreateShaderModule(allocationCallbacks *driver.AllocationCallbacks, o ShaderModuleCreateInfo) (ShaderModule, common.VkResult, error)
func (*VulkanDevice) Destroy ¶
func (d *VulkanDevice) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanDevice) Driver ¶
func (d *VulkanDevice) Driver() driver.Driver
func (*VulkanDevice) FlushMappedMemoryRanges ¶
func (d *VulkanDevice) FlushMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error)
func (*VulkanDevice) FreeCommandBuffers ¶
func (d *VulkanDevice) FreeCommandBuffers(buffers []CommandBuffer)
func (*VulkanDevice) FreeDescriptorSets ¶
func (d *VulkanDevice) FreeDescriptorSets(sets []DescriptorSet) (common.VkResult, error)
func (*VulkanDevice) FreeMemory ¶
func (d *VulkanDevice) FreeMemory(deviceMemory DeviceMemory, allocationCallbacks *driver.AllocationCallbacks)
func (*VulkanDevice) GetQueue ¶
func (d *VulkanDevice) GetQueue(queueFamilyIndex int, queueIndex int) Queue
func (*VulkanDevice) Handle ¶
func (d *VulkanDevice) Handle() driver.VkDevice
func (*VulkanDevice) InvalidateMappedMemoryRanges ¶
func (d *VulkanDevice) InvalidateMappedMemoryRanges(ranges []MappedMemoryRange) (common.VkResult, error)
func (*VulkanDevice) IsDeviceExtensionActive ¶
func (d *VulkanDevice) IsDeviceExtensionActive(extensionName string) bool
func (*VulkanDevice) ResetFences ¶
func (d *VulkanDevice) ResetFences(fences []Fence) (common.VkResult, error)
func (*VulkanDevice) UpdateDescriptorSets ¶
func (d *VulkanDevice) UpdateDescriptorSets(writes []WriteDescriptorSet, copies []CopyDescriptorSet) error
func (*VulkanDevice) WaitForFences ¶
type VulkanDeviceMemory ¶
type VulkanDeviceMemory struct {
// contains filtered or unexported fields
}
VulkanDeviceMemory is an implementation of the DeviceMemory interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanDeviceMemory) APIVersion ¶
func (m *VulkanDeviceMemory) APIVersion() common.APIVersion
func (*VulkanDeviceMemory) Commitment ¶
func (m *VulkanDeviceMemory) Commitment() int
func (*VulkanDeviceMemory) DeviceHandle ¶
func (m *VulkanDeviceMemory) DeviceHandle() driver.VkDevice
func (*VulkanDeviceMemory) Driver ¶
func (m *VulkanDeviceMemory) Driver() driver.Driver
func (*VulkanDeviceMemory) FlushAll ¶
func (m *VulkanDeviceMemory) FlushAll() (common.VkResult, error)
func (*VulkanDeviceMemory) Free ¶
func (m *VulkanDeviceMemory) Free(allocationCallbacks *driver.AllocationCallbacks)
func (*VulkanDeviceMemory) Handle ¶
func (m *VulkanDeviceMemory) Handle() driver.VkDeviceMemory
func (*VulkanDeviceMemory) InvalidateAll ¶
func (m *VulkanDeviceMemory) InvalidateAll() (common.VkResult, error)
func (*VulkanDeviceMemory) Map ¶
func (m *VulkanDeviceMemory) Map(offset int, size int, flags MemoryMapFlags) (unsafe.Pointer, common.VkResult, error)
func (*VulkanDeviceMemory) Unmap ¶
func (m *VulkanDeviceMemory) Unmap()
type VulkanEvent ¶
type VulkanEvent struct {
// contains filtered or unexported fields
}
VulkanEvent is an implementation of the Event interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanEvent) APIVersion ¶
func (e *VulkanEvent) APIVersion() common.APIVersion
func (*VulkanEvent) Destroy ¶
func (e *VulkanEvent) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanEvent) DeviceHandle ¶
func (e *VulkanEvent) DeviceHandle() driver.VkDevice
func (*VulkanEvent) Driver ¶
func (e *VulkanEvent) Driver() driver.Driver
func (*VulkanEvent) Handle ¶
func (e *VulkanEvent) Handle() driver.VkEvent
type VulkanFence ¶
type VulkanFence struct {
// contains filtered or unexported fields
}
VulkanFence is an implementation of the Fence interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanFence) APIVersion ¶
func (f *VulkanFence) APIVersion() common.APIVersion
func (*VulkanFence) Destroy ¶
func (f *VulkanFence) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanFence) DeviceHandle ¶
func (f *VulkanFence) DeviceHandle() driver.VkDevice
func (*VulkanFence) Driver ¶
func (f *VulkanFence) Driver() driver.Driver
func (*VulkanFence) Handle ¶
func (f *VulkanFence) Handle() driver.VkFence
type VulkanFramebuffer ¶
type VulkanFramebuffer struct {
// contains filtered or unexported fields
}
VulkanFramebuffer is an implementation of the Framebuffer interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanFramebuffer) APIVersion ¶
func (b *VulkanFramebuffer) APIVersion() common.APIVersion
func (*VulkanFramebuffer) Destroy ¶
func (b *VulkanFramebuffer) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanFramebuffer) DeviceHandle ¶
func (b *VulkanFramebuffer) DeviceHandle() driver.VkDevice
func (*VulkanFramebuffer) Driver ¶
func (b *VulkanFramebuffer) Driver() driver.Driver
func (*VulkanFramebuffer) Handle ¶
func (b *VulkanFramebuffer) Handle() driver.VkFramebuffer
type VulkanImage ¶
type VulkanImage struct {
// contains filtered or unexported fields
}
VulkanImage is an implementation of the Image interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanImage) APIVersion ¶
func (i *VulkanImage) APIVersion() common.APIVersion
func (*VulkanImage) BindImageMemory ¶
func (i *VulkanImage) BindImageMemory(memory DeviceMemory, offset int) (common.VkResult, error)
func (*VulkanImage) Destroy ¶
func (i *VulkanImage) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanImage) DeviceHandle ¶
func (i *VulkanImage) DeviceHandle() driver.VkDevice
func (*VulkanImage) Driver ¶
func (i *VulkanImage) Driver() driver.Driver
func (*VulkanImage) Handle ¶
func (i *VulkanImage) Handle() driver.VkImage
func (*VulkanImage) MemoryRequirements ¶
func (i *VulkanImage) MemoryRequirements() *MemoryRequirements
func (*VulkanImage) SparseMemoryRequirements ¶
func (i *VulkanImage) SparseMemoryRequirements() []SparseImageMemoryRequirements
func (*VulkanImage) SubresourceLayout ¶
func (i *VulkanImage) SubresourceLayout(subresource *ImageSubresource) *SubresourceLayout
type VulkanImageView ¶
type VulkanImageView struct {
// contains filtered or unexported fields
}
VulkanImageView is an implementation of the ImageView interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanImageView) APIVersion ¶
func (v *VulkanImageView) APIVersion() common.APIVersion
func (*VulkanImageView) Destroy ¶
func (v *VulkanImageView) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanImageView) DeviceHandle ¶
func (v *VulkanImageView) DeviceHandle() driver.VkDevice
func (*VulkanImageView) Driver ¶
func (v *VulkanImageView) Driver() driver.Driver
func (*VulkanImageView) Handle ¶
func (v *VulkanImageView) Handle() driver.VkImageView
type VulkanInstance ¶
type VulkanInstance struct { ActiveInstanceExtensions map[string]struct{} // contains filtered or unexported fields }
VulkanInstance is an implementation of the Instance interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanInstance) APIVersion ¶
func (i *VulkanInstance) APIVersion() common.APIVersion
func (*VulkanInstance) Destroy ¶
func (i *VulkanInstance) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanInstance) Driver ¶
func (i *VulkanInstance) Driver() driver.Driver
func (*VulkanInstance) EnumeratePhysicalDevices ¶
func (i *VulkanInstance) EnumeratePhysicalDevices() ([]PhysicalDevice, common.VkResult, error)
func (*VulkanInstance) Handle ¶
func (i *VulkanInstance) Handle() driver.VkInstance
func (*VulkanInstance) IsInstanceExtensionActive ¶
func (i *VulkanInstance) IsInstanceExtensionActive(extensionName string) bool
type VulkanPhysicalDevice ¶
type VulkanPhysicalDevice struct {
// contains filtered or unexported fields
}
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) CreateDevice ¶
func (d *VulkanPhysicalDevice) CreateDevice(allocationCallbacks *driver.AllocationCallbacks, options DeviceCreateInfo) (Device, common.VkResult, error)
func (*VulkanPhysicalDevice) DeviceAPIVersion ¶
func (d *VulkanPhysicalDevice) DeviceAPIVersion() common.APIVersion
func (*VulkanPhysicalDevice) Driver ¶
func (d *VulkanPhysicalDevice) Driver() driver.Driver
func (*VulkanPhysicalDevice) EnumerateDeviceExtensionProperties ¶
func (d *VulkanPhysicalDevice) EnumerateDeviceExtensionProperties() (map[string]*ExtensionProperties, common.VkResult, error)
func (*VulkanPhysicalDevice) EnumerateDeviceExtensionPropertiesForLayer ¶
func (d *VulkanPhysicalDevice) EnumerateDeviceExtensionPropertiesForLayer(layerName string) (map[string]*ExtensionProperties, common.VkResult, error)
func (*VulkanPhysicalDevice) EnumerateDeviceLayerProperties ¶
func (d *VulkanPhysicalDevice) EnumerateDeviceLayerProperties() (map[string]*LayerProperties, common.VkResult, error)
func (*VulkanPhysicalDevice) Features ¶
func (d *VulkanPhysicalDevice) Features() *PhysicalDeviceFeatures
func (*VulkanPhysicalDevice) FormatProperties ¶
func (d *VulkanPhysicalDevice) FormatProperties(format Format) *FormatProperties
func (*VulkanPhysicalDevice) Handle ¶
func (d *VulkanPhysicalDevice) Handle() driver.VkPhysicalDevice
func (*VulkanPhysicalDevice) ImageFormatProperties ¶
func (d *VulkanPhysicalDevice) ImageFormatProperties(format Format, imageType ImageType, tiling ImageTiling, usages ImageUsageFlags, flags ImageCreateFlags) (*ImageFormatProperties, common.VkResult, error)
func (*VulkanPhysicalDevice) InstanceAPIVersion ¶
func (d *VulkanPhysicalDevice) InstanceAPIVersion() common.APIVersion
func (*VulkanPhysicalDevice) MemoryProperties ¶
func (d *VulkanPhysicalDevice) MemoryProperties() *PhysicalDeviceMemoryProperties
func (*VulkanPhysicalDevice) Properties ¶
func (d *VulkanPhysicalDevice) Properties() (*PhysicalDeviceProperties, error)
func (*VulkanPhysicalDevice) QueueFamilyProperties ¶
func (d *VulkanPhysicalDevice) QueueFamilyProperties() []*QueueFamilyProperties
func (*VulkanPhysicalDevice) SparseImageFormatProperties ¶
func (d *VulkanPhysicalDevice) SparseImageFormatProperties(format Format, imageType ImageType, samples SampleCountFlags, usages ImageUsageFlags, tiling ImageTiling) []SparseImageFormatProperties
type VulkanPipeline ¶
type VulkanPipeline struct {
// contains filtered or unexported fields
}
VulkanPipeline is an implementation of the Pipeline interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanPipeline) APIVersion ¶
func (p *VulkanPipeline) APIVersion() common.APIVersion
func (*VulkanPipeline) Destroy ¶
func (p *VulkanPipeline) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanPipeline) DeviceHandle ¶
func (p *VulkanPipeline) DeviceHandle() driver.VkDevice
func (*VulkanPipeline) Driver ¶
func (p *VulkanPipeline) Driver() driver.Driver
func (*VulkanPipeline) Handle ¶
func (p *VulkanPipeline) Handle() driver.VkPipeline
type VulkanPipelineCache ¶
type VulkanPipelineCache struct {
// contains filtered or unexported fields
}
VulkanPipelineCache is an implementation of the PipelineCache interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanPipelineCache) APIVersion ¶
func (c *VulkanPipelineCache) APIVersion() common.APIVersion
func (*VulkanPipelineCache) CacheData ¶
func (c *VulkanPipelineCache) CacheData() ([]byte, common.VkResult, error)
func (*VulkanPipelineCache) Destroy ¶
func (c *VulkanPipelineCache) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanPipelineCache) DeviceHandle ¶
func (c *VulkanPipelineCache) DeviceHandle() driver.VkDevice
func (*VulkanPipelineCache) Driver ¶
func (c *VulkanPipelineCache) Driver() driver.Driver
func (*VulkanPipelineCache) Handle ¶
func (c *VulkanPipelineCache) Handle() driver.VkPipelineCache
func (*VulkanPipelineCache) MergePipelineCaches ¶
func (c *VulkanPipelineCache) MergePipelineCaches(srcCaches []PipelineCache) (common.VkResult, error)
type VulkanPipelineLayout ¶
type VulkanPipelineLayout struct {
// contains filtered or unexported fields
}
VulkanPipelineLayout is an implementation of the PipelineLayout interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanPipelineLayout) APIVersion ¶
func (l *VulkanPipelineLayout) APIVersion() common.APIVersion
func (*VulkanPipelineLayout) Destroy ¶
func (l *VulkanPipelineLayout) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanPipelineLayout) DeviceHandle ¶
func (l *VulkanPipelineLayout) DeviceHandle() driver.VkDevice
func (*VulkanPipelineLayout) Driver ¶
func (l *VulkanPipelineLayout) Driver() driver.Driver
func (*VulkanPipelineLayout) Handle ¶
func (l *VulkanPipelineLayout) Handle() driver.VkPipelineLayout
type VulkanQueryPool ¶
type VulkanQueryPool struct {
// contains filtered or unexported fields
}
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) APIVersion ¶
func (p *VulkanQueryPool) APIVersion() common.APIVersion
func (*VulkanQueryPool) Destroy ¶
func (p *VulkanQueryPool) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanQueryPool) DeviceHandle ¶
func (p *VulkanQueryPool) DeviceHandle() driver.VkDevice
func (*VulkanQueryPool) Driver ¶
func (p *VulkanQueryPool) Driver() driver.Driver
func (*VulkanQueryPool) Handle ¶
func (p *VulkanQueryPool) Handle() driver.VkQueryPool
func (*VulkanQueryPool) PopulateResults ¶
func (p *VulkanQueryPool) PopulateResults(firstQuery, queryCount int, results []byte, resultStride int, flags QueryResultFlags) (common.VkResult, error)
type VulkanQueue ¶
type VulkanQueue struct {
// contains filtered or unexported fields
}
VulkanQueue is an implementation of the Queue interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanQueue) APIVersion ¶
func (q *VulkanQueue) APIVersion() common.APIVersion
func (*VulkanQueue) BindSparse ¶
func (q *VulkanQueue) BindSparse(fence Fence, bindInfos []BindSparseInfo) (common.VkResult, error)
func (*VulkanQueue) DeviceHandle ¶
func (q *VulkanQueue) DeviceHandle() driver.VkDevice
func (*VulkanQueue) Driver ¶
func (q *VulkanQueue) Driver() driver.Driver
func (*VulkanQueue) Handle ¶
func (q *VulkanQueue) Handle() driver.VkQueue
func (*VulkanQueue) Submit ¶
func (q *VulkanQueue) Submit(fence Fence, o []SubmitInfo) (common.VkResult, error)
type VulkanRenderPass ¶
type VulkanRenderPass struct {
// contains filtered or unexported fields
}
VulkanRenderPass is an implementation of the RenderPass interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanRenderPass) APIVersion ¶
func (p *VulkanRenderPass) APIVersion() common.APIVersion
func (*VulkanRenderPass) Destroy ¶
func (p *VulkanRenderPass) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanRenderPass) DeviceHandle ¶
func (p *VulkanRenderPass) DeviceHandle() driver.VkDevice
func (*VulkanRenderPass) Driver ¶
func (p *VulkanRenderPass) Driver() driver.Driver
func (*VulkanRenderPass) Handle ¶
func (p *VulkanRenderPass) Handle() driver.VkRenderPass
func (*VulkanRenderPass) RenderAreaGranularity ¶
func (p *VulkanRenderPass) RenderAreaGranularity() Extent2D
type VulkanSampler ¶
type VulkanSampler struct {
// contains filtered or unexported fields
}
VulkanSampler is an implementation of the Sampler interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanSampler) APIVersion ¶
func (s *VulkanSampler) APIVersion() common.APIVersion
func (*VulkanSampler) Destroy ¶
func (s *VulkanSampler) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanSampler) DeviceHandle ¶
func (s *VulkanSampler) DeviceHandle() driver.VkDevice
func (*VulkanSampler) Driver ¶
func (s *VulkanSampler) Driver() driver.Driver
func (*VulkanSampler) Handle ¶
func (s *VulkanSampler) Handle() driver.VkSampler
type VulkanSemaphore ¶
type VulkanSemaphore struct {
// contains filtered or unexported fields
}
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) APIVersion ¶
func (s *VulkanSemaphore) APIVersion() common.APIVersion
func (*VulkanSemaphore) Destroy ¶
func (s *VulkanSemaphore) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanSemaphore) DeviceHandle ¶
func (s *VulkanSemaphore) DeviceHandle() driver.VkDevice
func (*VulkanSemaphore) Driver ¶
func (s *VulkanSemaphore) Driver() driver.Driver
func (*VulkanSemaphore) Handle ¶
func (s *VulkanSemaphore) Handle() driver.VkSemaphore
type VulkanShaderModule ¶
type VulkanShaderModule struct {
// contains filtered or unexported fields
}
VulkanShaderModule is an implementation of the ShaderModule interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func (*VulkanShaderModule) APIVersion ¶
func (m *VulkanShaderModule) APIVersion() common.APIVersion
func (*VulkanShaderModule) Destroy ¶
func (m *VulkanShaderModule) Destroy(callbacks *driver.AllocationCallbacks)
func (*VulkanShaderModule) DeviceHandle ¶
func (m *VulkanShaderModule) DeviceHandle() driver.VkDevice
func (*VulkanShaderModule) Driver ¶
func (m *VulkanShaderModule) Driver() driver.Driver
func (*VulkanShaderModule) Handle ¶
func (m *VulkanShaderModule) Handle() driver.VkShaderModule
type WriteDescriptorSet ¶
type WriteDescriptorSet struct { // DstSet is the destination DescriptorSet to update DstSet DescriptorSet // DstBinding is the descriptor binding within that set DstBinding int // DstArrayElement is the starting element in that array DstArrayElement int // DescriptorType specifies the type of each descriptor in ImageInfo, BufferInfo, or // TexelBufferView DescriptorType DescriptorType // ImageInfo is a slice of DescriptorImageInfo structures or is ignored ImageInfo []DescriptorImageInfo // BufferInfo is a slice of DescriptorBufferInfo structures or is ignored BufferInfo []DescriptorBufferInfo // TexelBufferView is a slice of BufferView objects or is ignored TexelBufferView []BufferView common.NextOptions }
WriteDescriptorSet specifies the parameters of a DescriptorSet write operation
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkWriteDescriptorSet.html
type WriteDescriptorSetExtensionSource ¶
type WriteDescriptorSetExtensionSource interface {
WriteDescriptorSetCount() int
}
Source Files ¶
- access_flags.go
- attachment_reference.go
- buffer.go
- buffer_copy.go
- buffer_structs.go
- buffer_view.go
- buffer_view_structs.go
- clear.go
- clear_values.go
- color_components.go
- command_barrier.go
- command_begin.go
- command_buffer.go
- command_buffer_structs.go
- command_copy.go
- command_counter.go
- command_pool.go
- command_pool_structs.go
- command_render_pass.go
- create.go
- data_format.go
- descriptor_pool.go
- descriptor_pool_structs.go
- descriptor_set.go
- descriptor_set_layout.go
- descriptor_set_layout_structs.go
- descriptor_set_structs.go
- device.go
- device_createinfo.go
- device_memory.go
- device_memory_structs.go
- device_queuefamily.go
- enum.go
- event.go
- event_structs.go
- extension_properties.go
- extent.go
- fence.go
- fence_createinfo.go
- flags.go
- format_properties.go
- framebuffer.go
- framebuffer_structs.go
- iface.go
- image.go
- image_blit.go
- image_copy.go
- image_format_properties.go
- image_resolve.go
- image_sparse.go
- image_sparse_structs.go
- image_structs.go
- image_subresource.go
- image_view.go
- image_view_createinfo.go
- instance.go
- instance_createinfo.go
- layer_properties.go
- memory_requirements.go
- object_type.go
- offset.go
- physical_device.go
- physical_device_features.go
- physical_device_limits.go
- physical_device_memory.go
- physical_device_properties.go
- pipeline.go
- pipeline_cache.go
- pipeline_cache_header_version.go
- pipeline_cache_structs.go
- pipeline_createinfo.go
- pipeline_layout.go
- pipeline_layout_structs.go
- query_pool.go
- query_pool_structs.go
- queue.go
- queue_structs.go
- queue_submit.go
- queue_submit_structs.go
- render_pass.go
- render_pass_createinfo.go
- sampler.go
- sampler_structs.go
- semaphore.go
- semaphore_createinfo.go
- shader_module.go
- shader_module_createinfo.go
- stage_colorblend_createinfo.go
- stage_depthstencil_createinfo.go
- stage_dynamic_state_createinfo.go
- stage_input_assembly_createinfo.go
- stage_multisample_createinfo.go
- stage_rasterizer_createinfo.go
- stage_shader.go
- stage_tessellation_createinfo.go
- stage_vertex_input_createinfo.go
- stage_viewport_createinfo.go
- viewport.go
- vk_result.go