[webgpu-headers] Removes signalValue from onSubmittedWorkDone.

See issue: github.com/webgpu-native/webgpu-headers/issues/130

Change-Id: Icf030089628da4a18a97770b5808e9c65798d63f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/154681
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/dawn.json b/dawn.json
index f933464..070f95e 100644
--- a/dawn.json
+++ b/dawn.json
@@ -2274,7 +2274,7 @@
             },
             {
                 "name": "on submitted work done",
-                "tags": ["dawn", "emscripten"],
+                "tags": ["emscripten"],
                 "args": [
                     {"name": "signal value", "type": "uint64_t"},
                     {"name": "callback", "type": "queue work done callback"},
@@ -2283,7 +2283,7 @@
             },
             {
                 "name": "on submitted work done",
-                "tags": ["upstream"],
+                "tags": ["dawn", "upstream"],
                 "args": [
                     {"name": "callback", "type": "queue work done callback"},
                     {"name": "userdata", "type": "void *"}
diff --git a/dawn_wire.json b/dawn_wire.json
index 3f334d6..a940965 100644
--- a/dawn_wire.json
+++ b/dawn_wire.json
@@ -63,7 +63,6 @@
         ],
         "queue on submitted work done": [
             { "name": "queue id", "type": "ObjectId", "id_type": "queue" },
-            { "name": "signal value", "type": "uint64_t" },
             { "name": "future", "type": "future" }
         ],
         "queue write buffer": [
diff --git a/generator/templates/api.h b/generator/templates/api.h
index 1f98bac..7d944ae 100644
--- a/generator/templates/api.h
+++ b/generator/templates/api.h
@@ -68,6 +68,7 @@
 #endif
 
 #define WGPU_BREAKING_CHANGE_COUNT_RENAME
+#define WGPU_BREAKING_WORK_DONE_SIGNAL_VALUE_CHANGE
 
 #include <stdint.h>
 #include <stddef.h>
diff --git a/src/dawn/native/Queue.cpp b/src/dawn/native/Queue.cpp
index 183a92b..7a163cc 100644
--- a/src/dawn/native/Queue.cpp
+++ b/src/dawn/native/Queue.cpp
@@ -265,12 +265,10 @@
         ityp::span<uint32_t, CommandBufferBase* const>(commands, commandCount)));
 }
 
