pub enum WebGPURequest {
Show 66 variants
SetImageKey {
context_id: WebGPUContextId,
image_key: ImageKey,
},
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>,
},
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§
SetImageKey
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