From c7ad9da7974fd7e26506f41cf8b60f54177a6e22 Mon Sep 17 00:00:00 2001 From: Almar Klein Date: Wed, 22 Nov 2023 17:01:07 +0100 Subject: [PATCH] Also for compute pipeline --- src/lib.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 8736166d..7a369c10 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -147,6 +147,7 @@ pub struct WGPUComputePassEncoderImpl { pub struct WGPUComputePipelineImpl { context: Arc, id: id::ComputePipelineId, + error_sink: ErrorSink, } impl Drop for WGPUComputePipelineImpl { fn drop(&mut self) { @@ -1681,17 +1682,21 @@ pub unsafe extern "C" fn wgpuComputePipelineGetBindGroupLayout( pipeline: native::WGPUComputePipeline, group_index: u32, ) -> native::WGPUBindGroupLayout { - let (pipeline_id, context) = { + let (pipeline_id, context, error_sink) = { let pipeline = pipeline.as_ref().expect("invalid pipeline"); - (pipeline.id, &pipeline.context) + (pipeline.id, &pipeline.context, &pipeline.error_sink) }; let (bind_group_layout_id, error) = gfx_select!(pipeline_id => context.compute_pipeline_get_bind_group_layout(pipeline_id, group_index, ())); if let Some(cause) = error { - panic!( - "Error in wgpuComputePipelineGetBindGroupLayout: Error reflecting bind group {group_index}: {f}", - f = format_error(context, &cause) - ); + handle_error( + context, + error_sink, + cause, + "", + None, + "wgpuComputePipelineGetBindGroupLayout", + ) } Arc::into_raw(Arc::new(WGPUBindGroupLayoutImpl { @@ -1946,6 +1951,7 @@ pub unsafe extern "C" fn wgpuDeviceCreateComputePipeline( Arc::into_raw(Arc::new(WGPUComputePipelineImpl { context: context.clone(), id: compute_pipeline_id, + error_sink: error_sink.clone(), })) }