From f9be2e2c9d407af5d52fbaf78634a3b7e5865a40 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 2 Dec 2025 00:54:28 +0300 Subject: [PATCH 1/3] Implement wgpuQueueGetTimestampPeriod --- ffi/wgpu.h | 1 + src/lib.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/ffi/wgpu.h b/ffi/wgpu.h index 272ed23a..9aa4024b 100644 --- a/ffi/wgpu.h +++ b/ffi/wgpu.h @@ -307,6 +307,7 @@ void wgpuGenerateReport(WGPUInstance instance, WGPUGlobalReport * report); size_t wgpuInstanceEnumerateAdapters(WGPUInstance instance, WGPU_NULLABLE WGPUInstanceEnumerateAdapterOptions const * options, WGPUAdapter * adapters); WGPUSubmissionIndex wgpuQueueSubmitForIndex(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands); +float wgpuQueueGetTimestampPeriod(WGPUQueue queue); // Returns true if the queue is empty, or false if there are more queue submissions still in flight. WGPUBool wgpuDevicePoll(WGPUDevice device, WGPUBool wait, WGPU_NULLABLE WGPUSubmissionIndex const * submissionIndex); diff --git a/src/lib.rs b/src/lib.rs index 3ec63ee8..d20c121f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2938,6 +2938,18 @@ pub unsafe extern "C" fn wgpuQueueSubmit( } } +#[no_mangle] +pub unsafe extern "C" fn wgpuQueueGetTimestampPeriod( + queue: native::WGPUQueue +) -> f32 { + let (queue_id, context) = { + let queue = queue.as_ref().expect("invalid queue"); + (queue.queue.id, &queue.queue.context) + }; + + context.queue_get_timestamp_period(queue_id) +} + #[no_mangle] pub unsafe extern "C" fn wgpuQueueWriteBuffer( queue: native::WGPUQueue, From 6b76b0e085a56eca7f014e0e69f275a4cf9541b4 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 2 Dec 2025 01:05:12 +0300 Subject: [PATCH 2/3] Fix formatting --- src/lib.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index d20c121f..1e7dbeee 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2939,9 +2939,7 @@ pub unsafe extern "C" fn wgpuQueueSubmit( } #[no_mangle] -pub unsafe extern "C" fn wgpuQueueGetTimestampPeriod( - queue: native::WGPUQueue -) -> f32 { +pub unsafe extern "C" fn wgpuQueueGetTimestampPeriod( queue: native::WGPUQueue) -> f32 { let (queue_id, context) = { let queue = queue.as_ref().expect("invalid queue"); (queue.queue.id, &queue.queue.context) From 9967cb2825d0e16dd78d20f26c7015f349c396f4 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 2 Dec 2025 01:07:56 +0300 Subject: [PATCH 3/3] Fix formatting again --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 1e7dbeee..d462f821 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2939,7 +2939,7 @@ pub unsafe extern "C" fn wgpuQueueSubmit( } #[no_mangle] -pub unsafe extern "C" fn wgpuQueueGetTimestampPeriod( queue: native::WGPUQueue) -> f32 { +pub unsafe extern "C" fn wgpuQueueGetTimestampPeriod(queue: native::WGPUQueue) -> f32 { let (queue_id, context) = { let queue = queue.as_ref().expect("invalid queue"); (queue.queue.id, &queue.queue.context)