Use -Werror on GCC/clang CMake builds for Dawn.
This will cause an error when a wgpu::FeatureName is added
without updating dawn.node at the same time.
Bug: None
Change-Id: I27b97853e425979622a907cc06e58697a8eb7540
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/183921
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e29093..429ed22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -382,6 +382,7 @@
-fno-exceptions
-fno-rtti
+ -Werror
-Wno-deprecated-builtins
-Wno-unknown-warning-option
-Wno-switch-default
diff --git a/src/dawn/node/binding/Converter.cpp b/src/dawn/node/binding/Converter.cpp
index 1c05f83..e81591a 100644
--- a/src/dawn/node/binding/Converter.cpp
+++ b/src/dawn/node/binding/Converter.cpp
@@ -1519,6 +1519,7 @@
case wgpu::FeatureName::PixelLocalStorageCoherent:
case wgpu::FeatureName::PixelLocalStorageNonCoherent:
case wgpu::FeatureName::R8UnormStorage:
+ case wgpu::FeatureName::ShaderModuleCompilationOptions:
case wgpu::FeatureName::SharedBufferMemoryD3D12Resource:
case wgpu::FeatureName::SharedFenceDXGISharedHandle:
case wgpu::FeatureName::SharedFenceMTLSharedEvent:
@@ -1538,6 +1539,7 @@
case wgpu::FeatureName::SurfaceCapabilities:
case wgpu::FeatureName::TransientAttachments:
case wgpu::FeatureName::Undefined:
+ case wgpu::FeatureName::YCbCrVulkanSamplers:
return false;
}
return false;
diff --git a/src/dawn/node/binding/GPUDevice.cpp b/src/dawn/node/binding/GPUDevice.cpp
index b7198fc..4735f42 100644
--- a/src/dawn/node/binding/GPUDevice.cpp
+++ b/src/dawn/node/binding/GPUDevice.cpp
@@ -176,9 +176,13 @@
auto r = interop::GPUDeviceLostReason::kDestroyed;
switch (reason) {
case WGPUDeviceLostReason_Force32:
+ // This case never happens with wgpu::Device::SetDeviceCallback, and is specific to
+ // wgpu::DeviceDescriptor::deviceLostCallback.
+ case WGPUDeviceLostReason_FailedCreation:
UNREACHABLE("WGPUDeviceLostReason_Force32");
break;
case WGPUDeviceLostReason_Destroyed:
+ case WGPUDeviceLostReason_InstanceDropped:
case WGPUDeviceLostReason_Undefined:
r = interop::GPUDeviceLostReason::kDestroyed;
break;