-void QueueBase::APIOnSubmittedWorkDone(uint64_t signalValue,
-                                       WGPUQueueWorkDoneCallback callback,
-                                       void* userdata) {
+void QueueBase::APIOnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata) {
     // The error status depends on the type of error so we let the validation function choose it
     wgpu::QueueWorkDoneStatus status;
-    if (GetDevice()->ConsumedError(ValidateOnSubmittedWorkDone(signalValue, &status))) {
+    if (GetDevice()->ConsumedError(ValidateOnSubmittedWorkDone(&status))) {
         GetDevice()->GetCallbackTaskManager()->AddCallbackTask(
             [callback, status, userdata] { callback(ToAPI(status), userdata); });
         return;
@@ -297,7 +295,7 @@
     Ref<EventManager::TrackedEvent> event;
 
     wgpu::QueueWorkDoneStatus validationEarlyStatus;
-    if (GetDevice()->ConsumedError(ValidateOnSubmittedWorkDone(0, &validationEarlyStatus))) {
+    if (GetDevice()->ConsumedError(ValidateOnSubmittedWorkDone(&validationEarlyStatus))) {
         // TODO(crbug.com/dawn/2021): This is here to pretend that things succeed when the device is
         // lost. When the old OnSubmittedWorkDone is removed then we can update
         // ValidateOnSubmittedWorkDone to just return the correct thing here.
@@ -593,16 +591,13 @@
     return {};
 }
 
-MaybeError QueueBase::ValidateOnSubmittedWorkDone(uint64_t signalValue,
-                                                  wgpu::QueueWorkDoneStatus* status) const {
+MaybeError QueueBase::ValidateOnSubmittedWorkDone(wgpu::QueueWorkDoneStatus* status) const {
     *status = wgpu::QueueWorkDoneStatus::DeviceLost;
     DAWN_TRY(GetDevice()->ValidateIsAlive());
 
     *status = wgpu::QueueWorkDoneStatus::Error;
     DAWN_TRY(GetDevice()->ValidateObject(this));
 
-    DAWN_INVALID_IF(signalValue != 0, "SignalValue (%u) is not 0.", signalValue);
-
     return {};
 }
 
diff --git a/src/dawn/native/Queue.h b/src/dawn/native/Queue.h
index 6fd2260..2e316d4 100644
--- a/src/dawn/native/Queue.h
+++ b/src/dawn/native/Queue.h
@@ -58,9 +58,7 @@
 
     // Dawn API
     void APISubmit(uint32_t commandCount, CommandBufferBase* const* commands);
-    void APIOnSubmittedWorkDone(uint64_t signalValue,
-                                WGPUQueueWorkDoneCallback callback,
-                                void* userdata);
+    void APIOnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata);
     Future APIOnSubmittedWorkDoneF(const QueueWorkDoneCallbackInfo& callbackInfo);
     void APIWriteBuffer(BufferBase* buffer, uint64_t bufferOffset, const void* data, size_t size);
     void APIWriteTexture(const ImageCopyTexture* destination,
@@ -129,8 +127,7 @@
                                         const Extent3D& writeSize);
 
     MaybeError ValidateSubmit(uint32_t commandCount, CommandBufferBase* const* commands) const;
-    MaybeError ValidateOnSubmittedWorkDone(uint64_t signalValue,
-                                           wgpu::QueueWorkDoneStatus* status) const;
+    MaybeError ValidateOnSubmittedWorkDone(wgpu::QueueWorkDoneStatus* status) const;
     MaybeError ValidateWriteTexture(const ImageCopyTexture* destination,
                                     size_t dataSize,
                                     const TextureDataLayout& dataLayout,
diff --git a/src/dawn/node/binding/GPUQueue.cpp b/src/dawn/node/binding/GPUQueue.cpp
index 7741f04..ce8c530 100644
--- a/src/dawn/node/binding/GPUQueue.cpp
+++ b/src/dawn/node/binding/GPUQueue.cpp
@@ -56,7 +56,6 @@
     auto promise = ctx->promise;
 
     queue_.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             auto c = std::unique_ptr<Context>(static_cast<Context*>(userdata));
             if (status != WGPUQueueWorkDoneStatus::WGPUQueueWorkDoneStatus_Success) {
diff --git a/src/dawn/tests/DawnTest.cpp b/src/dawn/tests/DawnTest.cpp
index b90e46c..ea9e182 100644
--- a/src/dawn/tests/DawnTest.cpp
+++ b/src/dawn/tests/DawnTest.cpp
@@ -1581,7 +1581,6 @@
     // necessarily the current thread. So we need to use atomic here.
     std::atomic<bool> done(false);
     device.GetQueue().OnSubmittedWorkDone(
-        0u,
         [](WGPUQueueWorkDoneStatus, void* userdata) {
             *static_cast<std::atomic<bool>*>(userdata) = true;
         },
diff --git a/src/dawn/tests/end2end/BufferTests.cpp b/src/dawn/tests/end2end/BufferTests.cpp
index cce1607..5e5b7d5 100644
--- a/src/dawn/tests/end2end/BufferTests.cpp
+++ b/src/dawn/tests/end2end/BufferTests.cpp
@@ -609,7 +609,6 @@
     // 1. submission without using buffer.
     SubmitCommandBuffer({});
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
             auto& done = *static_cast<std::vector<bool>*>(userdata);
@@ -646,7 +645,6 @@
     // 1. Submit a command buffer which uses the buffer
     SubmitCommandBuffer(buffer);
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
             auto& done = *static_cast<std::vector<bool>*>(userdata);
@@ -685,7 +683,6 @@
     // 1. submission without using buffer.
     SubmitCommandBuffer({});
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
             auto& done = *static_cast<std::vector<bool>*>(userdata);
diff --git a/src/dawn/tests/end2end/CopyTests.cpp b/src/dawn/tests/end2end/CopyTests.cpp
index 400e1c5..6a903ca 100644
--- a/src/dawn/tests/end2end/CopyTests.cpp
+++ b/src/dawn/tests/end2end/CopyTests.cpp
@@ -2740,7 +2740,6 @@
     // Ensure the underlying ID3D12Resource of bigBuffer is deleted.
     bool submittedWorkDone = false;
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
             *static_cast<bool*>(userdata) = true;
@@ -3010,7 +3009,6 @@
     void EnsureSubmittedWorkDone() {
         bool submittedWorkDone = false;
         queue.OnSubmittedWorkDone(
-            0,
             [](WGPUQueueWorkDoneStatus status, void* userdata) {
                 EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
                 *static_cast<bool*>(userdata) = true;
diff --git a/src/dawn/tests/end2end/DestroyTests.cpp b/src/dawn/tests/end2end/DestroyTests.cpp
index e61ac36..e3cd7bd 100644
--- a/src/dawn/tests/end2end/DestroyTests.cpp
+++ b/src/dawn/tests/end2end/DestroyTests.cpp
@@ -208,7 +208,6 @@
 
     wgpu::Queue queue = device.GetQueue();
     ASSERT_DEVICE_ERROR(queue.OnSubmittedWorkDone(
-        0u,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             // TODO(crbug.com/dawn/2021): Wire and native differ slightly for now. Unify once we
             // decide on the correct result. In theory maybe we want to pretend that things succeed
diff --git a/src/dawn/tests/end2end/DeviceLifetimeTests.cpp b/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
index 881abfc..cdacd78 100644
--- a/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
+++ b/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
@@ -38,7 +38,6 @@
 
     // Ask for an onSubmittedWorkDone callback and drop the device.
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void*) {
             // There is a bug in DeviceBase::Destroy(). If all submitted work is done when
             // OnSubmittedWorkDone() is being called, the callback will be resolved with
@@ -67,7 +66,6 @@
     // Ask for an onSubmittedWorkDone callback and drop the device inside the callback.
     Userdata data = Userdata{std::move(device), false};
     queue.OnSubmittedWorkDone(
-        0,
         [](WGPUQueueWorkDoneStatus status, void* userdata) {
             EXPECT_EQ(status, WGPUQueueWorkDoneStatus_Success);
             static_cast<Userdata*>(userdata)->device = nullptr;
diff --git a/src/dawn/tests/end2end/DeviceLostTests.cpp b/src/dawn/tests/end2end/DeviceLostTests.cpp
index d98b2cd..7bc7819 100644
--- a/src/dawn/tests/end2end/DeviceLostTests.cpp
+++ b/src/dawn/tests/end2end/DeviceLostTests.cpp
@@ -401,7 +401,7 @@
     // callback should have device lost status
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_DeviceLost, nullptr))
         .Times(1);
-    ASSERT_DEVICE_ERROR(queue.OnSubmittedWorkDone(0, ToMockQueueWorkDone, nullptr));
+    ASSERT_DEVICE_ERROR(queue.OnSubmittedWorkDone(ToMockQueueWorkDone, nullptr));
 }
 
 // Test that QueueOnSubmittedWorkDone when the device is lost after calling OnSubmittedWorkDone
@@ -409,7 +409,7 @@
     // callback should have device lost status
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_DeviceLost, nullptr))
         .Times(1);
-    queue.OnSubmittedWorkDone(0, ToMockQueueWorkDone, nullptr);
+    queue.OnSubmittedWorkDone(ToMockQueueWorkDone, nullptr);
 
     LoseDeviceForTesting();
 }
diff --git a/src/dawn/tests/end2end/QueueTimelineTests.cpp b/src/dawn/tests/end2end/QueueTimelineTests.cpp
index 967a8c9..6e11492 100644
--- a/src/dawn/tests/end2end/QueueTimelineTests.cpp
+++ b/src/dawn/tests/end2end/QueueTimelineTests.cpp
@@ -83,7 +83,7 @@
 
     mMapReadBuffer.MapAsync(wgpu::MapMode::Read, 0, wgpu::kWholeMapSize, ToMockMapCallback, this);
 
-    queue.OnSubmittedWorkDone(0u, ToMockQueueWorkDone, this);
+    queue.OnSubmittedWorkDone(ToMockQueueWorkDone, this);
 
     WaitForAllOperations();
     mMapReadBuffer.Unmap();
@@ -95,8 +95,8 @@
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_Success, this)).Times(1);
     EXPECT_CALL(*mockQueueWorkDoneCallback1, Call(WGPUQueueWorkDoneStatus_Success, this)).Times(1);
 
-    queue.OnSubmittedWorkDone(0u, ToMockQueueWorkDone, this);
-    queue.OnSubmittedWorkDone(0u, ToMockQueueWorkDone1, this);
+    queue.OnSubmittedWorkDone(ToMockQueueWorkDone, this);
+    queue.OnSubmittedWorkDone(ToMockQueueWorkDone1, this);
 
     WaitForAllOperations();
 }
diff --git a/src/dawn/tests/perf_tests/DawnPerfTest.cpp b/src/dawn/tests/perf_tests/DawnPerfTest.cpp
index cbfa125..df38755 100644
--- a/src/dawn/tests/perf_tests/DawnPerfTest.cpp
+++ b/src/dawn/tests/perf_tests/DawnPerfTest.cpp
@@ -257,7 +257,6 @@
 
         submittedIterations++;
         mTest->queue.OnSubmittedWorkDone(
-            0u,
             [](WGPUQueueWorkDoneStatus, void* userdata) {
                 uint64_t* counter = static_cast<uint64_t*>(userdata);
                 (*counter)++;
diff --git a/src/dawn/tests/unittests/validation/ErrorScopeValidationTests.cpp b/src/dawn/tests/unittests/validation/ErrorScopeValidationTests.cpp
index a6b117e..bb81b61 100644
--- a/src/dawn/tests/unittests/validation/ErrorScopeValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/ErrorScopeValidationTests.cpp
@@ -178,7 +178,7 @@
     device.PushErrorScope(wgpu::ErrorFilter::OutOfMemory);
 
     queue.Submit(0, nullptr);
-    queue.OnSubmittedWorkDone(0u, ToMockQueueWorkDone, this);
+    queue.OnSubmittedWorkDone(ToMockQueueWorkDone, this);
 
     Sequence seq;
 
diff --git a/src/dawn/tests/unittests/validation/QueueOnSubmittedWorkDoneValidationTests.cpp b/src/dawn/tests/unittests/validation/QueueOnSubmittedWorkDoneValidationTests.cpp
index 55263f2..7a8ae98 100644
--- a/src/dawn/tests/unittests/validation/QueueOnSubmittedWorkDoneValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/QueueOnSubmittedWorkDoneValidationTests.cpp
@@ -43,7 +43,7 @@
 // Test that OnSubmittedWorkDone can be called as soon as the queue is created.
 TEST_F(QueueOnSubmittedWorkDoneValidationTests, CallBeforeSubmits) {
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_Success, this)).Times(1);
-    device.GetQueue().OnSubmittedWorkDone(0u, ToMockQueueWorkDone, this);
+    device.GetQueue().OnSubmittedWorkDone(ToMockQueueWorkDone, this);
 
     WaitForAllOperations(device);
 }
diff --git a/src/dawn/tests/unittests/validation/ValidationTest.cpp b/src/dawn/tests/unittests/validation/ValidationTest.cpp
index 9416348..3bb4e4f 100644
--- a/src/dawn/tests/unittests/validation/ValidationTest.cpp
+++ b/src/dawn/tests/unittests/validation/ValidationTest.cpp
@@ -227,7 +227,7 @@
 void ValidationTest::WaitForAllOperations(const wgpu::Device& waitDevice) {
     bool done = false;
     waitDevice.GetQueue().OnSubmittedWorkDone(
-        0u, [](WGPUQueueWorkDoneStatus, void* userdata) { *static_cast<bool*>(userdata) = true; },
+        [](WGPUQueueWorkDoneStatus, void* userdata) { *static_cast<bool*>(userdata) = true; },
         &done);
 
     // Force the currently submitted operations to completed.
diff --git a/src/dawn/tests/unittests/wire/WireQueueTests.cpp b/src/dawn/tests/unittests/wire/WireQueueTests.cpp
index a169caa..bb369c5 100644
--- a/src/dawn/tests/unittests/wire/WireQueueTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireQueueTests.cpp
@@ -54,11 +54,10 @@
 
 // Test that a successful OnSubmittedWorkDone call is forwarded to the client.
 TEST_F(WireQueueTests, OnSubmittedWorkDoneSuccess) {
-    wgpuQueueOnSubmittedWorkDone(queue, 0u, ToMockQueueWorkDone, this);
-    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, 0u, _, _))
-        .WillOnce(InvokeWithoutArgs([&] {
-            api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Success);
-        }));
+    wgpuQueueOnSubmittedWorkDone(queue, ToMockQueueWorkDone, this);
+    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, _, _)).WillOnce(InvokeWithoutArgs([&] {
+        api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Success);
+    }));
     FlushClient();
 
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_Success, this)).Times(1);
@@ -67,11 +66,10 @@
 
 // Test that an error OnSubmittedWorkDone call is forwarded as an error to the client.
 TEST_F(WireQueueTests, OnSubmittedWorkDoneError) {
-    wgpuQueueOnSubmittedWorkDone(queue, 0u, ToMockQueueWorkDone, this);
-    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, 0u, _, _))
-        .WillOnce(InvokeWithoutArgs([&] {
-            api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
-        }));
+    wgpuQueueOnSubmittedWorkDone(queue, ToMockQueueWorkDone, this);
+    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, _, _)).WillOnce(InvokeWithoutArgs([&] {
+        api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
+    }));
     FlushClient();
 
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_Error, this)).Times(1);
@@ -81,11 +79,10 @@
 // Test registering an OnSubmittedWorkDone then disconnecting the wire calls the callback with
 // device loss
 TEST_F(WireQueueTests, OnSubmittedWorkDoneBeforeDisconnect) {
-    wgpuQueueOnSubmittedWorkDone(queue, 0u, ToMockQueueWorkDone, this);
-    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, 0u, _, _))
-        .WillOnce(InvokeWithoutArgs([&] {
-            api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
-        }));
+    wgpuQueueOnSubmittedWorkDone(queue, ToMockQueueWorkDone, this);
+    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, _, _)).WillOnce(InvokeWithoutArgs([&] {
+        api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
+    }));
     FlushClient();
 
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_DeviceLost, this))
@@ -100,7 +97,7 @@
 
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_DeviceLost, this))
         .Times(1);
