Capture: Emit More Commands from CommandBufferWGPU

These are the remaining "easy" command from CommandBuffer
encoder.

Bug: 440123094
Parent-Id: I065d82a92046568fbe5183daf1832c37d532e405
Change-Id: Id7b06fa51bdd66174df1881f6102e32ff55c594f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/258498
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Gregg Tavares <gman@chromium.org>
diff --git a/src/dawn/native/webgpu/CommandBufferWGPU.cpp b/src/dawn/native/webgpu/CommandBufferWGPU.cpp
index b2ffdd8..d15d5ee 100644
--- a/src/dawn/native/webgpu/CommandBufferWGPU.cpp
+++ b/src/dawn/native/webgpu/CommandBufferWGPU.cpp
@@ -142,6 +142,56 @@
                 wgpu.commandEncoderCopyTextureToTexture(innerEncoder, &source, &destination, &size);
                 break;
             }
+            case Command::ClearBuffer: {
+                auto cmd = mCommands.NextCommand<ClearBufferCmd>();
+                wgpu.commandEncoderClearBuffer(
+                    innerEncoder, ToBackend(cmd->buffer)->GetInnerHandle(), cmd->offset, cmd->size);
+                break;
+            }
+            case Command::ResolveQuerySet: {
+                auto cmd = mCommands.NextCommand<ResolveQuerySetCmd>();
+                // TODO(crbug.com/440123094): remove nullptr when GetInnerHandle is implemented for
+                // QuerySetWGPU
+                wgpu.commandEncoderResolveQuerySet(
+                    innerEncoder, nullptr /*ToBackend(cmd->querySet)->GetInnerHandle()*/,
+                    cmd->firstQuery, cmd->queryCount, ToBackend(cmd->destination)->GetInnerHandle(),
+                    cmd->destinationOffset);
+                break;
+            }
+            case Command::WriteTimestamp: {
+                auto cmd = mCommands.NextCommand<WriteTimestampCmd>();
+                // TODO(crbug.com/440123094): remove nullptr when GetInnerHandle is implemented for
+                // QuerySetWGPU
+                wgpu.commandEncoderWriteTimestamp(
+                    innerEncoder, nullptr /*ToBackend(cmd->querySet)->GetInnerHandle()*/,
+                    cmd->queryIndex);
+                break;
+            }
+            case Command::InsertDebugMarker: {
+                auto cmd = mCommands.NextCommand<InsertDebugMarkerCmd>();
+                char* label = mCommands.NextData<char>(cmd->length + 1);
+                wgpu.commandEncoderInsertDebugMarker(innerEncoder, {label, cmd->length});
+                break;
+            }
+            case Command::PopDebugGroup: {
+                mCommands.NextCommand<PopDebugGroupCmd>();
+                wgpu.commandEncoderPopDebugGroup(innerEncoder);
+                break;
+            }
+            case Command::PushDebugGroup: {
+                auto cmd = mCommands.NextCommand<PushDebugGroupCmd>();
+                char* label = mCommands.NextData<char>(cmd->length + 1);
+                wgpu.commandEncoderPushDebugGroup(innerEncoder, {label, cmd->length});
+                break;
+            }
+            case Command::WriteBuffer: {
+                auto cmd = mCommands.NextCommand<WriteBufferCmd>();
+                auto data = mCommands.NextData<uint8_t>(cmd->size);
+                wgpu.commandEncoderWriteBuffer(innerEncoder,
+                                               ToBackend(cmd->buffer)->GetInnerHandle(),
+                                               cmd->offset, data, cmd->size);
+                break;
+            }
             default:
                 DAWN_UNREACHABLE();
         }