diff --git a/.clang-format b/.clang-format
index bc75cdc..4d9e9c8 100644
--- a/.clang-format
+++ b/.clang-format
@@ -10,7 +10,6 @@
 ObjCBlockIndentWidth: 4
 AccessModifierOffset: -2
 
-# Nested namespaces are C++17, fake them by compacting namespaces for now.
 CompactNamespaces: true
 
 # This should result in only one indentation level with compacted namespaces
diff --git a/generator/templates/dawn_wire/client/ApiObjects.h b/generator/templates/dawn_wire/client/ApiObjects.h
index bbf9817..b010ad9 100644
--- a/generator/templates/dawn_wire/client/ApiObjects.h
+++ b/generator/templates/dawn_wire/client/ApiObjects.h
@@ -18,7 +18,7 @@
 #include "dawn_wire/ObjectType_autogen.h"
 #include "dawn_wire/client/ObjectBase.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     template <typename T>
     struct ObjectTypeToTypeEnum {
@@ -48,6 +48,6 @@
         };
 
     {% endfor %}
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_APIOBJECTS_AUTOGEN_H_
diff --git a/generator/templates/dawn_wire/client/ApiProcs.cpp b/generator/templates/dawn_wire/client/ApiProcs.cpp
index 71201ec..fae6cc0 100644
--- a/generator/templates/dawn_wire/client/ApiProcs.cpp
+++ b/generator/templates/dawn_wire/client/ApiProcs.cpp
@@ -21,7 +21,7 @@
 #include <string>
 #include <vector>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     //* Outputs an rvalue that's the number of elements a pointer member points to.
     {% macro member_length(member, accessor) -%}
@@ -175,4 +175,4 @@
     const {{Prefix}}ProcTable& GetProcs() {
         return gProcTable;
     }
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/generator/templates/dawn_wire/client/ClientBase.h b/generator/templates/dawn_wire/client/ClientBase.h
index a915840..4b59b4f 100644
--- a/generator/templates/dawn_wire/client/ClientBase.h
+++ b/generator/templates/dawn_wire/client/ClientBase.h
@@ -20,7 +20,7 @@
 #include "dawn_wire/client/ApiObjects.h"
 #include "dawn_wire/client/ObjectAllocator.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class ClientBase : public ChunkedCommandHandler, public ObjectIdProvider {
       public:
@@ -69,6 +69,6 @@
         {% endfor %}
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_CLIENTBASE_AUTOGEN_H_
diff --git a/generator/templates/dawn_wire/client/ClientHandlers.cpp b/generator/templates/dawn_wire/client/ClientHandlers.cpp
index 13ac79c..25c0b4f 100644
--- a/generator/templates/dawn_wire/client/ClientHandlers.cpp
+++ b/generator/templates/dawn_wire/client/ClientHandlers.cpp
@@ -17,7 +17,7 @@
 
 #include <string>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
     {% for command in cmd_records["return command"] %}
         bool Client::Handle{{command.name.CamelCase()}}(DeserializeBuffer* deserializeBuffer) {
             Return{{command.name.CamelCase()}}Cmd cmd;
@@ -94,4 +94,4 @@
 
         return commands;
     }
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/generator/templates/dawn_wire/server/ServerBase.h b/generator/templates/dawn_wire/server/ServerBase.h
index eb0aab8..46ef629 100644
--- a/generator/templates/dawn_wire/server/ServerBase.h
+++ b/generator/templates/dawn_wire/server/ServerBase.h
@@ -22,7 +22,7 @@
 #include "dawn_wire/WireDeserializeAllocator.h"
 #include "dawn_wire/server/ObjectStorage.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     class ServerBase : public ChunkedCommandHandler, public ObjectIdResolver {
       public:
@@ -100,6 +100,6 @@
         {% endfor %}
     };
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
 
 #endif  // DAWNWIRE_SERVER_SERVERBASE_H_
diff --git a/generator/templates/dawn_wire/server/ServerDoers.cpp b/generator/templates/dawn_wire/server/ServerDoers.cpp
index a663956..5ccbb5f 100644
--- a/generator/templates/dawn_wire/server/ServerDoers.cpp
+++ b/generator/templates/dawn_wire/server/ServerDoers.cpp
@@ -15,7 +15,7 @@
 #include "common/Assert.h"
 #include "dawn_wire/server/Server.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
     //* Implementation of the command doers
     {% for command in cmd_records["command"] %}
         {% set type = command.derived_object %}
@@ -118,4 +118,4 @@
         }
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/generator/templates/dawn_wire/server/ServerHandlers.cpp b/generator/templates/dawn_wire/server/ServerHandlers.cpp
index ea3da6c..b853f6f 100644
--- a/generator/templates/dawn_wire/server/ServerHandlers.cpp
+++ b/generator/templates/dawn_wire/server/ServerHandlers.cpp
@@ -15,7 +15,7 @@
 #include "common/Assert.h"
 #include "dawn_wire/server/Server.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
     {% for command in cmd_records["command"] %}
         {% set method = command.derived_method %}
         {% set is_method = method != None %}
@@ -147,4 +147,4 @@
         return commands;
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/generator/templates/opengl/OpenGLFunctionsBase.cpp b/generator/templates/opengl/OpenGLFunctionsBase.cpp
index cc35dad..af76102 100644
--- a/generator/templates/opengl/OpenGLFunctionsBase.cpp
+++ b/generator/templates/opengl/OpenGLFunctionsBase.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/opengl/OpenGLFunctionsBase_autogen.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
 template<typename T>
 MaybeError OpenGLFunctionsBase::LoadProc(GetProcAddress getProc, T* memberProc, const char* name) {
@@ -67,4 +67,4 @@
     return {};
 }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/generator/templates/opengl/OpenGLFunctionsBase.h b/generator/templates/opengl/OpenGLFunctionsBase.h
