diff options
author | Martin Robinson <mrobinson@igalia.com> | 2025-04-04 10:06:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-04 08:06:07 +0000 |
commit | 0d693114ad4f27a07a3cd18c4c34da53be55d1bc (patch) | |
tree | 35d4382e088703434cb6b109b3a4bd9476c8ccf6 /components/shared/webgpu/messages/to_script.rs | |
parent | df9efde1c377f0ff701fdd72814b628e73397464 (diff) | |
download | servo-0d693114ad4f27a07a3cd18c4c34da53be55d1bc.tar.gz servo-0d693114ad4f27a07a3cd18c4c34da53be55d1bc.zip |
webgpu: Add a `webgpu_traits` crate (#36320)
This breaks the `script_traits` dependency on `webgpu`. In general, the
`traits` crates shouldn't depend on Servo non-`traits` crates. This is
necessary to move "script to constellation" messages to the
`constellation_traits` crate, making it the entire API for talking to
the
constellation. This will break a circular dependency when that happens.
Testing: Successfully building is enough of a test for this one as
it is mainly moving types around.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/shared/webgpu/messages/to_script.rs')
-rw-r--r-- | components/shared/webgpu/messages/to_script.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/components/shared/webgpu/messages/to_script.rs b/components/shared/webgpu/messages/to_script.rs new file mode 100644 index 00000000000..303e17eeaad --- /dev/null +++ b/components/shared/webgpu/messages/to_script.rs @@ -0,0 +1,54 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +//! IPC messages that are sent to the ScriptThread. + +use base::id::PipelineId; +use serde::{Deserialize, Serialize}; +use wgpu_core::id::{ + AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, ComputePassEncoderId, + ComputePipelineId, DeviceId, PipelineLayoutId, QuerySetId, RenderBundleId, RenderPassEncoderId, + RenderPipelineId, SamplerId, ShaderModuleId, StagingBufferId, SurfaceId, TextureId, + TextureViewId, +}; + +use crate::{DeviceLostReason, Error, WebGPUDevice}; + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum WebGPUMsg { + FreeAdapter(AdapterId), + FreeDevice { + device_id: DeviceId, + pipeline_id: PipelineId, + }, + FreeBuffer(BufferId), + FreePipelineLayout(PipelineLayoutId), + FreeComputePipeline(ComputePipelineId), + FreeRenderPipeline(RenderPipelineId), + FreeBindGroup(BindGroupId), + FreeBindGroupLayout(BindGroupLayoutId), + FreeCommandBuffer(CommandBufferId), + FreeTexture(TextureId), + FreeTextureView(TextureViewId), + FreeSampler(SamplerId), + FreeSurface(SurfaceId), + FreeShaderModule(ShaderModuleId), + FreeRenderBundle(RenderBundleId), + FreeStagingBuffer(StagingBufferId), + FreeQuerySet(QuerySetId), + FreeComputePass(ComputePassEncoderId), + FreeRenderPass(RenderPassEncoderId), + UncapturedError { + device: WebGPUDevice, + pipeline_id: PipelineId, + error: Error, + }, + DeviceLost { + device: WebGPUDevice, + pipeline_id: PipelineId, + reason: DeviceLostReason, + msg: String, + }, + Exit, +} |