Skip to main content

Crate gpu

Crate gpu 

Source

Modules§

subgroup_op
the bits of Features::subgroup_ops (the Vulkan feature bits)
subgroup_stage
the bits of Features::subgroup_stages

Structs§

Access
memory accesses for CommandEncoder::barrier: what must finish (before) and what waits (after); textures change layout with texture_barrier instead
Adapter
a GPU of the system
AdapterInfo
who an adapter is
BindEntry
BindGroup
resources bound for shaders (a descriptor set)
BindGroupDesc
Device::create_bind_group: one entry per binding of the layout
BindGroupLayout
the bindings of one bind group (@group)
Binding
one binding of a BindGroupLayout
Bindless
a large table of textures, samplers and buffers that shaders index (level Voll): binding 0 sampled textures, 1 samplers, 2 storage buffers, 3 storage textures; slots may be changed while command buffers that use the table are pending, as long as those do not use the slot
BindlessDesc
Device::create_bindless: the slots of each kind (bindings 0 textures, 1 samplers, 2 storage buffers, 3 storage textures of one group)
Blend
colour and alpha blending of a colour target
BlendComponent
Buffer
GPU memory for data: vertices, indices, storage, uniforms, indirect arguments
BufferDesc
Device::create_buffer
BufferUsage
how a buffer is used (copies to and from it are always allowed)
ColorAttachment
a colour attachment of a render pass: the view goes from before to ColorTarget at the start and to after at the end
ColorTarget
a colour target of a render pipeline
CommandBuffer
recorded commands, ready to submit (dropped unsubmitted: discarded)
CommandEncoder
records commands; finish() makes a CommandBuffer for Queue::submit
ComputePipeline
a compute shader with its layout
ComputePipelineDesc
Device::create_compute_pipeline
Constant
a pipeline-overridable constant: WGSL @id(id) override, SPIR-V SpecId id. The value is an f64 as in WebGPU’s GPUProgrammableStage.constants and is converted to the override’s type the way WebGPU converts it: bool true unless 0 or NaN; i32 / u32 (and the other integers) truncated toward 0, Invalid when not finite or out of range; f32 / f16 / f64 rounded to nearest, Invalid when not finite or out of range. An id the module does not declare, or the same id twice, is Invalid (Vulkan would ignore it; WebGPU does not). Overrides the pipeline leaves out keep the module’s default.
DataLayout
the layout of texel data in a buffer or slice: rows of bytes_per_row bytes (0: tightly packed), rows_per_image rows per layer / slice (0: the region’s height)
DepthAttachment
the depth attachment of a render pass (DepthTarget during the pass)
DepthState
the depth test of a render pipeline
Device
a logical GPU device: creates resources, records commands, owns the queue
DeviceDesc
Adapter::create_device
Features
what a device can do beyond the Basis level
Frame
an acquired image (present it with Swapchain::present)
Instance
the GPU API of the system (Vulkan); create adapters and surfaces from it
InstanceDesc
Instance::with
Limits
the device’s limits
PipelineLayout
the bind group layouts and push constants of pipelines
PipelineLayoutDesc
Device::create_pipeline_layout
Queue
the device’s queue (graphics, compute, copies, presentation)
RenderPassDesc
CommandEncoder::begin_render (the slice may be a temporary: only the views are borrowed for the encoder’s lifetime)
RenderPipeline
vertex + fragment shaders with their fixed state and target formats
RenderPipelineDesc
Device::create_render_pipeline
Sampler
how textures are filtered and addressed
SamplerDesc
Device::create_sampler
ShaderModule
compiled shader code (SPIR-V)
ShaderStage
a shader entry point and its pipeline constants
Stages
shader stages that see a binding
SubmitId
a submission’s place on the device timeline (Device::wait)
Surface
a window as a target for swapchains
Swapchain
the images a window shows, presented in turn
SwapchainDesc
Device::create_swapchain
Texture
an image on the GPU: 2D, 2D array, cube (array) or 3D, with mips
TextureDesc
Device::create_texture: a 2D texture (layers > 1: an array; cube: 6 * n layers) or a 3D one (depth > 1)
TextureRegion
a region of one mip of a texture: origin and size in texels (z: 3D textures), layers
TextureUsage
how a texture is used
TextureView
a range of a texture’s mips and layers as shaders and render passes see it
Timestamps
GPU timestamps (CommandEncoder::reset_timestamps / timestamp)
VertexAttribute
VertexBufferLayout
a vertex buffer slot (empty list: vertex pulling)
ViewDesc
Texture::create_view: a range of mips and layers (counts 0 = to the end)

Enums§

AdapterKind
what kind of GPU
AddressMode
BindingKind
what a binding holds
BlendFactor
BlendOp
Compare
comparison functions (depth test, comparison samplers)
Cull
Filter
Format
texel formats
GpuError
what went wrong
IndexFormat
Layout
the state a texture is in (texture_barrier, render pass attachments, write_texture)
Level
the feature level of a device (Basis < Voll)
Load
what a render pass does with an attachment’s old contents
MemoryKind
where a buffer’s memory lives
PresentMode
how frames reach the window
Resource
a resource bound into a BindGroup
Topology
TryAcquire
what Swapchain::try_acquire found
VertexFormat
vertex attribute formats
ViewDim
a view’s dimension

Constants§

BIND_GROUPS_MAX
the most bind groups of a pipeline layout
COLOR_TARGETS_MAX
the most colour targets of a render pass
PUSH_CONSTANTS_MAX
the most push-constant bytes a pipeline layout may declare (every backend guarantees it)

Traits§

Pod
plain data that may be copied to and from GPU memory byte for byte: no padding, no pointers, every bit pattern valid

Functions§

bytes_of
the bytes of a slice of plain data
low_power_rank
the order of adapters for showing windows, lower first (None: not for this): the adapter that drives the display needs no copy across GPUs and is awake anyway; an integrated one before a discrete one that would have to wake up
validation_messages
validation errors and warnings reported by the debug messenger so far (every instance of the process; 0, 0 without jfgui_GPU_VALIDATE / jfgui_GPU_DEBUG)

Type Aliases§

Result