Use WireResult instead of bool in various autogen places.
Change-Id: I29c3baec5b67fdd25781701432771592f62dfa50
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/173565
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/generator/templates/dawn/wire/client/ClientHandlers.cpp b/generator/templates/dawn/wire/client/ClientHandlers.cpp
index 53a8788..5276428 100644
--- a/generator/templates/dawn/wire/client/ClientHandlers.cpp
+++ b/generator/templates/dawn/wire/client/ClientHandlers.cpp
@@ -32,13 +32,9 @@
namespace dawn::wire::client {
{% for command in cmd_records["return command"] %}
- bool Client::Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer) {
+ WireResult Client::Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer) {
Return{{command.name.CamelCase()}}Cmd cmd;
- WireResult deserializeResult = cmd.Deserialize(deserializeBuffer, &mWireCommandAllocator);
-
- if (deserializeResult == WireResult::FatalError) {
- return false;
- }
+ WIRE_TRY(cmd.Deserialize(deserializeBuffer, &mWireCommandAllocator));
{% for member in command.members if member.handle_type %}
{% set Type = member.handle_type.name.CamelCase() %}
@@ -82,19 +78,17 @@
ReturnWireCmd cmdId = *static_cast<const volatile ReturnWireCmd*>(static_cast<const volatile void*>(
deserializeBuffer.Buffer() + sizeof(CmdHeader)));
- bool success = false;
+ WireResult result = WireResult::FatalError;
switch (cmdId) {
{% for command in cmd_records["return command"] %}
{% set Suffix = command.name.CamelCase() %}
case ReturnWireCmd::{{Suffix}}:
- success = Handle{{Suffix}}(&deserializeBuffer);
+ result = Handle{{Suffix}}(&deserializeBuffer);
break;
{% endfor %}
- default:
- success = false;
}
- if (!success) {
+ if (result != WireResult::Success) {
return nullptr;
}
mWireCommandAllocator.Reset();
diff --git a/generator/templates/dawn/wire/client/ClientPrototypes.inc b/generator/templates/dawn/wire/client/ClientPrototypes.inc
index 1f554a7..12907e1 100644
--- a/generator/templates/dawn/wire/client/ClientPrototypes.inc
+++ b/generator/templates/dawn/wire/client/ClientPrototypes.inc
@@ -27,12 +27,12 @@
//* Return command handlers
{% for command in cmd_records["return command"] %}
- bool Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer);
+ WireResult Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer);
{% endfor %}
//* Return command doers
{% for command in cmd_records["return command"] %}
- bool Do{{command.name.CamelCase()}}(
+ WireResult Do{{command.name.CamelCase()}}(
{%- for member in command.members -%}
{%- if member.handle_type -%}
{{as_wireType(member.handle_type)}} {{as_varName(member.name)}}
diff --git a/src/dawn/wire/client/Adapter.cpp b/src/dawn/wire/client/Adapter.cpp
index fcb3965..3acb249 100644
--- a/src/dawn/wire/client/Adapter.cpp
+++ b/src/dawn/wire/client/Adapter.cpp
@@ -277,16 +277,16 @@
return {futureIDInternal};
}
-bool Client::DoAdapterRequestDeviceCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPURequestDeviceStatus status,
- const char* message,
- const WGPUSupportedLimits* limits,
- uint32_t featuresCount,
- const WGPUFeatureName* features) {
+WireResult Client::DoAdapterRequestDeviceCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPURequestDeviceStatus status,
+ const char* message,
+ const WGPUSupportedLimits* limits,
+ uint32_t featuresCount,
+ const WGPUFeatureName* features) {
return GetEventManager(eventManager)
- .SetFutureReady<RequestDeviceEvent>(future.id, status, message, limits,
- featuresCount, features) == WireResult::Success;
+ .SetFutureReady<RequestDeviceEvent>(future.id, status, message, limits, featuresCount,
+ features);
}
WGPUInstance Adapter::GetInstance() const {
diff --git a/src/dawn/wire/client/Buffer.cpp b/src/dawn/wire/client/Buffer.cpp
index d602009..af40829 100644
--- a/src/dawn/wire/client/Buffer.cpp
+++ b/src/dawn/wire/client/Buffer.cpp
@@ -389,14 +389,14 @@
return {futureIDInternal};
}
-bool Client::DoBufferMapAsyncCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPUBufferMapAsyncStatus status,
- uint64_t readDataUpdateInfoLength,
- const uint8_t* readDataUpdateInfo) {
+WireResult Client::DoBufferMapAsyncCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPUBufferMapAsyncStatus status,
+ uint64_t readDataUpdateInfoLength,
+ const uint8_t* readDataUpdateInfo) {
return GetEventManager(eventManager)
- .SetFutureReady<Buffer::MapAsyncEvent>(future.id, status, readDataUpdateInfoLength,
- readDataUpdateInfo) == WireResult::Success;
+ .SetFutureReady<Buffer::MapAsyncEvent>(future.id, status, readDataUpdateInfoLength,
+ readDataUpdateInfo);
}
void* Buffer::GetMappedRange(size_t offset, size_t size) {
diff --git a/src/dawn/wire/client/ClientDoers.cpp b/src/dawn/wire/client/ClientDoers.cpp
index c3f49ed4..4f0b053 100644
--- a/src/dawn/wire/client/ClientDoers.cpp
+++ b/src/dawn/wire/client/ClientDoers.cpp
@@ -33,9 +33,9 @@
namespace dawn::wire::client {
-bool Client::DoDeviceUncapturedErrorCallback(Device* device,
- WGPUErrorType errorType,
- const char* message) {
+WireResult Client::DoDeviceUncapturedErrorCallback(Device* device,
+ WGPUErrorType errorType,
+ const char* message) {
switch (errorType) {
case WGPUErrorType_NoError:
case WGPUErrorType_Validation:
@@ -45,58 +45,64 @@
case WGPUErrorType_DeviceLost:
break;
default:
- return false;
+ return WireResult::FatalError;
}
if (device == nullptr) {
// The device might have been deleted or recreated so this isn't an error.
- return true;
+ return WireResult::Success;
}
device->HandleError(errorType, message);
- return true;
+ return WireResult::Success;
}
-bool Client::DoDeviceLoggingCallback(Device* device,
- WGPULoggingType loggingType,
- const char* message) {
- if (device == nullptr) {
- // The device might have been deleted or recreated so this isn't an error.
- return true;
- }
- device->HandleLogging(loggingType, message);
- return true;
-}
-
-bool Client::DoDeviceLostCallback(Device* device,
- WGPUDeviceLostReason reason,
- char const* message) {
- if (device == nullptr) {
- // The device might have been deleted or recreated so this isn't an error.
- return true;
- }
- device->HandleDeviceLost(reason, message);
- return true;
-}
-
-bool Client::DoDevicePopErrorScopeCallback(Device* device,
- uint64_t requestSerial,
- WGPUErrorType errorType,
+WireResult Client::DoDeviceLoggingCallback(Device* device,
+ WGPULoggingType loggingType,
const char* message) {
if (device == nullptr) {
// The device might have been deleted or recreated so this isn't an error.
- return true;
+ return WireResult::Success;
}
- return device->OnPopErrorScopeCallback(requestSerial, errorType, message);
+ device->HandleLogging(loggingType, message);
+ return WireResult::Success;
}
-bool Client::DoShaderModuleGetCompilationInfoCallback(ShaderModule* shaderModule,
- uint64_t requestSerial,
- WGPUCompilationInfoRequestStatus status,
- const WGPUCompilationInfo* info) {
+WireResult Client::DoDeviceLostCallback(Device* device,
+ WGPUDeviceLostReason reason,
+ char const* message) {
+ if (device == nullptr) {
+ // The device might have been deleted or recreated so this isn't an error.
+ return WireResult::Success;
+ }
+ device->HandleDeviceLost(reason, message);
+ return WireResult::Success;
+}
+
+WireResult Client::DoDevicePopErrorScopeCallback(Device* device,
+ uint64_t requestSerial,
+ WGPUErrorType errorType,
+ const char* message) {
+ if (device == nullptr) {
+ // The device might have been deleted or recreated so this isn't an error.
+ return WireResult::Success;
+ }
+ if (device->OnPopErrorScopeCallback(requestSerial, errorType, message)) {
+ return WireResult::Success;
+ }
+ return WireResult::FatalError;
+}
+
+WireResult Client::DoShaderModuleGetCompilationInfoCallback(ShaderModule* shaderModule,
+ uint64_t requestSerial,
+ WGPUCompilationInfoRequestStatus status,
+ const WGPUCompilationInfo* info) {
// The shader module might have been deleted or recreated so this isn't an error.
if (shaderModule == nullptr) {
- return true;
+ return WireResult::Success;
}
- return shaderModule->GetCompilationInfoCallback(requestSerial, status, info);
+ if (shaderModule->GetCompilationInfoCallback(requestSerial, status, info)) {
+ return WireResult::Success;
+ }
+ return WireResult::FatalError;
}
} // namespace dawn::wire::client
diff --git a/src/dawn/wire/client/Device.cpp b/src/dawn/wire/client/Device.cpp
index 1b90752..68cf129 100644
--- a/src/dawn/wire/client/Device.cpp
+++ b/src/dawn/wire/client/Device.cpp
@@ -341,13 +341,12 @@
descriptor, callbackInfo);
}
-bool Client::DoDeviceCreateComputePipelineAsyncCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPUCreatePipelineAsyncStatus status,
- const char* message) {
+WireResult Client::DoDeviceCreateComputePipelineAsyncCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPUCreatePipelineAsyncStatus status,
+ const char* message) {
return GetEventManager(eventManager)
- .SetFutureReady<CreateComputePipelineEvent>(future.id, status, message) ==
- WireResult::Success;
+ .SetFutureReady<CreateComputePipelineEvent>(future.id, status, message);
}
void Device::CreateRenderPipelineAsync(WGPURenderPipelineDescriptor const* descriptor,
@@ -367,13 +366,12 @@
descriptor, callbackInfo);
}
-bool Client::DoDeviceCreateRenderPipelineAsyncCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPUCreatePipelineAsyncStatus status,
- const char* message) {
+WireResult Client::DoDeviceCreateRenderPipelineAsyncCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPUCreatePipelineAsyncStatus status,
+ const char* message) {
return GetEventManager(eventManager)
- .SetFutureReady<CreateRenderPipelineEvent>(future.id, status, message) ==
- WireResult::Success;
+ .SetFutureReady<CreateRenderPipelineEvent>(future.id, status, message);
}
} // namespace dawn::wire::client
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp
index 8f52947..76a9128 100644
--- a/src/dawn/wire/client/Instance.cpp
+++ b/src/dawn/wire/client/Instance.cpp
@@ -218,17 +218,17 @@
return {futureIDInternal};
}
-bool Client::DoInstanceRequestAdapterCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPURequestAdapterStatus status,
- const char* message,
- const WGPUAdapterProperties* properties,
- const WGPUSupportedLimits* limits,
- uint32_t featuresCount,
- const WGPUFeatureName* features) {
+WireResult Client::DoInstanceRequestAdapterCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPURequestAdapterStatus status,
+ const char* message,
+ const WGPUAdapterProperties* properties,
+ const WGPUSupportedLimits* limits,
+ uint32_t featuresCount,
+ const WGPUFeatureName* features) {
return GetEventManager(eventManager)
- .SetFutureReady<RequestAdapterEvent>(future.id, status, message, properties, limits,
- featuresCount, features) == WireResult::Success;
+ .SetFutureReady<RequestAdapterEvent>(future.id, status, message, properties, limits,
+ featuresCount, features);
}
void Instance::ProcessEvents() {
diff --git a/src/dawn/wire/client/Queue.cpp b/src/dawn/wire/client/Queue.cpp
index f589f12..18f696d 100644
--- a/src/dawn/wire/client/Queue.cpp
+++ b/src/dawn/wire/client/Queue.cpp
@@ -81,11 +81,10 @@
return ObjectType::Queue;
}
-bool Client::DoQueueWorkDoneCallback(ObjectHandle eventManager,
- WGPUFuture future,
- WGPUQueueWorkDoneStatus status) {
- return GetEventManager(eventManager).SetFutureReady<WorkDoneEvent>(future.id, status) ==
- WireResult::Success;
+WireResult Client::DoQueueWorkDoneCallback(ObjectHandle eventManager,
+ WGPUFuture future,
+ WGPUQueueWorkDoneStatus status) {
+ return GetEventManager(eventManager).SetFutureReady<WorkDoneEvent>(future.id, status);
}
void Queue::OnSubmittedWorkDone(WGPUQueueWorkDoneCallback callback, void* userdata) {