-    wgpuQueueOnSubmittedWorkDone(queue, 0u, ToMockQueueWorkDone, this);
+    wgpuQueueOnSubmittedWorkDone(queue, ToMockQueueWorkDone, this);
 }
 
 // Hack to pass in test context into user callback
@@ -120,19 +117,17 @@
 
     // Send the requests a number of times
     for (size_t i = 0; i < testData->numRequests; i++) {
-        wgpuQueueOnSubmittedWorkDone(*(testData->pTestQueue), 0u, ToMockQueueWorkDone,
-                                     testData->pTest);
+        wgpuQueueOnSubmittedWorkDone(*(testData->pTestQueue), ToMockQueueWorkDone, testData->pTest);
     }
 }
 
 // Test that requests inside user callbacks before disconnect are called
 TEST_F(WireQueueTests, OnSubmittedWorkDoneInsideCallbackBeforeDisconnect) {
     TestData testData = {this, &queue, 10};
-    wgpuQueueOnSubmittedWorkDone(queue, 0u, ToMockQueueWorkDoneWithNewRequests, &testData);
-    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, 0u, _, _))
-        .WillOnce(InvokeWithoutArgs([&] {
-            api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
-        }));
+    wgpuQueueOnSubmittedWorkDone(queue, ToMockQueueWorkDoneWithNewRequests, &testData);
+    EXPECT_CALL(api, OnQueueOnSubmittedWorkDone(apiQueue, _, _)).WillOnce(InvokeWithoutArgs([&] {
+        api.CallQueueOnSubmittedWorkDoneCallback(apiQueue, WGPUQueueWorkDoneStatus_Error);
+    }));
     FlushClient();
 
     EXPECT_CALL(*mockQueueWorkDoneCallback, Call(WGPUQueueWorkDoneStatus_DeviceLost, this))