index 2e16563..31272be 100644
--- a/generator/templates/opengl/OpenGLFunctionsBase.h
+++ b/generator/templates/opengl/OpenGLFunctionsBase.h
@@ -18,7 +18,7 @@
 #include "dawn_native/Error.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
     using GetProcAddress = void* (*) (const char*);
 
     struct OpenGLFunctionsBase {
@@ -40,6 +40,6 @@
         MaybeError LoadProc(GetProcAddress getProc, T* memberProc, const char* name);
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif // DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_
diff --git a/src/common/vulkan_platform.h b/src/common/vulkan_platform.h
index 9e4ea0c..7011e7b 100644
--- a/src/common/vulkan_platform.h
+++ b/src/common/vulkan_platform.h
@@ -65,7 +65,7 @@
 // One way to get the alignment inside structures of a type is to look at the alignment of it
 // wrapped in a structure. Hence VkSameHandleNativeWrappe
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace detail {
         template <typename T>
@@ -140,17 +140,16 @@
         return reinterpret_cast<HandleType*>(handle);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object)                                   \
     DAWN_DEFINE_NATIVE_NON_DISPATCHABLE_HANDLE(object)                              \
-    namespace dawn_native { namespace vulkan {                                      \
-            using object = detail::VkHandle<struct VkTag##object, ::object>;        \
-            static_assert(sizeof(object) == sizeof(uint64_t), "");                  \
-            static_assert(alignof(object) == detail::kUint64Alignment, "");         \
-            static_assert(sizeof(object) == sizeof(::object), "");                  \
-            static_assert(alignof(object) == detail::kNativeVkHandleAlignment, ""); \
-        }                                                                           \
+    namespace dawn_native::vulkan {                                      \
+        using object = detail::VkHandle<struct VkTag##object, ::object>;        \
+        static_assert(sizeof(object) == sizeof(uint64_t), "");                  \
+        static_assert(alignof(object) == detail::kUint64Alignment, "");         \
+        static_assert(sizeof(object) == sizeof(::object), "");                  \
+        static_assert(alignof(object) == detail::kNativeVkHandleAlignment, ""); \
     }  // namespace dawn_native::vulkan
 
 // Import additional parts of Vulkan that are supported on our architecture and preemptively include
diff --git a/src/dawn_native/CompilationMessages.h b/src/dawn_native/CompilationMessages.h
index d6edbe9..36db103 100644
--- a/src/dawn_native/CompilationMessages.h
+++ b/src/dawn_native/CompilationMessages.h
@@ -22,10 +22,10 @@
 #include <string>
 #include <vector>
 
-namespace tint { namespace diag {
+namespace tint::diag {
     class Diagnostic;
     class List;
-}}  // namespace tint::diag
+}  // namespace tint::diag
 
 namespace dawn_native {
 
diff --git a/src/dawn_native/d3d12/AdapterD3D12.cpp b/src/dawn_native/d3d12/AdapterD3D12.cpp
index df8ec50..e2182e7 100644
--- a/src/dawn_native/d3d12/AdapterD3D12.cpp
+++ b/src/dawn_native/d3d12/AdapterD3D12.cpp
@@ -24,7 +24,7 @@
 
 #include <sstream>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     Adapter::Adapter(Backend* backend, ComPtr<IDXGIAdapter3> hardwareAdapter)
         : AdapterBase(backend->GetInstance(), wgpu::BackendType::D3D12),
@@ -412,4 +412,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/AdapterD3D12.h b/src/dawn_native/d3d12/AdapterD3D12.h
index 4bb5a02..56b602f 100644
--- a/src/dawn_native/d3d12/AdapterD3D12.h
+++ b/src/dawn_native/d3d12/AdapterD3D12.h
@@ -21,7 +21,7 @@
 #include "dawn_native/d3d12/D3D12Info.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Backend;
 
@@ -61,6 +61,6 @@
         D3D12DeviceInfo mDeviceInfo = {};
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_ADAPTERD3D12_H_
diff --git a/src/dawn_native/d3d12/BackendD3D12.cpp b/src/dawn_native/d3d12/BackendD3D12.cpp
index 22d29c7..71a9ccf 100644
--- a/src/dawn_native/d3d12/BackendD3D12.cpp
+++ b/src/dawn_native/d3d12/BackendD3D12.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/D3D12Error.h"
 #include "dawn_native/d3d12/PlatformFunctions.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
 
@@ -207,4 +207,4 @@
         return backend;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BackendD3D12.h b/src/dawn_native/d3d12/BackendD3D12.h
index 17f77cc..e41fd7a 100644
--- a/src/dawn_native/d3d12/BackendD3D12.h
+++ b/src/dawn_native/d3d12/BackendD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class PlatformFunctions;
 
@@ -54,6 +54,6 @@
         ComPtr<IDxcValidator> mDxcValidator;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BACKENDD3D12_H_
diff --git a/src/dawn_native/d3d12/BindGroupD3D12.cpp b/src/dawn_native/d3d12/BindGroupD3D12.cpp
index 2082240..6c19488 100644
--- a/src/dawn_native/d3d12/BindGroupD3D12.cpp
+++ b/src/dawn_native/d3d12/BindGroupD3D12.cpp
@@ -23,7 +23,7 @@
 #include "dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // static
     ResultOrError<Ref<BindGroup>> BindGroup::Create(Device* device,
@@ -282,4 +282,4 @@
         return mDynamicStorageBufferLengths;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BindGroupD3D12.h b/src/dawn_native/d3d12/BindGroupD3D12.h
index b34b0d4..a0b8c7a 100644
--- a/src/dawn_native/d3d12/BindGroupD3D12.h
+++ b/src/dawn_native/d3d12/BindGroupD3D12.h
@@ -22,7 +22,7 @@
 #include "dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h"
 #include "dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
     class SamplerHeapCacheEntry;
@@ -63,6 +63,6 @@
 
         DynamicStorageBufferLengths mDynamicStorageBufferLengths;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BINDGROUPD3D12_H_
diff --git a/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp b/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp
index 761b8f7..527d41c 100644
--- a/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp
+++ b/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/SamplerHeapCacheD3D12.h"
 #include "dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     namespace {
         D3D12_DESCRIPTOR_RANGE_TYPE WGPUBindingInfoToDescriptorRangeType(
             const BindingInfo& bindingInfo) {
@@ -188,4 +188,4 @@
         return mSamplerDescriptorRanges;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BindGroupLayoutD3D12.h b/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
index abf6702..377d620 100644
--- a/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
+++ b/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
@@ -21,7 +21,7 @@
 #include "common/ityp_stack_vec.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class BindGroup;
     class CPUDescriptorHeapAllocation;
@@ -89,6 +89,6 @@
         StagingDescriptorAllocator* mViewAllocator = nullptr;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BINDGROUPLAYOUTD3D12_H_
diff --git a/src/dawn_native/d3d12/BufferD3D12.cpp b/src/dawn_native/d3d12/BufferD3D12.cpp
index a05eec0..4741f79 100644
--- a/src/dawn_native/d3d12/BufferD3D12.cpp
+++ b/src/dawn_native/d3d12/BufferD3D12.cpp
@@ -26,7 +26,7 @@
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         D3D12_RESOURCE_FLAGS D3D12ResourceFlags(wgpu::BufferUsage usage) {
@@ -490,4 +490,4 @@
 
         return {};
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BufferD3D12.h b/src/dawn_native/d3d12/BufferD3D12.h
index 8e9e01e..c5a7148 100644
--- a/src/dawn_native/d3d12/BufferD3D12.h
+++ b/src/dawn_native/d3d12/BufferD3D12.h
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/ResourceHeapAllocationD3D12.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class CommandRecordingContext;
     class Device;
@@ -86,6 +86,6 @@
         void* mMappedData = nullptr;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BUFFERD3D12_H_
diff --git a/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.cpp b/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.cpp
index d923985..bd71def 100644
--- a/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.cpp
+++ b/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.cpp
@@ -15,7 +15,7 @@
 #include "dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     CPUDescriptorHeapAllocation::CPUDescriptorHeapAllocation(
         D3D12_CPU_DESCRIPTOR_HANDLE baseDescriptor,
@@ -50,4 +50,4 @@
         mBaseDescriptor = {0};
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h b/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h
index 51ae2fd..9cff652 100644
--- a/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h
+++ b/src/dawn_native/d3d12/CPUDescriptorHeapAllocationD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // Wrapper for a handle into a CPU-only descriptor heap.
     class CPUDescriptorHeapAllocation {
@@ -42,6 +42,6 @@
         uint32_t mHeapIndex = -1;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_CPUDESCRIPTORHEAPALLOCATION_H_
diff --git a/src/dawn_native/d3d12/CommandAllocatorManager.cpp b/src/dawn_native/d3d12/CommandAllocatorManager.cpp
index c011feb..01891b8 100644
--- a/src/dawn_native/d3d12/CommandAllocatorManager.cpp
+++ b/src/dawn_native/d3d12/CommandAllocatorManager.cpp
@@ -20,7 +20,7 @@
 #include "common/Assert.h"
 #include "common/BitSetIterator.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     CommandAllocatorManager::CommandAllocatorManager(Device* device)
         : device(device), mAllocatorCount(0) {
@@ -69,4 +69,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CommandAllocatorManager.h b/src/dawn_native/d3d12/CommandAllocatorManager.h
index 3c12395..0ecdada 100644
--- a/src/dawn_native/d3d12/CommandAllocatorManager.h
+++ b/src/dawn_native/d3d12/CommandAllocatorManager.h
@@ -23,7 +23,7 @@
 
 #include <bitset>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -53,6 +53,6 @@
         SerialQueue<ExecutionSerial, IndexedCommandAllocator> mInFlightCommandAllocators;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMMANDALLOCATORMANAGER_H_
diff --git a/src/dawn_native/d3d12/CommandBufferD3D12.cpp b/src/dawn_native/d3d12/CommandBufferD3D12.cpp
index aa83abb..5365351 100644
--- a/src/dawn_native/d3d12/CommandBufferD3D12.cpp
+++ b/src/dawn_native/d3d12/CommandBufferD3D12.cpp
@@ -33,7 +33,7 @@
 #include "dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
 
@@ -1649,4 +1649,4 @@
         }
         return {};
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CommandBufferD3D12.h b/src/dawn_native/d3d12/CommandBufferD3D12.h
index 51dc527..50f28c6 100644
--- a/src/dawn_native/d3d12/CommandBufferD3D12.h
+++ b/src/dawn_native/d3d12/CommandBufferD3D12.h
@@ -22,7 +22,7 @@
     struct BeginRenderPassCmd;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class BindGroupStateTracker;
     class CommandRecordingContext;
@@ -52,6 +52,6 @@
                                     const RenderPassBuilder* renderPassBuilder) const;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMMANDBUFFERD3D12_H_
diff --git a/src/dawn_native/d3d12/CommandRecordingContext.cpp b/src/dawn_native/d3d12/CommandRecordingContext.cpp
index 8faa46e..ce7c22a 100644
--- a/src/dawn_native/d3d12/CommandRecordingContext.cpp
+++ b/src/dawn_native/d3d12/CommandRecordingContext.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/HeapD3D12.h"
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     void CommandRecordingContext::AddToSharedTextureList(Texture* texture) {
         ASSERT(IsOpen());
@@ -123,4 +123,4 @@
         mTempBuffers.emplace_back(tempBuffer);
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CommandRecordingContext.h b/src/dawn_native/d3d12/CommandRecordingContext.h
index 6c6dc37..75a8350 100644
--- a/src/dawn_native/d3d12/CommandRecordingContext.h
+++ b/src/dawn_native/d3d12/CommandRecordingContext.h
@@ -21,7 +21,7 @@
 
 #include <set>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     class CommandAllocatorManager;
     class Device;
     class Heap;
@@ -53,6 +53,6 @@
 
         std::vector<Ref<Buffer>> mTempBuffers;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMMANDRECORDINGCONTEXT_H_
diff --git a/src/dawn_native/d3d12/ComputePipelineD3D12.cpp b/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
index 82579f3..d50f210 100644
--- a/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
+++ b/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
@@ -22,7 +22,7 @@
 #include "dawn_native/d3d12/ShaderModuleD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     Ref<ComputePipeline> ComputePipeline::CreateUninitialized(
         Device* device,
@@ -102,4 +102,4 @@
         return ToBackend(GetDevice())->GetDispatchIndirectSignature();
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ComputePipelineD3D12.h b/src/dawn_native/d3d12/ComputePipelineD3D12.h
index ddf7476..3e14217 100644
--- a/src/dawn_native/d3d12/ComputePipelineD3D12.h
+++ b/src/dawn_native/d3d12/ComputePipelineD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -53,6 +53,6 @@
         ComPtr<ID3D12PipelineState> mPipelineState;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMPUTEPIPELINED3D12_H_
diff --git a/src/dawn_native/d3d12/D3D11on12Util.cpp b/src/dawn_native/d3d12/D3D11on12Util.cpp
index b8c28f6..0c526a0 100644
--- a/src/dawn_native/d3d12/D3D11on12Util.cpp
+++ b/src/dawn_native/d3d12/D3D11on12Util.cpp
@@ -21,7 +21,7 @@
 #include "common/Log.h"
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     void Flush11On12DeviceToAvoidLeaks(ComPtr<ID3D11On12Device> d3d11on12Device) {
         if (d3d11on12Device == nullptr) {
@@ -161,4 +161,4 @@
         return entry;
     }
 
-}}  // namespace dawn_native::d3d12
\ No newline at end of file
+}  // namespace dawn_native::d3d12
\ No newline at end of file
diff --git a/src/dawn_native/d3d12/D3D11on12Util.h b/src/dawn_native/d3d12/D3D11on12Util.h
index 91db081..ab622f0 100644
--- a/src/dawn_native/d3d12/D3D11on12Util.h
+++ b/src/dawn_native/d3d12/D3D11on12Util.h
@@ -25,7 +25,7 @@
 struct ID3D11On12Device;
 struct IDXGIKeyedMutex;
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // Wraps 11 wrapped resources in a cache.
     class D3D11on12ResourceCacheEntry : public RefCounted {
@@ -84,6 +84,6 @@
         Cache mCache;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D11ON12UTIL_H_
diff --git a/src/dawn_native/d3d12/D3D12Backend.cpp b/src/dawn_native/d3d12/D3D12Backend.cpp
index 35baa1b..e6ce0f6 100644
--- a/src/dawn_native/d3d12/D3D12Backend.cpp
+++ b/src/dawn_native/d3d12/D3D12Backend.cpp
@@ -26,7 +26,7 @@
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     ComPtr<ID3D12Device> GetD3D12Device(WGPUDevice device) {
         return ToBackend(FromAPI(device))->GetD3D12Device();
@@ -178,4 +178,4 @@
     AdapterDiscoveryOptions::AdapterDiscoveryOptions(ComPtr<IDXGIAdapter> adapter)
         : AdapterDiscoveryOptionsBase(WGPUBackendType_D3D12), dxgiAdapter(std::move(adapter)) {
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/D3D12Error.cpp b/src/dawn_native/d3d12/D3D12Error.cpp
index efc9fe0..914ff23 100644
--- a/src/dawn_native/d3d12/D3D12Error.cpp
+++ b/src/dawn_native/d3d12/D3D12Error.cpp
@@ -18,7 +18,7 @@
 #include <sstream>
 #include <string>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     MaybeError CheckHRESULTImpl(HRESULT result, const char* context) {
         if (DAWN_LIKELY(SUCCEEDED(result))) {
             return {};
@@ -48,4 +48,4 @@
         return CheckHRESULTImpl(result, context);
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/D3D12Error.h b/src/dawn_native/d3d12/D3D12Error.h
index ade06fe..6d01c9e 100644
--- a/src/dawn_native/d3d12/D3D12Error.h
+++ b/src/dawn_native/d3d12/D3D12Error.h
@@ -19,7 +19,7 @@
 #include "dawn_native/Error.h"
 #include "dawn_native/ErrorInjector.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     constexpr HRESULT E_FAKE_ERROR_FOR_TESTING = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xFF);
     constexpr HRESULT E_FAKE_OUTOFMEMORY_ERROR_FOR_TESTING =
@@ -40,6 +40,6 @@
                             E_FAKE_ERROR_FOR_TESTING),                      \
         contextIn)
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_D3D12ERROR_H_
diff --git a/src/dawn_native/d3d12/D3D12Info.cpp b/src/dawn_native/d3d12/D3D12Info.cpp
index d7a0f5e..3f10b11 100644
--- a/src/dawn_native/d3d12/D3D12Info.cpp
+++ b/src/dawn_native/d3d12/D3D12Info.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/D3D12Error.h"
 #include "dawn_native/d3d12/PlatformFunctions.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     ResultOrError<D3D12DeviceInfo> GatherDeviceInfo(const Adapter& adapter) {
         D3D12DeviceInfo info = {};
@@ -119,4 +119,4 @@
         return std::move(info);
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/D3D12Info.h b/src/dawn_native/d3d12/D3D12Info.h
index a719595..b8c7c0b 100644
--- a/src/dawn_native/d3d12/D3D12Info.h
+++ b/src/dawn_native/d3d12/D3D12Info.h
@@ -19,7 +19,7 @@
 #include "dawn_native/PerStage.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Adapter;
 
@@ -36,6 +36,6 @@
     };
 
     ResultOrError<D3D12DeviceInfo> GatherDeviceInfo(const Adapter& adapter);
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_D3D12INFO_H_
diff --git a/src/dawn_native/d3d12/DeviceD3D12.cpp b/src/dawn_native/d3d12/DeviceD3D12.cpp
index 94697e2..7dd2a53 100644
--- a/src/dawn_native/d3d12/DeviceD3D12.cpp
+++ b/src/dawn_native/d3d12/DeviceD3D12.cpp
@@ -44,7 +44,7 @@
 
 #include <sstream>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // TODO(dawn:155): Figure out these values.
     static constexpr uint16_t kShaderVisibleDescriptorHeapSize = 1024;
@@ -742,4 +742,4 @@
         return ToBackend(computePipeline)->UsesNumWorkgroups();
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/DeviceD3D12.h b/src/dawn_native/d3d12/DeviceD3D12.h
index 6036e41..26851d7 100644
--- a/src/dawn_native/d3d12/DeviceD3D12.h
+++ b/src/dawn_native/d3d12/DeviceD3D12.h
@@ -22,7 +22,7 @@
 #include "dawn_native/d3d12/Forward.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class CommandAllocatorManager;
     class PlatformFunctions;
@@ -261,6 +261,6 @@
         float mTimestampPeriod = 1.0f;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_DEVICED3D12_H_
diff --git a/src/dawn_native/d3d12/Forward.h b/src/dawn_native/d3d12/Forward.h
index 4e5368b..de2b0b4 100644
--- a/src/dawn_native/d3d12/Forward.h
+++ b/src/dawn_native/d3d12/Forward.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/ToBackend.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Adapter;
     class BindGroup;
@@ -64,6 +64,6 @@
         return ToBackendBase<D3D12BackendTraits>(common);
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_FORWARD_H_
diff --git a/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.cpp b/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.cpp
index 939a38c..59288b1 100644
--- a/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.cpp
+++ b/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     GPUDescriptorHeapAllocation::GPUDescriptorHeapAllocation(
         D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor,
@@ -36,4 +36,4 @@
     HeapVersionID GPUDescriptorHeapAllocation::GetHeapSerial() const {
         return mHeapSerial;
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h b/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h
index bdab5be..58b39fe 100644
--- a/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h
+++ b/src/dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h
@@ -19,7 +19,7 @@
 #include "dawn_native/d3d12/IntegerTypes.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // Wrapper for a handle into a GPU-only descriptor heap.
     class GPUDescriptorHeapAllocation {
@@ -39,6 +39,6 @@
         HeapVersionID mHeapSerial = HeapVersionID(0);
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_CPUDESCRIPTORHEAPALLOCATION_H_
diff --git a/src/dawn_native/d3d12/HeapAllocatorD3D12.cpp b/src/dawn_native/d3d12/HeapAllocatorD3D12.cpp
index 2c9f377..bb333e7 100644
--- a/src/dawn_native/d3d12/HeapAllocatorD3D12.cpp
+++ b/src/dawn_native/d3d12/HeapAllocatorD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/HeapD3D12.h"
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     HeapAllocator::HeapAllocator(Device* device,
                                  D3D12_HEAP_TYPE heapType,
@@ -68,4 +68,4 @@
         mDevice->ReferenceUntilUnused(static_cast<Heap*>(heap.get())->GetD3D12Heap());
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/HeapAllocatorD3D12.h b/src/dawn_native/d3d12/HeapAllocatorD3D12.h
index 53254c5..f8e58be 100644
--- a/src/dawn_native/d3d12/HeapAllocatorD3D12.h
+++ b/src/dawn_native/d3d12/HeapAllocatorD3D12.h
@@ -19,7 +19,7 @@
 #include "dawn_native/ResourceHeapAllocator.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -43,6 +43,6 @@
         MemorySegment mMemorySegment;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_HEAPALLOCATORD3D12_H_
diff --git a/src/dawn_native/d3d12/HeapD3D12.cpp b/src/dawn_native/d3d12/HeapD3D12.cpp
index 7bb4e32..d560505 100644
--- a/src/dawn_native/d3d12/HeapD3D12.cpp
+++ b/src/dawn_native/d3d12/HeapD3D12.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/d3d12/HeapD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     Heap::Heap(ComPtr<ID3D12Pageable> d3d12Pageable, MemorySegment memorySegment, uint64_t size)
         : Pageable(std::move(d3d12Pageable), memorySegment, size) {
         mD3d12Pageable.As(&mD3d12Heap);
@@ -28,4 +28,4 @@
         return mD3d12Heap.Get();
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/HeapD3D12.h b/src/dawn_native/d3d12/HeapD3D12.h
index b59c644..6b04177 100644
--- a/src/dawn_native/d3d12/HeapD3D12.h
+++ b/src/dawn_native/d3d12/HeapD3D12.h
@@ -19,7 +19,7 @@
 #include "dawn_native/d3d12/PageableD3D12.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -35,6 +35,6 @@
       private:
         ComPtr<ID3D12Heap> mD3d12Heap;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_HEAPD3D12_H_
diff --git a/src/dawn_native/d3d12/IntegerTypes.h b/src/dawn_native/d3d12/IntegerTypes.h
index 219f392..df00f1e 100644
--- a/src/dawn_native/d3d12/IntegerTypes.h
+++ b/src/dawn_native/d3d12/IntegerTypes.h
@@ -20,7 +20,7 @@
 
 #include <cstdint>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // An ID used to desambiguate between multiple uses of the same descriptor heap in the
     // BindGroup allocations.
@@ -29,6 +29,6 @@
     // The monotonically increasing serial for external D3D12 mutexes imported in Dawn.
     using ExternalMutexSerial = TypedInteger<struct ExternalMutexSerialT, uint64_t>;
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_INTEGERTYPES_H_
diff --git a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp
index f4ef120..933e44d 100644
--- a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp
+++ b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         DXGI_USAGE D3D12SwapChainBufferUsage(WGPUTextureUsage allowedUsages) {
@@ -117,4 +117,4 @@
         return wgpu::TextureFormat::RGBA8Unorm;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
index bb53268..f3f7215 100644
--- a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
+++ b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
@@ -23,7 +23,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -55,6 +55,6 @@
         uint32_t mCurrentBuffer;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_NATIVESWAPCHAINIMPLD3D12_H_
diff --git a/src/dawn_native/d3d12/PageableD3D12.cpp b/src/dawn_native/d3d12/PageableD3D12.cpp
index b171db5..06b8d8b 100644
--- a/src/dawn_native/d3d12/PageableD3D12.cpp
+++ b/src/dawn_native/d3d12/PageableD3D12.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/d3d12/PageableD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     Pageable::Pageable(ComPtr<ID3D12Pageable> d3d12Pageable,
                        MemorySegment memorySegment,
                        uint64_t size)
@@ -73,4 +73,4 @@
     bool Pageable::IsResidencyLocked() const {
         return mResidencyLockRefCount != 0;
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/PageableD3D12.h b/src/dawn_native/d3d12/PageableD3D12.h
index fb3a689..0a7a46a 100644
--- a/src/dawn_native/d3d12/PageableD3D12.h
+++ b/src/dawn_native/d3d12/PageableD3D12.h
@@ -20,7 +20,7 @@
 #include "dawn_native/IntegerTypes.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     // This class is used to represent ID3D12Pageable allocations, and also serves as a node within
     // the ResidencyManager's LRU cache. This node is inserted into the LRU-cache when it is first
     // allocated, and any time it is scheduled to be used by the GPU. This node is removed from the
@@ -75,6 +75,6 @@
         uint32_t mResidencyLockRefCount = 0;
         uint64_t mSize = 0;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif
diff --git a/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp b/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
index 7d67ac9..bd38998 100644
--- a/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
+++ b/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
@@ -24,7 +24,7 @@
 
 using Microsoft::WRL::ComPtr;
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     namespace {
 
         // Reserve register names for internal use. This registers map to bindings in the shader,
@@ -364,4 +364,4 @@
         return mDispatchIndirectCommandSignatureWithNumWorkgroups.Get();
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/PipelineLayoutD3D12.h b/src/dawn_native/d3d12/PipelineLayoutD3D12.h
index 1304f73..2a477b1 100644
--- a/src/dawn_native/d3d12/PipelineLayoutD3D12.h
+++ b/src/dawn_native/d3d12/PipelineLayoutD3D12.h
@@ -21,7 +21,7 @@
 #include "dawn_native/PipelineLayout.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -95,6 +95,6 @@
         ComPtr<ID3D12CommandSignature> mDispatchIndirectCommandSignatureWithNumWorkgroups;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_PIPELINELAYOUTD3D12_H_
diff --git a/src/dawn_native/d3d12/PlatformFunctions.cpp b/src/dawn_native/d3d12/PlatformFunctions.cpp
index 27e6564..c89b392 100644
--- a/src/dawn_native/d3d12/PlatformFunctions.cpp
+++ b/src/dawn_native/d3d12/PlatformFunctions.cpp
@@ -20,7 +20,7 @@
 #include <array>
 #include <sstream>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     namespace {
         // Extract Version from "10.0.{Version}.0" if possible, otherwise return 0.
         uint32_t GetWindowsSDKVersionFromDirectoryName(const char* directoryName) {
@@ -268,4 +268,4 @@
         }
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/PlatformFunctions.h b/src/dawn_native/d3d12/PlatformFunctions.h
index cd88217..be8c48f 100644
--- a/src/dawn_native/d3d12/PlatformFunctions.h
+++ b/src/dawn_native/d3d12/PlatformFunctions.h
@@ -22,7 +22,7 @@
 
 #include <d3dcompiler.h>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // Loads the functions required from the platform dynamically so that we don't need to rely on
     // them being present in the system. For example linking against d3d12.lib would prevent
@@ -105,6 +105,6 @@
         DynamicLib mPIXEventRuntimeLib;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_PLATFORMFUNCTIONS_H_
diff --git a/src/dawn_native/d3d12/QuerySetD3D12.cpp b/src/dawn_native/d3d12/QuerySetD3D12.cpp
index d6a6180..933b085 100644
--- a/src/dawn_native/d3d12/QuerySetD3D12.cpp
+++ b/src/dawn_native/d3d12/QuerySetD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         D3D12_QUERY_HEAP_TYPE D3D12QueryHeapType(wgpu::QueryType type) {
@@ -72,4 +72,4 @@
         SetDebugName(ToBackend(GetDevice()), mQueryHeap.Get(), "Dawn_QuerySet", GetLabel());
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/QuerySetD3D12.h b/src/dawn_native/d3d12/QuerySetD3D12.h
index 7058798..c7a2193 100644
--- a/src/dawn_native/d3d12/QuerySetD3D12.h
+++ b/src/dawn_native/d3d12/QuerySetD3D12.h
@@ -18,7 +18,7 @@
 #include "dawn_native/QuerySet.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -41,6 +41,6 @@
         ComPtr<ID3D12QueryHeap> mQueryHeap;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_QUERYSETD3D12_H_
diff --git a/src/dawn_native/d3d12/QueueD3D12.cpp b/src/dawn_native/d3d12/QueueD3D12.cpp
index ca6064d..0bf4edc 100644
--- a/src/dawn_native/d3d12/QueueD3D12.cpp
+++ b/src/dawn_native/d3d12/QueueD3D12.cpp
@@ -24,7 +24,7 @@
 #include "dawn_platform/DawnPlatform.h"
 #include "dawn_platform/tracing/TraceEvent.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -51,4 +51,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/QueueD3D12.h b/src/dawn_native/d3d12/QueueD3D12.h
index 311c607..446dc1a 100644
--- a/src/dawn_native/d3d12/QueueD3D12.h
+++ b/src/dawn_native/d3d12/QueueD3D12.h
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/CommandRecordingContext.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -32,6 +32,6 @@
         MaybeError SubmitImpl(uint32_t commandCount, CommandBufferBase* const* commands) override;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_QUEUED3D12_H_
diff --git a/src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp b/src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp
index 47da954..d63d77e 100644
--- a/src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp
+++ b/src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp
@@ -21,7 +21,7 @@
 
 #include "dawn_native/dawn_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE D3D12BeginningAccessType(wgpu::LoadOp loadOp) {
@@ -235,4 +235,4 @@
             D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/RenderPassBuilderD3D12.h b/src/dawn_native/d3d12/RenderPassBuilderD3D12.h
index 20f70a4..7fa7c6c 100644
--- a/src/dawn_native/d3d12/RenderPassBuilderD3D12.h
+++ b/src/dawn_native/d3d12/RenderPassBuilderD3D12.h
@@ -24,7 +24,7 @@
 
 #include <array>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class TextureView;
 
@@ -93,6 +93,6 @@
                     kMaxColorAttachments>
             mSubresourceParams;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RENDERPASSBUILDERD3D12_H_
diff --git a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
index 410d36f..c8efa7f 100644
--- a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
+++ b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
@@ -27,7 +27,7 @@
 
 #include <d3dcompiler.h>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         DXGI_FORMAT VertexFormatType(wgpu::VertexFormat format) {
@@ -487,4 +487,4 @@
         CreateRenderPipelineAsyncTask::RunAsync(std::move(asyncTask));
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/RenderPipelineD3D12.h b/src/dawn_native/d3d12/RenderPipelineD3D12.h
index 66f0ea6..6ac5a19 100644
--- a/src/dawn_native/d3d12/RenderPipelineD3D12.h
+++ b/src/dawn_native/d3d12/RenderPipelineD3D12.h
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/ShaderModuleD3D12.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -57,6 +57,6 @@
         FirstOffsetInfo mFirstOffsetInfo;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RENDERPIPELINED3D12_H_
diff --git a/src/dawn_native/d3d12/ResidencyManagerD3D12.cpp b/src/dawn_native/d3d12/ResidencyManagerD3D12.cpp
index ffc1e1b..8eea16a 100644
--- a/src/dawn_native/d3d12/ResidencyManagerD3D12.cpp
+++ b/src/dawn_native/d3d12/ResidencyManagerD3D12.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/d3d12/Forward.h"
 #include "dawn_native/d3d12/HeapD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     ResidencyManager::ResidencyManager(Device* device)
         : mDevice(device),
@@ -368,4 +368,4 @@
         }
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ResidencyManagerD3D12.h b/src/dawn_native/d3d12/ResidencyManagerD3D12.h
index 02fad75..7c10aa5 100644
--- a/src/dawn_native/d3d12/ResidencyManagerD3D12.h
+++ b/src/dawn_native/d3d12/ResidencyManagerD3D12.h
@@ -22,7 +22,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
     class Heap;
@@ -77,6 +77,6 @@
         VideoMemoryInfo mVideoMemoryInfo = {};
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RESIDENCYMANAGERD3D12_H_
diff --git a/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp b/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp
index 166d59f..832b193 100644
--- a/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp
+++ b/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     namespace {
         MemorySegment GetMemorySegment(Device* device, D3D12_HEAP_TYPE heapType) {
             if (device->GetDeviceInfo().isUMA) {
@@ -407,4 +407,4 @@
         }
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h b/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h
index 7bbf53a..f8ddaac 100644
--- a/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h
+++ b/src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h
@@ -24,7 +24,7 @@
 
 #include <array>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -102,6 +102,6 @@
         SerialQueue<ExecutionSerial, ResourceHeapAllocation> mAllocationsToDelete;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RESOURCEALLOCATORMANAGERD3D12_H_
diff --git a/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp b/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp
index c7f8c68..514a9b4 100644
--- a/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp
+++ b/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp
@@ -19,7 +19,7 @@
 
 #include <utility>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     ResourceHeapAllocation::ResourceHeapAllocation(const AllocationInfo& info,
                                                    uint64_t offset,
                                                    ComPtr<ID3D12Resource> resource,
@@ -40,4 +40,4 @@
     D3D12_GPU_VIRTUAL_ADDRESS ResourceHeapAllocation::GetGPUPointer() const {
         return mResource->GetGPUVirtualAddress();
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h b/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h
index 7f1fe0a..8c2951d 100644
--- a/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h
+++ b/src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h
@@ -19,7 +19,7 @@
 #include "dawn_native/ResourceMemoryAllocation.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Heap;
 
@@ -43,6 +43,6 @@
         ComPtr<ID3D12Resource> mResource;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RESOURCEHEAPALLOCATIOND3D12_H_
diff --git a/src/dawn_native/d3d12/SamplerD3D12.cpp b/src/dawn_native/d3d12/SamplerD3D12.cpp
index 0671cc4..a72dd1d 100644
--- a/src/dawn_native/d3d12/SamplerD3D12.cpp
+++ b/src/dawn_native/d3d12/SamplerD3D12.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         D3D12_TEXTURE_ADDRESS_MODE AddressMode(wgpu::AddressMode mode) {
@@ -103,4 +103,4 @@
         return mSamplerDesc;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/SamplerD3D12.h b/src/dawn_native/d3d12/SamplerD3D12.h
index ede374b..f1ad94e 100644
--- a/src/dawn_native/d3d12/SamplerD3D12.h
+++ b/src/dawn_native/d3d12/SamplerD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -35,6 +35,6 @@
         D3D12_SAMPLER_DESC mSamplerDesc = {};
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SAMPLERD3D12_H_
diff --git a/src/dawn_native/d3d12/SamplerHeapCacheD3D12.cpp b/src/dawn_native/d3d12/SamplerHeapCacheD3D12.cpp
index d1d6f3f..de8f136 100644
--- a/src/dawn_native/d3d12/SamplerHeapCacheD3D12.cpp
+++ b/src/dawn_native/d3d12/SamplerHeapCacheD3D12.cpp
@@ -24,7 +24,7 @@
 #include "dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h"
 #include "dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     SamplerHeapCacheEntry::SamplerHeapCacheEntry(std::vector<Sampler*> samplers)
         : mSamplers(std::move(samplers)) {
@@ -163,4 +163,4 @@
                                                          const SamplerHeapCacheEntry* b) const {
         return a->mSamplers == b->mSamplers;
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/SamplerHeapCacheD3D12.h b/src/dawn_native/d3d12/SamplerHeapCacheD3D12.h
index 3e2cf4c..09064f7 100644
--- a/src/dawn_native/d3d12/SamplerHeapCacheD3D12.h
+++ b/src/dawn_native/d3d12/SamplerHeapCacheD3D12.h
@@ -32,7 +32,7 @@
 //
 // The cache is primary needed for the GPU sampler heap, which is much smaller than the view heap
 // and switches incur expensive pipeline flushes.
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class BindGroup;
     class Device;
@@ -102,6 +102,6 @@
         Cache mCache;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SAMPLERHEAPCACHE_H_
diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
index 4515d12..b580a08 100644
--- a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
+++ b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
@@ -34,7 +34,7 @@
 #include <sstream>
 #include <unordered_map>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         ResultOrError<uint64_t> GetDXCompilerVersion(ComPtr<IDxcValidator> dxcValidator) {
@@ -828,4 +828,4 @@
         UNREACHABLE();
         return {};
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.h b/src/dawn_native/d3d12/ShaderModuleD3D12.h
index 02c1f8c..9ab5e49 100644
--- a/src/dawn_native/d3d12/ShaderModuleD3D12.h
+++ b/src/dawn_native/d3d12/ShaderModuleD3D12.h
@@ -24,7 +24,7 @@
     struct ProgrammableStage;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
     class PipelineLayout;
@@ -64,6 +64,6 @@
         MaybeError Initialize(ShaderModuleParseResult* parseResult);
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SHADERMODULED3D12_H_
diff --git a/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp b/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp
index 916a371..631a02e 100644
--- a/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp
+++ b/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/GPUDescriptorHeapAllocationD3D12.h"
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     // Limits the min/max heap size to always be some known value for testing.
     // Thresholds should be adjusted (lower == faster) to avoid tests taking too long to complete.
@@ -251,4 +251,4 @@
     ID3D12DescriptorHeap* ShaderVisibleDescriptorHeap::GetD3D12DescriptorHeap() const {
         return mD3d12DescriptorHeap.Get();
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h b/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h
index a315b56..72a207e 100644
--- a/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h
+++ b/src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h
@@ -29,7 +29,7 @@
 // of two states: switched in or out. Only a switched in heap can be bound to the pipeline. If
 // the heap is full, the caller must switch-in a new heap before re-allocating and the old one
 // is returned to the pool.
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
     class GPUDescriptorHeapAllocation;
@@ -100,6 +100,6 @@
         // This is stored on the allocator to avoid extra conversions.
         uint32_t mDescriptorCount = 0;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SHADERVISIBLEDESCRIPTORALLOCATOR_H_
diff --git a/src/dawn_native/d3d12/StagingBufferD3D12.cpp b/src/dawn_native/d3d12/StagingBufferD3D12.cpp
index d35622e..46ce9ec 100644
--- a/src/dawn_native/d3d12/StagingBufferD3D12.cpp
+++ b/src/dawn_native/d3d12/StagingBufferD3D12.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/d3d12/ResidencyManagerD3D12.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     StagingBuffer::StagingBuffer(size_t size, Device* device)
         : StagingBufferBase(size), mDevice(device) {
@@ -74,4 +74,4 @@
     ID3D12Resource* StagingBuffer::GetResource() const {
         return mUploadHeap.GetD3D12Resource();
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/StagingBufferD3D12.h b/src/dawn_native/d3d12/StagingBufferD3D12.h
index aafe60d..64c32aba 100644
--- a/src/dawn_native/d3d12/StagingBufferD3D12.h
+++ b/src/dawn_native/d3d12/StagingBufferD3D12.h
@@ -19,7 +19,7 @@
 #include "dawn_native/d3d12/ResourceHeapAllocationD3D12.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -36,6 +36,6 @@
         Device* mDevice;
         ResourceHeapAllocation mUploadHeap;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_STAGINGBUFFERD3D12_H_
diff --git a/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.cpp b/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.cpp
index 4a622ac..151d155 100644
--- a/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.cpp
+++ b/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     StagingDescriptorAllocator::StagingDescriptorAllocator(Device* device,
                                                            uint32_t descriptorCount,
@@ -149,4 +149,4 @@
         mAllocationsToDelete.ClearUpTo(completedSerial);
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h b/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h
index 96c1cfb..3bcaff2 100644
--- a/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h
+++ b/src/dawn_native/d3d12/StagingDescriptorAllocatorD3D12.h
@@ -30,7 +30,7 @@
 // at-least one free block. If no AVAILABLE heap exists, a new heap is created and inserted
 // back into the pool to be immediately used. To deallocate, the block corresponding to the
 // offset is inserted back into the free-list.
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
 
@@ -80,6 +80,6 @@
         SerialQueue<ExecutionSerial, CPUDescriptorHeapAllocation> mAllocationsToDelete;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_STAGINGDESCRIPTORALLOCATOR_H_
diff --git a/src/dawn_native/d3d12/SwapChainD3D12.cpp b/src/dawn_native/d3d12/SwapChainD3D12.cpp
index 4c2dd24..bf8a955 100644
--- a/src/dawn_native/d3d12/SwapChainD3D12.cpp
+++ b/src/dawn_native/d3d12/SwapChainD3D12.cpp
@@ -23,7 +23,7 @@
 
 #include <windows.ui.xaml.media.dxinterop.h>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
     namespace {
 
         uint32_t PresentModeToBufferCount(wgpu::PresentMode mode) {
@@ -374,4 +374,4 @@
         mBuffers.clear();
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/SwapChainD3D12.h b/src/dawn_native/d3d12/SwapChainD3D12.h
index 8b9c8ae..0a77777 100644
--- a/src/dawn_native/d3d12/SwapChainD3D12.h
+++ b/src/dawn_native/d3d12/SwapChainD3D12.h
@@ -20,7 +20,7 @@
 #include "dawn_native/IntegerTypes.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class Device;
     class Texture;
@@ -84,6 +84,6 @@
         Ref<Texture> mApiTexture;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SWAPCHAIN_D3D12_H_
diff --git a/src/dawn_native/d3d12/TextureCopySplitter.cpp b/src/dawn_native/d3d12/TextureCopySplitter.cpp
index 411cce2..b1d4b73 100644
--- a/src/dawn_native/d3d12/TextureCopySplitter.cpp
+++ b/src/dawn_native/d3d12/TextureCopySplitter.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/Format.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         Origin3D ComputeTexelOffsets(const TexelBlockInfo& blockInfo,
@@ -536,4 +536,4 @@
 
         return copySubresource;
     }
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/TextureCopySplitter.h b/src/dawn_native/d3d12/TextureCopySplitter.h
index 4796ed9..3cb93e2 100644
--- a/src/dawn_native/d3d12/TextureCopySplitter.h
+++ b/src/dawn_native/d3d12/TextureCopySplitter.h
@@ -25,7 +25,7 @@
 
 }  // namespace dawn_native
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     struct TextureCopySubresource {
         static constexpr unsigned int kMaxTextureCopyRegions = 4;
@@ -92,6 +92,6 @@
                                                       uint64_t offset,
                                                       uint32_t bytesPerRow,
                                                       uint32_t rowsPerImage);
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_TEXTURECOPYSPLITTER_H_
diff --git a/src/dawn_native/d3d12/TextureD3D12.cpp b/src/dawn_native/d3d12/TextureD3D12.cpp
index c669b2f..3c8178f 100644
--- a/src/dawn_native/d3d12/TextureD3D12.cpp
+++ b/src/dawn_native/d3d12/TextureD3D12.cpp
@@ -31,7 +31,7 @@
 #include "dawn_native/d3d12/TextureCopySplitter.h"
 #include "dawn_native/d3d12/UtilsD3D12.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     namespace {
         D3D12_RESOURCE_STATES D3D12TextureUsage(wgpu::TextureUsage usage, const Format& format) {
@@ -1377,4 +1377,4 @@
         return uavDesc;
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/TextureD3D12.h b/src/dawn_native/d3d12/TextureD3D12.h
index 4d49d6f..569c355 100644
--- a/src/dawn_native/d3d12/TextureD3D12.h
+++ b/src/dawn_native/d3d12/TextureD3D12.h
@@ -24,7 +24,7 @@
 #include "dawn_native/d3d12/ResourceHeapAllocationD3D12.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class CommandRecordingContext;
     class Device;
@@ -159,6 +159,6 @@
 
         D3D12_SHADER_RESOURCE_VIEW_DESC mSrvDesc;
     };
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_TEXTURED3D12_H_
diff --git a/src/dawn_native/d3d12/UtilsD3D12.cpp b/src/dawn_native/d3d12/UtilsD3D12.cpp
index 38479eb..e19bebf 100644
--- a/src/dawn_native/d3d12/UtilsD3D12.cpp
+++ b/src/dawn_native/d3d12/UtilsD3D12.cpp
@@ -23,7 +23,7 @@
 
 #include <stringapiset.h>
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     ResultOrError<std::wstring> ConvertStringToWstring(const char* str) {
         size_t len = strlen(str);
@@ -388,4 +388,4 @@
         object->SetPrivateData(WKPDID_D3DDebugObjectName, objectName.length(), objectName.c_str());
     }
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/UtilsD3D12.h b/src/dawn_native/d3d12/UtilsD3D12.h
index 2a3f3d5..8e4520a 100644
--- a/src/dawn_native/d3d12/UtilsD3D12.h
+++ b/src/dawn_native/d3d12/UtilsD3D12.h
@@ -22,7 +22,7 @@
 #include "dawn_native/d3d12/d3d12_platform.h"
 #include "dawn_native/dawn_platform.h"
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     ResultOrError<std::wstring> ConvertStringToWstring(const char* str);
 
@@ -86,6 +86,6 @@
                       const char* prefix,
                       std::string label = "");
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_UTILSD3D12_H_
diff --git a/src/dawn_native/metal/BackendMTL.h b/src/dawn_native/metal/BackendMTL.h
index 6cffa43..daa8ac2 100644
--- a/src/dawn_native/metal/BackendMTL.h
+++ b/src/dawn_native/metal/BackendMTL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/BackendConnection.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Backend : public BackendConnection {
       public:
@@ -28,6 +28,6 @@
             const AdapterDiscoveryOptionsBase* optionsBase) override;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_BACKENDMTL_H_
diff --git a/src/dawn_native/metal/BackendMTL.mm b/src/dawn_native/metal/BackendMTL.mm
index ee7e8e0..f6034b5 100644
--- a/src/dawn_native/metal/BackendMTL.mm
+++ b/src/dawn_native/metal/BackendMTL.mm
@@ -31,7 +31,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
 
@@ -613,4 +613,4 @@
         return new Backend(instance);
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/BindGroupLayoutMTL.h b/src/dawn_native/metal/BindGroupLayoutMTL.h
index 1d2c2a9..9b1771c 100644
--- a/src/dawn_native/metal/BindGroupLayoutMTL.h
+++ b/src/dawn_native/metal/BindGroupLayoutMTL.h
@@ -18,7 +18,7 @@
 #include "common/SlabAllocator.h"
 #include "dawn_native/BindGroupLayout.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class BindGroup;
     class Device;
@@ -41,6 +41,6 @@
         SlabAllocator<BindGroup> mBindGroupAllocator;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_BINDGROUPLAYOUTMTL_H_
diff --git a/src/dawn_native/metal/BindGroupLayoutMTL.mm b/src/dawn_native/metal/BindGroupLayoutMTL.mm
index 5d748c1..b3e7c35 100644
--- a/src/dawn_native/metal/BindGroupLayoutMTL.mm
+++ b/src/dawn_native/metal/BindGroupLayoutMTL.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/BindGroupMTL.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // static
     Ref<BindGroupLayout> BindGroupLayout::Create(
@@ -42,4 +42,4 @@
         mBindGroupAllocator.Deallocate(bindGroup);
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/BindGroupMTL.h b/src/dawn_native/metal/BindGroupMTL.h
index 9c87583..0905664 100644
--- a/src/dawn_native/metal/BindGroupMTL.h
+++ b/src/dawn_native/metal/BindGroupMTL.h
@@ -18,7 +18,7 @@
 #include "common/PlacementAllocated.h"
 #include "dawn_native/BindGroup.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -34,6 +34,6 @@
         void DestroyImpl() override;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_BINDGROUPMTL_H_
diff --git a/src/dawn_native/metal/BindGroupMTL.mm b/src/dawn_native/metal/BindGroupMTL.mm
index bbb5827..c867342 100644
--- a/src/dawn_native/metal/BindGroupMTL.mm
+++ b/src/dawn_native/metal/BindGroupMTL.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/BindGroupLayoutMTL.h"
 #include "dawn_native/metal/DeviceMTL.h"
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     BindGroup::BindGroup(Device* device, const BindGroupDescriptor* descriptor)
         : BindGroupBase(this, device, descriptor) {
@@ -34,4 +34,4 @@
         return ToBackend(descriptor->layout)->AllocateBindGroup(device, descriptor);
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/BufferMTL.h b/src/dawn_native/metal/BufferMTL.h
index 61747be..7b6c586 100644
--- a/src/dawn_native/metal/BufferMTL.h
+++ b/src/dawn_native/metal/BufferMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class CommandRecordingContext;
     class Device;
@@ -62,6 +62,6 @@
         NSPRef<id<MTLBuffer>> mMtlBuffer;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_BUFFERMTL_H_
diff --git a/src/dawn_native/metal/BufferMTL.mm b/src/dawn_native/metal/BufferMTL.mm
index 6907c94..c3a4a98 100644
--- a/src/dawn_native/metal/BufferMTL.mm
+++ b/src/dawn_native/metal/BufferMTL.mm
@@ -21,7 +21,7 @@
 
 #include <limits>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
     // The size of uniform buffer and storage buffer need to be aligned to 16 bytes which is the
     // largest alignment of supported data types
     static constexpr uint32_t kMinUniformOrStorageBufferAlignment = 16u;
@@ -237,4 +237,4 @@
                                            value:clearValue];
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/CommandBufferMTL.h b/src/dawn_native/metal/CommandBufferMTL.h
index 328ac84..eb236a9 100644
--- a/src/dawn_native/metal/CommandBufferMTL.h
+++ b/src/dawn_native/metal/CommandBufferMTL.h
@@ -24,7 +24,7 @@
     class CommandEncoder;
 }
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class CommandRecordingContext;
     class Device;
@@ -64,6 +64,6 @@
                                             uint32_t height);
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_COMMANDBUFFERMTL_H_
diff --git a/src/dawn_native/metal/CommandBufferMTL.mm b/src/dawn_native/metal/CommandBufferMTL.mm
index ec6296d..11e655b 100644
--- a/src/dawn_native/metal/CommandBufferMTL.mm
+++ b/src/dawn_native/metal/CommandBufferMTL.mm
@@ -34,7 +34,7 @@
 
 #include <tint/tint.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
 
@@ -1564,4 +1564,4 @@
         UNREACHABLE();
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/CommandRecordingContext.h b/src/dawn_native/metal/CommandRecordingContext.h
index 5189a53..4caeb0f 100644
--- a/src/dawn_native/metal/CommandRecordingContext.h
+++ b/src/dawn_native/metal/CommandRecordingContext.h
@@ -20,7 +20,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // This class wraps a MTLCommandBuffer and tracks which Metal encoder is open.
     // Only one encoder may be open at a time.
@@ -54,6 +54,6 @@
         bool mUsed = false;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_COMMANDRECORDINGCONTEXT_H_
diff --git a/src/dawn_native/metal/CommandRecordingContext.mm b/src/dawn_native/metal/CommandRecordingContext.mm
index f07c48c..95d7b2e 100644
--- a/src/dawn_native/metal/CommandRecordingContext.mm
+++ b/src/dawn_native/metal/CommandRecordingContext.mm
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     CommandRecordingContext::CommandRecordingContext() = default;
 
@@ -129,4 +129,4 @@
         mInEncoder = false;
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/ComputePipelineMTL.h b/src/dawn_native/metal/ComputePipelineMTL.h
index 20b2080..64e9356 100644
--- a/src/dawn_native/metal/ComputePipelineMTL.h
+++ b/src/dawn_native/metal/ComputePipelineMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -48,6 +48,6 @@
         std::vector<uint32_t> mWorkgroupAllocations;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_COMPUTEPIPELINEMTL_H_
diff --git a/src/dawn_native/metal/ComputePipelineMTL.mm b/src/dawn_native/metal/ComputePipelineMTL.mm
index 48d36ae..5041961 100644
--- a/src/dawn_native/metal/ComputePipelineMTL.mm
+++ b/src/dawn_native/metal/ComputePipelineMTL.mm
@@ -19,7 +19,7 @@
 #include "dawn_native/metal/ShaderModuleMTL.h"
 #include "dawn_native/metal/UtilsMetal.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // static
     Ref<ComputePipeline> ComputePipeline::CreateUninitialized(
@@ -83,4 +83,4 @@
         CreateComputePipelineAsyncTask::RunAsync(std::move(asyncTask));
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/DeviceMTL.h b/src/dawn_native/metal/DeviceMTL.h
index 14c179f..779b726 100644
--- a/src/dawn_native/metal/DeviceMTL.h
+++ b/src/dawn_native/metal/DeviceMTL.h
@@ -30,7 +30,7 @@
 #include <memory>
 #include <mutex>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
         struct KalmanInfo;
@@ -149,6 +149,6 @@
         std::unique_ptr<KalmanInfo> mKalmanInfo;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_DEVICEMTL_H_
diff --git a/src/dawn_native/metal/DeviceMTL.mm b/src/dawn_native/metal/DeviceMTL.mm
index f02d096..ccba9d1 100644
--- a/src/dawn_native/metal/DeviceMTL.mm
+++ b/src/dawn_native/metal/DeviceMTL.mm
@@ -40,7 +40,7 @@
 
 #include <type_traits>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
 
@@ -503,4 +503,4 @@
         return mTimestampPeriod;
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/Forward.h b/src/dawn_native/metal/Forward.h
index 9481348..5d590b1 100644
--- a/src/dawn_native/metal/Forward.h
+++ b/src/dawn_native/metal/Forward.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/ToBackend.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Adapter;
     class BindGroup;
@@ -63,6 +63,6 @@
         return ToBackendBase<MetalBackendTraits>(common);
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_FORWARD_H_
diff --git a/src/dawn_native/metal/MetalBackend.mm b/src/dawn_native/metal/MetalBackend.mm
index 4d0824d..9289774 100644
--- a/src/dawn_native/metal/MetalBackend.mm
+++ b/src/dawn_native/metal/MetalBackend.mm
@@ -20,7 +20,7 @@
 #include "dawn_native/metal/DeviceMTL.h"
 #include "dawn_native/metal/TextureMTL.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     id<MTLDevice> GetMetalDevice(WGPUDevice device) {
         return ToBackend(FromAPI(device))->GetMTLDevice();
@@ -46,4 +46,4 @@
         ToBackend(FromAPI(device))->WaitForCommandsToBeScheduled();
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/PipelineLayoutMTL.h b/src/dawn_native/metal/PipelineLayoutMTL.h
index ae803e1..9aa4f7b 100644
--- a/src/dawn_native/metal/PipelineLayoutMTL.h
+++ b/src/dawn_native/metal/PipelineLayoutMTL.h
@@ -23,7 +23,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -57,6 +57,6 @@
         PerStage<uint32_t> mBufferBindingCount;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_PIPELINELAYOUTMTL_H_
diff --git a/src/dawn_native/metal/PipelineLayoutMTL.mm b/src/dawn_native/metal/PipelineLayoutMTL.mm
index 4faf5db..ac908ab 100644
--- a/src/dawn_native/metal/PipelineLayoutMTL.mm
+++ b/src/dawn_native/metal/PipelineLayoutMTL.mm
@@ -18,7 +18,7 @@
 #include "dawn_native/BindGroupLayout.h"
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // static
     Ref<PipelineLayout> PipelineLayout::Create(Device* device,
@@ -79,4 +79,4 @@
         return mBufferBindingCount[stage];
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/QuerySetMTL.h b/src/dawn_native/metal/QuerySetMTL.h
index a7b1ad7..6bde84f 100644
--- a/src/dawn_native/metal/QuerySetMTL.h
+++ b/src/dawn_native/metal/QuerySetMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -49,6 +49,6 @@
                                                                       ios(14.0)) = nullptr;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_QUERYSETMTL_H_
diff --git a/src/dawn_native/metal/QuerySetMTL.mm b/src/dawn_native/metal/QuerySetMTL.mm
index a8b53af..e92991a 100644
--- a/src/dawn_native/metal/QuerySetMTL.mm
+++ b/src/dawn_native/metal/QuerySetMTL.mm
@@ -18,7 +18,7 @@
 #include "common/Platform.h"
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
 
@@ -136,4 +136,4 @@
         }
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/QueueMTL.h b/src/dawn_native/metal/QueueMTL.h
index 38e79ed..b608166 100644
--- a/src/dawn_native/metal/QueueMTL.h
+++ b/src/dawn_native/metal/QueueMTL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/Queue.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -29,6 +29,6 @@
         MaybeError SubmitImpl(uint32_t commandCount, CommandBufferBase* const* commands) override;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_QUEUEMTL_H_
diff --git a/src/dawn_native/metal/QueueMTL.mm b/src/dawn_native/metal/QueueMTL.mm
index ad1fad6..09cc2ff 100644
--- a/src/dawn_native/metal/QueueMTL.mm
+++ b/src/dawn_native/metal/QueueMTL.mm
@@ -24,7 +24,7 @@
 #include "dawn_platform/DawnPlatform.h"
 #include "dawn_platform/tracing/TraceEvent.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -45,4 +45,4 @@
         return device->SubmitPendingCommandBuffer();
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/RenderPipelineMTL.h b/src/dawn_native/metal/RenderPipelineMTL.h
index d6bedfa..d4bc69c 100644
--- a/src/dawn_native/metal/RenderPipelineMTL.h
+++ b/src/dawn_native/metal/RenderPipelineMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -65,6 +65,6 @@
         wgpu::ShaderStage mStagesRequiringStorageBufferLength = wgpu::ShaderStage::None;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_RENDERPIPELINEMTL_H_
diff --git a/src/dawn_native/metal/RenderPipelineMTL.mm b/src/dawn_native/metal/RenderPipelineMTL.mm
index a4ca812..74cf3bd 100644
--- a/src/dawn_native/metal/RenderPipelineMTL.mm
+++ b/src/dawn_native/metal/RenderPipelineMTL.mm
@@ -22,7 +22,7 @@
 #include "dawn_native/metal/TextureMTL.h"
 #include "dawn_native/metal/UtilsMetal.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
         MTLVertexFormat VertexFormatType(wgpu::VertexFormat format) {
@@ -503,4 +503,4 @@
         CreateRenderPipelineAsyncTask::RunAsync(std::move(asyncTask));
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/SamplerMTL.h b/src/dawn_native/metal/SamplerMTL.h
index 274ba20..52c4ef0 100644
--- a/src/dawn_native/metal/SamplerMTL.h
+++ b/src/dawn_native/metal/SamplerMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -39,6 +39,6 @@
         NSPRef<id<MTLSamplerState>> mMtlSamplerState;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_SAMPLERMTL_H_
diff --git a/src/dawn_native/metal/SamplerMTL.mm b/src/dawn_native/metal/SamplerMTL.mm
index 608c6bb..809c793 100644
--- a/src/dawn_native/metal/SamplerMTL.mm
+++ b/src/dawn_native/metal/SamplerMTL.mm
@@ -17,7 +17,7 @@
 #include "dawn_native/metal/DeviceMTL.h"
 #include "dawn_native/metal/UtilsMetal.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
         MTLSamplerMinMagFilter FilterModeToMinMagFilter(wgpu::FilterMode mode) {
@@ -103,4 +103,4 @@
         return mMtlSamplerState.Get();
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/ShaderModuleMTL.h b/src/dawn_native/metal/ShaderModuleMTL.h
index e82ffad..9380086 100644
--- a/src/dawn_native/metal/ShaderModuleMTL.h
+++ b/src/dawn_native/metal/ShaderModuleMTL.h
@@ -22,7 +22,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
     class PipelineLayout;
@@ -65,6 +65,6 @@
         MaybeError Initialize(ShaderModuleParseResult* parseResult);
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_SHADERMODULEMTL_H_
diff --git a/src/dawn_native/metal/ShaderModuleMTL.mm b/src/dawn_native/metal/ShaderModuleMTL.mm
index 2c2c0f1..79de704 100644
--- a/src/dawn_native/metal/ShaderModuleMTL.mm
+++ b/src/dawn_native/metal/ShaderModuleMTL.mm
@@ -24,7 +24,7 @@
 
 #include <sstream>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // static
     ResultOrError<Ref<ShaderModule>> ShaderModule::Create(Device* device,
@@ -257,4 +257,4 @@
 
         return {};
     }
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/StagingBufferMTL.h b/src/dawn_native/metal/StagingBufferMTL.h
index b2d6551..c545b07 100644
--- a/src/dawn_native/metal/StagingBufferMTL.h
+++ b/src/dawn_native/metal/StagingBufferMTL.h
@@ -21,7 +21,7 @@
 
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
 
@@ -37,6 +37,6 @@
         Device* mDevice;
         NSPRef<id<MTLBuffer>> mBuffer;
     };
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_STAGINGBUFFERMETAL_H_
diff --git a/src/dawn_native/metal/StagingBufferMTL.mm b/src/dawn_native/metal/StagingBufferMTL.mm
index af06b35..5ca18e5 100644
--- a/src/dawn_native/metal/StagingBufferMTL.mm
+++ b/src/dawn_native/metal/StagingBufferMTL.mm
@@ -15,7 +15,7 @@
 #include "dawn_native/metal/StagingBufferMTL.h"
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     StagingBuffer::StagingBuffer(size_t size, Device* device)
         : StagingBufferBase(size), mDevice(device) {
@@ -43,4 +43,4 @@
         return mBuffer.Get();
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/SwapChainMTL.h b/src/dawn_native/metal/SwapChainMTL.h
index 3b72163..5513e4f 100644
--- a/src/dawn_native/metal/SwapChainMTL.h
+++ b/src/dawn_native/metal/SwapChainMTL.h
@@ -22,7 +22,7 @@
 @class CAMetalLayer;
 @protocol CAMetalDrawable;
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class Device;
     class Texture;
@@ -62,6 +62,6 @@
         void DetachFromSurfaceImpl() override;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_SWAPCHAINMTL_H_
diff --git a/src/dawn_native/metal/SwapChainMTL.mm b/src/dawn_native/metal/SwapChainMTL.mm
index d932986..8ec989c 100644
--- a/src/dawn_native/metal/SwapChainMTL.mm
+++ b/src/dawn_native/metal/SwapChainMTL.mm
@@ -22,7 +22,7 @@
 
 #import <QuartzCore/CAMetalLayer.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     // OldSwapChain
 
@@ -152,4 +152,4 @@
         }
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/TextureMTL.h b/src/dawn_native/metal/TextureMTL.h
index 8c9a30d..1858167 100644
--- a/src/dawn_native/metal/TextureMTL.h
+++ b/src/dawn_native/metal/TextureMTL.h
@@ -23,7 +23,7 @@
 #include <IOSurface/IOSurfaceRef.h>
 #import <Metal/Metal.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     class CommandRecordingContext;
     class Device;
@@ -91,6 +91,6 @@
         NSPRef<id<MTLTexture>> mMtlTextureView;
     };
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_TEXTUREMTL_H_
diff --git a/src/dawn_native/metal/TextureMTL.mm b/src/dawn_native/metal/TextureMTL.mm
index 496ca10..c166f4f 100644
--- a/src/dawn_native/metal/TextureMTL.mm
+++ b/src/dawn_native/metal/TextureMTL.mm
@@ -25,7 +25,7 @@
 
 #include <CoreVideo/CVPixelBuffer.h>
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     namespace {
         bool UsageNeedsTextureView(wgpu::TextureUsage usage) {
@@ -849,4 +849,4 @@
         ASSERT(mMtlTextureView != nullptr);
         return mMtlTextureView.Get();
     }
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/UtilsMetal.h b/src/dawn_native/metal/UtilsMetal.h
index 3a17c99..8dfb744 100644
--- a/src/dawn_native/metal/UtilsMetal.h
+++ b/src/dawn_native/metal/UtilsMetal.h
@@ -28,7 +28,7 @@
     enum class SingleShaderStage;
 }
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     MTLCompareFunction ToMetalCompareFunction(wgpu::CompareFunction compareFunction);
 
@@ -81,6 +81,6 @@
                                  uint32_t sampleMask = 0xFFFFFFFF,
                                  const RenderPipeline* renderPipeline = nullptr);
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_UTILSMETAL_H_
diff --git a/src/dawn_native/metal/UtilsMetal.mm b/src/dawn_native/metal/UtilsMetal.mm
index 7fc2429..8d163ac 100644
--- a/src/dawn_native/metal/UtilsMetal.mm
+++ b/src/dawn_native/metal/UtilsMetal.mm
@@ -19,7 +19,7 @@
 
 #include "common/Assert.h"
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     MTLCompareFunction ToMetalCompareFunction(wgpu::CompareFunction compareFunction) {
         switch (compareFunction) {
@@ -287,4 +287,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
diff --git a/src/dawn_native/null/DeviceNull.cpp b/src/dawn_native/null/DeviceNull.cpp
index 58a783c..dad3afa 100644
--- a/src/dawn_native/null/DeviceNull.cpp
+++ b/src/dawn_native/null/DeviceNull.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/Instance.h"
 #include "dawn_native/Surface.h"
 
-namespace dawn_native { namespace null {
+namespace dawn_native::null {
 
     // Implementation of pre-Device objects: the null adapter, null backend connection and Connect()
 
@@ -515,4 +515,4 @@
         return 1.0f;
     }
 
-}}  // namespace dawn_native::null
+}  // namespace dawn_native::null
diff --git a/src/dawn_native/null/DeviceNull.h b/src/dawn_native/null/DeviceNull.h
index ef2adfb..b25de26 100644
--- a/src/dawn_native/null/DeviceNull.h
+++ b/src/dawn_native/null/DeviceNull.h
@@ -36,7 +36,7 @@
 #include "dawn_native/ToBackend.h"
 #include "dawn_native/dawn_platform.h"
 
-namespace dawn_native { namespace null {
+namespace dawn_native::null {
 
     class Adapter;
     class BindGroup;
@@ -335,6 +335,6 @@
         std::unique_ptr<uint8_t[]> mBuffer;
     };
 
-}}  // namespace dawn_native::null
+}  // namespace dawn_native::null
 
 #endif  // DAWNNATIVE_NULL_DEVICENULL_H_
diff --git a/src/dawn_native/null/NullBackend.cpp b/src/dawn_native/null/NullBackend.cpp
index a48dcdc..431e149 100644
--- a/src/dawn_native/null/NullBackend.cpp
+++ b/src/dawn_native/null/NullBackend.cpp
@@ -20,7 +20,7 @@
 #include "common/SwapChainUtils.h"
 #include "dawn_native/null/DeviceNull.h"
 
-namespace dawn_native { namespace null {
+namespace dawn_native::null {
 
     DawnSwapChainImplementation CreateNativeSwapChainImpl() {
         DawnSwapChainImplementation impl;
@@ -29,4 +29,4 @@
         return impl;
     }
 
-}}  // namespace dawn_native::null
+}  // namespace dawn_native::null
diff --git a/src/dawn_native/opengl/BackendGL.cpp b/src/dawn_native/opengl/BackendGL.cpp
index 611d258..0c2ee0b 100644
--- a/src/dawn_native/opengl/BackendGL.cpp
+++ b/src/dawn_native/opengl/BackendGL.cpp
@@ -22,7 +22,7 @@
 
 #include <cstring>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
 
@@ -303,4 +303,4 @@
         return new Backend(instance, backendType);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BackendGL.h b/src/dawn_native/opengl/BackendGL.h
index a586a85..02db43f 100644
--- a/src/dawn_native/opengl/BackendGL.h
+++ b/src/dawn_native/opengl/BackendGL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/BackendConnection.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Backend : public BackendConnection {
       public:
@@ -31,6 +31,6 @@
         bool mCreatedAdapter = false;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_BACKENDGL_H_
diff --git a/src/dawn_native/opengl/BindGroupGL.cpp b/src/dawn_native/opengl/BindGroupGL.cpp
index b77e0ff..3c381f3 100644
--- a/src/dawn_native/opengl/BindGroupGL.cpp
+++ b/src/dawn_native/opengl/BindGroupGL.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/opengl/BindGroupLayoutGL.h"
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     MaybeError ValidateGLBindGroupDescriptor(const BindGroupDescriptor* descriptor) {
         const BindGroupLayoutBase::BindingMap& bindingMap = descriptor->layout->GetBindingMap();
@@ -62,4 +62,4 @@
         return ToBackend(descriptor->layout)->AllocateBindGroup(device, descriptor);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BindGroupGL.h b/src/dawn_native/opengl/BindGroupGL.h
index 994795a..6982c49 100644
--- a/src/dawn_native/opengl/BindGroupGL.h
+++ b/src/dawn_native/opengl/BindGroupGL.h
@@ -18,7 +18,7 @@
 #include "common/PlacementAllocated.h"
 #include "dawn_native/BindGroup.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -36,6 +36,6 @@
         void DestroyImpl() override;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_BINDGROUPGL_H_
diff --git a/src/dawn_native/opengl/BindGroupLayoutGL.cpp b/src/dawn_native/opengl/BindGroupLayoutGL.cpp
index d008b1d..df28bc4 100644
--- a/src/dawn_native/opengl/BindGroupLayoutGL.cpp
+++ b/src/dawn_native/opengl/BindGroupLayoutGL.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/opengl/BindGroupGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     BindGroupLayout::BindGroupLayout(DeviceBase* device,
                                      const BindGroupLayoutDescriptor* descriptor,
@@ -34,4 +34,4 @@
         mBindGroupAllocator.Deallocate(bindGroup);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BindGroupLayoutGL.h b/src/dawn_native/opengl/BindGroupLayoutGL.h
index 136bd0a..7e1eb77 100644
--- a/src/dawn_native/opengl/BindGroupLayoutGL.h
+++ b/src/dawn_native/opengl/BindGroupLayoutGL.h
@@ -18,7 +18,7 @@
 #include "common/SlabAllocator.h"
 #include "dawn_native/BindGroupLayout.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class BindGroup;
     class Device;
@@ -37,6 +37,6 @@
         SlabAllocator<BindGroup> mBindGroupAllocator;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_BINDGROUPLAYOUTGL_H_
diff --git a/src/dawn_native/opengl/BufferGL.cpp b/src/dawn_native/opengl/BufferGL.cpp
index a23556b..5e7458e 100644
--- a/src/dawn_native/opengl/BufferGL.cpp
+++ b/src/dawn_native/opengl/BufferGL.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/CommandBuffer.h"
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     // Buffer
 
@@ -181,4 +181,4 @@
         mBuffer = 0;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BufferGL.h b/src/dawn_native/opengl/BufferGL.h
index 596b229..32cf277 100644
--- a/src/dawn_native/opengl/BufferGL.h
+++ b/src/dawn_native/opengl/BufferGL.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -53,6 +53,6 @@
         void* mMappedData = nullptr;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_BUFFERGL_H_
diff --git a/src/dawn_native/opengl/CommandBufferGL.cpp b/src/dawn_native/opengl/CommandBufferGL.cpp
index e778282..ac1fa15 100644
--- a/src/dawn_native/opengl/CommandBufferGL.cpp
+++ b/src/dawn_native/opengl/CommandBufferGL.cpp
@@ -34,7 +34,7 @@
 
 #include <cstring>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
 
@@ -1488,4 +1488,4 @@
         }
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/CommandBufferGL.h b/src/dawn_native/opengl/CommandBufferGL.h
index fde8751..0fd222b 100644
--- a/src/dawn_native/opengl/CommandBufferGL.h
+++ b/src/dawn_native/opengl/CommandBufferGL.h
@@ -21,7 +21,7 @@
     struct BeginRenderPassCmd;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
     struct OpenGLFunctions;
@@ -44,6 +44,6 @@
                        const void* data,
                        const TextureDataLayout& dataLayout,
                        const Extent3D& copySize);
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_COMMANDBUFFERGL_H_
diff --git a/src/dawn_native/opengl/ComputePipelineGL.cpp b/src/dawn_native/opengl/ComputePipelineGL.cpp
index 2ee7bb8..0c93f29 100644
--- a/src/dawn_native/opengl/ComputePipelineGL.cpp
+++ b/src/dawn_native/opengl/ComputePipelineGL.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     // static
     Ref<ComputePipeline> ComputePipeline::CreateUninitialized(
@@ -42,4 +42,4 @@
         PipelineGL::ApplyNow(ToBackend(GetDevice())->gl);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/ComputePipelineGL.h b/src/dawn_native/opengl/ComputePipelineGL.h
index f5646ba..060bd65 100644
--- a/src/dawn_native/opengl/ComputePipelineGL.h
+++ b/src/dawn_native/opengl/ComputePipelineGL.h
@@ -21,7 +21,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -41,6 +41,6 @@
         void DestroyImpl() override;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_COMPUTEPIPELINEGL_H_
diff --git a/src/dawn_native/opengl/DeviceGL.cpp b/src/dawn_native/opengl/DeviceGL.cpp
index ffaed2b..a562cc6 100644
--- a/src/dawn_native/opengl/DeviceGL.cpp
+++ b/src/dawn_native/opengl/DeviceGL.cpp
@@ -32,7 +32,7 @@
 #include "dawn_native/opengl/SwapChainGL.h"
 #include "dawn_native/opengl/TextureGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     // static
     ResultOrError<Ref<Device>> Device::Create(AdapterBase* adapter,
@@ -312,4 +312,4 @@
         return 1.0f;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/DeviceGL.h b/src/dawn_native/opengl/DeviceGL.h
index 1bd8f31..66cd785 100644
--- a/src/dawn_native/opengl/DeviceGL.h
+++ b/src/dawn_native/opengl/DeviceGL.h
@@ -33,7 +33,7 @@
 
 typedef void* EGLImage;
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device final : public DeviceBase {
       public:
@@ -126,6 +126,6 @@
         GLFormatTable mFormatTable;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_DEVICEGL_H_
diff --git a/src/dawn_native/opengl/Forward.h b/src/dawn_native/opengl/Forward.h
index 82d0766..fcf6d2c 100644
--- a/src/dawn_native/opengl/Forward.h
+++ b/src/dawn_native/opengl/Forward.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/ToBackend.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Adapter;
     class BindGroup;
@@ -61,6 +61,6 @@
         return ToBackendBase<OpenGLBackendTraits>(common);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_FORWARD_H_
diff --git a/src/dawn_native/opengl/GLFormat.cpp b/src/dawn_native/opengl/GLFormat.cpp
index af28814..4bab9e2 100644
--- a/src/dawn_native/opengl/GLFormat.cpp
+++ b/src/dawn_native/opengl/GLFormat.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/opengl/GLFormat.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     GLFormatTable BuildGLFormatTable() {
         GLFormatTable table;
@@ -117,4 +117,4 @@
         return table;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/GLFormat.h b/src/dawn_native/opengl/GLFormat.h
index 255b17c..b04fa5e 100644
--- a/src/dawn_native/opengl/GLFormat.h
+++ b/src/dawn_native/opengl/GLFormat.h
@@ -18,7 +18,7 @@
 #include "dawn_native/Format.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -37,6 +37,6 @@
     using GLFormatTable = std::array<GLFormat, kKnownFormatCount>;
     GLFormatTable BuildGLFormatTable();
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_GLFORMAT_H_
diff --git a/src/dawn_native/opengl/NativeSwapChainImplGL.cpp b/src/dawn_native/opengl/NativeSwapChainImplGL.cpp
index 330999d..03c9eb0 100644
--- a/src/dawn_native/opengl/NativeSwapChainImplGL.cpp
+++ b/src/dawn_native/opengl/NativeSwapChainImplGL.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     NativeSwapChainImpl::NativeSwapChainImpl(Device* device,
                                              PresentCallback present,
@@ -85,4 +85,4 @@
         return wgpu::TextureFormat::RGBA8Unorm;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/NativeSwapChainImplGL.h b/src/dawn_native/opengl/NativeSwapChainImplGL.h
index acda005..ddf2b26 100644
--- a/src/dawn_native/opengl/NativeSwapChainImplGL.h
+++ b/src/dawn_native/opengl/NativeSwapChainImplGL.h
@@ -20,7 +20,7 @@
 #include "dawn_native/dawn_platform.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -53,6 +53,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_NATIVESWAPCHAINIMPLGL_H_
diff --git a/src/dawn_native/opengl/OpenGLBackend.cpp b/src/dawn_native/opengl/OpenGLBackend.cpp
index 560f3a0..ca46537 100644
--- a/src/dawn_native/opengl/OpenGLBackend.cpp
+++ b/src/dawn_native/opengl/OpenGLBackend.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/opengl/DeviceGL.h"
 #include "dawn_native/opengl/NativeSwapChainImplGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     AdapterDiscoveryOptions::AdapterDiscoveryOptions()
         : AdapterDiscoveryOptionsBase(WGPUBackendType_OpenGL) {
@@ -62,4 +62,4 @@
         return ToAPI(texture);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/OpenGLFunctions.cpp b/src/dawn_native/opengl/OpenGLFunctions.cpp
index 472fa5b..05e5014 100644
--- a/src/dawn_native/opengl/OpenGLFunctions.cpp
+++ b/src/dawn_native/opengl/OpenGLFunctions.cpp
@@ -16,7 +16,7 @@
 
 #include <cctype>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     MaybeError OpenGLFunctions::Initialize(GetProcAddress getProc) {
         DAWN_TRY(mVersion.Initialize(getProc));
@@ -58,4 +58,4 @@
         return mVersion.IsES() && mVersion.IsAtLeast(majorVersion, minorVersion);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/OpenGLFunctions.h b/src/dawn_native/opengl/OpenGLFunctions.h
index 69180b4..ff728a6 100644
--- a/src/dawn_native/opengl/OpenGLFunctions.h
+++ b/src/dawn_native/opengl/OpenGLFunctions.h
@@ -20,7 +20,7 @@
 #include "dawn_native/opengl/OpenGLFunctionsBase_autogen.h"
 #include "dawn_native/opengl/OpenGLVersion.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     struct OpenGLFunctions : OpenGLFunctionsBase {
       public:
@@ -40,6 +40,6 @@
         std::unordered_set<std::string> mSupportedGLExtensionsSet;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_OPENGLFUNCTIONS_H_
diff --git a/src/dawn_native/opengl/OpenGLVersion.cpp b/src/dawn_native/opengl/OpenGLVersion.cpp
index edb6adf..a97ba5d 100644
--- a/src/dawn_native/opengl/OpenGLVersion.cpp
+++ b/src/dawn_native/opengl/OpenGLVersion.cpp
@@ -17,7 +17,7 @@
 #include <cctype>
 #include <tuple>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     MaybeError OpenGLVersion::Initialize(GetProcAddress getProc) {
         PFNGLGETSTRINGPROC getString = reinterpret_cast<PFNGLGETSTRINGPROC>(getProc("glGetString"));
@@ -73,4 +73,4 @@
         return std::tie(mMajorVersion, mMinorVersion) >= std::tie(majorVersion, minorVersion);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/OpenGLVersion.h b/src/dawn_native/opengl/OpenGLVersion.h
index 88ddd50..295e771 100644
--- a/src/dawn_native/opengl/OpenGLVersion.h
+++ b/src/dawn_native/opengl/OpenGLVersion.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/opengl/OpenGLFunctionsBase_autogen.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     struct OpenGLVersion {
       public:
@@ -39,6 +39,6 @@
         Standard mStandard;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_OPENGLVERSION_H_
diff --git a/src/dawn_native/opengl/PersistentPipelineStateGL.cpp b/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
index a37bb67..edbffd0 100644
--- a/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
+++ b/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/opengl/OpenGLFunctions.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     void PersistentPipelineState::SetDefaultState(const OpenGLFunctions& gl) {
         CallGLStencilFunc(gl);
@@ -55,4 +55,4 @@
                                mStencilReadMask);
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PersistentPipelineStateGL.h b/src/dawn_native/opengl/PersistentPipelineStateGL.h
index c98ec15..553d07a 100644
--- a/src/dawn_native/opengl/PersistentPipelineStateGL.h
+++ b/src/dawn_native/opengl/PersistentPipelineStateGL.h
@@ -18,7 +18,7 @@
 #include "dawn_native/dawn_platform.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     struct OpenGLFunctions;
 
@@ -40,6 +40,6 @@
         GLuint mStencilReference = 0;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_PERSISTENTPIPELINESTATEGL_H_
diff --git a/src/dawn_native/opengl/PipelineGL.cpp b/src/dawn_native/opengl/PipelineGL.cpp
index 614a125..21f522c 100644
--- a/src/dawn_native/opengl/PipelineGL.cpp
+++ b/src/dawn_native/opengl/PipelineGL.cpp
@@ -27,7 +27,7 @@
 #include <set>
 #include <sstream>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
 
@@ -215,4 +215,4 @@
         }
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PipelineGL.h b/src/dawn_native/opengl/PipelineGL.h
index be6c1dd..6199e6ec 100644
--- a/src/dawn_native/opengl/PipelineGL.h
+++ b/src/dawn_native/opengl/PipelineGL.h
@@ -26,7 +26,7 @@
     struct ProgrammableStage;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     struct OpenGLFunctions;
     class PipelineLayout;
@@ -64,6 +64,6 @@
         Ref<Sampler> mDummySampler;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_PIPELINEGL_H_
diff --git a/src/dawn_native/opengl/PipelineLayoutGL.cpp b/src/dawn_native/opengl/PipelineLayoutGL.cpp
index a1742a5..9c8fffa 100644
--- a/src/dawn_native/opengl/PipelineLayoutGL.cpp
+++ b/src/dawn_native/opengl/PipelineLayoutGL.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/BindGroupLayout.h"
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     PipelineLayout::PipelineLayout(Device* device, const PipelineLayoutDescriptor* descriptor)
         : PipelineLayoutBase(device, descriptor) {
@@ -92,4 +92,4 @@
         return mNumSampledTextures;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PipelineLayoutGL.h b/src/dawn_native/opengl/PipelineLayoutGL.h
index eeff718..2386fe2 100644
--- a/src/dawn_native/opengl/PipelineLayoutGL.h
+++ b/src/dawn_native/opengl/PipelineLayoutGL.h
@@ -22,7 +22,7 @@
 #include "dawn_native/BindingInfo.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -45,6 +45,6 @@
         size_t mNumSampledTextures;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_PIPELINELAYOUTGL_H_
diff --git a/src/dawn_native/opengl/QuerySetGL.cpp b/src/dawn_native/opengl/QuerySetGL.cpp
index 2f71291..3d701d4 100644
--- a/src/dawn_native/opengl/QuerySetGL.cpp
+++ b/src/dawn_native/opengl/QuerySetGL.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     QuerySet::QuerySet(Device* device, const QuerySetDescriptor* descriptor)
         : QuerySetBase(device, descriptor) {
@@ -24,4 +24,4 @@
 
     QuerySet::~QuerySet() = default;
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/QuerySetGL.h b/src/dawn_native/opengl/QuerySetGL.h
index b0a31da..0a39e8b 100644
--- a/src/dawn_native/opengl/QuerySetGL.h
+++ b/src/dawn_native/opengl/QuerySetGL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/QuerySet.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -29,6 +29,6 @@
         ~QuerySet() override;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_QUERYSETGL_H_
diff --git a/src/dawn_native/opengl/QueueGL.cpp b/src/dawn_native/opengl/QueueGL.cpp
index ec98b64..c9ecbb0 100644
--- a/src/dawn_native/opengl/QueueGL.cpp
+++ b/src/dawn_native/opengl/QueueGL.cpp
@@ -21,7 +21,7 @@
 #include "dawn_platform/DawnPlatform.h"
 #include "dawn_platform/tracing/TraceEvent.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -77,4 +77,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/QueueGL.h b/src/dawn_native/opengl/QueueGL.h
index b5a5243..2534297 100644
--- a/src/dawn_native/opengl/QueueGL.h
+++ b/src/dawn_native/opengl/QueueGL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/Queue.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -37,6 +37,6 @@
                                     const Extent3D& writeSizePixel) override;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_QUEUEGL_H_
diff --git a/src/dawn_native/opengl/RenderPipelineGL.cpp b/src/dawn_native/opengl/RenderPipelineGL.cpp
index bc8c2c6..fe04fcd 100644
--- a/src/dawn_native/opengl/RenderPipelineGL.cpp
+++ b/src/dawn_native/opengl/RenderPipelineGL.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/opengl/PersistentPipelineStateGL.h"
 #include "dawn_native/opengl/UtilsGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
 
@@ -342,4 +342,4 @@
         }
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/RenderPipelineGL.h b/src/dawn_native/opengl/RenderPipelineGL.h
index 75aab20..44d01a5 100644
--- a/src/dawn_native/opengl/RenderPipelineGL.h
+++ b/src/dawn_native/opengl/RenderPipelineGL.h
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
     class PersistentPipelineState;
@@ -57,6 +57,6 @@
             mAttributesUsingVertexBuffer;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_RENDERPIPELINEGL_H_
diff --git a/src/dawn_native/opengl/SamplerGL.cpp b/src/dawn_native/opengl/SamplerGL.cpp
index b331df3..9e5435c0 100644
--- a/src/dawn_native/opengl/SamplerGL.cpp
+++ b/src/dawn_native/opengl/SamplerGL.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/opengl/DeviceGL.h"
 #include "dawn_native/opengl/UtilsGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
         GLenum MagFilterMode(wgpu::FilterMode filter) {
@@ -127,4 +127,4 @@
         return mNonFilteringHandle;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/SamplerGL.h b/src/dawn_native/opengl/SamplerGL.h
index f08930e..f8b21b9 100644
--- a/src/dawn_native/opengl/SamplerGL.h
+++ b/src/dawn_native/opengl/SamplerGL.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -43,6 +43,6 @@
         GLuint mNonFilteringHandle;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_SAMPLERGL_H_
diff --git a/src/dawn_native/opengl/ShaderModuleGL.cpp b/src/dawn_native/opengl/ShaderModuleGL.cpp
index a959819..6517502 100644
--- a/src/dawn_native/opengl/ShaderModuleGL.cpp
+++ b/src/dawn_native/opengl/ShaderModuleGL.cpp
@@ -34,7 +34,7 @@
 
 #include <sstream>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     std::string GetBindingName(BindGroupIndex group, BindingNumber bindingNumber) {
         std::ostringstream o;
@@ -397,4 +397,4 @@
         return glsl;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/ShaderModuleGL.h b/src/dawn_native/opengl/ShaderModuleGL.h
index d955225..f3d5462 100644
--- a/src/dawn_native/opengl/ShaderModuleGL.h
+++ b/src/dawn_native/opengl/ShaderModuleGL.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
     class PipelineLayout;
@@ -70,6 +70,6 @@
         BindingInfoArrayTable mGLBindings;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_SHADERMODULEGL_H_
diff --git a/src/dawn_native/opengl/SwapChainGL.cpp b/src/dawn_native/opengl/SwapChainGL.cpp
index 8223a2c..f8043a4 100644
--- a/src/dawn_native/opengl/SwapChainGL.cpp
+++ b/src/dawn_native/opengl/SwapChainGL.cpp
@@ -20,7 +20,7 @@
 
 #include <dawn/dawn_wsi.h>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     SwapChain::SwapChain(Device* device, const SwapChainDescriptor* descriptor)
         : OldSwapChainBase(device, descriptor) {
@@ -48,4 +48,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/SwapChainGL.h b/src/dawn_native/opengl/SwapChainGL.h
index 0cce925..1868972 100644
--- a/src/dawn_native/opengl/SwapChainGL.h
+++ b/src/dawn_native/opengl/SwapChainGL.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
 
@@ -33,6 +33,6 @@
         MaybeError OnBeforePresent(TextureViewBase* view) override;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_SWAPCHAINGL_H_
diff --git a/src/dawn_native/opengl/TextureGL.cpp b/src/dawn_native/opengl/TextureGL.cpp
index ceb57bd..7c7cb9f 100644
--- a/src/dawn_native/opengl/TextureGL.cpp
+++ b/src/dawn_native/opengl/TextureGL.cpp
@@ -23,7 +23,7 @@
 #include "dawn_native/opengl/DeviceGL.h"
 #include "dawn_native/opengl/UtilsGL.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     namespace {
 
@@ -577,4 +577,4 @@
         return mTarget;
     }
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/TextureGL.h b/src/dawn_native/opengl/TextureGL.h
index 28b35d3..f6deaf5 100644
--- a/src/dawn_native/opengl/TextureGL.h
+++ b/src/dawn_native/opengl/TextureGL.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     class Device;
     struct GLFormat;
@@ -64,6 +64,6 @@
         bool mOwnsHandle;
     };
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_TEXTUREGL_H_
diff --git a/src/dawn_native/opengl/UtilsGL.cpp b/src/dawn_native/opengl/UtilsGL.cpp
index 413336b..1dd7a69 100644
--- a/src/dawn_native/opengl/UtilsGL.cpp
+++ b/src/dawn_native/opengl/UtilsGL.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     GLuint ToOpenGLCompareFunction(wgpu::CompareFunction compareFunction) {
         switch (compareFunction) {
@@ -52,4 +52,4 @@
                 UNREACHABLE();
         }
     }
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/UtilsGL.h b/src/dawn_native/opengl/UtilsGL.h
index 2f87b37..fe8a940 100644
--- a/src/dawn_native/opengl/UtilsGL.h
+++ b/src/dawn_native/opengl/UtilsGL.h
@@ -18,10 +18,10 @@
 #include "dawn_native/dawn_platform.h"
 #include "dawn_native/opengl/opengl_platform.h"
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     GLuint ToOpenGLCompareFunction(wgpu::CompareFunction compareFunction);
     GLint GetStencilMaskFromStencilFormat(wgpu::TextureFormat depthStencilFormat);
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_UTILSGL_H_
diff --git a/src/dawn_native/utils/WGPUHelpers.cpp b/src/dawn_native/utils/WGPUHelpers.cpp
index 60c2add..3fb0549 100644
--- a/src/dawn_native/utils/WGPUHelpers.cpp
+++ b/src/dawn_native/utils/WGPUHelpers.cpp
@@ -31,7 +31,7 @@
 #include <mutex>
 #include <sstream>
 
-namespace dawn_native { namespace utils {
+namespace dawn_native::utils {
 
     ResultOrError<Ref<ShaderModuleBase>> CreateShaderModule(DeviceBase* device,
                                                             const char* source) {
@@ -189,4 +189,4 @@
         return (label == nullptr || strlen(label) == 0) ? "None" : label;
     }
 
-}}  // namespace dawn_native::utils
+}  // namespace dawn_native::utils
diff --git a/src/dawn_native/utils/WGPUHelpers.h b/src/dawn_native/utils/WGPUHelpers.h
index 108f107..0077059 100644
--- a/src/dawn_native/utils/WGPUHelpers.h
+++ b/src/dawn_native/utils/WGPUHelpers.h
@@ -24,7 +24,7 @@
 #include "common/RefCounted.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace utils {
+namespace dawn_native::utils {
 
     ResultOrError<Ref<ShaderModuleBase>> CreateShaderModule(DeviceBase* device, const char* source);
 
@@ -118,6 +118,6 @@
 
     const char* GetLabelForTrace(const char* label);
 
-}}  // namespace dawn_native::utils
+}  // namespace dawn_native::utils
 
 #endif  // DAWNNATIVE_UTILS_WGPUHELPERS_H_
\ No newline at end of file
diff --git a/src/dawn_native/vulkan/AdapterVk.cpp b/src/dawn_native/vulkan/AdapterVk.cpp
index 4eea820..4b81ba0 100644
--- a/src/dawn_native/vulkan/AdapterVk.cpp
+++ b/src/dawn_native/vulkan/AdapterVk.cpp
@@ -20,7 +20,7 @@
 
 #include "common/GPUInfo.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     Adapter::Adapter(InstanceBase* instance,
                      VulkanInstance* vulkanInstance,
@@ -350,4 +350,4 @@
         return Device::Create(this, descriptor);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/AdapterVk.h b/src/dawn_native/vulkan/AdapterVk.h
index 6d93a07..c61b70e 100644
--- a/src/dawn_native/vulkan/AdapterVk.h
+++ b/src/dawn_native/vulkan/AdapterVk.h
@@ -21,7 +21,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/vulkan/VulkanInfo.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class VulkanInstance;
 
@@ -54,6 +54,6 @@
         VulkanDeviceInfo mDeviceInfo = {};
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_ADAPTERVK_H_
diff --git a/src/dawn_native/vulkan/BackendVk.cpp b/src/dawn_native/vulkan/BackendVk.cpp
index 7fd6462..24340b4 100644
--- a/src/dawn_native/vulkan/BackendVk.cpp
+++ b/src/dawn_native/vulkan/BackendVk.cpp
@@ -77,7 +77,7 @@
      "SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, read_barriers: VK_PIPELINE_STAGE_2_NONE_KHR, "},
 };
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -444,4 +444,4 @@
         return new Backend(instance);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BackendVk.h b/src/dawn_native/vulkan/BackendVk.h
index 96541f1..2532e91 100644
--- a/src/dawn_native/vulkan/BackendVk.h
+++ b/src/dawn_native/vulkan/BackendVk.h
@@ -23,7 +23,7 @@
 #include "dawn_native/vulkan/VulkanFunctions.h"
 #include "dawn_native/vulkan/VulkanInfo.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     enum class ICD {
         None,
@@ -81,6 +81,6 @@
         ityp::array<ICD, Ref<VulkanInstance>, 2> mVulkanInstances = {};
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BACKENDVK_H_
diff --git a/src/dawn_native/vulkan/BindGroupLayoutVk.cpp b/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
index 52038e1..2641887 100644
--- a/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
+++ b/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
@@ -25,7 +25,7 @@
 
 #include <map>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -196,4 +196,4 @@
                      reinterpret_cast<uint64_t&>(mHandle), "Dawn_BindGroupLayout", GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BindGroupLayoutVk.h b/src/dawn_native/vulkan/BindGroupLayoutVk.h
index 4b0c98d..c144562 100644
--- a/src/dawn_native/vulkan/BindGroupLayoutVk.h
+++ b/src/dawn_native/vulkan/BindGroupLayoutVk.h
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class BindGroup;
     struct DescriptorSetAllocation;
@@ -75,6 +75,6 @@
         Ref<DescriptorSetAllocator> mDescriptorSetAllocator;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BINDGROUPLAYOUTVK_H_
diff --git a/src/dawn_native/vulkan/BindGroupVk.cpp b/src/dawn_native/vulkan/BindGroupVk.cpp
index dc056a7..b415685 100644
--- a/src/dawn_native/vulkan/BindGroupVk.cpp
+++ b/src/dawn_native/vulkan/BindGroupVk.cpp
@@ -26,7 +26,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // static
     ResultOrError<Ref<BindGroup>> BindGroup::Create(Device* device,
@@ -177,4 +177,4 @@
                      GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BindGroupVk.h b/src/dawn_native/vulkan/BindGroupVk.h
index abd8b1d..95d2be0 100644
--- a/src/dawn_native/vulkan/BindGroupVk.h
+++ b/src/dawn_native/vulkan/BindGroupVk.h
@@ -22,7 +22,7 @@
 #include "dawn_native/vulkan/BindGroupLayoutVk.h"
 #include "dawn_native/vulkan/DescriptorSetAllocation.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -50,6 +50,6 @@
         DescriptorSetAllocation mDescriptorSetAllocation;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BINDGROUPVK_H_
diff --git a/src/dawn_native/vulkan/BufferVk.cpp b/src/dawn_native/vulkan/BufferVk.cpp
index 0f03873..8331dd2 100644
--- a/src/dawn_native/vulkan/BufferVk.cpp
+++ b/src/dawn_native/vulkan/BufferVk.cpp
@@ -24,7 +24,7 @@
 
 #include <cstring>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -410,4 +410,4 @@
         device->fn.CmdFillBuffer(recordingContext->commandBuffer, mHandle, offset, size,
                                  clearValue);
     }
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BufferVk.h b/src/dawn_native/vulkan/BufferVk.h
index 721d4f0..6dfe3c0 100644
--- a/src/dawn_native/vulkan/BufferVk.h
+++ b/src/dawn_native/vulkan/BufferVk.h
@@ -21,7 +21,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/ResourceMemoryAllocation.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     struct CommandRecordingContext;
     class Device;
@@ -77,6 +77,6 @@
         wgpu::BufferUsage mLastUsage = wgpu::BufferUsage::None;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BUFFERVK_H_
diff --git a/src/dawn_native/vulkan/CommandBufferVk.cpp b/src/dawn_native/vulkan/CommandBufferVk.cpp
index d89688c..8d73790 100644
--- a/src/dawn_native/vulkan/CommandBufferVk.cpp
+++ b/src/dawn_native/vulkan/CommandBufferVk.cpp
@@ -38,7 +38,7 @@
 
 #include <algorithm>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -1321,4 +1321,4 @@
         UNREACHABLE();
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/CommandBufferVk.h b/src/dawn_native/vulkan/CommandBufferVk.h
index d5d603b..53d604e 100644
--- a/src/dawn_native/vulkan/CommandBufferVk.h
+++ b/src/dawn_native/vulkan/CommandBufferVk.h
@@ -25,7 +25,7 @@
     struct TextureCopy;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     struct CommandRecordingContext;
     class Device;
@@ -50,6 +50,6 @@
                                                 const Extent3D& copySize);
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_COMMANDBUFFERVK_H_
diff --git a/src/dawn_native/vulkan/CommandRecordingContext.h b/src/dawn_native/vulkan/CommandRecordingContext.h
index a8dd68d..ccd5a01 100644
--- a/src/dawn_native/vulkan/CommandRecordingContext.h
+++ b/src/dawn_native/vulkan/CommandRecordingContext.h
@@ -18,7 +18,7 @@
 
 #include "dawn_native/vulkan/BufferVk.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
     // Used to track operations that are handled after recording.
     // Currently only tracks semaphores, but may be used to do barrier coalescing in the future.
     struct CommandRecordingContext {
@@ -35,6 +35,6 @@
         bool used = false;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_COMMANDRECORDINGCONTEXT_H_
diff --git a/src/dawn_native/vulkan/ComputePipelineVk.cpp b/src/dawn_native/vulkan/ComputePipelineVk.cpp
index 77ceba7..7def0e1 100644
--- a/src/dawn_native/vulkan/ComputePipelineVk.cpp
+++ b/src/dawn_native/vulkan/ComputePipelineVk.cpp
@@ -22,7 +22,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // static
     Ref<ComputePipeline> ComputePipeline::CreateUninitialized(
@@ -113,4 +113,4 @@
         CreateComputePipelineAsyncTask::RunAsync(std::move(asyncTask));
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ComputePipelineVk.h b/src/dawn_native/vulkan/ComputePipelineVk.h
index 26bf4c2..3164bdf 100644
--- a/src/dawn_native/vulkan/ComputePipelineVk.h
+++ b/src/dawn_native/vulkan/ComputePipelineVk.h
@@ -20,7 +20,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -48,6 +48,6 @@
         VkPipeline mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_COMPUTEPIPELINEVK_H_
diff --git a/src/dawn_native/vulkan/DescriptorSetAllocation.h b/src/dawn_native/vulkan/DescriptorSetAllocation.h
index 6a708e1..0e49d34 100644
--- a/src/dawn_native/vulkan/DescriptorSetAllocation.h
+++ b/src/dawn_native/vulkan/DescriptorSetAllocation.h
@@ -17,7 +17,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // Contains a descriptor set along with data necessary to track its allocation.
     struct DescriptorSetAllocation {
@@ -26,6 +26,6 @@
         uint16_t setIndex;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_DESCRIPTORSETALLOCATION_H_
diff --git a/src/dawn_native/vulkan/DescriptorSetAllocator.cpp b/src/dawn_native/vulkan/DescriptorSetAllocator.cpp
index 936a9ba..47f68ad 100644
--- a/src/dawn_native/vulkan/DescriptorSetAllocator.cpp
+++ b/src/dawn_native/vulkan/DescriptorSetAllocator.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/vulkan/FencedDeleter.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // TODO(enga): Figure out this value.
     static constexpr uint32_t kMaxDescriptorsPerPool = 512;
@@ -185,4 +185,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/DescriptorSetAllocator.h b/src/dawn_native/vulkan/DescriptorSetAllocator.h
index ef7eba1..dfeba15 100644
--- a/src/dawn_native/vulkan/DescriptorSetAllocator.h
+++ b/src/dawn_native/vulkan/DescriptorSetAllocator.h
@@ -25,7 +25,7 @@
 #include <map>
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class BindGroupLayout;
 
@@ -71,6 +71,6 @@
         ExecutionSerial mLastDeallocationSerial = ExecutionSerial(0);
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_DESCRIPTORSETALLOCATOR_H_
diff --git a/src/dawn_native/vulkan/DeviceVk.cpp b/src/dawn_native/vulkan/DeviceVk.cpp
index 2c2c48b..2bce878 100644
--- a/src/dawn_native/vulkan/DeviceVk.cpp
+++ b/src/dawn_native/vulkan/DeviceVk.cpp
@@ -42,7 +42,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // static
     ResultOrError<Ref<Device>> Device::Create(Adapter* adapter,
@@ -1015,4 +1015,4 @@
         return mDeviceInfo.properties.limits.timestampPeriod;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/DeviceVk.h b/src/dawn_native/vulkan/DeviceVk.h
index 00f32c7..5bdb6d9 100644
--- a/src/dawn_native/vulkan/DeviceVk.h
+++ b/src/dawn_native/vulkan/DeviceVk.h
@@ -32,7 +32,7 @@
 #include <memory>
 #include <queue>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Adapter;
     class BindGroupLayout;
@@ -208,6 +208,6 @@
                                        std::vector<VkSemaphore>* outWaitSemaphores);
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_DEVICEVK_H_
diff --git a/src/dawn_native/vulkan/ExternalHandle.h b/src/dawn_native/vulkan/ExternalHandle.h
index 45206b3..84e672c 100644
--- a/src/dawn_native/vulkan/ExternalHandle.h
+++ b/src/dawn_native/vulkan/ExternalHandle.h
@@ -3,7 +3,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
 #if DAWN_PLATFORM_LINUX
     // File descriptor
@@ -21,6 +21,6 @@
     using ExternalSemaphoreHandle = void*;
 #endif
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_EXTERNALHANDLE_H_
diff --git a/src/dawn_native/vulkan/FencedDeleter.cpp b/src/dawn_native/vulkan/FencedDeleter.cpp
index 4086f0c..9607a47 100644
--- a/src/dawn_native/vulkan/FencedDeleter.cpp
+++ b/src/dawn_native/vulkan/FencedDeleter.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/vulkan/DeviceVk.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     FencedDeleter::FencedDeleter(Device* device) : mDevice(device) {
     }
@@ -180,4 +180,4 @@
         mSamplersToDelete.ClearUpTo(completedSerial);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/FencedDeleter.h b/src/dawn_native/vulkan/FencedDeleter.h
index 81e6028..a137d49 100644
--- a/src/dawn_native/vulkan/FencedDeleter.h
+++ b/src/dawn_native/vulkan/FencedDeleter.h
@@ -19,7 +19,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/IntegerTypes.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -65,6 +65,6 @@
         SerialQueue<ExecutionSerial, VkSwapchainKHR> mSwapChainsToDelete;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_FENCEDDELETER_H_
diff --git a/src/dawn_native/vulkan/Forward.h b/src/dawn_native/vulkan/Forward.h
index e11a74f..bc34458 100644
--- a/src/dawn_native/vulkan/Forward.h
+++ b/src/dawn_native/vulkan/Forward.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/ToBackend.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Adapter;
     class BindGroup;
@@ -64,6 +64,6 @@
         return ToBackendBase<VulkanBackendTraits>(common);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_FORWARD_H_
diff --git a/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp b/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
index 9782a2b..8b7cc55 100644
--- a/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
+++ b/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
@@ -20,7 +20,7 @@
 
 #include <limits>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -222,4 +222,4 @@
         return mConfig.format;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/NativeSwapChainImplVk.h b/src/dawn_native/vulkan/NativeSwapChainImplVk.h
index fe7a182..b908fd9 100644
--- a/src/dawn_native/vulkan/NativeSwapChainImplVk.h
+++ b/src/dawn_native/vulkan/NativeSwapChainImplVk.h
@@ -20,7 +20,7 @@
 #include "dawn/dawn_wsi.h"
 #include "dawn_native/dawn_platform.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -66,6 +66,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_NATIVESWAPCHAINIMPLVK_H_
diff --git a/src/dawn_native/vulkan/PipelineLayoutVk.cpp b/src/dawn_native/vulkan/PipelineLayoutVk.cpp
index e41a99b..6a34c23 100644
--- a/src/dawn_native/vulkan/PipelineLayoutVk.cpp
+++ b/src/dawn_native/vulkan/PipelineLayoutVk.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // static
     ResultOrError<Ref<PipelineLayout>> PipelineLayout::Create(
@@ -81,4 +81,4 @@
                      reinterpret_cast<uint64_t&>(mHandle), "Dawn_PipelineLayout", GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/PipelineLayoutVk.h b/src/dawn_native/vulkan/PipelineLayoutVk.h
index 3cabde0..86a1caf 100644
--- a/src/dawn_native/vulkan/PipelineLayoutVk.h
+++ b/src/dawn_native/vulkan/PipelineLayoutVk.h
@@ -20,7 +20,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -45,6 +45,6 @@
         VkPipelineLayout mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_PIPELINELAYOUTVK_H_
diff --git a/src/dawn_native/vulkan/QuerySetVk.cpp b/src/dawn_native/vulkan/QuerySetVk.cpp
index 01d3a73..f8373ba 100644
--- a/src/dawn_native/vulkan/QuerySetVk.cpp
+++ b/src/dawn_native/vulkan/QuerySetVk.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/VulkanError.h"
 #include "dawn_platform/DawnPlatform.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
         VkQueryType VulkanQueryType(wgpu::QueryType type) {
@@ -114,4 +114,4 @@
                      reinterpret_cast<uint64_t&>(mHandle), "Dawn_QuerySet", GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/QuerySetVk.h b/src/dawn_native/vulkan/QuerySetVk.h
index e219a0f..9632d6e 100644
--- a/src/dawn_native/vulkan/QuerySetVk.h
+++ b/src/dawn_native/vulkan/QuerySetVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -42,6 +42,6 @@
         VkQueryPool mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_QUERYSETVK_H_
diff --git a/src/dawn_native/vulkan/QueueVk.cpp b/src/dawn_native/vulkan/QueueVk.cpp
index 2cb1e69..79f2973 100644
--- a/src/dawn_native/vulkan/QueueVk.cpp
+++ b/src/dawn_native/vulkan/QueueVk.cpp
@@ -25,7 +25,7 @@
 #include "dawn_platform/DawnPlatform.h"
 #include "dawn_platform/tracing/TraceEvent.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // static
     Queue* Queue::Create(Device* device) {
@@ -56,4 +56,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/QueueVk.h b/src/dawn_native/vulkan/QueueVk.h
index b3aa665..effc6ad 100644
--- a/src/dawn_native/vulkan/QueueVk.h
+++ b/src/dawn_native/vulkan/QueueVk.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/Queue.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -33,6 +33,6 @@
         MaybeError SubmitImpl(uint32_t commandCount, CommandBufferBase* const* commands) override;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_QUEUEVK_H_
diff --git a/src/dawn_native/vulkan/RenderPassCache.cpp b/src/dawn_native/vulkan/RenderPassCache.cpp
index 120cc0f..ad2cfd3 100644
--- a/src/dawn_native/vulkan/RenderPassCache.cpp
+++ b/src/dawn_native/vulkan/RenderPassCache.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/TextureVk.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
         VkAttachmentLoadOp VulkanAttachmentLoadOp(wgpu::LoadOp op) {
@@ -289,4 +289,4 @@
 
         return true;
     }
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/RenderPassCache.h b/src/dawn_native/vulkan/RenderPassCache.h
index 29bcfd0..400c575 100644
--- a/src/dawn_native/vulkan/RenderPassCache.h
+++ b/src/dawn_native/vulkan/RenderPassCache.h
@@ -28,7 +28,7 @@
 #include <mutex>
 #include <unordered_map>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -101,6 +101,6 @@
         Cache mCache;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RENDERPASSCACHE_H_
diff --git a/src/dawn_native/vulkan/RenderPipelineVk.cpp b/src/dawn_native/vulkan/RenderPipelineVk.cpp
index d0072df..2f19386 100644
--- a/src/dawn_native/vulkan/RenderPipelineVk.cpp
+++ b/src/dawn_native/vulkan/RenderPipelineVk.cpp
@@ -24,7 +24,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -624,4 +624,4 @@
         CreateRenderPipelineAsyncTask::RunAsync(std::move(asyncTask));
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/RenderPipelineVk.h b/src/dawn_native/vulkan/RenderPipelineVk.h
index 9cfd078..810041a 100644
--- a/src/dawn_native/vulkan/RenderPipelineVk.h
+++ b/src/dawn_native/vulkan/RenderPipelineVk.h
@@ -20,7 +20,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -54,6 +54,6 @@
         VkPipeline mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RENDERPIPELINEVK_H_
diff --git a/src/dawn_native/vulkan/ResourceHeapVk.cpp b/src/dawn_native/vulkan/ResourceHeapVk.cpp
index bf3b947..c0af2d3 100644
--- a/src/dawn_native/vulkan/ResourceHeapVk.cpp
+++ b/src/dawn_native/vulkan/ResourceHeapVk.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/vulkan/ResourceHeapVk.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     ResourceHeap::ResourceHeap(VkDeviceMemory memory, size_t memoryType)
         : mMemory(memory), mMemoryType(memoryType) {
@@ -28,4 +28,4 @@
         return mMemoryType;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ResourceHeapVk.h b/src/dawn_native/vulkan/ResourceHeapVk.h
index 2bb909b..b87600b 100644
--- a/src/dawn_native/vulkan/ResourceHeapVk.h
+++ b/src/dawn_native/vulkan/ResourceHeapVk.h
@@ -18,7 +18,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/ResourceHeap.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // Wrapper for physical memory used with or without a resource object.
     class ResourceHeap : public ResourceHeapBase {
@@ -34,6 +34,6 @@
         size_t mMemoryType = 0;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RESOURCEHEAPVK_H_
diff --git a/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp b/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp
index 72bb019..abfd3aa 100644
--- a/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp
+++ b/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp
@@ -22,7 +22,7 @@
 #include "dawn_native/vulkan/ResourceHeapVk.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -289,4 +289,4 @@
         }
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h b/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h
index e3871db..788ea1c 100644
--- a/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h
+++ b/src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h
@@ -25,7 +25,7 @@
 #include <memory>
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -61,6 +61,6 @@
         SerialQueue<ExecutionSerial, ResourceMemoryAllocation> mSubAllocationsToDelete;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RESOURCEMEMORYALLOCATORVK_H_
diff --git a/src/dawn_native/vulkan/SamplerVk.cpp b/src/dawn_native/vulkan/SamplerVk.cpp
index 7c43645..0885d55 100644
--- a/src/dawn_native/vulkan/SamplerVk.cpp
+++ b/src/dawn_native/vulkan/SamplerVk.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
         VkSamplerAddressMode VulkanSamplerAddressMode(wgpu::AddressMode mode) {
@@ -128,4 +128,4 @@
                      reinterpret_cast<uint64_t&>(mHandle), "Dawn_Sampler", GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/SamplerVk.h b/src/dawn_native/vulkan/SamplerVk.h
index fec8653..e3aea2c 100644
--- a/src/dawn_native/vulkan/SamplerVk.h
+++ b/src/dawn_native/vulkan/SamplerVk.h
@@ -20,7 +20,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/Error.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -43,6 +43,6 @@
         VkSampler mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_SAMPLERVK_H_
diff --git a/src/dawn_native/vulkan/ShaderModuleVk.cpp b/src/dawn_native/vulkan/ShaderModuleVk.cpp
index 81f84ab..53d8f3e 100644
--- a/src/dawn_native/vulkan/ShaderModuleVk.cpp
+++ b/src/dawn_native/vulkan/ShaderModuleVk.cpp
@@ -26,7 +26,7 @@
 #include <tint/tint.h>
 #include <spirv-tools/libspirv.hpp>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     ShaderModule::ConcurrentTransformedShaderModuleCache::ConcurrentTransformedShaderModuleCache(
         Device* device)
@@ -200,4 +200,4 @@
         return newHandle;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ShaderModuleVk.h b/src/dawn_native/vulkan/ShaderModuleVk.h
index 9d28f91..d91b8f0 100644
--- a/src/dawn_native/vulkan/ShaderModuleVk.h
+++ b/src/dawn_native/vulkan/ShaderModuleVk.h
@@ -22,7 +22,7 @@
 
 #include <mutex>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
     class PipelineLayout;
@@ -62,6 +62,6 @@
         std::unique_ptr<ConcurrentTransformedShaderModuleCache> mTransformedShaderModuleCache;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_SHADERMODULEVK_H_
diff --git a/src/dawn_native/vulkan/StagingBufferVk.cpp b/src/dawn_native/vulkan/StagingBufferVk.cpp
index c78f0fc..d8cbb88 100644
--- a/src/dawn_native/vulkan/StagingBufferVk.cpp
+++ b/src/dawn_native/vulkan/StagingBufferVk.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     StagingBuffer::StagingBuffer(size_t size, Device* device)
         : StagingBufferBase(size), mDevice(device) {
@@ -74,4 +74,4 @@
         return mBuffer;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/StagingBufferVk.h b/src/dawn_native/vulkan/StagingBufferVk.h
index 50b773a..477bed5 100644
--- a/src/dawn_native/vulkan/StagingBufferVk.h
+++ b/src/dawn_native/vulkan/StagingBufferVk.h
@@ -19,7 +19,7 @@
 #include "dawn_native/ResourceMemoryAllocation.h"
 #include "dawn_native/StagingBuffer.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -37,6 +37,6 @@
         VkBuffer mBuffer;
         ResourceMemoryAllocation mAllocation;
     };
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_STAGINGBUFFERVK_H_
diff --git a/src/dawn_native/vulkan/SwapChainVk.cpp b/src/dawn_native/vulkan/SwapChainVk.cpp
index e111200..8cf6cff 100644
--- a/src/dawn_native/vulkan/SwapChainVk.cpp
+++ b/src/dawn_native/vulkan/SwapChainVk.cpp
@@ -30,7 +30,7 @@
 #    include "dawn_native/XlibXcbFunctions.h"
 #endif  // defined(DAWN_USE_X11)
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // OldSwapChain
 
@@ -661,4 +661,4 @@
         }
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/SwapChainVk.h b/src/dawn_native/vulkan/SwapChainVk.h
index e93039b..c85aa32 100644
--- a/src/dawn_native/vulkan/SwapChainVk.h
+++ b/src/dawn_native/vulkan/SwapChainVk.h
@@ -21,7 +21,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
     class Texture;
@@ -93,6 +93,6 @@
         Ref<Texture> mTexture;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_SWAPCHAINVK_H_
diff --git a/src/dawn_native/vulkan/TextureVk.cpp b/src/dawn_native/vulkan/TextureVk.cpp
index ab89859..3fc2b85 100644
--- a/src/dawn_native/vulkan/TextureVk.cpp
+++ b/src/dawn_native/vulkan/TextureVk.cpp
@@ -31,7 +31,7 @@
 #include "dawn_native/vulkan/UtilsVulkan.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
         // Converts an Dawn texture dimension to a Vulkan image view type.
@@ -1364,4 +1364,4 @@
                      reinterpret_cast<uint64_t&>(mHandle), "Dawn_InternalTextureView", GetLabel());
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/TextureVk.h b/src/dawn_native/vulkan/TextureVk.h
index 6083275..d339e99c 100644
--- a/src/dawn_native/vulkan/TextureVk.h
+++ b/src/dawn_native/vulkan/TextureVk.h
@@ -23,7 +23,7 @@
 #include "dawn_native/vulkan/ExternalHandle.h"
 #include "dawn_native/vulkan/external_memory/MemoryService.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     struct CommandRecordingContext;
     class Device;
@@ -197,6 +197,6 @@
         VkImageView mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_TEXTUREVK_H_
diff --git a/src/dawn_native/vulkan/UtilsVulkan.cpp b/src/dawn_native/vulkan/UtilsVulkan.cpp
index f7f7e4b..5109534 100644
--- a/src/dawn_native/vulkan/UtilsVulkan.cpp
+++ b/src/dawn_native/vulkan/UtilsVulkan.cpp
@@ -24,7 +24,7 @@
 #include "dawn_native/vulkan/TextureVk.h"
 #include "dawn_native/vulkan/VulkanError.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     VkCompareOp ToVulkanCompareOp(wgpu::CompareFunction op) {
         switch (op) {
@@ -261,4 +261,4 @@
         return specializationInfo;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/UtilsVulkan.h b/src/dawn_native/vulkan/UtilsVulkan.h
index 7b7ead5..f91c782 100644
--- a/src/dawn_native/vulkan/UtilsVulkan.h
+++ b/src/dawn_native/vulkan/UtilsVulkan.h
@@ -24,7 +24,7 @@
     union OverridableConstantScalar;
 }  // namespace dawn_native
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Device;
 
@@ -116,6 +116,6 @@
         std::vector<OverridableConstantScalar>* specializationDataEntries,
         std::vector<VkSpecializationMapEntry>* specializationMapEntries);
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_UTILSVULKAN_H_
diff --git a/src/dawn_native/vulkan/VulkanBackend.cpp b/src/dawn_native/vulkan/VulkanBackend.cpp
index f406f9f..658e8fd 100644
--- a/src/dawn_native/vulkan/VulkanBackend.cpp
+++ b/src/dawn_native/vulkan/VulkanBackend.cpp
@@ -26,7 +26,7 @@
 #include "dawn_native/vulkan/NativeSwapChainImplVk.h"
 #include "dawn_native/vulkan/TextureVk.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     VkInstance GetInstance(WGPUDevice device) {
         Device* backendDevice = ToBackend(FromAPI(device));
@@ -126,4 +126,4 @@
 #endif  // DAWN_PLATFORM_LINUX
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanError.cpp b/src/dawn_native/vulkan/VulkanError.cpp
index e0655b9..9b58d16 100644
--- a/src/dawn_native/vulkan/VulkanError.cpp
+++ b/src/dawn_native/vulkan/VulkanError.cpp
@@ -16,7 +16,7 @@
 
 #include <string>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     const char* VkResultAsString(::VkResult result) {
         // Convert to a int32_t to silence and MSVC warning that the fake errors don't appear in
@@ -106,4 +106,4 @@
         }
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanError.h b/src/dawn_native/vulkan/VulkanError.h
index 7748f56..0d7ee5f 100644
--- a/src/dawn_native/vulkan/VulkanError.h
+++ b/src/dawn_native/vulkan/VulkanError.h
@@ -21,7 +21,7 @@
 constexpr VkResult VK_FAKE_ERROR_FOR_TESTING = VK_RESULT_MAX_ENUM;
 constexpr VkResult VK_FAKE_DEVICE_OOM_FOR_TESTING = static_cast<VkResult>(VK_RESULT_MAX_ENUM - 1);
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // Returns a string version of the result.
     const char* VkResultAsString(::VkResult result);
@@ -45,6 +45,6 @@
             resultIn, VK_FAKE_DEVICE_OOM_FOR_TESTING, VK_FAKE_ERROR_FOR_TESTING)), \
         contextIn)
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_VULKANERROR_H_
diff --git a/src/dawn_native/vulkan/VulkanExtensions.cpp b/src/dawn_native/vulkan/VulkanExtensions.cpp
index 3073625..96b1e50 100644
--- a/src/dawn_native/vulkan/VulkanExtensions.cpp
+++ b/src/dawn_native/vulkan/VulkanExtensions.cpp
@@ -20,7 +20,7 @@
 #include <array>
 #include <limits>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     static constexpr uint32_t VulkanVersion_1_1 = VK_MAKE_VERSION(1, 1, 0);
     static constexpr uint32_t VulkanVersion_1_2 = VK_MAKE_VERSION(1, 2, 0);
@@ -323,4 +323,4 @@
         return result;
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanExtensions.h b/src/dawn_native/vulkan/VulkanExtensions.h
index bd87527..dd59747 100644
--- a/src/dawn_native/vulkan/VulkanExtensions.h
+++ b/src/dawn_native/vulkan/VulkanExtensions.h
@@ -19,7 +19,7 @@
 
 #include <unordered_map>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     // The list of known instance extensions. They must be in dependency order (this is checked
     // inside EnsureDependencies)
@@ -157,6 +157,6 @@
     // Returns a map that maps a Vulkan layer name to its VulkanLayer.
     std::unordered_map<std::string, VulkanLayer> CreateVulkanLayerNameMap();
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_VULKANEXTENSIONS_H_
diff --git a/src/dawn_native/vulkan/VulkanFunctions.cpp b/src/dawn_native/vulkan/VulkanFunctions.cpp
index 2e052e7..99c9acd 100644
--- a/src/dawn_native/vulkan/VulkanFunctions.cpp
+++ b/src/dawn_native/vulkan/VulkanFunctions.cpp
@@ -17,7 +17,7 @@
 #include "common/DynamicLib.h"
 #include "dawn_native/vulkan/VulkanInfo.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
 #define GET_GLOBAL_PROC(name)                                                              \
     do {                                                                                   \
@@ -329,4 +329,4 @@
         return {};
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanFunctions.h b/src/dawn_native/vulkan/VulkanFunctions.h
index eb20ee6..a677cd2 100644
--- a/src/dawn_native/vulkan/VulkanFunctions.h
+++ b/src/dawn_native/vulkan/VulkanFunctions.h
@@ -21,7 +21,7 @@
 
 class DynamicLib;
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     struct VulkanGlobalInfo;
     struct VulkanDeviceInfo;
@@ -321,6 +321,6 @@
         ::VkResult mValue;
     };
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_VULKANFUNCTIONS_H_
diff --git a/src/dawn_native/vulkan/VulkanInfo.cpp b/src/dawn_native/vulkan/VulkanInfo.cpp
index 4b0159f..c3883cd 100644
--- a/src/dawn_native/vulkan/VulkanInfo.cpp
+++ b/src/dawn_native/vulkan/VulkanInfo.cpp
@@ -21,7 +21,7 @@
 
 #include <cstring>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
         ResultOrError<InstanceExtSet> GatherInstanceExtensions(
@@ -331,4 +331,4 @@
         return std::move(info);
     }
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanInfo.h b/src/dawn_native/vulkan/VulkanInfo.h
index ff7a5bc..83fd137 100644
--- a/src/dawn_native/vulkan/VulkanInfo.h
+++ b/src/dawn_native/vulkan/VulkanInfo.h
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     class Adapter;
     class Backend;
@@ -84,6 +84,6 @@
     ResultOrError<VulkanDeviceInfo> GatherDeviceInfo(const Adapter& adapter);
     ResultOrError<VulkanSurfaceInfo> GatherSurfaceInfo(const Adapter& adapter,
                                                        VkSurfaceKHR surface);
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_VULKANINFO_H_
diff --git a/src/dawn_native/vulkan/external_memory/MemoryService.h b/src/dawn_native/vulkan/external_memory/MemoryService.h
index 5844d8f..3e8ae3e 100644
--- a/src/dawn_native/vulkan/external_memory/MemoryService.h
+++ b/src/dawn_native/vulkan/external_memory/MemoryService.h
@@ -20,12 +20,12 @@
 #include "dawn_native/VulkanBackend.h"
 #include "dawn_native/vulkan/ExternalHandle.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
     class Device;
     struct VulkanDeviceInfo;
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
-namespace dawn_native { namespace vulkan { namespace external_memory {
+namespace dawn_native { namespace vulkan::external_memory {
 
     struct MemoryImportParams {
         VkDeviceSize allocationSize;
@@ -73,6 +73,6 @@
         bool mSupported = false;
     };
 
-}}}  // namespace dawn_native::vulkan::external_memory
+}}  // namespace dawn_native::vulkan::external_memory
 
 #endif  // DAWNNATIVE_VULKAN_EXTERNALMEMORY_SERVICE_H_
diff --git a/src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp b/src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp
index 06e0bf9..3317b43 100644
--- a/src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp
+++ b/src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/vulkan/VulkanError.h"
 #include "dawn_native/vulkan/external_memory/MemoryService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_memory {
+namespace dawn_native { namespace vulkan::external_memory {
 
     namespace {
 
@@ -354,4 +354,4 @@
         return image;
     }
 
-}}}  // namespace dawn_native::vulkan::external_memory
+}}  // namespace dawn_native::vulkan::external_memory
diff --git a/src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp b/src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp
index 9994951..aefe550 100644
--- a/src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp
+++ b/src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp
@@ -15,7 +15,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/external_memory/MemoryService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_memory {
+namespace dawn_native { namespace vulkan::external_memory {
 
     Service::Service(Device* device) : mDevice(device) {
         DAWN_UNUSED(mDevice);
@@ -62,4 +62,4 @@
         return DAWN_UNIMPLEMENTED_ERROR("Using null memory service to interop inside Vulkan");
     }
 
-}}}  // namespace dawn_native::vulkan::external_memory
+}}  // namespace dawn_native::vulkan::external_memory
diff --git a/src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp b/src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp
index 55969f7..0222833 100644
--- a/src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp
+++ b/src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/VulkanError.h"
 #include "dawn_native/vulkan/external_memory/MemoryService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_memory {
+namespace dawn_native { namespace vulkan::external_memory {
 
     Service::Service(Device* device)
         : mDevice(device), mSupported(CheckSupport(device->GetDeviceInfo())) {
@@ -153,4 +153,4 @@
         return image;
     }
 
-}}}  // namespace dawn_native::vulkan::external_memory
+}}  // namespace dawn_native::vulkan::external_memory
diff --git a/src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp b/src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp
index 3b1a031..7c37135 100644
--- a/src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp
+++ b/src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/VulkanError.h"
 #include "dawn_native/vulkan/external_memory/MemoryService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_memory {
+namespace dawn_native { namespace vulkan::external_memory {
 
     Service::Service(Device* device)
         : mDevice(device), mSupported(CheckSupport(device->GetDeviceInfo())) {
@@ -155,4 +155,4 @@
         return image;
     }
 
-}}}  // namespace dawn_native::vulkan::external_memory
+}}  // namespace dawn_native::vulkan::external_memory
diff --git a/src/dawn_native/vulkan/external_semaphore/SemaphoreService.h b/src/dawn_native/vulkan/external_semaphore/SemaphoreService.h
index 91d9576..5824c52 100644
--- a/src/dawn_native/vulkan/external_semaphore/SemaphoreService.h
+++ b/src/dawn_native/vulkan/external_semaphore/SemaphoreService.h
@@ -21,11 +21,11 @@
 #include "dawn_native/vulkan/VulkanFunctions.h"
 #include "dawn_native/vulkan/VulkanInfo.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
     class Device;
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
-namespace dawn_native { namespace vulkan { namespace external_semaphore {
+namespace dawn_native { namespace vulkan::external_semaphore {
 
     class Service {
       public:
@@ -55,6 +55,6 @@
         bool mSupported = false;
     };
 
-}}}  // namespace dawn_native::vulkan::external_semaphore
+}}  // namespace dawn_native::vulkan::external_semaphore
 
 #endif  // DAWNNATIVE_VULKAN_EXTERNALSEMAPHORE_SERVICE_H_
diff --git a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceFD.cpp b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceFD.cpp
index b81f96c..58c6f96 100644
--- a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceFD.cpp
+++ b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceFD.cpp
@@ -25,7 +25,7 @@
     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;
 #endif  // defined(DAWN_USE_SYNC_FDS)
 
-namespace dawn_native { namespace vulkan { namespace external_semaphore {
+namespace dawn_native { namespace vulkan::external_semaphore {
 
     Service::Service(Device* device)
         : mDevice(device),
@@ -134,4 +134,4 @@
         return fd;
     }
 
-}}}  // namespace dawn_native::vulkan::external_semaphore
+}}  // namespace dawn_native::vulkan::external_semaphore
diff --git a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp
index 3053029..8c99da1 100644
--- a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp
+++ b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp
@@ -15,7 +15,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/external_semaphore/SemaphoreService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_semaphore {
+namespace dawn_native { namespace vulkan::external_semaphore {
 
     Service::Service(Device* device) : mDevice(device) {
         DAWN_UNUSED(mDevice);
@@ -47,4 +47,4 @@
         return DAWN_UNIMPLEMENTED_ERROR("Using null semaphore service to interop inside Vulkan");
     }
 
-}}}  // namespace dawn_native::vulkan::external_semaphore
+}}  // namespace dawn_native::vulkan::external_semaphore
diff --git a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp
index 7a773f9..35c2b2b 100644
--- a/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp
+++ b/src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/vulkan/VulkanError.h"
 #include "dawn_native/vulkan/external_semaphore/SemaphoreService.h"
 
-namespace dawn_native { namespace vulkan { namespace external_semaphore {
+namespace dawn_native { namespace vulkan::external_semaphore {
 
     Service::Service(Device* device)
         : mDevice(device),
@@ -132,4 +132,4 @@
         return handle;
     }
 
-}}}  // namespace dawn_native::vulkan::external_semaphore
+}}  // namespace dawn_native::vulkan::external_semaphore
diff --git a/src/dawn_node/binding/AsyncRunner.cpp b/src/dawn_node/binding/AsyncRunner.cpp
index 788abc2..94382d1 100644
--- a/src/dawn_node/binding/AsyncRunner.cpp
+++ b/src/dawn_node/binding/AsyncRunner.cpp
@@ -17,7 +17,7 @@
 #include <cassert>
 #include <limits>
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     AsyncRunner::AsyncRunner(Napi::Env env, wgpu::Device device) : env_(env), device_(device) {
     }
@@ -57,4 +57,4 @@
             });
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/AsyncRunner.h b/src/dawn_node/binding/AsyncRunner.h
index a86ee3a..9ed6e5c 100644
--- a/src/dawn_node/binding/AsyncRunner.h
+++ b/src/dawn_node/binding/AsyncRunner.h
@@ -21,7 +21,7 @@
 #include "dawn/webgpu_cpp.h"
 #include "napi.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // AsyncRunner is used to poll a wgpu::Device with calls to Tick() while there are asynchronous
     // tasks in flight.
@@ -72,6 +72,6 @@
         std::shared_ptr<AsyncRunner> runner_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_ASYNC_RUNNER_H_
diff --git a/src/dawn_node/binding/Converter.cpp b/src/dawn_node/binding/Converter.cpp
index d75e217..e2a168f 100644
--- a/src/dawn_node/binding/Converter.cpp
+++ b/src/dawn_node/binding/Converter.cpp
@@ -22,7 +22,7 @@
 #include "src/dawn_node/binding/GPUTextureView.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     Converter::~Converter() {
         for (auto& free : free_) {
@@ -1150,4 +1150,4 @@
                Convert(out.fragment, in.fragment);
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Converter.h b/src/dawn_node/binding/Converter.h
index e6b20e8..cacba0e 100644
--- a/src/dawn_node/binding/Converter.h
+++ b/src/dawn_node/binding/Converter.h
@@ -24,7 +24,7 @@
 #include "src/dawn_node/binding/Errors.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // ImplOfTraits is a traits helper that is used to associate the interop interface type to the
     // binding implementation type.
@@ -393,6 +393,6 @@
         std::vector<std::function<void()>> free_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_CONVERTER_H_
diff --git a/src/dawn_node/binding/Errors.cpp b/src/dawn_node/binding/Errors.cpp
index 953a1a8..722be27 100644
--- a/src/dawn_node/binding/Errors.cpp
+++ b/src/dawn_node/binding/Errors.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/Errors.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
         constexpr char kHierarchyRequestError[] = "HierarchyRequestError";
@@ -176,4 +176,4 @@
         return New(env, kNotAllowedError);
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Errors.h b/src/dawn_node/binding/Errors.h
index 0f1a40e..97a3577 100644
--- a/src/dawn_node/binding/Errors.h
+++ b/src/dawn_node/binding/Errors.h
@@ -17,7 +17,7 @@
 
 #include "napi.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // Errors contains static helper methods for creating DOMException error
     // messages as documented at:
@@ -55,6 +55,6 @@
         static Napi::Error NotAllowedError(Napi::Env);
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_ERRORS_H_
diff --git a/src/dawn_node/binding/Flags.cpp b/src/dawn_node/binding/Flags.cpp
index 3602e92..9985a49 100644
--- a/src/dawn_node/binding/Flags.cpp
+++ b/src/dawn_node/binding/Flags.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/Flags.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     void Flags::Set(const std::string& key, const std::string& value) {
         flags_[key] = value;
     }
@@ -26,4 +26,4 @@
         }
         return {};
     }
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/Flags.h b/src/dawn_node/binding/Flags.h
index 1ca4c30..89b7b43 100644
--- a/src/dawn_node/binding/Flags.h
+++ b/src/dawn_node/binding/Flags.h
@@ -19,7 +19,7 @@
 #include <string>
 #include <unordered_map>
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // Flags maintains a key-value mapping of input flags passed into the module's create()
     // function, used to configure dawn_node.
     class Flags {
@@ -30,6 +30,6 @@
       private:
         std::unordered_map<std::string, std::string> flags_;
     };
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_FLAGS_H_
diff --git a/src/dawn_node/binding/GPU.cpp b/src/dawn_node/binding/GPU.cpp
index a13ed30..9cbb413 100644
--- a/src/dawn_node/binding/GPU.cpp
+++ b/src/dawn_node/binding/GPU.cpp
@@ -51,7 +51,7 @@
 
 }  // namespace
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPU
@@ -158,4 +158,4 @@
         return promise;
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPU.h b/src/dawn_node/binding/GPU.h
index 8f1999d..e526403 100644
--- a/src/dawn_node/binding/GPU.h
+++ b/src/dawn_node/binding/GPU.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/Flags.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPU is an implementation of interop::GPU that wraps a dawn_native::Instance.
     class GPU final : public interop::GPU {
       public:
@@ -37,6 +37,6 @@
         dawn_native::Instance instance_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPU_H_
diff --git a/src/dawn_node/binding/GPUAdapter.cpp b/src/dawn_node/binding/GPUAdapter.cpp
index 8de1269..95667ab 100644
--- a/src/dawn_node/binding/GPUAdapter.cpp
+++ b/src/dawn_node/binding/GPUAdapter.cpp
@@ -48,7 +48,7 @@
     }
 }  // namespace
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
 
@@ -233,4 +233,4 @@
         }
         return promise;
     }
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUAdapter.h b/src/dawn_node/binding/GPUAdapter.h
index 6f837c8..a54cd0b 100644
--- a/src/dawn_node/binding/GPUAdapter.h
+++ b/src/dawn_node/binding/GPUAdapter.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     class Flags;
 
     // GPUAdapter is an implementation of interop::GPUAdapter that wraps a dawn_native::Adapter.
@@ -42,6 +42,6 @@
         const Flags& flags_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUADAPTER_H_
diff --git a/src/dawn_node/binding/GPUBindGroup.cpp b/src/dawn_node/binding/GPUBindGroup.cpp
index e156700..3e7b2a1 100644
--- a/src/dawn_node/binding/GPUBindGroup.cpp
+++ b/src/dawn_node/binding/GPUBindGroup.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBindGroup
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBindGroup.h b/src/dawn_node/binding/GPUBindGroup.h
index e71fc8b..342cf0d 100644
--- a/src/dawn_node/binding/GPUBindGroup.h
+++ b/src/dawn_node/binding/GPUBindGroup.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBindGroup is an implementation of interop::GPUBindGroup that wraps a wgpu::BindGroup.
     class GPUBindGroup final : public interop::GPUBindGroup {
@@ -40,6 +40,6 @@
         wgpu::BindGroup group_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBINDGROUP_H_
diff --git a/src/dawn_node/binding/GPUBindGroupLayout.cpp b/src/dawn_node/binding/GPUBindGroupLayout.cpp
index ddaeaba..db32a57 100644
--- a/src/dawn_node/binding/GPUBindGroupLayout.cpp
+++ b/src/dawn_node/binding/GPUBindGroupLayout.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBindGroupLayout
@@ -33,4 +33,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBindGroupLayout.h b/src/dawn_node/binding/GPUBindGroupLayout.h
index 34874bf..92d476d 100644
--- a/src/dawn_node/binding/GPUBindGroupLayout.h
+++ b/src/dawn_node/binding/GPUBindGroupLayout.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBindGroupLayout is an implementation of interop::GPUBindGroupLayout that wraps a
     // wgpu::BindGroupLayout.
@@ -41,6 +41,6 @@
         wgpu::BindGroupLayout layout_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBINDGROUPLAYOUT_H_
diff --git a/src/dawn_node/binding/GPUBuffer.cpp b/src/dawn_node/binding/GPUBuffer.cpp
index 2fca5d5..652c2e7 100644
--- a/src/dawn_node/binding/GPUBuffer.cpp
+++ b/src/dawn_node/binding/GPUBuffer.cpp
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/Errors.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUBuffer
@@ -166,4 +166,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUBuffer.h b/src/dawn_node/binding/GPUBuffer.h
index c3d8b03..7bc1d7e 100644
--- a/src/dawn_node/binding/GPUBuffer.h
+++ b/src/dawn_node/binding/GPUBuffer.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUBuffer is an implementation of interop::GPUBuffer that wraps a wgpu::Buffer.
     class GPUBuffer final : public interop::GPUBuffer {
@@ -81,6 +81,6 @@
         std::vector<Mapping> mapped_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUBUFFER_H_
diff --git a/src/dawn_node/binding/GPUCommandBuffer.cpp b/src/dawn_node/binding/GPUCommandBuffer.cpp
index 0ff503f..461c6d9 100644
--- a/src/dawn_node/binding/GPUCommandBuffer.cpp
+++ b/src/dawn_node/binding/GPUCommandBuffer.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUCommandBuffer
@@ -37,4 +37,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUCommandBuffer.h b/src/dawn_node/binding/GPUCommandBuffer.h
index b6fc3ba..8b35c21 100644
--- a/src/dawn_node/binding/GPUCommandBuffer.h
+++ b/src/dawn_node/binding/GPUCommandBuffer.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUCommandBuffer is an implementation of interop::GPUCommandBuffer that wraps a
     // wgpu::CommandBuffer.
@@ -42,6 +42,6 @@
         wgpu::CommandBuffer cmd_buf_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMMANDBUFFER_H_
diff --git a/src/dawn_node/binding/GPUCommandEncoder.cpp b/src/dawn_node/binding/GPUCommandEncoder.cpp
index cf3925c..d86cebf 100644
--- a/src/dawn_node/binding/GPUCommandEncoder.cpp
+++ b/src/dawn_node/binding/GPUCommandEncoder.cpp
@@ -24,7 +24,7 @@
 #include "src/dawn_node/binding/GPUTexture.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUCommandEncoder
@@ -193,4 +193,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUCommandEncoder.h b/src/dawn_node/binding/GPUCommandEncoder.h
index f23e281..3402c78 100644
--- a/src/dawn_node/binding/GPUCommandEncoder.h
+++ b/src/dawn_node/binding/GPUCommandEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUCommandEncoder is an implementation of interop::GPUCommandEncoder that wraps a
     // wgpu::CommandEncoder.
@@ -75,6 +75,6 @@
         wgpu::CommandEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMMANDENCODER_H_
diff --git a/src/dawn_node/binding/GPUComputePassEncoder.cpp b/src/dawn_node/binding/GPUComputePassEncoder.cpp
index 6edc467..d827d84 100644
--- a/src/dawn_node/binding/GPUComputePassEncoder.cpp
+++ b/src/dawn_node/binding/GPUComputePassEncoder.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPUQuerySet.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUComputePassEncoder
@@ -132,4 +132,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUComputePassEncoder.h b/src/dawn_node/binding/GPUComputePassEncoder.h
index 9c7064b..faf0859 100644
--- a/src/dawn_node/binding/GPUComputePassEncoder.h
+++ b/src/dawn_node/binding/GPUComputePassEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUComputePassEncoder is an implementation of interop::GPUComputePassEncoder that wraps a
     // wgpu::ComputePassEncoder.
@@ -71,6 +71,6 @@
         wgpu::ComputePassEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUCOMPUTEPASSENCODER_H_
diff --git a/src/dawn_node/binding/GPUComputePipeline.cpp b/src/dawn_node/binding/GPUComputePipeline.cpp
index 0eef82e..be6d1c3 100644
--- a/src/dawn_node/binding/GPUComputePipeline.cpp
+++ b/src/dawn_node/binding/GPUComputePipeline.cpp
@@ -18,7 +18,7 @@
 #include "src/dawn_node/binding/GPUBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUComputePipeline
@@ -42,4 +42,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUComputePipeline.h b/src/dawn_node/binding/GPUComputePipeline.h
index e9dde76..a4b8bca 100644
--- a/src/dawn_node/binding/GPUComputePipeline.h
+++ b/src/dawn_node/binding/GPUComputePipeline.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUComputePipeline is an implementation of interop::GPUComputePipeline that wraps a
     // wgpu::ComputePipeline.
@@ -43,6 +43,6 @@
         wgpu::ComputePipeline pipeline_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUPIPELINE_H_
diff --git a/src/dawn_node/binding/GPUDevice.cpp b/src/dawn_node/binding/GPUDevice.cpp
index 3b65fa2..cddab09 100644
--- a/src/dawn_node/binding/GPUDevice.cpp
+++ b/src/dawn_node/binding/GPUDevice.cpp
@@ -35,7 +35,7 @@
 #include "src/dawn_node/binding/GPUTexture.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     namespace {
 
@@ -527,4 +527,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUDevice.h b/src/dawn_node/binding/GPUDevice.h
index a3c5dce..368f86b 100644
--- a/src/dawn_node/binding/GPUDevice.h
+++ b/src/dawn_node/binding/GPUDevice.h
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPUDevice is an implementation of interop::GPUDevice that wraps a wgpu::Device.
     class GPUDevice final : public interop::GPUDevice {
       public:
@@ -108,6 +108,6 @@
             lost_promises_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUDEVICE_H_
diff --git a/src/dawn_node/binding/GPUPipelineLayout.cpp b/src/dawn_node/binding/GPUPipelineLayout.cpp
index 861df21..712e3fe 100644
--- a/src/dawn_node/binding/GPUPipelineLayout.cpp
+++ b/src/dawn_node/binding/GPUPipelineLayout.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUPipelineLayout
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUPipelineLayout.h b/src/dawn_node/binding/GPUPipelineLayout.h
index a1d0b87..02f07c1 100644
--- a/src/dawn_node/binding/GPUPipelineLayout.h
+++ b/src/dawn_node/binding/GPUPipelineLayout.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUPipelineLayout is an implementation of interop::GPUPipelineLayout that wraps a
     // wgpu::PipelineLayout.
@@ -41,6 +41,6 @@
         wgpu::PipelineLayout layout_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUPIPELINELAYOUT_H_
diff --git a/src/dawn_node/binding/GPUQuerySet.cpp b/src/dawn_node/binding/GPUQuerySet.cpp
index e56564a..836faf9 100644
--- a/src/dawn_node/binding/GPUQuerySet.cpp
+++ b/src/dawn_node/binding/GPUQuerySet.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUQuerySet
@@ -36,4 +36,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUQuerySet.h b/src/dawn_node/binding/GPUQuerySet.h
index 8669e16..46d8097 100644
--- a/src/dawn_node/binding/GPUQuerySet.h
+++ b/src/dawn_node/binding/GPUQuerySet.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUQuerySet is an implementation of interop::GPUQuerySet that wraps a wgpu::QuerySet.
     class GPUQuerySet final : public interop::GPUQuerySet {
@@ -41,6 +41,6 @@
         wgpu::QuerySet query_set_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUQUERYSET_H_
diff --git a/src/dawn_node/binding/GPUQueue.cpp b/src/dawn_node/binding/GPUQueue.cpp
index e1c0413..3b0f681 100644
--- a/src/dawn_node/binding/GPUQueue.cpp
+++ b/src/dawn_node/binding/GPUQueue.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPUCommandBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUQueue
@@ -129,4 +129,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUQueue.h b/src/dawn_node/binding/GPUQueue.h
index 69952c6..f59b19f 100644
--- a/src/dawn_node/binding/GPUQueue.h
+++ b/src/dawn_node/binding/GPUQueue.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUQueue is an implementation of interop::GPUQueue that wraps a wgpu::Queue.
     class GPUQueue final : public interop::GPUQueue {
@@ -56,6 +56,6 @@
         std::shared_ptr<AsyncRunner> async_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUQUEUE_H_
diff --git a/src/dawn_node/binding/GPURenderBundle.cpp b/src/dawn_node/binding/GPURenderBundle.cpp
index 2f42ac7..f49c9007 100644
--- a/src/dawn_node/binding/GPURenderBundle.cpp
+++ b/src/dawn_node/binding/GPURenderBundle.cpp
@@ -20,7 +20,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderBundle
@@ -36,4 +36,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderBundle.h b/src/dawn_node/binding/GPURenderBundle.h
index 9f824f2..bde0b50 100644
--- a/src/dawn_node/binding/GPURenderBundle.h
+++ b/src/dawn_node/binding/GPURenderBundle.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderBundle is an implementation of interop::GPURenderBundle that wraps a
     // wgpu::RenderBundle.
@@ -41,6 +41,6 @@
         wgpu::RenderBundle bundle_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERBUNDLE_H_
diff --git a/src/dawn_node/binding/GPURenderBundleEncoder.cpp b/src/dawn_node/binding/GPURenderBundleEncoder.cpp
index 123741d..fcd7219 100644
--- a/src/dawn_node/binding/GPURenderBundleEncoder.cpp
+++ b/src/dawn_node/binding/GPURenderBundleEncoder.cpp
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderBundleEncoder
@@ -189,4 +189,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderBundleEncoder.h b/src/dawn_node/binding/GPURenderBundleEncoder.h
index 3d11e33..9a4dbcb 100644
--- a/src/dawn_node/binding/GPURenderBundleEncoder.h
+++ b/src/dawn_node/binding/GPURenderBundleEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderBundleEncoder is an implementation of interop::GPURenderBundleEncoder that wraps a
     // wgpu::RenderBundleEncoder.
@@ -81,6 +81,6 @@
         wgpu::RenderBundleEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERBUNDLEENCODER_H_
diff --git a/src/dawn_node/binding/GPURenderPassEncoder.cpp b/src/dawn_node/binding/GPURenderPassEncoder.cpp
index 5dce4f2..128cbf9 100644
--- a/src/dawn_node/binding/GPURenderPassEncoder.cpp
+++ b/src/dawn_node/binding/GPURenderPassEncoder.cpp
@@ -22,7 +22,7 @@
 #include "src/dawn_node/binding/GPURenderPipeline.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderPassEncoder
@@ -259,4 +259,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderPassEncoder.h b/src/dawn_node/binding/GPURenderPassEncoder.h
index 866aaab..452dc1a 100644
--- a/src/dawn_node/binding/GPURenderPassEncoder.h
+++ b/src/dawn_node/binding/GPURenderPassEncoder.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderPassEncoder is an implementation of interop::GPURenderPassEncoder that wraps a
     // wgpu::RenderPassEncoder.
@@ -110,6 +110,6 @@
         wgpu::RenderPassEncoder enc_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERPASSENCODER_H_
diff --git a/src/dawn_node/binding/GPURenderPipeline.cpp b/src/dawn_node/binding/GPURenderPipeline.cpp
index 3f363fc..9683b80 100644
--- a/src/dawn_node/binding/GPURenderPipeline.cpp
+++ b/src/dawn_node/binding/GPURenderPipeline.cpp
@@ -18,7 +18,7 @@
 #include "src/dawn_node/binding/GPUBuffer.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPURenderPipeline
@@ -42,4 +42,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPURenderPipeline.h b/src/dawn_node/binding/GPURenderPipeline.h
index fc15fc6..acb8c53 100644
--- a/src/dawn_node/binding/GPURenderPipeline.h
+++ b/src/dawn_node/binding/GPURenderPipeline.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPURenderPipeline is an implementation of interop::GPURenderPipeline that wraps a
     // wgpu::RenderPipeline.
@@ -43,6 +43,6 @@
         wgpu::RenderPipeline pipeline_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPURENDERPIPELINE_H_
diff --git a/src/dawn_node/binding/GPUSampler.cpp b/src/dawn_node/binding/GPUSampler.cpp
index 6de3aa4..39d87a0 100644
--- a/src/dawn_node/binding/GPUSampler.cpp
+++ b/src/dawn_node/binding/GPUSampler.cpp
@@ -17,7 +17,7 @@
 #include "src/dawn_node/binding/Converter.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUSampler
@@ -33,4 +33,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUSampler.h b/src/dawn_node/binding/GPUSampler.h
index 24e77d2..9bae388 100644
--- a/src/dawn_node/binding/GPUSampler.h
+++ b/src/dawn_node/binding/GPUSampler.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
     // GPUSampler is an implementation of interop::GPUSampler that wraps a wgpu::Sampler.
     class GPUSampler final : public interop::GPUSampler {
       public:
@@ -39,6 +39,6 @@
         wgpu::Sampler sampler_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSAMPLER_H_
diff --git a/src/dawn_node/binding/GPUShaderModule.cpp b/src/dawn_node/binding/GPUShaderModule.cpp
index 52efabd..6ac6645 100644
--- a/src/dawn_node/binding/GPUShaderModule.cpp
+++ b/src/dawn_node/binding/GPUShaderModule.cpp
@@ -18,7 +18,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUShaderModule
@@ -122,4 +122,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUShaderModule.h b/src/dawn_node/binding/GPUShaderModule.h
index 2fcd140..57c49dd 100644
--- a/src/dawn_node/binding/GPUShaderModule.h
+++ b/src/dawn_node/binding/GPUShaderModule.h
@@ -21,7 +21,7 @@
 #include "src/dawn_node/binding/AsyncRunner.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUShaderModule is an implementation of interop::GPUShaderModule that wraps a
     // wgpu::ShaderModule.
@@ -45,6 +45,6 @@
         std::shared_ptr<AsyncRunner> async_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSHADERMODULE_H_
diff --git a/src/dawn_node/binding/GPUSupportedLimits.cpp b/src/dawn_node/binding/GPUSupportedLimits.cpp
index 4a8399b..2c8c881 100644
--- a/src/dawn_node/binding/GPUSupportedLimits.cpp
+++ b/src/dawn_node/binding/GPUSupportedLimits.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/binding/GPUSupportedLimits.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUSupportedLimits
@@ -128,4 +128,4 @@
         return limits_.limits.maxComputeWorkgroupsPerDimension;
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUSupportedLimits.h b/src/dawn_node/binding/GPUSupportedLimits.h
index faed813..82b0ea6 100644
--- a/src/dawn_node/binding/GPUSupportedLimits.h
+++ b/src/dawn_node/binding/GPUSupportedLimits.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUSupportedLimits is an implementation of interop::GPUSupportedLimits.
     class GPUSupportedLimits final : public interop::GPUSupportedLimits {
@@ -59,6 +59,6 @@
         wgpu::SupportedLimits limits_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUSUPPORTEDLIMITS_H_
diff --git a/src/dawn_node/binding/GPUTexture.cpp b/src/dawn_node/binding/GPUTexture.cpp
index 284cd8a..3257f15 100644
--- a/src/dawn_node/binding/GPUTexture.cpp
+++ b/src/dawn_node/binding/GPUTexture.cpp
@@ -19,7 +19,7 @@
 #include "src/dawn_node/binding/GPUTextureView.h"
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUTexture
@@ -61,4 +61,4 @@
         UNIMPLEMENTED();
     }
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUTexture.h b/src/dawn_node/binding/GPUTexture.h
index f5a2a47..29e7621 100644
--- a/src/dawn_node/binding/GPUTexture.h
+++ b/src/dawn_node/binding/GPUTexture.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUTexture is an implementation of interop::GPUTexture that wraps a wgpu::Texture.
     class GPUTexture final : public interop::GPUTexture {
@@ -44,6 +44,6 @@
         wgpu::Texture texture_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUTEXTURE_H_
diff --git a/src/dawn_node/binding/GPUTextureView.cpp b/src/dawn_node/binding/GPUTextureView.cpp
index f03bc3f..11aa55f 100644
--- a/src/dawn_node/binding/GPUTextureView.cpp
+++ b/src/dawn_node/binding/GPUTextureView.cpp
@@ -16,7 +16,7 @@
 
 #include "src/dawn_node/utils/Debug.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     ////////////////////////////////////////////////////////////////////////////////
     // wgpu::bindings::GPUTextureView
@@ -32,4 +32,4 @@
         UNIMPLEMENTED();
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
diff --git a/src/dawn_node/binding/GPUTextureView.h b/src/dawn_node/binding/GPUTextureView.h
index 8590735..89b972e 100644
--- a/src/dawn_node/binding/GPUTextureView.h
+++ b/src/dawn_node/binding/GPUTextureView.h
@@ -20,7 +20,7 @@
 #include "napi.h"
 #include "src/dawn_node/interop/WebGPU.h"
 
-namespace wgpu { namespace binding {
+namespace wgpu::binding {
 
     // GPUTextureView is an implementation of interop::GPUTextureView that wraps a
     // wgpu::TextureView.
@@ -41,6 +41,6 @@
         wgpu::TextureView view_;
     };
 
-}}  // namespace wgpu::binding
+}  // namespace wgpu::binding
 
 #endif  // DAWN_NODE_BINDING_GPUTEXTUREVIEW_H_
diff --git a/src/dawn_node/interop/Core.cpp b/src/dawn_node/interop/Core.cpp
index 8ee22cf..7a671c8 100644
--- a/src/dawn_node/interop/Core.cpp
+++ b/src/dawn_node/interop/Core.cpp
@@ -14,7 +14,7 @@
 
 #include "src/dawn_node/interop/Core.h"
 
-namespace wgpu { namespace interop {
+namespace wgpu::interop {
 
     Result Success;
 
@@ -157,4 +157,4 @@
         return Napi::Value::From(env, value);
     }
 
-}}  // namespace wgpu::interop
+}  // namespace wgpu::interop
diff --git a/src/dawn_node/interop/Core.h b/src/dawn_node/interop/Core.h
index d4d0ec6..c0ec61e 100644
--- a/src/dawn_node/interop/Core.h
+++ b/src/dawn_node/interop/Core.h
@@ -45,7 +45,7 @@
         __FILE__, __FUNCTION__, __LINE__ \
     }
 
-namespace wgpu { namespace interop {
+namespace wgpu::interop {
 
     ////////////////////////////////////////////////////////////////////////////////
     // Primitive JavaScript types
@@ -687,6 +687,6 @@
         }
     }
 
-}}  // namespace wgpu::interop
+}  // namespace wgpu::interop
 
 #endif  //  DAWN_NODE_INTEROP_CORE_WEBGPU_H_
diff --git a/src/dawn_node/utils/Debug.h b/src/dawn_node/utils/Debug.h
index 3636df0..cf7c7d8 100644
--- a/src/dawn_node/utils/Debug.h
+++ b/src/dawn_node/utils/Debug.h
@@ -24,7 +24,7 @@
 
 #include "dawn/webgpu_cpp_print.h"
 
-namespace wgpu { namespace utils {
+namespace wgpu::utils {
 
     // Write() is a helper for printing container types to the std::ostream.
     // Write() is used by the LOG() macro below.
@@ -141,6 +141,6 @@
 #define UNREACHABLE(...) \
     ::wgpu::utils::Fatal("UNREACHABLE", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
 
-}}  // namespace wgpu::utils
+}  // namespace wgpu::utils
 
 #endif  // DAWNNODE_UTILS_DEBUG_H_
diff --git a/src/dawn_platform/tracing/EventTracer.cpp b/src/dawn_platform/tracing/EventTracer.cpp
index a110340..086e355 100644
--- a/src/dawn_platform/tracing/EventTracer.cpp
+++ b/src/dawn_platform/tracing/EventTracer.cpp
@@ -16,7 +16,7 @@
 #include "common/Assert.h"
 #include "dawn_platform/DawnPlatform.h"
 
-namespace dawn_platform { namespace tracing {
+namespace dawn_platform::tracing {
 
     const unsigned char* GetTraceCategoryEnabledFlag(Platform* platform, TraceCategory category) {
         static unsigned char disabled = 0;
@@ -55,4 +55,4 @@
         return static_cast<TraceEventHandle>(0);
     }
 
-}}  // namespace dawn_platform::tracing
+}  // namespace dawn_platform::tracing
diff --git a/src/dawn_platform/tracing/TraceEvent.h b/src/dawn_platform/tracing/TraceEvent.h
index 8d375ef..5afced9 100644
--- a/src/dawn_platform/tracing/TraceEvent.h
+++ b/src/dawn_platform/tracing/TraceEvent.h
@@ -754,7 +754,7 @@
 #define TRACE_VALUE_TYPE_STRING (static_cast<unsigned char>(6))
 #define TRACE_VALUE_TYPE_COPY_STRING (static_cast<unsigned char>(7))
 
-namespace dawn_platform { namespace TraceEvent {
+namespace dawn_platform::TraceEvent {
 
     // Specify these values when the corresponding argument of addTraceEvent is not
     // used.
@@ -986,6 +986,6 @@
             Data m_data;
         };
 
-}}  // namespace dawn_platform::TraceEvent
+}  // namespace dawn_platform::TraceEvent
 
 #endif  // DAWNPLATFORM_TRACING_TRACEEVENT_H_
diff --git a/src/dawn_wire/client/Adapter.cpp b/src/dawn_wire/client/Adapter.cpp
index db9986f..ce7bd33 100644
--- a/src/dawn_wire/client/Adapter.cpp
+++ b/src/dawn_wire/client/Adapter.cpp
@@ -17,7 +17,7 @@
 #include "common/Log.h"
 #include "dawn_wire/client/Client.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     Adapter::~Adapter() {
         mRequestDeviceRequests.CloseAll([](RequestDeviceData* request) {
@@ -130,4 +130,4 @@
         return nullptr;
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Adapter.h b/src/dawn_wire/client/Adapter.h
index 26c8222..fcfaed9 100644
--- a/src/dawn_wire/client/Adapter.h
+++ b/src/dawn_wire/client/Adapter.h
@@ -23,7 +23,7 @@
 #include "dawn_wire/client/ObjectBase.h"
 #include "dawn_wire/client/RequestTracker.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Adapter final : public ObjectBase {
       public:
@@ -65,6 +65,6 @@
         RequestTracker<RequestDeviceData> mRequestDeviceRequests;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_ADAPTER_H_
diff --git a/src/dawn_wire/client/Buffer.cpp b/src/dawn_wire/client/Buffer.cpp
index 5077b5a..51b3010 100644
--- a/src/dawn_wire/client/Buffer.cpp
+++ b/src/dawn_wire/client/Buffer.cpp
@@ -19,7 +19,7 @@
 #include "dawn_wire/client/Client.h"
 #include "dawn_wire/client/Device.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     // static
     WGPUBuffer Buffer::Create(Device* device, const WGPUBufferDescriptor* descriptor) {
@@ -402,4 +402,4 @@
         mMappedData = nullptr;
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Buffer.h b/src/dawn_wire/client/Buffer.h
index 0a24384..f362621 100644
--- a/src/dawn_wire/client/Buffer.h
+++ b/src/dawn_wire/client/Buffer.h
@@ -21,7 +21,7 @@
 #include "dawn_wire/client/ObjectBase.h"
 #include "dawn_wire/client/RequestTracker.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Device;
 
@@ -104,6 +104,6 @@
         std::weak_ptr<bool> mDeviceIsAlive;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_BUFFER_H_
diff --git a/src/dawn_wire/client/Client.cpp b/src/dawn_wire/client/Client.cpp
index 628232d..b01e8f5 100644
--- a/src/dawn_wire/client/Client.cpp
+++ b/src/dawn_wire/client/Client.cpp
@@ -17,7 +17,7 @@
 #include "common/Compiler.h"
 #include "dawn_wire/client/Device.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     namespace {
 
@@ -168,4 +168,4 @@
         return mDisconnected;
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Client.h b/src/dawn_wire/client/Client.h
index aebf953..1e5e47f 100644
--- a/src/dawn_wire/client/Client.h
+++ b/src/dawn_wire/client/Client.h
@@ -26,7 +26,7 @@
 #include "dawn_wire/WireDeserializeAllocator.h"
 #include "dawn_wire/client/ClientBase_autogen.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Device;
     class MemoryTransferService;
@@ -90,6 +90,6 @@
 
     std::unique_ptr<MemoryTransferService> CreateInlineMemoryTransferService();
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_CLIENT_H_
diff --git a/src/dawn_wire/client/ClientDoers.cpp b/src/dawn_wire/client/ClientDoers.cpp
index e6665ab..fd75a09 100644
--- a/src/dawn_wire/client/ClientDoers.cpp
+++ b/src/dawn_wire/client/ClientDoers.cpp
@@ -18,7 +18,7 @@
 
 #include <limits>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     bool Client::DoDeviceUncapturedErrorCallback(Device* device,
                                                  WGPUErrorType errorType,
@@ -130,4 +130,4 @@
         return shaderModule->GetCompilationInfoCallback(requestSerial, status, info);
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/ClientInlineMemoryTransferService.cpp b/src/dawn_wire/client/ClientInlineMemoryTransferService.cpp
index 9cb0eed..f03969e 100644
--- a/src/dawn_wire/client/ClientInlineMemoryTransferService.cpp
+++ b/src/dawn_wire/client/ClientInlineMemoryTransferService.cpp
@@ -19,7 +19,7 @@
 
 #include <cstring>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class InlineMemoryTransferService : public MemoryTransferService {
         class ReadHandleImpl : public ReadHandle {
@@ -128,4 +128,4 @@
         return std::make_unique<InlineMemoryTransferService>();
     }
 
-}}  //  namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/ClientMemoryTransferService_mock.cpp b/src/dawn_wire/client/ClientMemoryTransferService_mock.cpp
index 6a523f2..eed0aea 100644
--- a/src/dawn_wire/client/ClientMemoryTransferService_mock.cpp
+++ b/src/dawn_wire/client/ClientMemoryTransferService_mock.cpp
@@ -17,7 +17,7 @@
 #include <cstdio>
 #include "common/Assert.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     MockMemoryTransferService::MockReadHandle::MockReadHandle(MockMemoryTransferService* service)
         : ReadHandle(), mService(service) {
@@ -102,4 +102,4 @@
         return new MockWriteHandle(this);
     }
 
-}}  //  namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/ClientMemoryTransferService_mock.h b/src/dawn_wire/client/ClientMemoryTransferService_mock.h
index 5f9eeb0..0db3530 100644
--- a/src/dawn_wire/client/ClientMemoryTransferService_mock.h
+++ b/src/dawn_wire/client/ClientMemoryTransferService_mock.h
@@ -20,7 +20,7 @@
 #include "dawn_wire/WireClient.h"
 #include "dawn_wire/client/Client.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class MockMemoryTransferService : public MemoryTransferService {
       public:
@@ -94,6 +94,6 @@
         MOCK_METHOD(void, OnWriteHandleDestroy, (const void* WriteHandle));
     };
 
-}}  //  namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_CLIENTMEMORYTRANSFERSERVICE_MOCK_H_
diff --git a/src/dawn_wire/client/Device.cpp b/src/dawn_wire/client/Device.cpp
index 54d1053..daa7cfc 100644
--- a/src/dawn_wire/client/Device.cpp
+++ b/src/dawn_wire/client/Device.cpp
@@ -20,7 +20,7 @@
 #include "dawn_wire/client/Client.h"
 #include "dawn_wire/client/ObjectAllocator.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     Device::Device(Client* clientIn, uint32_t initialRefcount, uint32_t initialId)
         : ObjectBase(clientIn, initialRefcount, initialId), mIsAlive(std::make_shared<bool>()) {
@@ -339,4 +339,4 @@
         return true;
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Device.h b/src/dawn_wire/client/Device.h
index 58be198..5ec5b25 100644
--- a/src/dawn_wire/client/Device.h
+++ b/src/dawn_wire/client/Device.h
@@ -26,7 +26,7 @@
 
 #include <memory>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Client;
     class Queue;
@@ -107,6 +107,6 @@
         std::shared_ptr<bool> mIsAlive;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_DEVICE_H_
diff --git a/src/dawn_wire/client/Instance.cpp b/src/dawn_wire/client/Instance.cpp
index cf3976c..9b69d33 100644
--- a/src/dawn_wire/client/Instance.cpp
+++ b/src/dawn_wire/client/Instance.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_wire/client/Client.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     Instance::~Instance() {
         mRequestAdapterRequests.CloseAll([](RequestAdapterData* request) {
@@ -98,4 +98,4 @@
         return true;
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Instance.h b/src/dawn_wire/client/Instance.h
index 2733b9c..964523b 100644
--- a/src/dawn_wire/client/Instance.h
+++ b/src/dawn_wire/client/Instance.h
@@ -22,7 +22,7 @@
 #include "dawn_wire/client/ObjectBase.h"
 #include "dawn_wire/client/RequestTracker.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Instance final : public ObjectBase {
       public:
@@ -51,6 +51,6 @@
         RequestTracker<RequestAdapterData> mRequestAdapterRequests;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_INSTANCE_H_
diff --git a/src/dawn_wire/client/LimitsAndFeatures.cpp b/src/dawn_wire/client/LimitsAndFeatures.cpp
index c4b4656..d33799f 100644
--- a/src/dawn_wire/client/LimitsAndFeatures.cpp
+++ b/src/dawn_wire/client/LimitsAndFeatures.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_wire/SupportedFeatures.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     bool LimitsAndFeatures::GetLimits(WGPUSupportedLimits* limits) const {
         ASSERT(limits != nullptr);
@@ -60,4 +60,4 @@
         }
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/LimitsAndFeatures.h b/src/dawn_wire/client/LimitsAndFeatures.h
index 996dbdb..4d6cfca 100644
--- a/src/dawn_wire/client/LimitsAndFeatures.h
+++ b/src/dawn_wire/client/LimitsAndFeatures.h
@@ -19,7 +19,7 @@
 
 #include <unordered_set>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class LimitsAndFeatures {
       public:
@@ -35,6 +35,6 @@
         std::unordered_set<WGPUFeatureName> mFeatures;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_LIMITSANDFEATURES_H_
diff --git a/src/dawn_wire/client/ObjectAllocator.h b/src/dawn_wire/client/ObjectAllocator.h
index 4572752..a2efd3b 100644
--- a/src/dawn_wire/client/ObjectAllocator.h
+++ b/src/dawn_wire/client/ObjectAllocator.h
@@ -23,7 +23,7 @@
 #include <memory>
 #include <vector>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     template <typename T>
     class ObjectAllocator {
@@ -105,6 +105,6 @@
         std::vector<uint32_t> mFreeIds;
         std::vector<ObjectAndSerial> mObjects;
     };
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_OBJECTALLOCATOR_H_
diff --git a/src/dawn_wire/client/ObjectBase.h b/src/dawn_wire/client/ObjectBase.h
index ac257c8..ac6ae27 100644
--- a/src/dawn_wire/client/ObjectBase.h
+++ b/src/dawn_wire/client/ObjectBase.h
@@ -20,7 +20,7 @@
 #include "common/LinkedList.h"
 #include "dawn_wire/ObjectType_autogen.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Client;
 
@@ -46,6 +46,6 @@
         const uint32_t id;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_OBJECTBASE_H_
diff --git a/src/dawn_wire/client/Queue.cpp b/src/dawn_wire/client/Queue.cpp
index daa44d7..1875b25 100644
--- a/src/dawn_wire/client/Queue.cpp
+++ b/src/dawn_wire/client/Queue.cpp
@@ -17,7 +17,7 @@
 #include "dawn_wire/client/Client.h"
 #include "dawn_wire/client/Device.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     Queue::~Queue() {
         ClearAllCallbacks(WGPUQueueWorkDoneStatus_Unknown);
@@ -95,4 +95,4 @@
         });
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/Queue.h b/src/dawn_wire/client/Queue.h
index 901acac..2d17736 100644
--- a/src/dawn_wire/client/Queue.h
+++ b/src/dawn_wire/client/Queue.h
@@ -21,7 +21,7 @@
 #include "dawn_wire/client/ObjectBase.h"
 #include "dawn_wire/client/RequestTracker.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Queue final : public ObjectBase {
       public:
@@ -52,6 +52,6 @@
         RequestTracker<OnWorkDoneData> mOnWorkDoneRequests;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_QUEUE_H_
diff --git a/src/dawn_wire/client/RequestTracker.h b/src/dawn_wire/client/RequestTracker.h
index 56691c2..8928033 100644
--- a/src/dawn_wire/client/RequestTracker.h
+++ b/src/dawn_wire/client/RequestTracker.h
@@ -21,7 +21,7 @@
 #include <cstdint>
 #include <map>
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class Device;
     class MemoryTransferService;
@@ -77,6 +77,6 @@
         std::map<uint64_t, Request> mRequests;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_REQUESTTRACKER_H_
diff --git a/src/dawn_wire/client/ShaderModule.cpp b/src/dawn_wire/client/ShaderModule.cpp
index c28b978..1e491b2 100644
--- a/src/dawn_wire/client/ShaderModule.cpp
+++ b/src/dawn_wire/client/ShaderModule.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_wire/client/Client.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     ShaderModule::~ShaderModule() {
         ClearAllCallbacks(WGPUCompilationInfoRequestStatus_Unknown);
@@ -61,4 +61,4 @@
         });
     }
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
diff --git a/src/dawn_wire/client/ShaderModule.h b/src/dawn_wire/client/ShaderModule.h
index f12a4d0..2359be3 100644
--- a/src/dawn_wire/client/ShaderModule.h
+++ b/src/dawn_wire/client/ShaderModule.h
@@ -20,7 +20,7 @@
 #include "dawn_wire/client/ObjectBase.h"
 #include "dawn_wire/client/RequestTracker.h"
 
