diff options
Diffstat (limited to 'components/webgpu/script_messages.rs')
-rw-r--r-- | components/webgpu/script_messages.rs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/components/webgpu/script_messages.rs b/components/webgpu/script_messages.rs new file mode 100644 index 00000000000..08e2269d39c --- /dev/null +++ b/components/webgpu/script_messages.rs @@ -0,0 +1,55 @@ +/* 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 massages that are send to script thread (global scope). + +use msg::constellation_msg::PipelineId; +use serde::{Deserialize, Serialize}; + +use crate::identity::WebGPUDevice; +use crate::wgc::id::{ + AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, ComputePipelineId, + DeviceId, PipelineLayoutId, QuerySetId, RenderBundleId, RenderPipelineId, SamplerId, + ShaderModuleId, StagingBufferId, SurfaceId, TextureId, TextureViewId, +}; +use crate::ErrorScopeId; + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum WebGPUOpResult { + ValidationError(String), + OutOfMemoryError, + Success, +} + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum WebGPUMsg { + FreeAdapter(AdapterId), + FreeDevice(DeviceId), + 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), + WebGPUOpResult { + device: WebGPUDevice, + scope_id: Option<ErrorScopeId>, + pipeline_id: PipelineId, + result: WebGPUOpResult, + }, + CleanDevice { + device: WebGPUDevice, + pipeline_id: PipelineId, + }, + Exit, +} |