diff options
Diffstat (limited to 'ext/webgpu/render_pass.rs')
-rw-r--r-- | ext/webgpu/render_pass.rs | 108 |
1 files changed, 40 insertions, 68 deletions
diff --git a/ext/webgpu/render_pass.rs b/ext/webgpu/render_pass.rs index 81f2e6640..e01a6d478 100644 --- a/ext/webgpu/render_pass.rs +++ b/ext/webgpu/render_pass.rs @@ -1,6 +1,5 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -use deno_core::error::bad_resource_id; use deno_core::error::null_opbuf; use deno_core::error::type_error; use deno_core::error::AnyError; @@ -41,8 +40,7 @@ pub fn op_webgpu_render_pass_set_viewport( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_set_viewport( &mut render_pass_resource.0.borrow_mut(), @@ -74,8 +72,7 @@ pub fn op_webgpu_render_pass_set_scissor_rect( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_set_scissor_rect( &mut render_pass_resource.0.borrow_mut(), @@ -111,8 +108,7 @@ pub fn op_webgpu_render_pass_set_blend_constant( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_set_blend_constant( &mut render_pass_resource.0.borrow_mut(), @@ -141,8 +137,7 @@ pub fn op_webgpu_render_pass_set_stencil_reference( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_set_stencil_reference( &mut render_pass_resource.0.borrow_mut(), @@ -167,12 +162,10 @@ pub fn op_webgpu_render_pass_begin_pipeline_statistics_query( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; let query_set_resource = state .resource_table - .get::<super::WebGpuQuerySet>(args.query_set) - .ok_or_else(bad_resource_id)?; + .get::<super::WebGpuQuerySet>(args.query_set)?; wgpu_core::command::render_ffi::wgpu_render_pass_begin_pipeline_statistics_query( &mut render_pass_resource.0.borrow_mut(), @@ -196,8 +189,7 @@ pub fn op_webgpu_render_pass_end_pipeline_statistics_query( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_end_pipeline_statistics_query( &mut render_pass_resource.0.borrow_mut(), @@ -221,12 +213,10 @@ pub fn op_webgpu_render_pass_write_timestamp( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; let query_set_resource = state .resource_table - .get::<super::WebGpuQuerySet>(args.query_set) - .ok_or_else(bad_resource_id)?; + .get::<super::WebGpuQuerySet>(args.query_set)?; wgpu_core::command::render_ffi::wgpu_render_pass_write_timestamp( &mut render_pass_resource.0.borrow_mut(), @@ -252,17 +242,16 @@ pub fn op_webgpu_render_pass_execute_bundles( let mut render_bundle_ids = vec![]; for rid in &args.bundles { - let render_bundle_resource = state - .resource_table - .get::<super::bundle::WebGpuRenderBundle>(*rid) - .ok_or_else(bad_resource_id)?; + let render_bundle_resource = + state + .resource_table + .get::<super::bundle::WebGpuRenderBundle>(*rid)?; render_bundle_ids.push(render_bundle_resource.0); } let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; unsafe { wgpu_core::command::render_ffi::wgpu_render_pass_execute_bundles( @@ -290,14 +279,12 @@ pub fn op_webgpu_render_pass_end_pass( let command_encoder_resource = state .resource_table .get::<super::command_encoder::WebGpuCommandEncoder>( - args.command_encoder_rid, - ) - .ok_or_else(bad_resource_id)?; + args.command_encoder_rid, + )?; let command_encoder = command_encoder_resource.0; let render_pass_resource = state .resource_table - .take::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .take::<WebGpuRenderPass>(args.render_pass_rid)?; let render_pass = &render_pass_resource.0.borrow(); let instance = state.borrow::<super::Instance>(); @@ -320,14 +307,13 @@ pub fn op_webgpu_render_pass_set_bind_group( args: RenderPassSetBindGroupArgs, zero_copy: Option<ZeroCopyBuf>, ) -> Result<WebGpuResult, AnyError> { - let bind_group_resource = state - .resource_table - .get::<super::binding::WebGpuBindGroup>(args.bind_group) - .ok_or_else(bad_resource_id)?; + let bind_group_resource = + state + .resource_table + .get::<super::binding::WebGpuBindGroup>(args.bind_group)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; // I know this might look like it can be easily deduplicated, but it can not // be due to the lifetime of the args.dynamic_offsets_data slice. Because we @@ -378,8 +364,7 @@ pub fn op_webgpu_render_pass_push_debug_group( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; unsafe { let label = std::ffi::CString::new(args.group_label).unwrap(); @@ -406,8 +391,7 @@ pub fn op_webgpu_render_pass_pop_debug_group( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_pop_debug_group( &mut render_pass_resource.0.borrow_mut(), @@ -430,8 +414,7 @@ pub fn op_webgpu_render_pass_insert_debug_marker( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; unsafe { let label = std::ffi::CString::new(args.marker_label).unwrap(); @@ -457,14 +440,13 @@ pub fn op_webgpu_render_pass_set_pipeline( args: RenderPassSetPipelineArgs, _: (), ) -> Result<WebGpuResult, AnyError> { - let render_pipeline_resource = state - .resource_table - .get::<super::pipeline::WebGpuRenderPipeline>(args.pipeline) - .ok_or_else(bad_resource_id)?; + let render_pipeline_resource = + state + .resource_table + .get::<super::pipeline::WebGpuRenderPipeline>(args.pipeline)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_set_pipeline( &mut render_pass_resource.0.borrow_mut(), @@ -491,12 +473,10 @@ pub fn op_webgpu_render_pass_set_index_buffer( ) -> Result<WebGpuResult, AnyError> { let buffer_resource = state .resource_table - .get::<super::buffer::WebGpuBuffer>(args.buffer) - .ok_or_else(bad_resource_id)?; + .get::<super::buffer::WebGpuBuffer>(args.buffer)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; let size = if let Some(size) = args.size { Some( @@ -534,12 +514,10 @@ pub fn op_webgpu_render_pass_set_vertex_buffer( ) -> Result<WebGpuResult, AnyError> { let buffer_resource = state .resource_table - .get::<super::buffer::WebGpuBuffer>(args.buffer) - .ok_or_else(bad_resource_id)?; + .get::<super::buffer::WebGpuBuffer>(args.buffer)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; let size = if let Some(size) = args.size { Some( @@ -578,8 +556,7 @@ pub fn op_webgpu_render_pass_draw( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_draw( &mut render_pass_resource.0.borrow_mut(), @@ -610,8 +587,7 @@ pub fn op_webgpu_render_pass_draw_indexed( ) -> Result<WebGpuResult, AnyError> { let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_draw_indexed( &mut render_pass_resource.0.borrow_mut(), @@ -640,12 +616,10 @@ pub fn op_webgpu_render_pass_draw_indirect( ) -> Result<WebGpuResult, AnyError> { let buffer_resource = state .resource_table - .get::<super::buffer::WebGpuBuffer>(args.indirect_buffer) - .ok_or_else(bad_resource_id)?; + .get::<super::buffer::WebGpuBuffer>(args.indirect_buffer)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_draw_indirect( &mut render_pass_resource.0.borrow_mut(), @@ -671,12 +645,10 @@ pub fn op_webgpu_render_pass_draw_indexed_indirect( ) -> Result<WebGpuResult, AnyError> { let buffer_resource = state .resource_table - .get::<super::buffer::WebGpuBuffer>(args.indirect_buffer) - .ok_or_else(bad_resource_id)?; + .get::<super::buffer::WebGpuBuffer>(args.indirect_buffer)?; let render_pass_resource = state .resource_table - .get::<WebGpuRenderPass>(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::<WebGpuRenderPass>(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_draw_indexed_indirect( &mut render_pass_resource.0.borrow_mut(), |