-namespace dawn_wire { namespace client {
+namespace dawn_wire::client {
 
     class ShaderModule final : public ObjectBase {
       public:
@@ -43,6 +43,6 @@
         RequestTracker<CompilationInfoRequest> mCompilationInfoRequests;
     };
 
-}}  // namespace dawn_wire::client
+}  // namespace dawn_wire::client
 
 #endif  // DAWNWIRE_CLIENT_SHADER_MODULE_H_
diff --git a/src/dawn_wire/server/ObjectStorage.h b/src/dawn_wire/server/ObjectStorage.h
index bc45b26..c48235e 100644
--- a/src/dawn_wire/server/ObjectStorage.h
+++ b/src/dawn_wire/server/ObjectStorage.h
@@ -22,7 +22,7 @@
 #include <map>
 #include <unordered_set>
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     struct DeviceInfo {
         std::unordered_set<uint64_t> childObjectTypesAndIds;
@@ -223,6 +223,6 @@
         std::map<T, ObjectId> mTable;
     };
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
 
 #endif  // DAWNWIRE_SERVER_OBJECTSTORAGE_H_
diff --git a/src/dawn_wire/server/Server.cpp b/src/dawn_wire/server/Server.cpp
index 13ac756..57da184 100644
--- a/src/dawn_wire/server/Server.cpp
+++ b/src/dawn_wire/server/Server.cpp
@@ -15,7 +15,7 @@
 #include "dawn_wire/server/Server.h"
 #include "dawn_wire/WireServer.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     Server::Server(const DawnProcTable& procs,
                    CommandSerializer* serializer,
