diff options
Diffstat (limited to 'op_crates/webgpu/pipeline.rs')
-rw-r--r-- | op_crates/webgpu/pipeline.rs | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/op_crates/webgpu/pipeline.rs b/op_crates/webgpu/pipeline.rs index 10e300a57..8eb291b97 100644 --- a/op_crates/webgpu/pipeline.rs +++ b/op_crates/webgpu/pipeline.rs @@ -2,15 +2,14 @@ use deno_core::error::bad_resource_id; use deno_core::error::AnyError; -use deno_core::serde_json::json; -use deno_core::serde_json::Value; use deno_core::ResourceId; use deno_core::ZeroCopyBuf; use deno_core::{OpState, Resource}; use serde::Deserialize; +use serde::Serialize; use std::borrow::Cow; -use super::error::WebGpuError; +use super::error::{WebGpuError, WebGpuResult}; pub(crate) struct WebGpuPipelineLayout( pub(crate) wgpu_core::id::PipelineLayoutId, @@ -163,7 +162,7 @@ pub fn op_webgpu_create_compute_pipeline( state: &mut OpState, args: CreateComputePipelineArgs, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let instance = state.borrow::<super::Instance>(); let device_resource = state .resource_table @@ -213,10 +212,7 @@ pub fn op_webgpu_create_compute_pipeline( .resource_table .add(WebGpuComputePipeline(compute_pipeline)); - Ok(json!({ - "rid": rid, - "err": maybe_err.map(WebGpuError::from), - })) + Ok(WebGpuResult::rid_err(rid, maybe_err)) } #[derive(Deserialize)] @@ -226,11 +222,19 @@ pub struct ComputePipelineGetBindGroupLayoutArgs { index: u32, } +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PipelineLayout { + rid: ResourceId, + label: String, + err: Option<WebGpuError>, +} + pub fn op_webgpu_compute_pipeline_get_bind_group_layout( state: &mut OpState, args: ComputePipelineGetBindGroupLayoutArgs, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<PipelineLayout, AnyError> { let instance = state.borrow::<super::Instance>(); let compute_pipeline_resource = state .resource_table @@ -246,11 +250,11 @@ pub fn op_webgpu_compute_pipeline_get_bind_group_layout( .resource_table .add(super::binding::WebGpuBindGroupLayout(bind_group_layout)); - Ok(json!({ - "rid": rid, - "label": label, - "err": maybe_err.map(WebGpuError::from) - })) + Ok(PipelineLayout { + rid, + label, + err: maybe_err.map(WebGpuError::from), + }) } #[derive(Deserialize)] @@ -367,7 +371,7 @@ pub fn op_webgpu_create_render_pipeline( state: &mut OpState, args: CreateRenderPipelineArgs, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<WebGpuResult, AnyError> { let instance = state.borrow::<super::Instance>(); let device_resource = state .resource_table @@ -601,10 +605,7 @@ pub fn op_webgpu_create_render_pipeline( .resource_table .add(WebGpuRenderPipeline(render_pipeline)); - Ok(json!({ - "rid": rid, - "err": maybe_err.map(WebGpuError::from) - })) + Ok(WebGpuResult::rid_err(rid, maybe_err)) } #[derive(Deserialize)] @@ -618,7 +619,7 @@ pub fn op_webgpu_render_pipeline_get_bind_group_layout( state: &mut OpState, args: RenderPipelineGetBindGroupLayoutArgs, _zero_copy: Option<ZeroCopyBuf>, -) -> Result<Value, AnyError> { +) -> Result<PipelineLayout, AnyError> { let instance = state.borrow::<super::Instance>(); let render_pipeline_resource = state .resource_table @@ -634,9 +635,9 @@ pub fn op_webgpu_render_pipeline_get_bind_group_layout( .resource_table .add(super::binding::WebGpuBindGroupLayout(bind_group_layout)); - Ok(json!({ - "rid": rid, - "label": label, - "err": maybe_err.map(WebGpuError::from), - })) + Ok(PipelineLayout { + rid, + label, + err: maybe_err.map(WebGpuError::from), + }) } |