Add error context on Queue::API* methods
Fixed: dawn:1747
Change-Id: Icc8f4dbc6fcf69c117f880b5ef9d54cf256f7062
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/131080
Reviewed-by: Brandon Jones <toji@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
diff --git a/src/dawn/native/Queue.cpp b/src/dawn/native/Queue.cpp
index 18039d0..5499899 100644
--- a/src/dawn/native/Queue.cpp
+++ b/src/dawn/native/Queue.cpp
@@ -20,6 +20,7 @@
#include <vector>
#include "dawn/common/Constants.h"
+#include "dawn/common/ityp_span.h"
#include "dawn/native/Buffer.h"
#include "dawn/native/CommandBuffer.h"
#include "dawn/native/CommandEncoder.h"
@@ -286,7 +287,9 @@
uint64_t bufferOffset,
const void* data,
size_t size) {
- DAWN_UNUSED(GetDevice()->ConsumedError(WriteBuffer(buffer, bufferOffset, data, size)));
+ DAWN_UNUSED(GetDevice()->ConsumedError(WriteBuffer(buffer, bufferOffset, data, size),
+ "calling %s.WriteBuffer(%s, %s, (%d bytes))", this,
+ buffer, bufferOffset, size));
}
MaybeError QueueBase::WriteBuffer(BufferBase* buffer,
@@ -328,7 +331,9 @@
const TextureDataLayout* dataLayout,
const Extent3D* writeSize) {
DAWN_UNUSED(GetDevice()->ConsumedError(
- WriteTextureInternal(destination, data, dataSize, *dataLayout, writeSize)));
+ WriteTextureInternal(destination, data, dataSize, *dataLayout, writeSize),
+ "calling %s.WriteTexture(%s, (%s bytes), %s, %s)", destination, dataSize, dataLayout,
+ writeSize));
}
MaybeError QueueBase::WriteTextureInternal(const ImageCopyTexture* destination,
@@ -547,7 +552,9 @@
TRACE_EVENT0(device->GetPlatform(), General, "Queue::Submit");
if (device->IsValidationEnabled()) {
- if (device->ConsumedError(ValidateSubmit(commandCount, commands))) {
+ if (device->ConsumedError(
+ ValidateSubmit(commandCount, commands), "calling %s.Submit(%s)", this,
+ ityp::span<uint32_t, CommandBufferBase* const>(commands, commandCount))) {
return;
}
}
diff --git a/src/dawn/native/webgpu_absl_format.h b/src/dawn/native/webgpu_absl_format.h
index fa1d566..1b3bdcb 100644
--- a/src/dawn/native/webgpu_absl_format.h
+++ b/src/dawn/native/webgpu_absl_format.h
@@ -19,6 +19,11 @@
#include "dawn/native/dawn_platform.h"
#include "dawn/native/webgpu_absl_format_autogen.h"
+namespace ityp {
+template <typename Index, typename Value>
+class span;
+}
+
namespace dawn::native {
//
@@ -135,6 +140,25 @@
const absl::FormatConversionSpec& spec,
absl::FormatSink* s);
+template <typename I, typename T>
+absl::FormatConvertResult<absl::FormatConversionCharSet::kString> AbslFormatConvert(
+ const ityp::span<I, T>& values,
+ const absl::FormatConversionSpec& spec,
+ absl::FormatSink* s) {
+ s->Append("[");
+ bool first = true;
+ for (const auto& v : values) {
+ if (!first) {
+ s->Append(absl::StrFormat(", %s", v));
+ } else {
+ s->Append(absl::StrFormat("%s", v));
+ }
+ first = false;
+ }
+ s->Append("]");
+ return {true};
+}
+
} // namespace dawn::native
#endif // SRC_DAWN_NATIVE_WEBGPU_ABSL_FORMAT_H_