@@ -210,4 +210,4 @@
         return true;
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/Server.h b/src/dawn_wire/server/Server.h
index e76f62b..69de4ab 100644
--- a/src/dawn_wire/server/Server.h
+++ b/src/dawn_wire/server/Server.h
@@ -18,7 +18,7 @@
 #include "dawn_wire/ChunkedCommandSerializer.h"
 #include "dawn_wire/server/ServerBase_autogen.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     class Server;
     class MemoryTransferService;
@@ -238,6 +238,6 @@
 
     std::unique_ptr<MemoryTransferService> CreateInlineMemoryTransferService();
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
 
 #endif  // DAWNWIRE_SERVER_SERVER_H_
diff --git a/src/dawn_wire/server/ServerAdapter.cpp b/src/dawn_wire/server/ServerAdapter.cpp
index c70b8d8..2d723ae 100644
--- a/src/dawn_wire/server/ServerAdapter.cpp
+++ b/src/dawn_wire/server/ServerAdapter.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_wire/SupportedFeatures.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     bool Server::DoAdapterRequestDevice(ObjectId adapterId,
                                         uint64_t requestSerial,
@@ -107,4 +107,4 @@
         SerializeCommand(cmd);
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerBuffer.cpp b/src/dawn_wire/server/ServerBuffer.cpp
index 86f011e..03192f6 100644
--- a/src/dawn_wire/server/ServerBuffer.cpp
+++ b/src/dawn_wire/server/ServerBuffer.cpp
@@ -19,7 +19,7 @@
 
 #include <memory>
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     bool Server::PreHandleBufferUnmap(const BufferUnmapCmd& cmd) {
         auto* buffer = BufferObjects().Get(cmd.selfId);
@@ -279,4 +279,4 @@
         });
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerDevice.cpp b/src/dawn_wire/server/ServerDevice.cpp
index 139ed3d..6a52411 100644
--- a/src/dawn_wire/server/ServerDevice.cpp
+++ b/src/dawn_wire/server/ServerDevice.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_wire/server/Server.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     namespace {
 
@@ -201,4 +201,4 @@
         SerializeCommand(cmd);
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerInlineMemoryTransferService.cpp b/src/dawn_wire/server/ServerInlineMemoryTransferService.cpp
index 71347d2..2fcbad7 100644
--- a/src/dawn_wire/server/ServerInlineMemoryTransferService.cpp
+++ b/src/dawn_wire/server/ServerInlineMemoryTransferService.cpp
@@ -18,7 +18,7 @@
 
 #include <cstring>
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     class InlineMemoryTransferService : public MemoryTransferService {
       public:
@@ -91,4 +91,4 @@
         return std::make_unique<InlineMemoryTransferService>();
     }
 
-}}  //  namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerInstance.cpp b/src/dawn_wire/server/ServerInstance.cpp
index 18d6740..4369d0c 100644
--- a/src/dawn_wire/server/ServerInstance.cpp
+++ b/src/dawn_wire/server/ServerInstance.cpp
@@ -18,7 +18,7 @@
 
 #include <algorithm>
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     bool Server::DoInstanceRequestAdapter(ObjectId instanceId,
                                           uint64_t requestSerial,
@@ -97,4 +97,4 @@
         SerializeCommand(cmd);
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerMemoryTransferService_mock.cpp b/src/dawn_wire/server/ServerMemoryTransferService_mock.cpp
index 165c6d3..0bb1442 100644
--- a/src/dawn_wire/server/ServerMemoryTransferService_mock.cpp
+++ b/src/dawn_wire/server/ServerMemoryTransferService_mock.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     MockMemoryTransferService::MockReadHandle::MockReadHandle(MockMemoryTransferService* service)
         : ReadHandle(), mService(service) {
@@ -88,4 +88,4 @@
         return new MockWriteHandle(this);
     }
 
-}}  //  namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerMemoryTransferService_mock.h b/src/dawn_wire/server/ServerMemoryTransferService_mock.h
index 23cf9ed..36510e6 100644
--- a/src/dawn_wire/server/ServerMemoryTransferService_mock.h
+++ b/src/dawn_wire/server/ServerMemoryTransferService_mock.h
@@ -20,7 +20,7 @@
 #include "dawn_wire/WireServer.h"
 #include "dawn_wire/server/Server.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     class MockMemoryTransferService : public MemoryTransferService {
       public:
@@ -103,6 +103,6 @@
         MOCK_METHOD(void, OnWriteHandleDestroy, (const WriteHandle* writeHandle));
     };
 
-}}  //  namespace dawn_wire::server
+}  // namespace dawn_wire::server
 
 #endif  // DAWNWIRE_SERVER_SERVERMEMORYTRANSFERSERVICE_MOCK_H_
diff --git a/src/dawn_wire/server/ServerQueue.cpp b/src/dawn_wire/server/ServerQueue.cpp
index 54f573e..656c833 100644
--- a/src/dawn_wire/server/ServerQueue.cpp
+++ b/src/dawn_wire/server/ServerQueue.cpp
@@ -15,7 +15,7 @@
 #include "common/Assert.h"
 #include "dawn_wire/server/Server.h"
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     void Server::OnQueueWorkDone(QueueWorkDoneUserdata* data, WGPUQueueWorkDoneStatus status) {
         ReturnQueueWorkDoneCallbackCmd cmd;
@@ -100,4 +100,4 @@
         return true;
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/dawn_wire/server/ServerShaderModule.cpp b/src/dawn_wire/server/ServerShaderModule.cpp
index 3a7a671..072ad73 100644
--- a/src/dawn_wire/server/ServerShaderModule.cpp
+++ b/src/dawn_wire/server/ServerShaderModule.cpp
@@ -16,7 +16,7 @@
 
 #include <memory>
 
-namespace dawn_wire { namespace server {
+namespace dawn_wire::server {
 
     bool Server::DoShaderModuleGetCompilationInfo(ObjectId shaderModuleId, uint64_t requestSerial) {
         auto* shaderModule = ShaderModuleObjects().Get(shaderModuleId);
@@ -46,4 +46,4 @@
         SerializeCommand(cmd);
     }
 
-}}  // namespace dawn_wire::server
+}  // namespace dawn_wire::server
diff --git a/src/include/dawn_native/D3D12Backend.h b/src/include/dawn_native/D3D12Backend.h
index a6644b1..8973af1 100644
--- a/src/include/dawn_native/D3D12Backend.h
+++ b/src/include/dawn_native/D3D12Backend.h
@@ -28,7 +28,7 @@
 struct ID3D12Device;
 struct ID3D12Resource;
 
-namespace dawn_native { namespace d3d12 {
+namespace dawn_native::d3d12 {
 
     class D3D11on12ResourceCache;
 
@@ -101,6 +101,6 @@
         Microsoft::WRL::ComPtr<IDXGIAdapter> dxgiAdapter;
     };
 
-}}  // namespace dawn_native::d3d12
+}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12BACKEND_H_
diff --git a/src/include/dawn_native/MetalBackend.h b/src/include/dawn_native/MetalBackend.h
index 0346843..a8c1106 100644
--- a/src/include/dawn_native/MetalBackend.h
+++ b/src/include/dawn_native/MetalBackend.h
@@ -32,7 +32,7 @@
 #    import <Metal/Metal.h>
 #endif  //__OBJC__
 
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     struct DAWN_NATIVE_EXPORT AdapterDiscoveryOptions : public AdapterDiscoveryOptionsBase {
         AdapterDiscoveryOptions();
@@ -56,14 +56,14 @@
     // scheduled could lead to races in who gets scheduled first and incorrect rendering.
     DAWN_NATIVE_EXPORT void WaitForCommandsToBeScheduled(WGPUDevice device);
 
-}}  // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 
 #ifdef __OBJC__