diff --git a/src/dawn/wire/client/Queue.cpp b/src/dawn/wire/client/Queue.cpp
index 3d2bc05..6b6d988 100644
--- a/src/dawn/wire/client/Queue.cpp
+++ b/src/dawn/wire/client/Queue.cpp
@@ -67,9 +67,7 @@
            WireResult::Success;
 }
 
-void Queue::OnSubmittedWorkDone(uint64_t signalValue,
-                                WGPUQueueWorkDoneCallback callback,
-                                void* userdata) {
+void Queue::OnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata) {
     WGPUQueueWorkDoneCallbackInfo callbackInfo = {};
     callbackInfo.mode = WGPUCallbackMode_AllowSpontaneous;
     callbackInfo.callback = callback;
@@ -91,7 +89,6 @@
 
     QueueOnSubmittedWorkDoneCmd cmd;
     cmd.queueId = GetWireId();
-    cmd.signalValue = 0;
     cmd.future = {futureIDInternal};
 
     client->SerializeCommand(cmd);
diff --git a/src/dawn/wire/client/Queue.h b/src/dawn/wire/client/Queue.h
index 3a36ee3..8e55668 100644
--- a/src/dawn/wire/client/Queue.h
+++ b/src/dawn/wire/client/Queue.h
@@ -31,9 +31,7 @@
     bool OnWorkDoneCallback(WGPUFuture future, WGPUQueueWorkDoneStatus status);
 
     // Dawn API
-    void OnSubmittedWorkDone(uint64_t signalValue,
-                             WGPUQueueWorkDoneCallback callback,
-                             void* userdata);
+    void OnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata);
     WGPUFuture OnSubmittedWorkDoneF(const WGPUQueueWorkDoneCallbackInfo& callbackInfo);
     void WriteBuffer(WGPUBuffer cBuffer, uint64_t bufferOffset, const void* data, size_t size);
     void WriteTexture(const WGPUImageCopyTexture* destination,
diff --git a/src/dawn/wire/server/ServerQueue.cpp b/src/dawn/wire/server/ServerQueue.cpp
index 1b16f92..4da1803 100644
--- a/src/dawn/wire/server/ServerQueue.cpp
+++ b/src/dawn/wire/server/ServerQueue.cpp
@@ -28,15 +28,13 @@
     SerializeCommand(cmd);
 }
 
-WireResult Server::DoQueueOnSubmittedWorkDone(Known<WGPUQueue> queue,
-                                              uint64_t signalValue,
-                                              WGPUFuture future) {
+WireResult Server::DoQueueOnSubmittedWorkDone(Known<WGPUQueue> queue, WGPUFuture future) {
     auto userdata = MakeUserdata<QueueWorkDoneUserdata>();
     userdata->queue = queue.AsHandle();
     userdata->future = future;
 
-    mProcs.queueOnSubmittedWorkDone(queue->handle, signalValue,
-                                    ForwardToServer<&Server::OnQueueWorkDone>, userdata.release());
+    mProcs.queueOnSubmittedWorkDone(queue->handle, ForwardToServer<&Server::OnQueueWorkDone>,
+                                    userdata.release());
     return WireResult::Success;
 }