pub enum WebGPURequest {
Show 65 variants
    BufferMapAsync {
        sender: IpcSender<Result<Mapping, BufferAccessError>>,
        buffer_id: BufferId,
        device_id: DeviceId,
        host_map: HostMap,
        offset: u64,
        size: Option<u64>,
    },
    CommandEncoderFinish {
        command_encoder_id: CommandEncoderId,
        device_id: DeviceId,
        desc: CommandBufferDescriptor<Label<'static>>,
    },
    CopyBufferToBuffer {
        command_encoder_id: CommandEncoderId,
        source_id: BufferId,
        source_offset: BufferAddress,
        destination_id: BufferId,
        destination_offset: BufferAddress,
        size: BufferAddress,
    },
    CopyBufferToTexture {
        command_encoder_id: CommandEncoderId,
        source: TexelCopyBufferInfo,
        destination: TexelCopyTextureInfo,
        copy_size: Extent3d,
    },
    CopyTextureToBuffer {
        command_encoder_id: CommandEncoderId,
        source: TexelCopyTextureInfo,
        destination: TexelCopyBufferInfo,
        copy_size: Extent3d,
    },
    CopyTextureToTexture {
        command_encoder_id: CommandEncoderId,
        source: TexelCopyTextureInfo,
        destination: TexelCopyTextureInfo,
        copy_size: Extent3d,
    },
    CreateBindGroup {
        device_id: DeviceId,
        bind_group_id: BindGroupId,
        descriptor: BindGroupDescriptor<'static>,
    },
    CreateBindGroupLayout {
        device_id: DeviceId,
        bind_group_layout_id: BindGroupLayoutId,
        descriptor: Option<BindGroupLayoutDescriptor<'static>>,
    },
    CreateBuffer {
        device_id: DeviceId,
        buffer_id: BufferId,
        descriptor: BufferDescriptor<'static>,
    },
    CreateCommandEncoder {
        device_id: DeviceId,
        command_encoder_id: CommandEncoderId,
        desc: CommandEncoderDescriptor<Label<'static>>,
    },
    CreateComputePipeline {
        device_id: DeviceId,
        compute_pipeline_id: ComputePipelineId,
        descriptor: ComputePipelineDescriptor<'static>,
        implicit_ids: Option<(PipelineLayoutId, Vec<BindGroupLayoutId>)>,
        async_sender: Option<IpcSender<WebGPUComputePipelineResponse>>,
    },
    CreatePipelineLayout {
        device_id: DeviceId,
        pipeline_layout_id: PipelineLayoutId,
        descriptor: PipelineLayoutDescriptor<'static>,
    },
    CreateRenderPipeline {
        device_id: DeviceId,
        render_pipeline_id: RenderPipelineId,
        descriptor: RenderPipelineDescriptor<'static>,
        implicit_ids: Option<(PipelineLayoutId, Vec<BindGroupLayoutId>)>,
        async_sender: Option<IpcSender<WebGPURenderPipelineResponse>>,
    },
    CreateSampler {
        device_id: DeviceId,
        sampler_id: SamplerId,
        descriptor: SamplerDescriptor<'static>,
    },
    CreateShaderModule {
        device_id: DeviceId,
        program_id: ShaderModuleId,
        program: String,
        label: Option<String>,
        sender: IpcSender<Option<ShaderCompilationInfo>>,
    },
    CreateContext {
        buffer_ids: ArrayVec<BufferId, PRESENTATION_BUFFER_COUNT>,
        size: DeviceIntSize,
        sender: IpcSender<(WebGPUContextId, ImageKey)>,
    },
    Present {
        context_id: WebGPUContextId,
        pending_texture: Option<PendingTexture>,
        size: Size2D<u32>,
        canvas_epoch: Epoch,
    },
    GetImage {
        context_id: WebGPUContextId,
        pending_texture: Option<PendingTexture>,
        sender: IpcSender<SharedSnapshot>,
    },
    ValidateTextureDescriptor {
        device_id: DeviceId,
        texture_id: TextureId,
        descriptor: TextureDescriptor<'static>,
    },
    DestroyContext {
        context_id: WebGPUContextId,
    },
    CreateTexture {
        device_id: DeviceId,
        texture_id: TextureId,
        descriptor: TextureDescriptor<'static>,
    },
    CreateTextureView {
        texture_id: TextureId,
        texture_view_id: TextureViewId,
        device_id: DeviceId,
        descriptor: Option<TextureViewDescriptor<'static>>,
    },
    DestroyBuffer(BufferId),
    DestroyDevice(DeviceId),
    DestroyTexture(TextureId),
    DropTexture(TextureId),
    DropAdapter(AdapterId),
    DropDevice(DeviceId),
    DropBuffer(BufferId),
    DropPipelineLayout(PipelineLayoutId),
    DropComputePipeline(ComputePipelineId),
    DropRenderPipeline(RenderPipelineId),
    DropBindGroup(BindGroupId),
    DropBindGroupLayout(BindGroupLayoutId),
    DropCommandBuffer(CommandBufferId),
    DropTextureView(TextureViewId),
    DropSampler(SamplerId),
    DropShaderModule(ShaderModuleId),
    DropRenderBundle(RenderBundleId),
    DropQuerySet(QuerySetId),
    DropComputePass(ComputePassEncoderId),
    DropRenderPass(RenderPassEncoderId),
    Exit(IpcSender<()>),
    RenderBundleEncoderFinish {
        render_bundle_encoder: RenderBundleEncoder,
        descriptor: RenderBundleDescriptor<'static>,
        render_bundle_id: RenderBundleId,
        device_id: DeviceId,
    },
    RequestAdapter {
        sender: IpcSender<WebGPUAdapterResponse>,
        options: RequestAdapterOptions,
        adapter_id: AdapterId,
    },
    RequestDevice {
        sender: IpcSender<WebGPUDeviceResponse>,
        adapter_id: WebGPUAdapter,
        descriptor: DeviceDescriptor<Option<String>>,
        device_id: DeviceId,
        queue_id: QueueId,
        pipeline_id: PipelineId,
    },
    BeginComputePass {
        command_encoder_id: CommandEncoderId,
        compute_pass_id: ComputePassId,
        label: Label<'static>,
        device_id: DeviceId,
    },
    ComputePassSetPipeline {
        compute_pass_id: ComputePassId,
        pipeline_id: ComputePipelineId,
        device_id: DeviceId,
    },
    ComputePassSetBindGroup {
        compute_pass_id: ComputePassId,
        index: u32,
        bind_group_id: BindGroupId,
        offsets: Vec<u32>,
        device_id: DeviceId,
    },
    ComputePassDispatchWorkgroups {
        compute_pass_id: ComputePassId,
        x: u32,
        y: u32,
        z: u32,
        device_id: DeviceId,
    },
    ComputePassDispatchWorkgroupsIndirect {
        compute_pass_id: ComputePassId,
        buffer_id: BufferId,
        offset: u64,
        device_id: DeviceId,
    },
    EndComputePass {
        compute_pass_id: ComputePassId,
        device_id: DeviceId,
        command_encoder_id: CommandEncoderId,
    },
    BeginRenderPass {
        command_encoder_id: CommandEncoderId,
        render_pass_id: RenderPassId,
        label: Label<'static>,
        color_attachments: Vec<Option<RenderPassColorAttachment>>,
        depth_stencil_attachment: Option<RenderPassDepthStencilAttachment>,
        device_id: DeviceId,
    },
    RenderPassCommand {
        render_pass_id: RenderPassId,
        render_command: RenderCommand,
        device_id: DeviceId,
    },
    EndRenderPass {
        render_pass_id: RenderPassId,
        device_id: DeviceId,
        command_encoder_id: CommandEncoderId,
    },
    Submit {
        device_id: DeviceId,
        queue_id: QueueId,
        command_buffers: Vec<CommandBufferId>,
    },
    UnmapBuffer {
        buffer_id: BufferId,
        mapping: Option<Mapping>,
    },
    WriteBuffer {
        device_id: DeviceId,
        queue_id: QueueId,
        buffer_id: BufferId,
        buffer_offset: u64,
        data: IpcSharedMemory,
    },
    WriteTexture {
        device_id: DeviceId,
        queue_id: QueueId,
        texture_cv: TexelCopyTextureInfo,
        data_layout: TexelCopyBufferLayout,
        size: Extent3d,
        data: IpcSharedMemory,
    },
    QueueOnSubmittedWorkDone {
        sender: IpcSender<()>,
        queue_id: QueueId,
    },
    PushErrorScope {
        device_id: DeviceId,
        filter: ErrorFilter,
    },
    DispatchError {
        device_id: DeviceId,
        error: Error,
    },
    PopErrorScope {
        device_id: DeviceId,
        sender: IpcSender<WebGPUPoppedErrorScopeResponse>,
    },
    ComputeGetBindGroupLayout {
        device_id: DeviceId,
        pipeline_id: ComputePipelineId,
        index: u32,
        id: BindGroupLayoutId,
    },
    RenderGetBindGroupLayout {
        device_id: DeviceId,
        pipeline_id: RenderPipelineId,
        index: u32,
        id: BindGroupLayoutId,
    },
}Variants§
BufferMapAsync
Fields
§
sender: IpcSender<Result<Mapping, BufferAccessError>>CommandEncoderFinish
CopyBufferToBuffer
Fields
§
command_encoder_id: CommandEncoderId§
source_offset: BufferAddress§
destination_offset: BufferAddress§
size: BufferAddressCopyBufferToTexture
Fields
§
command_encoder_id: CommandEncoderId§
source: TexelCopyBufferInfo§
destination: TexelCopyTextureInfoCopyTextureToBuffer
Fields
§
command_encoder_id: CommandEncoderId§
source: TexelCopyTextureInfo§
destination: TexelCopyBufferInfoCopyTextureToTexture
Fields
§
command_encoder_id: CommandEncoderId§
source: TexelCopyTextureInfo§
destination: TexelCopyTextureInfoCreateBindGroup
CreateBindGroupLayout
Fields
§
bind_group_layout_id: BindGroupLayoutId§
descriptor: Option<BindGroupLayoutDescriptor<'static>>CreateBuffer
CreateCommandEncoder
CreateComputePipeline
Fields
§
compute_pipeline_id: ComputePipelineId§
descriptor: ComputePipelineDescriptor<'static>§
implicit_ids: Option<(PipelineLayoutId, Vec<BindGroupLayoutId>)>§
async_sender: Option<IpcSender<WebGPUComputePipelineResponse>>present only on ASYNC versions
CreatePipelineLayout
CreateRenderPipeline
Fields
§
render_pipeline_id: RenderPipelineId§
descriptor: RenderPipelineDescriptor<'static>§
implicit_ids: Option<(PipelineLayoutId, Vec<BindGroupLayoutId>)>§
async_sender: Option<IpcSender<WebGPURenderPipelineResponse>>present only on ASYNC versions
CreateSampler
CreateShaderModule
CreateContext
Creates context
Present
Present texture to WebRender
GetImage
Create pixels::Snapshot with contents of the last present operation
or provided pending texture and send it over provided IpcSender.
Fields
§
context_id: WebGPUContextId§
pending_texture: Option<PendingTexture>§
sender: IpcSender<SharedSnapshot>ValidateTextureDescriptor
DestroyContext
Fields
§
context_id: WebGPUContextIdCreateTexture
CreateTextureView
DestroyBuffer(BufferId)
DestroyDevice(DeviceId)
DestroyTexture(TextureId)
DropTexture(TextureId)
DropAdapter(AdapterId)
DropDevice(DeviceId)
DropBuffer(BufferId)
DropPipelineLayout(PipelineLayoutId)
DropComputePipeline(ComputePipelineId)
DropRenderPipeline(RenderPipelineId)
DropBindGroup(BindGroupId)
DropBindGroupLayout(BindGroupLayoutId)
DropCommandBuffer(CommandBufferId)
DropTextureView(TextureViewId)
DropSampler(SamplerId)
DropShaderModule(ShaderModuleId)
DropRenderBundle(RenderBundleId)
DropQuerySet(QuerySetId)
DropComputePass(ComputePassEncoderId)
DropRenderPass(RenderPassEncoderId)
Exit(IpcSender<()>)
RenderBundleEncoderFinish
Fields
§
render_bundle_encoder: RenderBundleEncoder§
descriptor: RenderBundleDescriptor<'static>§
render_bundle_id: RenderBundleIdRequestAdapter
RequestDevice
Fields
§
sender: IpcSender<WebGPUDeviceResponse>§
adapter_id: WebGPUAdapter§
descriptor: DeviceDescriptor<Option<String>>§
pipeline_id: PipelineIdBeginComputePass
ComputePassSetPipeline
ComputePassSetBindGroup
ComputePassDispatchWorkgroups
ComputePassDispatchWorkgroupsIndirect
EndComputePass
BeginRenderPass
Fields
§
command_encoder_id: CommandEncoderId§
render_pass_id: RenderPassId§
color_attachments: Vec<Option<RenderPassColorAttachment>>§
depth_stencil_attachment: Option<RenderPassDepthStencilAttachment>RenderPassCommand
EndRenderPass
Submit
UnmapBuffer
WriteBuffer
Fields
§
data: IpcSharedMemoryWriteTexture
QueueOnSubmittedWorkDone
PushErrorScope
DispatchError
PopErrorScope
ComputeGetBindGroupLayout
RenderGetBindGroupLayout
Trait Implementations§
Source§impl Debug for WebGPURequest
 
impl Debug for WebGPURequest
Source§impl<'de> Deserialize<'de> for WebGPURequest
 
impl<'de> Deserialize<'de> for WebGPURequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for WebGPURequest
impl RefUnwindSafe for WebGPURequest
impl Send for WebGPURequest
impl Sync for WebGPURequest
impl Unpin for WebGPURequest
impl UnwindSafe for WebGPURequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
 
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
 
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
 
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
 
fn maybe_boxed(self) -> T
Convert