diff --git a/wgpu/src/backend/webgpu.rs b/wgpu/src/backend/webgpu.rs index 948c707b78..ac663df891 100644 --- a/wgpu/src/backend/webgpu.rs +++ b/wgpu/src/backend/webgpu.rs @@ -1158,7 +1158,6 @@ impl crate::context::Context for ContextWebGpu { type SurfaceData = Sendable<(Canvas, webgpu_sys::GpuCanvasContext)>; type SurfaceOutputDetail = SurfaceOutputDetail; - type SubmissionIndex = Unused; type SubmissionIndexData = (); type PipelineCacheId = Unused; type PipelineCacheData = (); @@ -2950,14 +2949,12 @@ impl crate::context::Context for ContextWebGpu { _queue: &Self::QueueId, queue_data: &Self::QueueData, command_buffers: I, - ) -> (Self::SubmissionIndex, Self::SubmissionIndexData) { + ) -> Self::SubmissionIndexData { let temp_command_buffers = command_buffers .map(|(_, data)| data.0) .collect::(); queue_data.0.submit(&temp_command_buffers); - - (Unused, ()) } fn queue_get_timestamp_period( diff --git a/wgpu/src/backend/wgpu_core.rs b/wgpu/src/backend/wgpu_core.rs index d5210900bb..e00bd4a384 100644 --- a/wgpu/src/backend/wgpu_core.rs +++ b/wgpu/src/backend/wgpu_core.rs @@ -551,7 +551,6 @@ impl crate::Context for ContextWgpuCore { type SurfaceId = wgc::id::SurfaceId; type SurfaceData = Surface; type SurfaceOutputDetail = SurfaceOutputDetail; - type SubmissionIndex = Unused; type SubmissionIndexData = wgc::device::queue::WrappedSubmissionIndex; type RequestAdapterFuture = Ready>; @@ -1525,7 +1524,7 @@ impl crate::Context for ContextWgpuCore { _device_data: &Self::DeviceData, maintain: crate::Maintain, ) -> wgt::MaintainResult { - let maintain_inner = maintain.map_index(|i| *i.1.as_ref().downcast_ref().unwrap()); + let maintain_inner = maintain.map_index(|i| *i.0.as_ref().downcast_ref().unwrap()); match wgc::gfx_select!(device => self.0.device_poll( *device, maintain_inner @@ -2322,18 +2321,15 @@ impl crate::Context for ContextWgpuCore { queue: &Self::QueueId, _queue_data: &Self::QueueData, command_buffers: I, - ) -> (Self::SubmissionIndex, Self::SubmissionIndexData) { + ) -> Self::SubmissionIndexData { let temp_command_buffers = command_buffers .map(|(i, _)| i) .collect::>(); - let index = match wgc::gfx_select!(*queue => self.0.queue_submit(*queue, &temp_command_buffers)) - { + match wgc::gfx_select!(*queue => self.0.queue_submit(*queue, &temp_command_buffers)) { Ok(index) => index, Err(err) => self.handle_error_fatal(err, "Queue::submit"), - }; - - (Unused, index) + } } fn queue_get_timestamp_period( diff --git a/wgpu/src/context.rs b/wgpu/src/context.rs index 3c0de624a1..14bc603167 100644 --- a/wgpu/src/context.rs +++ b/wgpu/src/context.rs @@ -78,7 +78,6 @@ pub trait Context: Debug + WasmNotSendSync + Sized { type SurfaceData: ContextData; type SurfaceOutputDetail: WasmNotSendSync + 'static; - type SubmissionIndex: ContextId + Clone + Copy + WasmNotSendSync; type SubmissionIndexData: ContextData + Copy; type RequestAdapterFuture: Future> @@ -597,7 +596,7 @@ pub trait Context: Debug + WasmNotSendSync + Sized { queue: &Self::QueueId, queue_data: &Self::QueueData, command_buffers: I, - ) -> (Self::SubmissionIndex, Self::SubmissionIndexData); + ) -> Self::SubmissionIndexData; fn queue_get_timestamp_period( &self, queue: &Self::QueueId, @@ -1593,7 +1592,7 @@ pub(crate) trait DynContext: Debug + WasmNotSendSync { queue: &ObjectId, queue_data: &crate::Data, command_buffers: &mut dyn Iterator)>, - ) -> (ObjectId, Arc); + ) -> Arc; fn queue_get_timestamp_period(&self, queue: &ObjectId, queue_data: &crate::Data) -> f32; fn queue_on_submitted_work_done( &self, @@ -3039,16 +3038,15 @@ where queue: &ObjectId, queue_data: &crate::Data, command_buffers: &mut dyn Iterator)>, - ) -> (ObjectId, Arc) { + ) -> Arc { let queue = ::from(*queue); let queue_data = downcast_ref(queue_data); let command_buffers = command_buffers.map(|(id, data)| { let command_buffer_data: ::CommandBufferData = *data.downcast().unwrap(); (::from(id), command_buffer_data) }); - let (submission_index, data) = - Context::queue_submit(self, &queue, queue_data, command_buffers); - (submission_index.into(), Arc::new(data) as _) + let data = Context::queue_submit(self, &queue, queue_data, command_buffers); + Arc::new(data) as _ } fn queue_get_timestamp_period(&self, queue: &ObjectId, queue_data: &crate::Data) -> f32 { diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 5045c8a36d..36fbb21701 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -186,7 +186,7 @@ static_assertions::assert_impl_all!(Device: Send, Sync); /// This type is unique to the Rust API of `wgpu`. /// There is no analogue in the WebGPU specification. #[derive(Debug, Clone)] -pub struct SubmissionIndex(ObjectId, Arc); +pub struct SubmissionIndex(Arc); #[cfg(send_sync)] static_assertions::assert_impl_all!(SubmissionIndex: Send, Sync); @@ -5397,14 +5397,14 @@ impl Queue { .into_iter() .map(|mut comb| (comb.id.take().unwrap(), comb.data.take().unwrap())); - let (raw, data) = DynContext::queue_submit( + let data = DynContext::queue_submit( &*self.context, &self.id, self.data.as_ref(), &mut command_buffers, ); - SubmissionIndex(raw, data) + SubmissionIndex(data) } /// Gets the amount of nanoseconds each tick of a timestamp query represents.