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();
}