-namespace dawn_native { namespace metal {
+namespace dawn_native::metal {
 
     DAWN_NATIVE_EXPORT id<MTLDevice> GetMetalDevice(WGPUDevice device);
 
-}}      // namespace dawn_native::metal
+}  // namespace dawn_native::metal
 #endif  // __OBJC__
 
 #pragma clang diagnostic pop
diff --git a/src/include/dawn_native/NullBackend.h b/src/include/dawn_native/NullBackend.h
index 5762a77..02f8b95 100644
--- a/src/include/dawn_native/NullBackend.h
+++ b/src/include/dawn_native/NullBackend.h
@@ -18,8 +18,8 @@
 #include <dawn/dawn_wsi.h>
 #include <dawn_native/DawnNative.h>
 
-namespace dawn_native { namespace null {
+namespace dawn_native::null {
     DAWN_NATIVE_EXPORT DawnSwapChainImplementation CreateNativeSwapChainImpl();
-}}  // namespace dawn_native::null
+}  // namespace dawn_native::null
 
 #endif  // DAWNNATIVE_NULLBACKEND_H_
diff --git a/src/include/dawn_native/OpenGLBackend.h b/src/include/dawn_native/OpenGLBackend.h
index 81ab1f8..d8d4afd 100644
--- a/src/include/dawn_native/OpenGLBackend.h
+++ b/src/include/dawn_native/OpenGLBackend.h
@@ -20,7 +20,7 @@
 #include <dawn/dawn_wsi.h>
 #include <dawn_native/DawnNative.h>
 
