Skip to main content Crate gpu Copy item path Source subgroup_op the bits of Features::subgroup_ops (the Vulkan feature bits) subgroup_stage the bits of Features::subgroup_stages 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) 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 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) Pod plain data that may be copied to and from GPU memory byte for byte: no padding, no
pointers, every bit pattern valid 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) Result