From 2ca454b402d48c1808f8233c5adedc11b714c63c Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 15 Aug 2021 13:29:19 +0200 Subject: refactor(ops): return BadResource errors in ResourceTable calls (#11710) * refactor(ops): return BadResource errors in ResourceTable calls Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ... --- ext/webgpu/render_pass.rs | 108 +++++++++++++++++----------------------------- 1 file changed, 40 insertions(+), 68 deletions(-) (limited to 'ext/webgpu/render_pass.rs') 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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(args.render_pass_rid)?; let query_set_resource = state .resource_table - .get::(args.query_set) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(args.render_pass_rid)?; let query_set_resource = state .resource_table - .get::(args.query_set) - .ok_or_else(bad_resource_id)?; + .get::(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::(*rid) - .ok_or_else(bad_resource_id)?; + let render_bundle_resource = + state + .resource_table + .get::(*rid)?; render_bundle_ids.push(render_bundle_resource.0); } let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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::( - 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::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .take::(args.render_pass_rid)?; let render_pass = &render_pass_resource.0.borrow(); let instance = state.borrow::(); @@ -320,14 +307,13 @@ pub fn op_webgpu_render_pass_set_bind_group( args: RenderPassSetBindGroupArgs, zero_copy: Option, ) -> Result { - let bind_group_resource = state - .resource_table - .get::(args.bind_group) - .ok_or_else(bad_resource_id)?; + let bind_group_resource = + state + .resource_table + .get::(args.bind_group)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { - let render_pipeline_resource = state - .resource_table - .get::(args.pipeline) - .ok_or_else(bad_resource_id)?; + let render_pipeline_resource = + state + .resource_table + .get::(args.pipeline)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let buffer_resource = state .resource_table - .get::(args.buffer) - .ok_or_else(bad_resource_id)?; + .get::(args.buffer)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let buffer_resource = state .resource_table - .get::(args.buffer) - .ok_or_else(bad_resource_id)?; + .get::(args.buffer)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let buffer_resource = state .resource_table - .get::(args.indirect_buffer) - .ok_or_else(bad_resource_id)?; + .get::(args.indirect_buffer)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(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 { let buffer_resource = state .resource_table - .get::(args.indirect_buffer) - .ok_or_else(bad_resource_id)?; + .get::(args.indirect_buffer)?; let render_pass_resource = state .resource_table - .get::(args.render_pass_rid) - .ok_or_else(bad_resource_id)?; + .get::(args.render_pass_rid)?; wgpu_core::command::render_ffi::wgpu_render_pass_draw_indexed_indirect( &mut render_pass_resource.0.borrow_mut(), -- cgit v1.2.3