-namespace dawn_native { namespace opengl {
+namespace dawn_native::opengl {
 
     struct DAWN_NATIVE_EXPORT AdapterDiscoveryOptions : public AdapterDiscoveryOptionsBase {
         AdapterDiscoveryOptions();
@@ -50,6 +50,6 @@
     DAWN_NATIVE_EXPORT WGPUTexture
     WrapExternalEGLImage(WGPUDevice device, const ExternalImageDescriptorEGLImage* descriptor);
 
-}}  // namespace dawn_native::opengl
+}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGLBACKEND_H_
diff --git a/src/include/dawn_native/VulkanBackend.h b/src/include/dawn_native/VulkanBackend.h
index 888ef27..4c8cfb5 100644
--- a/src/include/dawn_native/VulkanBackend.h
+++ b/src/include/dawn_native/VulkanBackend.h
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     DAWN_NATIVE_EXPORT VkInstance GetInstance(WGPUDevice device);
 
@@ -135,6 +135,6 @@
                                                   VkImageLayout desiredLayout,
                                                   ExternalImageExportInfoVk* info);
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKANBACKEND_H_
diff --git a/src/tests/white_box/VulkanImageWrappingTestsDmaBuf.cpp b/src/tests/white_box/VulkanImageWrappingTestsDmaBuf.cpp
index 9786c6a..c0afd94 100644
--- a/src/tests/white_box/VulkanImageWrappingTestsDmaBuf.cpp
+++ b/src/tests/white_box/VulkanImageWrappingTestsDmaBuf.cpp
@@ -28,7 +28,7 @@
 #include <fcntl.h>
 #include <gbm.h>
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -884,4 +884,4 @@
     DAWN_INSTANTIATE_TEST(VulkanImageWrappingValidationTests, VulkanBackend());
     DAWN_INSTANTIATE_TEST(VulkanImageWrappingUsageTests, VulkanBackend());
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
diff --git a/src/tests/white_box/VulkanImageWrappingTestsOpaqueFD.cpp b/src/tests/white_box/VulkanImageWrappingTestsOpaqueFD.cpp
index 1bf503e..c0923c9 100644
--- a/src/tests/white_box/VulkanImageWrappingTestsOpaqueFD.cpp
+++ b/src/tests/white_box/VulkanImageWrappingTestsOpaqueFD.cpp
@@ -25,7 +25,7 @@
 #include "utils/SystemUtils.h"
 #include "utils/WGPUHelpers.h"
 
-namespace dawn_native { namespace vulkan {
+namespace dawn_native::vulkan {
 
     namespace {
 
@@ -1016,4 +1016,4 @@
     DAWN_INSTANTIATE_TEST(VulkanImageWrappingValidationTests, VulkanBackend());
     DAWN_INSTANTIATE_TEST(VulkanImageWrappingUsageTests, VulkanBackend());
 
-}}  // namespace dawn_native::vulkan
+}  // namespace dawn_native::vulkan
