Versions in this module Expand all Collapse all v0 v0.31.0 Aug 2, 2026 Changes in this version + type Adapter struct — darwin/amd64, linux/amd64, windows/amd64 + func (a *Adapter) Destroy() + func (a *Adapter) Open(_ gputypes.Features, _ gputypes.Limits) (hal.OpenDevice, error) + func (a *Adapter) QualifySurface(surface hal.Surface) (hal.Adapter, error) + func (a *Adapter) SurfaceCapabilities(surface hal.Surface) *hal.SurfaceCapabilities + func (a *Adapter) TextureFormatCapabilities(format gputypes.TextureFormat) hal.TextureFormatCapabilities + type Backend struct — darwin/amd64, linux/amd64, windows/amd64 + func (Backend) CreateInstance(desc *hal.InstanceDescriptor) (hal.Instance, error) + func (Backend) Variant() gputypes.Backend + type BindGroup struct — darwin/amd64, linux/amd64, windows/amd64 + func (g *BindGroup) Destroy() + func (g *BindGroup) Handle() vk.DescriptorSet + type BindGroupLayout struct — darwin/amd64, linux/amd64, windows/amd64 + func (l *BindGroupLayout) Counts() DescriptorCounts + func (l *BindGroupLayout) Destroy() + func (l *BindGroupLayout) Handle() vk.DescriptorSetLayout + type Buffer struct — darwin/amd64, linux/amd64, windows/amd64 + func (b *Buffer) Destroy() + func (b *Buffer) Handle() vk.Buffer + func (b *Buffer) NativeHandle() uintptr + func (b *Buffer) Size() uint64 + type CommandBuffer struct — darwin/amd64, linux/amd64, windows/amd64 + func (c *CommandBuffer) Destroy() + type CommandEncoder struct — darwin/amd64, linux/amd64, windows/amd64 + func (e *CommandEncoder) BeginComputePass(desc *hal.ComputePassDescriptor) hal.ComputePassEncoder + func (e *CommandEncoder) BeginEncoding(label string) error + func (e *CommandEncoder) BeginRenderPass(desc *hal.RenderPassDescriptor) hal.RenderPassEncoder + func (e *CommandEncoder) ClearBuffer(buffer hal.Buffer, offset, size uint64) + func (e *CommandEncoder) CopyBufferToBuffer(src, dst hal.Buffer, regions []hal.BufferCopy) + func (e *CommandEncoder) CopyBufferToTexture(src hal.Buffer, dst hal.Texture, regions []hal.BufferTextureCopy) + func (e *CommandEncoder) CopyTextureToBuffer(src hal.Texture, dst hal.Buffer, regions []hal.BufferTextureCopy) + func (e *CommandEncoder) CopyTextureToTexture(src, dst hal.Texture, regions []hal.TextureCopy) + func (e *CommandEncoder) Destroy() + func (e *CommandEncoder) DiscardEncoding() + func (e *CommandEncoder) EndEncoding() (hal.CommandBuffer, error) + func (e *CommandEncoder) ResetAll(commandBuffers []hal.CommandBuffer) + func (e *CommandEncoder) ResolveQuerySet(querySet hal.QuerySet, firstQuery, queryCount uint32, destination hal.Buffer, ...) + func (e *CommandEncoder) SetPoolManaged(managed bool) + func (e *CommandEncoder) TransitionBuffers(barriers []hal.BufferBarrier) + func (e *CommandEncoder) TransitionTextures(barriers []hal.TextureBarrier) + type ComputePassEncoder struct — darwin/amd64, linux/amd64, windows/amd64 + func (e *ComputePassEncoder) Dispatch(x, y, z uint32) + func (e *ComputePassEncoder) DispatchIndirect(buffer hal.Buffer, offset uint64) + func (e *ComputePassEncoder) End() + func (e *ComputePassEncoder) SetBindGroup(index uint32, group hal.BindGroup, offsets []uint32) + func (e *ComputePassEncoder) SetPipeline(pipeline hal.ComputePipeline) + type ComputePipeline struct — darwin/amd64, linux/amd64, windows/amd64 + func (p *ComputePipeline) Destroy() + type DescriptorAllocator struct — darwin/amd64, linux/amd64, windows/amd64 + func NewDescriptorAllocator(device vk.Device, cmds *vk.Commands, config DescriptorAllocatorConfig) *DescriptorAllocator + func (a *DescriptorAllocator) Allocate(layout vk.DescriptorSetLayout, counts DescriptorCounts) (vk.DescriptorSet, *DescriptorPool, error) + func (a *DescriptorAllocator) Destroy() + func (a *DescriptorAllocator) Free(pool *DescriptorPool, set vk.DescriptorSet) error + func (a *DescriptorAllocator) Stats() (pools int, allocated, freed uint32) + type DescriptorAllocatorConfig struct — darwin/amd64, linux/amd64, windows/amd64 + GrowthFactor uint32 + InitialPoolSize uint32 + MaxPoolSize uint32 + func DefaultDescriptorAllocatorConfig() DescriptorAllocatorConfig + type DescriptorCounts struct — darwin/amd64, linux/amd64, windows/amd64 + InputAttachments uint32 + SampledImages uint32 + Samplers uint32 + StorageBuffers uint32 + StorageImages uint32 + StorageTexelBuffer uint32 + UniformBuffers uint32 + UniformTexelBuffer uint32 + func (c DescriptorCounts) IsEmpty() bool + func (c DescriptorCounts) Multiply(factor uint32) DescriptorCounts + func (c DescriptorCounts) Total() uint32 + type DescriptorPool struct — darwin/amd64, linux/amd64, windows/amd64 + type Device struct — darwin/amd64, linux/amd64, windows/amd64 + func (d *Device) CreateBindGroup(desc *hal.BindGroupDescriptor) (hal.BindGroup, error) + func (d *Device) CreateBindGroupLayout(desc *hal.BindGroupLayoutDescriptor) (hal.BindGroupLayout, error) + func (d *Device) CreateBuffer(desc *hal.BufferDescriptor) (hal.Buffer, error) + func (d *Device) CreateCommandEncoder(desc *hal.CommandEncoderDescriptor) (hal.CommandEncoder, error) + func (d *Device) CreateComputePipeline(desc *hal.ComputePipelineDescriptor) (hal.ComputePipeline, error) + func (d *Device) CreateFence() (hal.Fence, error) + func (d *Device) CreatePipelineLayout(desc *hal.PipelineLayoutDescriptor) (hal.PipelineLayout, error) + func (d *Device) CreateQuerySet(desc *hal.QuerySetDescriptor) (hal.QuerySet, error) + func (d *Device) CreateRenderBundleEncoder(_ *hal.RenderBundleEncoderDescriptor) (hal.RenderBundleEncoder, error) + func (d *Device) CreateRenderPipeline(desc *hal.RenderPipelineDescriptor) (hal.RenderPipeline, error) + func (d *Device) CreateSampler(desc *hal.SamplerDescriptor) (hal.Sampler, error) + func (d *Device) CreateShaderModule(desc *hal.ShaderModuleDescriptor) (hal.ShaderModule, error) + func (d *Device) CreateTexture(desc *hal.TextureDescriptor) (hal.Texture, error) + func (d *Device) CreateTextureView(texture hal.Texture, desc *hal.TextureViewDescriptor) (hal.TextureView, error) + func (d *Device) Destroy() + func (d *Device) DestroyBindGroup(group hal.BindGroup) + func (d *Device) DestroyBindGroupLayout(layout hal.BindGroupLayout) + func (d *Device) DestroyBuffer(buffer hal.Buffer) + func (d *Device) DestroyComputePipeline(pipeline hal.ComputePipeline) + func (d *Device) DestroyFence(fence hal.Fence) + func (d *Device) DestroyPipelineLayout(layout hal.PipelineLayout) + func (d *Device) DestroyQuerySet(querySet hal.QuerySet) + func (d *Device) DestroyRenderBundle(bundle hal.RenderBundle) + func (d *Device) DestroyRenderPipeline(pipeline hal.RenderPipeline) + func (d *Device) DestroySampler(sampler hal.Sampler) + func (d *Device) DestroyShaderModule(module hal.ShaderModule) + func (d *Device) DestroyTexture(texture hal.Texture) + func (d *Device) DestroyTextureView(view hal.TextureView) + func (d *Device) FreeCommandBuffer(cmdBuffer hal.CommandBuffer) + func (d *Device) GetFenceStatus(fence hal.Fence) (bool, error) + func (d *Device) GetRenderPassCache() *RenderPassCache + func (d *Device) MapBuffer(buffer hal.Buffer, offset, size uint64) (hal.BufferMapping, error) + func (d *Device) MaxStagingBufferSize() uint64 + func (d *Device) ResetCommandPool() error + func (d *Device) ResetFence(fence hal.Fence) error + func (d *Device) UnmapBuffer(buffer hal.Buffer) error + func (d *Device) Wait(fence hal.Fence, _ uint64, timeout time.Duration) (bool, error) + func (d *Device) WaitIdle() error + type Extent3D struct — darwin/amd64, linux/amd64, windows/amd64 + Depth uint32 + Height uint32 + Width uint32 + type Fence struct — darwin/amd64, linux/amd64, windows/amd64 + func (f *Fence) Destroy() + func (f *Fence) Handle() vk.Fence + type FramebufferKey struct — darwin/amd64, linux/amd64, windows/amd64 + ColorView vk.ImageView + DepthView vk.ImageView + Height uint32 + RenderPass vk.RenderPass + ResolveView vk.ImageView + Width uint32 + type Instance struct — darwin/amd64, linux/amd64, windows/amd64 + func (i *Instance) CreateSurface(target hal.SurfaceTarget) (hal.Surface, error) + func (i *Instance) Destroy() + func (i *Instance) EnumerateAdapters(surfaceHint hal.Surface) []hal.ExposedAdapter + type PipelineLayout struct — darwin/amd64, linux/amd64, windows/amd64 + func (l *PipelineLayout) Destroy() + func (l *PipelineLayout) Handle() vk.PipelineLayout + type QuerySet struct — darwin/amd64, linux/amd64, windows/amd64 + func (q *QuerySet) Destroy() + type Queue struct — darwin/amd64, linux/amd64, windows/amd64 + func (q *Queue) GetTimestampPeriod() float32 + func (q *Queue) PollCompleted() uint64 + func (q *Queue) Present(surface hal.Surface, _ hal.SurfaceTexture, damageRects []image.Rectangle) error + func (q *Queue) SetSwapchainSuppressed(suppressed bool) + func (q *Queue) Submit(commandBuffers []hal.CommandBuffer) (uint64, error) + func (q *Queue) SubmitForPresent(commandBuffers []hal.CommandBuffer, swapchain *Swapchain) error + func (q *Queue) SupportsCommandBufferCopies() bool + func (q *Queue) WriteBuffer(buffer hal.Buffer, offset uint64, data []byte) error + func (q *Queue) WriteTexture(dst *hal.ImageCopyTexture, data []byte, layout *hal.ImageDataLayout, ...) error + type RenderBundle struct — darwin/amd64, linux/amd64, windows/amd64 + func (b *RenderBundle) Destroy() + type RenderBundleEncoder struct — darwin/amd64, linux/amd64, windows/amd64 + func (e *RenderBundleEncoder) Draw(vertexCount, instanceCount, firstVertex, firstInstance uint32) + func (e *RenderBundleEncoder) DrawIndexed(indexCount, instanceCount, firstIndex uint32, baseVertex int32, ...) + func (e *RenderBundleEncoder) Finish() hal.RenderBundle + func (e *RenderBundleEncoder) SetBindGroup(index uint32, group hal.BindGroup, offsets []uint32) + func (e *RenderBundleEncoder) SetIndexBuffer(buffer hal.Buffer, format gputypes.IndexFormat, offset uint64) + func (e *RenderBundleEncoder) SetPipeline(pipeline hal.RenderPipeline) + func (e *RenderBundleEncoder) SetVertexBuffer(slot uint32, buffer hal.Buffer, offset uint64) + type RenderPassCache struct — darwin/amd64, linux/amd64, windows/amd64 + func NewRenderPassCache(device vk.Device, cmds *vk.Commands) *RenderPassCache + func (c *RenderPassCache) Destroy() + func (c *RenderPassCache) GetOrCreateFramebuffer(key FramebufferKey) (vk.Framebuffer, error) + func (c *RenderPassCache) GetOrCreateRenderPass(key RenderPassKey) (vk.RenderPass, error) + func (c *RenderPassCache) InvalidateFramebuffer(imageView vk.ImageView) + type RenderPassEncoder struct — darwin/amd64, linux/amd64, windows/amd64 + func (e *RenderPassEncoder) Draw(vertexCount, instanceCount, firstVertex, firstInstance uint32) + func (e *RenderPassEncoder) DrawIndexed(indexCount, instanceCount, firstIndex uint32, baseVertex int32, ...) + func (e *RenderPassEncoder) DrawIndexedIndirect(buffer hal.Buffer, offset uint64, drawCount uint32) + func (e *RenderPassEncoder) DrawIndirect(buffer hal.Buffer, offset uint64, drawCount uint32) + func (e *RenderPassEncoder) End() + func (e *RenderPassEncoder) ExecuteBundle(bundle hal.RenderBundle) + func (e *RenderPassEncoder) SetBindGroup(index uint32, group hal.BindGroup, offsets []uint32) + func (e *RenderPassEncoder) SetBlendConstant(color *gputypes.Color) + func (e *RenderPassEncoder) SetIndexBuffer(buffer hal.Buffer, format gputypes.IndexFormat, offset uint64) + func (e *RenderPassEncoder) SetPipeline(pipeline hal.RenderPipeline) + func (e *RenderPassEncoder) SetScissorRect(x, y, width, height uint32) + func (e *RenderPassEncoder) SetStencilReference(ref uint32) + func (e *RenderPassEncoder) SetVertexBuffer(slot uint32, buffer hal.Buffer, offset uint64) + func (e *RenderPassEncoder) SetViewport(x, y, width, height, minDepth, maxDepth float32) + type RenderPassKey struct — darwin/amd64, linux/amd64, windows/amd64 + ColorFinalLayout vk.ImageLayout + ColorFormat vk.Format + ColorLoadOp vk.AttachmentLoadOp + ColorStoreOp vk.AttachmentStoreOp + DepthFormat vk.Format + DepthLoadOp vk.AttachmentLoadOp + DepthStoreOp vk.AttachmentStoreOp + HasResolve bool + SampleCount vk.SampleCountFlagBits + StencilLoadOp vk.AttachmentLoadOp + StencilStoreOp vk.AttachmentStoreOp + type RenderPipeline struct — darwin/amd64, linux/amd64, windows/amd64 + func (p *RenderPipeline) Destroy() + type Sampler struct — darwin/amd64, linux/amd64, windows/amd64 + func (s *Sampler) Destroy() + func (s *Sampler) Handle() vk.Sampler + func (s *Sampler) NativeHandle() uintptr + type ShaderModule struct — darwin/amd64, linux/amd64, windows/amd64 + func (m *ShaderModule) Destroy() + func (m *ShaderModule) Handle() vk.ShaderModule + type Surface struct — darwin/amd64, linux/amd64, windows/amd64 + func (s *Surface) AcquireTexture(_ hal.Fence) (*hal.AcquiredSurfaceTexture, error) + func (s *Surface) ActualExtent() (width, height uint32) + func (s *Surface) Configure(device hal.Device, config *hal.SurfaceConfiguration) error + func (s *Surface) Destroy() + func (s *Surface) DiscardTexture(_ hal.SurfaceTexture) + func (s *Surface) Unconfigure(_ hal.Device) + type Swapchain struct — darwin/amd64, linux/amd64, windows/amd64 + func (sc *Swapchain) Destroy() + func (sc *Swapchain) SetImageLayout(imageIndex uint32, layout vk.ImageLayout) + type SwapchainTexture struct — darwin/amd64, linux/amd64, windows/amd64 + func (t *SwapchainTexture) AddPendingRef() + func (t *SwapchainTexture) CurrentUsage() gputypes.TextureUsage + func (t *SwapchainTexture) DecPendingRef() + func (t *SwapchainTexture) Destroy() + func (t *SwapchainTexture) NativeHandle() uintptr + type Texture struct — darwin/amd64, linux/amd64, windows/amd64 + func (t *Texture) AddPendingRef() + func (t *Texture) CurrentUsage() gputypes.TextureUsage + func (t *Texture) DecPendingRef() + func (t *Texture) Destroy() + func (t *Texture) Handle() vk.Image + func (t *Texture) NativeHandle() uintptr + type TextureView struct — darwin/amd64, linux/amd64, windows/amd64 + func (v *TextureView) Destroy() + func (v *TextureView) Handle() vk.ImageView + func (v *TextureView) NativeHandle() uintptr