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(firstBinding int, 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
//
// firstBinding - The index of the first input binding whose state is updated by the command
//
// 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(firstBinding int, 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(firstBinding int, 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