diff --git a/src/dawn_native/BindGroup.cpp b/src/dawn_native/BindGroup.cpp
index a4c8a7f..388f2a7 100644
--- a/src/dawn_native/BindGroup.cpp
+++ b/src/dawn_native/BindGroup.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/Device.h"
 #include "dawn_native/Texture.h"
 
-namespace backend {
+namespace dawn_native {
 
     // BindGroup
 
@@ -226,4 +226,4 @@
 
         return true;
     }
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/BindGroup.h b/src/dawn_native/BindGroup.h
index 2a26b43..46c272e 100644
--- a/src/dawn_native/BindGroup.h
+++ b/src/dawn_native/BindGroup.h
@@ -27,7 +27,7 @@
 #include <bitset>
 #include <type_traits>
 
-namespace backend {
+namespace dawn_native {
 
     class BindGroupBase : public RefCounted {
       public:
@@ -91,6 +91,6 @@
         std::array<Ref<RefCounted>, kMaxBindingsPerGroup> mBindings;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_BINDGROUP_H_
diff --git a/src/dawn_native/BindGroupLayout.cpp b/src/dawn_native/BindGroupLayout.cpp
index 550b083..86f5dba 100644
--- a/src/dawn_native/BindGroupLayout.cpp
+++ b/src/dawn_native/BindGroupLayout.cpp
@@ -21,7 +21,7 @@
 
 #include <functional>
 
-namespace backend {
+namespace dawn_native {
 
     MaybeError ValidateBindGroupLayoutDescriptor(
         DeviceBase*,
@@ -115,4 +115,4 @@
         return a->GetBindingInfo() == b->GetBindingInfo();
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/BindGroupLayout.h b/src/dawn_native/BindGroupLayout.h
index 0d5f938..8cdf4ff 100644
--- a/src/dawn_native/BindGroupLayout.h
+++ b/src/dawn_native/BindGroupLayout.h
@@ -25,7 +25,7 @@
 #include <array>
 #include <bitset>
 
-namespace backend {
+namespace dawn_native {
 
     MaybeError ValidateBindGroupLayoutDescriptor(DeviceBase*,
                                                  const dawn::BindGroupLayoutDescriptor* descriptor);
@@ -61,6 +61,6 @@
         bool operator()(const BindGroupLayoutBase* a, const BindGroupLayoutBase* b) const;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_BINDGROUPLAYOUT_H_
diff --git a/src/dawn_native/BlendState.cpp b/src/dawn_native/BlendState.cpp
index ea5ab7e..ef9e192 100644
--- a/src/dawn_native/BlendState.cpp
+++ b/src/dawn_native/BlendState.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     // BlendStateBase
 
@@ -90,4 +90,4 @@
 
         mBlendInfo.colorWriteMask = colorWriteMask;
     }
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/BlendState.h b/src/dawn_native/BlendState.h
index 4012d31..793a70d 100644
--- a/src/dawn_native/BlendState.h
+++ b/src/dawn_native/BlendState.h
@@ -21,7 +21,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     class BlendStateBase : public RefCounted {
       public:
@@ -70,6 +70,6 @@
         BlendStateBase::BlendInfo mBlendInfo;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_BLENDSTATE_H_
diff --git a/src/dawn_native/Buffer.cpp b/src/dawn_native/Buffer.cpp
index 31ed2d8..7211176 100644
--- a/src/dawn_native/Buffer.cpp
+++ b/src/dawn_native/Buffer.cpp
@@ -20,7 +20,7 @@
 #include <cstdio>
 #include <utility>
 
-namespace backend {
+namespace dawn_native {
 
     // Buffer
 
@@ -292,4 +292,4 @@
         mPropertiesSet |= BUFFER_VIEW_PROPERTY_EXTENT;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Buffer.h b/src/dawn_native/Buffer.h
index 9fda881..282dde6 100644
--- a/src/dawn_native/Buffer.h
+++ b/src/dawn_native/Buffer.h
@@ -22,7 +22,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     static constexpr dawn::BufferUsageBit kReadOnlyBufferUsages =
         dawn::BufferUsageBit::MapRead | dawn::BufferUsageBit::TransferSrc |
@@ -137,6 +137,6 @@
         int mPropertiesSet = 0;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_BUFFER_H_
diff --git a/src/dawn_native/Builder.cpp b/src/dawn_native/Builder.cpp
index 917b343..e6b70ad 100644
--- a/src/dawn_native/Builder.cpp
+++ b/src/dawn_native/Builder.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     bool BuilderBase::CanBeUsed() const {
         return !mIsConsumed && !mGotStatus;
@@ -94,4 +94,4 @@
         return result != nullptr;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Builder.h b/src/dawn_native/Builder.h
index 52eb5c8..f8c7b85 100644
--- a/src/dawn_native/Builder.h
+++ b/src/dawn_native/Builder.h
@@ -22,7 +22,7 @@
 
 #include <string>
 
-namespace backend {
+namespace dawn_native {
 
     // This class implements behavior shared by all builders:
     //  - Tracking whether GetResult has been called already, needed by the autogenerated code to
@@ -102,6 +102,6 @@
         }
     }
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_BUILDER_H_
diff --git a/src/dawn_native/CommandAllocator.cpp b/src/dawn_native/CommandAllocator.cpp
index cb85f9a..3f90f6f 100644
--- a/src/dawn_native/CommandAllocator.cpp
+++ b/src/dawn_native/CommandAllocator.cpp
@@ -21,7 +21,7 @@
 #include <climits>
 #include <cstdlib>
 
-namespace backend {
+namespace dawn_native {
 
     constexpr uint32_t EndOfBlock = UINT_MAX;          // std::numeric_limits<uint32_t>::max();
     constexpr uint32_t AdditionalData = UINT_MAX - 1;  // std::numeric_limits<uint32_t>::max() - 1;
@@ -225,4 +225,4 @@
         return true;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/CommandAllocator.h b/src/dawn_native/CommandAllocator.h
index d39176a..06257c6 100644
--- a/src/dawn_native/CommandAllocator.h
+++ b/src/dawn_native/CommandAllocator.h
@@ -19,7 +19,7 @@
 #include <cstdint>
 #include <vector>
 
-namespace backend {
+namespace dawn_native {
 
     // Allocation for command buffers should be fast. To avoid doing an allocation per command
     // or to avoid copying commands when reallocing, we use a linear allocator in a growing set
@@ -145,6 +145,6 @@
         uint32_t mDummyEnum[1] = {0};
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_COMMAND_ALLOCATOR_H_
diff --git a/src/dawn_native/CommandBuffer.cpp b/src/dawn_native/CommandBuffer.cpp
index df4f15d..4d6c762 100644
--- a/src/dawn_native/CommandBuffer.cpp
+++ b/src/dawn_native/CommandBuffer.cpp
@@ -28,7 +28,7 @@
 #include <cstring>
 #include <map>
 
-namespace backend {
+namespace dawn_native {
 
     namespace {
 
@@ -780,4 +780,4 @@
         memcpy(cmdOffsets, offsets, count * sizeof(uint32_t));
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/CommandBuffer.h b/src/dawn_native/CommandBuffer.h
index a42ac96..a378936 100644
--- a/src/dawn_native/CommandBuffer.h
+++ b/src/dawn_native/CommandBuffer.h
@@ -27,7 +27,7 @@
 #include <set>
 #include <utility>
 
-namespace backend {
+namespace dawn_native {
 
     class BindGroupBase;
     class BufferBase;
@@ -146,6 +146,6 @@
         std::vector<PassResourceUsage> mPassResourceUsages;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_COMMANDBUFFER_H_
diff --git a/src/dawn_native/CommandBufferStateTracker.cpp b/src/dawn_native/CommandBufferStateTracker.cpp
index 8de6c69..25ea3f3 100644
--- a/src/dawn_native/CommandBufferStateTracker.cpp
+++ b/src/dawn_native/CommandBufferStateTracker.cpp
@@ -23,7 +23,7 @@
 #include "dawn_native/PipelineLayout.h"
 #include "dawn_native/RenderPipeline.h"
 
-namespace backend {
+namespace dawn_native {
 
     enum ValidationAspect {
         VALIDATION_ASPECT_PIPELINE,
@@ -167,4 +167,4 @@
         mAspects &= ~kLazyAspects;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/CommandBufferStateTracker.h b/src/dawn_native/CommandBufferStateTracker.h
index 3dc2906..9dd1edb 100644
--- a/src/dawn_native/CommandBufferStateTracker.h
+++ b/src/dawn_native/CommandBufferStateTracker.h
@@ -23,7 +23,7 @@
 #include <map>
 #include <set>
 
-namespace backend {
+namespace dawn_native {
 
     class CommandBufferStateTracker {
       public:
@@ -58,6 +58,6 @@
         RenderPipelineBase* mLastRenderPipeline = nullptr;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_COMMANDBUFFERSTATETRACKER_H
diff --git a/src/dawn_native/Commands.cpp b/src/dawn_native/Commands.cpp
index ea98ab8..455675a 100644
--- a/src/dawn_native/Commands.cpp
+++ b/src/dawn_native/Commands.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/RenderPipeline.h"
 #include "dawn_native/Texture.h"
 
-namespace backend {
+namespace dawn_native {
 
     void FreeCommands(CommandIterator* commands) {
         commands->Reset();
@@ -199,4 +199,4 @@
         }
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Commands.h b/src/dawn_native/Commands.h
index 839245c..a10ef3a 100644
--- a/src/dawn_native/Commands.h
+++ b/src/dawn_native/Commands.h
@@ -20,7 +20,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     // Definition of the commands that are present in the CommandIterator given by the
     // CommandBufferBuilder. There are not defined in CommandBuffer.h to break some header
@@ -158,6 +158,6 @@
     // consuming the correct amount of data from the command iterator.
     void SkipCommand(CommandIterator* commands, Command type);
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_COMMANDS_H_
diff --git a/src/dawn_native/ComputePipeline.cpp b/src/dawn_native/ComputePipeline.cpp
index c5f4bb6..0ffcfe6 100644
--- a/src/dawn_native/ComputePipeline.cpp
+++ b/src/dawn_native/ComputePipeline.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     // ComputePipelineBase
 
@@ -38,4 +38,4 @@
         return mDevice->CreateComputePipeline(this);
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/ComputePipeline.h b/src/dawn_native/ComputePipeline.h
index 526891a..f81ab99 100644
--- a/src/dawn_native/ComputePipeline.h
+++ b/src/dawn_native/ComputePipeline.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/Pipeline.h"
 
-namespace backend {
+namespace dawn_native {
 
     class ComputePipelineBase : public RefCounted, public PipelineBase {
       public:
@@ -32,6 +32,6 @@
         ComputePipelineBase* GetResultImpl() override;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_COMPUTEPIPELINE_H_
diff --git a/src/dawn_native/DepthStencilState.cpp b/src/dawn_native/DepthStencilState.cpp
index 2aa4f9c..5647d9e 100644
--- a/src/dawn_native/DepthStencilState.cpp
+++ b/src/dawn_native/DepthStencilState.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     // DepthStencilStateBase
 
@@ -132,4 +132,4 @@
         mStencilInfo.writeMask = writeMask;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/DepthStencilState.h b/src/dawn_native/DepthStencilState.h
index b5e5626..d795d5d 100644
--- a/src/dawn_native/DepthStencilState.h
+++ b/src/dawn_native/DepthStencilState.h
@@ -21,7 +21,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     class DepthStencilStateBase : public RefCounted {
       public:
@@ -80,6 +80,6 @@
         DepthStencilStateBase::StencilInfo mStencilInfo;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_DEPTHSTENCILSTATE_H_
diff --git a/src/dawn_native/Device.cpp b/src/dawn_native/Device.cpp
index 6b0f5de..b364f77 100644
--- a/src/dawn_native/Device.cpp
+++ b/src/dawn_native/Device.cpp
@@ -34,7 +34,7 @@
 
 #include <unordered_set>
 
-namespace backend {
+namespace dawn_native {
 
     // DeviceBase::Caches
 
@@ -227,4 +227,4 @@
         delete error;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Device.h b/src/dawn_native/Device.h
index 1a40a85..f10e378 100644
--- a/src/dawn_native/Device.h
+++ b/src/dawn_native/Device.h
@@ -21,7 +21,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     using ErrorCallback = void (*)(const char* errorMessage, void* userData);
 
@@ -133,6 +133,6 @@
         uint32_t mRefCount = 1;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_DEVICEBASE_H_
diff --git a/src/dawn_native/Error.cpp b/src/dawn_native/Error.cpp
index 9d89e6d..06e0290 100644
--- a/src/dawn_native/Error.cpp
+++ b/src/dawn_native/Error.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/ErrorData.h"
 
-namespace backend {
+namespace dawn_native {
 
     ErrorData* MakeError(const char* message, const char* file, const char* function, int line) {
         ErrorData* error = new ErrorData(message);
@@ -28,4 +28,4 @@
         error->AppendBacktrace(file, function, line);
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Error.h b/src/dawn_native/Error.h
index 7d718a8..3c2ea46 100644
--- a/src/dawn_native/Error.h
+++ b/src/dawn_native/Error.h
@@ -17,7 +17,7 @@
 
 #include "common/Result.h"
 
-namespace backend {
+namespace dawn_native {
 
     // This is the content of an error value for MaybeError or ResultOrError, split off to its own
     // file to avoid having all files including headers like <string> and <vector>
@@ -86,6 +86,6 @@
     // Implementation detail of DAWN_RETURN_ERROR
     ErrorData* MakeError(const char* message, const char* file, const char* function, int line);
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_ERROR_H_
diff --git a/src/dawn_native/ErrorData.cpp b/src/dawn_native/ErrorData.cpp
index d7fe868..cd8c3be 100644
--- a/src/dawn_native/ErrorData.cpp
+++ b/src/dawn_native/ErrorData.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/ErrorData.h"
 
-namespace backend {
+namespace dawn_native {
 
     ErrorData::ErrorData() = default;
 
@@ -38,4 +38,4 @@
         return mBacktrace;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/ErrorData.h b/src/dawn_native/ErrorData.h
index 2e26d57..534ce5c 100644
--- a/src/dawn_native/ErrorData.h
+++ b/src/dawn_native/ErrorData.h
@@ -18,7 +18,7 @@
 #include <string>
 #include <vector>
 
-namespace backend {
+namespace dawn_native {
 
     class ErrorData {
       public:
@@ -40,6 +40,6 @@
         std::vector<BacktraceRecord> mBacktrace;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_ERRORDATA_H_
diff --git a/src/dawn_native/Forward.h b/src/dawn_native/Forward.h
index 7f86640..9a30a1a 100644
--- a/src/dawn_native/Forward.h
+++ b/src/dawn_native/Forward.h
@@ -17,7 +17,7 @@
 
 #include <cstdint>
 
-namespace backend {
+namespace dawn_native {
 
     class BindGroupBase;
     class BindGroupBuilder;
@@ -63,6 +63,6 @@
     class PerStage;
 
     enum PushConstantType : uint8_t;
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_FORWARD_H_
diff --git a/src/dawn_native/InputState.cpp b/src/dawn_native/InputState.cpp
index 4e14ed5..54cbe97 100644
--- a/src/dawn_native/InputState.cpp
+++ b/src/dawn_native/InputState.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     // InputState helpers
 
@@ -168,4 +168,4 @@
         info.stepMode = stepMode;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/InputState.h b/src/dawn_native/InputState.h
index d0fb19c..f3ed944 100644
--- a/src/dawn_native/InputState.h
+++ b/src/dawn_native/InputState.h
@@ -25,7 +25,7 @@
 #include <array>
 #include <bitset>
 
-namespace backend {
+namespace dawn_native {
 
     size_t IndexFormatSize(dawn::IndexFormat format);
     uint32_t VertexFormatNumComponents(dawn::VertexFormat format);
@@ -81,6 +81,6 @@
         std::array<InputStateBase::InputInfo, kMaxVertexInputs> mInputInfos;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_INPUTSTATE_H_
diff --git a/src/dawn_native/PassResourceUsage.h b/src/dawn_native/PassResourceUsage.h
index a9b8857..1824b9d 100644
--- a/src/dawn_native/PassResourceUsage.h
+++ b/src/dawn_native/PassResourceUsage.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-namespace backend {
+namespace dawn_native {
 
     class BufferBase;
     class TextureBase;
@@ -35,6 +35,6 @@
         std::vector<dawn::TextureUsageBit> textureUsages;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_PASSRESOURCEUSAGE_H
diff --git a/src/dawn_native/PerStage.cpp b/src/dawn_native/PerStage.cpp
index e2feb10..b29ede1 100644
--- a/src/dawn_native/PerStage.cpp
+++ b/src/dawn_native/PerStage.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/PerStage.h"
 
-namespace backend {
+namespace dawn_native {
 
     BitSetIterator<kNumStages, dawn::ShaderStage> IterateStages(dawn::ShaderStageBit stages) {
         std::bitset<kNumStages> bits(static_cast<uint32_t>(stages));
@@ -26,4 +26,4 @@
         return static_cast<dawn::ShaderStageBit>(1 << static_cast<uint32_t>(stage));
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/PerStage.h b/src/dawn_native/PerStage.h
index 411d5db..e6a0b9d 100644
--- a/src/dawn_native/PerStage.h
+++ b/src/dawn_native/PerStage.h
@@ -23,7 +23,7 @@
 
 #include <array>
 
-namespace backend {
+namespace dawn_native {
 
     static_assert(static_cast<uint32_t>(dawn::ShaderStage::Vertex) < kNumStages, "");
     static_assert(static_cast<uint32_t>(dawn::ShaderStage::Fragment) < kNumStages, "");
@@ -72,6 +72,6 @@
         std::array<T, kNumStages> mData;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_PERSTAGE_H_
diff --git a/src/dawn_native/Pipeline.cpp b/src/dawn_native/Pipeline.cpp
index 6612a46..6ea7505 100644
--- a/src/dawn_native/Pipeline.cpp
+++ b/src/dawn_native/Pipeline.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/PipelineLayout.h"
 #include "dawn_native/ShaderModule.h"
 
-namespace backend {
+namespace dawn_native {
 
     // PipelineBase
 
@@ -118,4 +118,4 @@
         mStages[stage].entryPoint = entryPoint;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Pipeline.h b/src/dawn_native/Pipeline.h
index 1460e1c..35d4ca3 100644
--- a/src/dawn_native/Pipeline.h
+++ b/src/dawn_native/Pipeline.h
@@ -27,7 +27,7 @@
 #include <array>
 #include <bitset>
 
-namespace backend {
+namespace dawn_native {
 
     enum PushConstantType : uint8_t {
         Int,
@@ -80,6 +80,6 @@
         PerStage<StageInfo> mStages;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_PIPELINE_H_
diff --git a/src/dawn_native/PipelineLayout.cpp b/src/dawn_native/PipelineLayout.cpp
index 5629bcb..75ec3b0 100644
--- a/src/dawn_native/PipelineLayout.cpp
+++ b/src/dawn_native/PipelineLayout.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/BindGroupLayout.h"
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     MaybeError ValidatePipelineLayoutDescriptor(DeviceBase*,
                                                 const dawn::PipelineLayoutDescriptor* descriptor) {
@@ -72,4 +72,4 @@
         return mDevice;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/PipelineLayout.h b/src/dawn_native/PipelineLayout.h
index c165c1c..31ac6cf 100644
--- a/src/dawn_native/PipelineLayout.h
+++ b/src/dawn_native/PipelineLayout.h
@@ -25,7 +25,7 @@
 #include <array>
 #include <bitset>
 
-namespace backend {
+namespace dawn_native {
 
     MaybeError ValidatePipelineLayoutDescriptor(DeviceBase*,
                                                 const dawn::PipelineLayoutDescriptor* descriptor);
@@ -55,6 +55,6 @@
         std::bitset<kMaxBindGroups> mMask;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_PIPELINELAYOUT_H_
diff --git a/src/dawn_native/Queue.cpp b/src/dawn_native/Queue.cpp
index 803b166..7733e1a 100644
--- a/src/dawn_native/Queue.cpp
+++ b/src/dawn_native/Queue.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/CommandBuffer.h"
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     // QueueBase
 
@@ -33,4 +33,4 @@
         return {};
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Queue.h b/src/dawn_native/Queue.h
index 9db85e6..3284d8e 100644
--- a/src/dawn_native/Queue.h
+++ b/src/dawn_native/Queue.h
@@ -22,7 +22,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     class QueueBase : public RefCounted {
       public:
@@ -47,6 +47,6 @@
         DeviceBase* mDevice;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_QUEUE_H_
diff --git a/src/dawn_native/RefCounted.cpp b/src/dawn_native/RefCounted.cpp
index da543fe..64a4817 100644
--- a/src/dawn_native/RefCounted.cpp
+++ b/src/dawn_native/RefCounted.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace backend {
+namespace dawn_native {
 
     RefCounted::RefCounted() {
     }
@@ -74,4 +74,4 @@
         }
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/RefCounted.h b/src/dawn_native/RefCounted.h
index 1e9557f..ccc63f9 100644
--- a/src/dawn_native/RefCounted.h
+++ b/src/dawn_native/RefCounted.h
@@ -17,7 +17,7 @@
 
 #include <cstdint>
 
-namespace backend {
+namespace dawn_native {
 
     class RefCounted {
       public:
@@ -124,6 +124,6 @@
         T* mPointee = nullptr;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_REFCOUNTED_H_
diff --git a/src/dawn_native/RenderPassDescriptor.cpp b/src/dawn_native/RenderPassDescriptor.cpp
index 7ec67a7..12212a2 100644
--- a/src/dawn_native/RenderPassDescriptor.cpp
+++ b/src/dawn_native/RenderPassDescriptor.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/Device.h"
 #include "dawn_native/Texture.h"
 
-namespace backend {
+namespace dawn_native {
 
     // RenderPassDescriptor
 
@@ -178,4 +178,4 @@
         mDepthStencilAttachment.clearStencil = clearStencil;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/RenderPassDescriptor.h b/src/dawn_native/RenderPassDescriptor.h
index 9e0d21d..cdc5d92 100644
--- a/src/dawn_native/RenderPassDescriptor.h
+++ b/src/dawn_native/RenderPassDescriptor.h
@@ -26,7 +26,7 @@
 #include <bitset>
 #include <vector>
 
-namespace backend {
+namespace dawn_native {
 
     struct RenderPassColorAttachmentInfo {
         dawn::LoadOp loadOp;
@@ -104,6 +104,6 @@
         uint32_t mHeight = 0;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_RENDERPASS_H_
diff --git a/src/dawn_native/RenderPipeline.cpp b/src/dawn_native/RenderPipeline.cpp
index b333266..3b5dbc6 100644
--- a/src/dawn_native/RenderPipeline.cpp
+++ b/src/dawn_native/RenderPipeline.cpp
@@ -22,7 +22,7 @@
 #include "dawn_native/RenderPassDescriptor.h"
 #include "dawn_native/Texture.h"
 
-namespace backend {
+namespace dawn_native {
 
     // RenderPipelineBase
 
@@ -218,4 +218,4 @@
         mPrimitiveTopology = primitiveTopology;
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/RenderPipeline.h b/src/dawn_native/RenderPipeline.h
index a5cdc1a..b3580db 100644
--- a/src/dawn_native/RenderPipeline.h
+++ b/src/dawn_native/RenderPipeline.h
@@ -25,7 +25,7 @@
 #include <array>
 #include <bitset>
 
-namespace backend {
+namespace dawn_native {
 
     class RenderPipelineBase : public RefCounted, public PipelineBase {
       public:
@@ -91,6 +91,6 @@
         dawn::TextureFormat mDepthStencilFormat;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_RENDERPIPELINE_H_
diff --git a/src/dawn_native/Sampler.cpp b/src/dawn_native/Sampler.cpp
index cd8684f..b5f418f 100644
--- a/src/dawn_native/Sampler.cpp
+++ b/src/dawn_native/Sampler.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/Device.h"
 #include "dawn_native/ValidationUtils_autogen.h"
 
-namespace backend {
+namespace dawn_native {
 
     MaybeError ValidateSamplerDescriptor(DeviceBase*, const dawn::SamplerDescriptor* descriptor) {
         DAWN_TRY_ASSERT(descriptor->nextInChain == nullptr, "nextInChain must be nullptr");
@@ -35,4 +35,4 @@
     SamplerBase::SamplerBase(DeviceBase*, const dawn::SamplerDescriptor*) {
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Sampler.h b/src/dawn_native/Sampler.h
index 816db69..7573043 100644
--- a/src/dawn_native/Sampler.h
+++ b/src/dawn_native/Sampler.h
@@ -20,7 +20,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     class DeviceBase;
 
@@ -32,6 +32,6 @@
         SamplerBase(DeviceBase* device, const dawn::SamplerDescriptor* descriptor);
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_SAMPLER_H_
diff --git a/src/dawn_native/ShaderModule.cpp b/src/dawn_native/ShaderModule.cpp
index 9e36621..193ebf0 100644
--- a/src/dawn_native/ShaderModule.cpp
+++ b/src/dawn_native/ShaderModule.cpp
@@ -21,7 +21,7 @@
 
 #include <spirv-cross/spirv_cross.hpp>
 
-namespace backend {
+namespace dawn_native {
 
     ShaderModuleBase::ShaderModuleBase(ShaderModuleBuilder* builder) : mDevice(builder->mDevice) {
     }
@@ -238,4 +238,4 @@
         mSpirv.assign(code, code + codeSize);
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/ShaderModule.h b/src/dawn_native/ShaderModule.h
index 3084104..6ae9275 100644
--- a/src/dawn_native/ShaderModule.h
+++ b/src/dawn_native/ShaderModule.h
@@ -30,7 +30,7 @@
     class Compiler;
 }
 
-namespace backend {
+namespace dawn_native {
 
     class ShaderModuleBase : public RefCounted {
       public:
@@ -92,6 +92,6 @@
         std::vector<uint32_t> mSpirv;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_SHADERMODULE_H_
diff --git a/src/dawn_native/SwapChain.cpp b/src/dawn_native/SwapChain.cpp
index 267acee..8dc96e8 100644
--- a/src/dawn_native/SwapChain.cpp
+++ b/src/dawn_native/SwapChain.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/Device.h"
 #include "dawn_native/Texture.h"
 
-namespace backend {
+namespace dawn_native {
 
     // SwapChain
 
@@ -117,4 +117,4 @@
 
         mImplementation = impl;
     }
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/SwapChain.h b/src/dawn_native/SwapChain.h
index 5c751ce..29bbf23 100644
--- a/src/dawn_native/SwapChain.h
+++ b/src/dawn_native/SwapChain.h
@@ -22,7 +22,7 @@
 #include "dawn/dawn_wsi.h"
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     class SwapChainBase : public RefCounted {
       public:
@@ -68,6 +68,6 @@
         dawnSwapChainImplementation mImplementation = {};
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_SWAPCHAIN_H_
diff --git a/src/dawn_native/Texture.cpp b/src/dawn_native/Texture.cpp
index afb0182..b756c06 100644
--- a/src/dawn_native/Texture.cpp
+++ b/src/dawn_native/Texture.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/Device.h"
 
-namespace backend {
+namespace dawn_native {
 
     uint32_t TextureFormatPixelSize(dawn::TextureFormat format) {
         switch (format) {
@@ -215,4 +215,4 @@
         return mDevice->CreateTextureView(this);
     }
 
-}  // namespace backend
+}  // namespace dawn_native
diff --git a/src/dawn_native/Texture.h b/src/dawn_native/Texture.h
index 28c11cc..3fc2837 100644
--- a/src/dawn_native/Texture.h
+++ b/src/dawn_native/Texture.h
@@ -21,7 +21,7 @@
 
 #include "dawn/dawncpp.h"
 
-namespace backend {
+namespace dawn_native {
 
     uint32_t TextureFormatPixelSize(dawn::TextureFormat format);
     bool TextureFormatHasDepth(dawn::TextureFormat format);
@@ -111,6 +111,6 @@
         Ref<TextureBase> mTexture;
     };
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_TEXTURE_H_
diff --git a/src/dawn_native/ToBackend.h b/src/dawn_native/ToBackend.h
index 7cb0d43..1e64f2c 100644
--- a/src/dawn_native/ToBackend.h
+++ b/src/dawn_native/ToBackend.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/Forward.h"
 
-namespace backend {
+namespace dawn_native {
 
     // ToBackendTraits implements the mapping from base type to member type of BackendTraits
     template <typename T, typename BackendTraits>
@@ -149,6 +149,6 @@
             common);
     }
 
-}  // namespace backend
+}  // namespace dawn_native
 
 #endif  // DAWNNATIVE_TOBACKEND_H_
diff --git a/src/dawn_native/d3d12/BindGroupD3D12.cpp b/src/dawn_native/d3d12/BindGroupD3D12.cpp
index 6369359..a25ec69 100644
--- a/src/dawn_native/d3d12/BindGroupD3D12.cpp
+++ b/src/dawn_native/d3d12/BindGroupD3D12.cpp
@@ -21,7 +21,7 @@
 
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     BindGroup::BindGroup(Device* device, BindGroupBuilder* builder)
         : BindGroupBase(builder), mDevice(device) {
@@ -96,4 +96,4 @@
         return mHeapSerial;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BindGroupD3D12.h b/src/dawn_native/d3d12/BindGroupD3D12.h
index ae2ab74..819ff8c 100644
--- a/src/dawn_native/d3d12/BindGroupD3D12.h
+++ b/src/dawn_native/d3d12/BindGroupD3D12.h
@@ -21,7 +21,7 @@
 
 #include "dawn_native/d3d12/DescriptorHeapAllocator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -47,6 +47,6 @@
         uint64_t mHeapSerial = 0;
     };
 
-}}  // namespace backend::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 36e70d9..08775bc 100644
--- a/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp
+++ b/src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp
@@ -17,7 +17,7 @@
 #include "common/BitSetIterator.h"
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     BindGroupLayout::BindGroupLayout(Device* device,
                                      const dawn::BindGroupLayoutDescriptor* descriptor)
@@ -131,4 +131,4 @@
         return &mRanges[Sampler];
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BindGroupLayoutD3D12.h b/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
index 8189da0..c55fbd2 100644
--- a/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
+++ b/src/dawn_native/d3d12/BindGroupLayoutD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -49,6 +49,6 @@
         D3D12_DESCRIPTOR_RANGE mRanges[DescriptorType::Count];
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BINDGROUPLAYOUTD3D12_H_
diff --git a/src/dawn_native/d3d12/BlendStateD3D12.cpp b/src/dawn_native/d3d12/BlendStateD3D12.cpp
index 56d9330..862315e 100644
--- a/src/dawn_native/d3d12/BlendStateD3D12.cpp
+++ b/src/dawn_native/d3d12/BlendStateD3D12.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         D3D12_BLEND D3D12Blend(dawn::BlendFactor factor) {
@@ -105,4 +105,4 @@
         return mBlendDesc;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BlendStateD3D12.h b/src/dawn_native/d3d12/BlendStateD3D12.h
index 938189e..ea1a32d 100644
--- a/src/dawn_native/d3d12/BlendStateD3D12.h
+++ b/src/dawn_native/d3d12/BlendStateD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class BlendState : public BlendStateBase {
       public:
@@ -31,6 +31,6 @@
         D3D12_RENDER_TARGET_BLEND_DESC mBlendDesc;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BLENDSTATED3D12_H_
diff --git a/src/dawn_native/d3d12/BufferD3D12.cpp b/src/dawn_native/d3d12/BufferD3D12.cpp
index de7acd8..e21e30a 100644
--- a/src/dawn_native/d3d12/BufferD3D12.cpp
+++ b/src/dawn_native/d3d12/BufferD3D12.cpp
@@ -21,7 +21,7 @@
 #include "dawn_native/d3d12/ResourceAllocator.h"
 #include "dawn_native/d3d12/ResourceUploader.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         D3D12_RESOURCE_FLAGS D3D12ResourceFlags(dawn::BufferUsageBit usage) {
@@ -249,4 +249,4 @@
         mInflightRequests.ClearUpTo(finishedSerial);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/BufferD3D12.h b/src/dawn_native/d3d12/BufferD3D12.h
index d5ddfe2..a00c7a5 100644
--- a/src/dawn_native/d3d12/BufferD3D12.h
+++ b/src/dawn_native/d3d12/BufferD3D12.h
@@ -20,7 +20,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -82,6 +82,6 @@
         SerialQueue<Request> mInflightRequests;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_BUFFERD3D12_H_
diff --git a/src/dawn_native/d3d12/CommandAllocatorManager.cpp b/src/dawn_native/d3d12/CommandAllocatorManager.cpp
index 14f9280..47072fc 100644
--- a/src/dawn_native/d3d12/CommandAllocatorManager.cpp
+++ b/src/dawn_native/d3d12/CommandAllocatorManager.cpp
@@ -19,7 +19,7 @@
 #include "common/Assert.h"
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     CommandAllocatorManager::CommandAllocatorManager(Device* device)
         : device(device), mAllocatorCount(0) {
@@ -66,4 +66,4 @@
         mInFlightCommandAllocators.ClearUpTo(lastCompletedSerial);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CommandAllocatorManager.h b/src/dawn_native/d3d12/CommandAllocatorManager.h
index ec45ee6..fd7c8ce 100644
--- a/src/dawn_native/d3d12/CommandAllocatorManager.h
+++ b/src/dawn_native/d3d12/CommandAllocatorManager.h
@@ -21,7 +21,7 @@
 
 #include <bitset>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -51,6 +51,6 @@
         SerialQueue<IndexedCommandAllocator> mInFlightCommandAllocators;
     };
 
-}}  // namespace backend::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 b882365..e4d1975 100644
--- a/src/dawn_native/d3d12/CommandBufferD3D12.cpp
+++ b/src/dawn_native/d3d12/CommandBufferD3D12.cpp
@@ -31,7 +31,7 @@
 #include "dawn_native/d3d12/TextureCopySplitter.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         DXGI_FORMAT DXGIIndexFormat(dawn::IndexFormat format) {
@@ -629,4 +629,4 @@
         }
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/CommandBufferD3D12.h b/src/dawn_native/d3d12/CommandBufferD3D12.h
index db4655a..f737b78 100644
--- a/src/dawn_native/d3d12/CommandBufferD3D12.h
+++ b/src/dawn_native/d3d12/CommandBufferD3D12.h
@@ -20,7 +20,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
     class RenderPassDescriptor;
@@ -45,6 +45,6 @@
         std::vector<PassResourceUsage> mPassResourceUsages;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMMANDBUFFERD3D12_H_
diff --git a/src/dawn_native/d3d12/ComputePipelineD3D12.cpp b/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
index e5c2426..0535a65 100644
--- a/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
+++ b/src/dawn_native/d3d12/ComputePipelineD3D12.cpp
@@ -21,7 +21,7 @@
 
 #include <d3dcompiler.h>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     ComputePipeline::ComputePipeline(ComputePipelineBuilder* builder)
         : ComputePipelineBase(builder), mDevice(ToBackend(builder->GetDevice())) {
@@ -65,4 +65,4 @@
         return mPipelineState;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ComputePipelineD3D12.h b/src/dawn_native/d3d12/ComputePipelineD3D12.h
index a35a13e..e3335c3 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 backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -35,6 +35,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_COMPUTEPIPELINED3D12_H_
diff --git a/src/dawn_native/d3d12/DepthStencilStateD3D12.cpp b/src/dawn_native/d3d12/DepthStencilStateD3D12.cpp
index 3a426be..b651281 100644
--- a/src/dawn_native/d3d12/DepthStencilStateD3D12.cpp
+++ b/src/dawn_native/d3d12/DepthStencilStateD3D12.cpp
@@ -16,7 +16,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     static D3D12_STENCIL_OP StencilOp(dawn::StencilOperation op) {
         switch (op) {
@@ -65,7 +65,7 @@
     }
 
     static D3D12_DEPTH_STENCILOP_DESC StencilOpDesc(
-        backend::DepthStencilStateBase::StencilFaceInfo faceInfo) {
+        DepthStencilStateBase::StencilFaceInfo faceInfo) {
         D3D12_DEPTH_STENCILOP_DESC desc;
 
         desc.StencilFailOp = StencilOp(faceInfo.stencilFail);
@@ -95,4 +95,4 @@
         return mDepthStencilDescriptor;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/DepthStencilStateD3D12.h b/src/dawn_native/d3d12/DepthStencilStateD3D12.h
index 5db9c38..898c7a7 100644
--- a/src/dawn_native/d3d12/DepthStencilStateD3D12.h
+++ b/src/dawn_native/d3d12/DepthStencilStateD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -34,6 +34,6 @@
         D3D12_DEPTH_STENCIL_DESC mDepthStencilDescriptor;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_DEPTHSTENCILSTATED3D12_H_
diff --git a/src/dawn_native/d3d12/DescriptorHeapAllocator.cpp b/src/dawn_native/d3d12/DescriptorHeapAllocator.cpp
index a304b37..9374dae 100644
--- a/src/dawn_native/d3d12/DescriptorHeapAllocator.cpp
+++ b/src/dawn_native/d3d12/DescriptorHeapAllocator.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     DescriptorHeapHandle::DescriptorHeapHandle()
         : mDescriptorHeap(nullptr), mSizeIncrement(0), mOffset(0) {
@@ -129,4 +129,4 @@
     void DescriptorHeapAllocator::Release(DescriptorHeapHandle handle) {
         mReleasedHandles.Enqueue(handle, mDevice->GetSerial());
     }
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/DescriptorHeapAllocator.h b/src/dawn_native/d3d12/DescriptorHeapAllocator.h
index e79c299..f1ba502 100644
--- a/src/dawn_native/d3d12/DescriptorHeapAllocator.h
+++ b/src/dawn_native/d3d12/DescriptorHeapAllocator.h
@@ -21,7 +21,7 @@
 #include <vector>
 #include "common/SerialQueue.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -78,6 +78,6 @@
         SerialQueue<DescriptorHeapHandle> mReleasedHandles;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_DESCRIPTORHEAPALLOCATOR_H_
diff --git a/src/dawn_native/d3d12/DeviceD3D12.cpp b/src/dawn_native/d3d12/DeviceD3D12.cpp
index 6f0d11f..a2aba66 100644
--- a/src/dawn_native/d3d12/DeviceD3D12.cpp
+++ b/src/dawn_native/d3d12/DeviceD3D12.cpp
@@ -38,7 +38,7 @@
 #include "dawn_native/d3d12/SwapChainD3D12.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     dawnProcTable GetNonValidatingProcs();
     dawnProcTable GetValidatingProcs();
@@ -322,4 +322,4 @@
         return new TextureView(builder);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/DeviceD3D12.h b/src/dawn_native/d3d12/DeviceD3D12.h
index f666397..d0180e3 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/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class CommandAllocatorManager;
     class DescriptorHeapAllocator;
@@ -108,6 +108,6 @@
         SerialQueue<ComPtr<IUnknown>> mUsedComObjectRefs;
     };
 
-}}  // namespace backend::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 03562bf..80cf0d4 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 backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class BindGroup;
     class BindGroupLayout;
@@ -66,6 +66,6 @@
         return ToBackendBase<D3D12BackendTraits>(common);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_FORWARD_H_
diff --git a/src/dawn_native/d3d12/InputStateD3D12.cpp b/src/dawn_native/d3d12/InputStateD3D12.cpp
index a8c8626..5ae5b47 100644
--- a/src/dawn_native/d3d12/InputStateD3D12.cpp
+++ b/src/dawn_native/d3d12/InputStateD3D12.cpp
@@ -16,7 +16,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     static DXGI_FORMAT VertexFormatType(dawn::VertexFormat format) {
         switch (format) {
@@ -101,4 +101,4 @@
         return mInputLayoutDescriptor;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/InputStateD3D12.h b/src/dawn_native/d3d12/InputStateD3D12.h
index 35a3e0c..a97746f 100644
--- a/src/dawn_native/d3d12/InputStateD3D12.h
+++ b/src/dawn_native/d3d12/InputStateD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -35,6 +35,6 @@
         D3D12_INPUT_ELEMENT_DESC mInputElementDescriptors[kMaxVertexAttributes];
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_INPUTSTATED3D12_H_
diff --git a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp
index eb793b3..99ac8f8 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 backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         DXGI_USAGE D3D12SwapChainBufferUsage(dawnTextureUsageBit allowedUsages) {
@@ -115,4 +115,4 @@
         return dawn::TextureFormat::R8G8B8A8Unorm;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
index 80d3778..62d0afa 100644
--- a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
+++ b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.h
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -53,6 +53,6 @@
         uint32_t mCurrentBuffer;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_NATIVESWAPCHAINIMPLD3D12_H_
diff --git a/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp b/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
index 9d72689..b5c62a2 100644
--- a/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
+++ b/src/dawn_native/d3d12/PipelineLayoutD3D12.cpp
@@ -21,7 +21,7 @@
 
 using Microsoft::WRL::ComPtr;
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     PipelineLayout::PipelineLayout(Device* device, const dawn::PipelineLayoutDescriptor* descriptor)
         : PipelineLayoutBase(device, descriptor) {
@@ -112,4 +112,4 @@
     ComPtr<ID3D12RootSignature> PipelineLayout::GetRootSignature() {
         return mRootSignature;
     }
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/PipelineLayoutD3D12.h b/src/dawn_native/d3d12/PipelineLayoutD3D12.h
index 8fb0913..b0f5f45 100644
--- a/src/dawn_native/d3d12/PipelineLayoutD3D12.h
+++ b/src/dawn_native/d3d12/PipelineLayoutD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -39,6 +39,6 @@
         ComPtr<ID3D12RootSignature> mRootSignature;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_PIPELINELAYOUTD3D12_H_
diff --git a/src/dawn_native/d3d12/QueueD3D12.cpp b/src/dawn_native/d3d12/QueueD3D12.cpp
index 2e3d278..7fdf8ba 100644
--- a/src/dawn_native/d3d12/QueueD3D12.cpp
+++ b/src/dawn_native/d3d12/QueueD3D12.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/d3d12/CommandBufferD3D12.h"
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -38,4 +38,4 @@
         device->NextSerial();
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/QueueD3D12.h b/src/dawn_native/d3d12/QueueD3D12.h
index dfe6ddb..c0dd2cb 100644
--- a/src/dawn_native/d3d12/QueueD3D12.h
+++ b/src/dawn_native/d3d12/QueueD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
     class CommandBuffer;
@@ -35,6 +35,6 @@
         ComPtr<ID3D12GraphicsCommandList> mCommandList;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_QUEUED3D12_H_
diff --git a/src/dawn_native/d3d12/RenderPassDescriptorD3D12.cpp b/src/dawn_native/d3d12/RenderPassDescriptorD3D12.cpp
index 98575b5..4438a9f 100644
--- a/src/dawn_native/d3d12/RenderPassDescriptorD3D12.cpp
+++ b/src/dawn_native/d3d12/RenderPassDescriptorD3D12.cpp
@@ -18,7 +18,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/TextureD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     RenderPassDescriptor::RenderPassDescriptor(Device* device, RenderPassDescriptorBuilder* builder)
         : RenderPassDescriptorBase(builder), mDevice(device) {
@@ -79,4 +79,4 @@
         return mDsvHeap.GetCPUHandle(0);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/RenderPassDescriptorD3D12.h b/src/dawn_native/d3d12/RenderPassDescriptorD3D12.h
index 5e96c8e..bfafd24 100644
--- a/src/dawn_native/d3d12/RenderPassDescriptorD3D12.h
+++ b/src/dawn_native/d3d12/RenderPassDescriptorD3D12.h
@@ -24,7 +24,7 @@
 #include <array>
 #include <vector>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -47,6 +47,6 @@
         DescriptorHeapHandle mDsvHeap = {};
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RENDERPASSDESCRIPTORD3D12_H_
diff --git a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
index a534c6c..20904da 100644
--- a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
+++ b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
@@ -25,7 +25,7 @@
 
 #include <d3dcompiler.h>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         D3D12_PRIMITIVE_TOPOLOGY D3D12PrimitiveTopology(dawn::PrimitiveTopology primitiveTopology) {
@@ -174,4 +174,4 @@
         return mPipelineState;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/RenderPipelineD3D12.h b/src/dawn_native/d3d12/RenderPipelineD3D12.h
index 14cb46e..81596a1 100644
--- a/src/dawn_native/d3d12/RenderPipelineD3D12.h
+++ b/src/dawn_native/d3d12/RenderPipelineD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -38,6 +38,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RENDERPIPELINED3D12_H_
diff --git a/src/dawn_native/d3d12/ResourceAllocator.cpp b/src/dawn_native/d3d12/ResourceAllocator.cpp
index d4396ed..c50de5b 100644
--- a/src/dawn_native/d3d12/ResourceAllocator.cpp
+++ b/src/dawn_native/d3d12/ResourceAllocator.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         static constexpr D3D12_HEAP_PROPERTIES kDefaultHeapProperties = {
@@ -74,4 +74,4 @@
         mReleasedResources.ClearUpTo(lastCompletedSerial);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ResourceAllocator.h b/src/dawn_native/d3d12/ResourceAllocator.h
index 93f083a..9311db6 100644
--- a/src/dawn_native/d3d12/ResourceAllocator.h
+++ b/src/dawn_native/d3d12/ResourceAllocator.h
@@ -19,7 +19,7 @@
 
 #include "common/SerialQueue.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -39,6 +39,6 @@
         SerialQueue<ComPtr<ID3D12Resource>> mReleasedResources;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RESOURCEALLOCATIONMANAGER_H_
diff --git a/src/dawn_native/d3d12/ResourceUploader.cpp b/src/dawn_native/d3d12/ResourceUploader.cpp
index 8e656be..6aa9a6b 100644
--- a/src/dawn_native/d3d12/ResourceUploader.cpp
+++ b/src/dawn_native/d3d12/ResourceUploader.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/ResourceAllocator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     ResourceUploader::ResourceUploader(Device* device) : mDevice(device) {
     }
@@ -70,4 +70,4 @@
         mDevice->GetResourceAllocator()->Release(uploadHandle.resource);
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ResourceUploader.h b/src/dawn_native/d3d12/ResourceUploader.h
index 0b1a4b6..c3307e5 100644
--- a/src/dawn_native/d3d12/ResourceUploader.h
+++ b/src/dawn_native/d3d12/ResourceUploader.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/Forward.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -43,6 +43,6 @@
 
         Device* mDevice;
     };
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_RESOURCEUPLOADER_H_
diff --git a/src/dawn_native/d3d12/SamplerD3D12.cpp b/src/dawn_native/d3d12/SamplerD3D12.cpp
index 63e4e96..28cc132 100644
--- a/src/dawn_native/d3d12/SamplerD3D12.cpp
+++ b/src/dawn_native/d3d12/SamplerD3D12.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/d3d12/DeviceD3D12.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         D3D12_TEXTURE_ADDRESS_MODE AddressMode(dawn::AddressMode mode) {
@@ -93,4 +93,4 @@
         return mSamplerDesc;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/SamplerD3D12.h b/src/dawn_native/d3d12/SamplerD3D12.h
index 03d3b4f..eebe12f 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 backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -33,6 +33,6 @@
         D3D12_SAMPLER_DESC mSamplerDesc;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SAMPLERD3D12_H_
diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
index e3fb855..f2fcf8a 100644
--- a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
+++ b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
@@ -18,7 +18,7 @@
 
 #include <spirv-cross/spirv_hlsl.hpp>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     // TODO(kainino@chromium.org): Consider replacing this with a generic enum_map.
     template <typename T>
@@ -83,4 +83,4 @@
         return mHlslSource;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.h b/src/dawn_native/d3d12/ShaderModuleD3D12.h
index 4a44170..c26994f 100644
--- a/src/dawn_native/d3d12/ShaderModuleD3D12.h
+++ b/src/dawn_native/d3d12/ShaderModuleD3D12.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/ShaderModule.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -33,6 +33,6 @@
         std::string mHlslSource;
     };
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_SHADERMODULED3D12_H_
diff --git a/src/dawn_native/d3d12/SwapChainD3D12.cpp b/src/dawn_native/d3d12/SwapChainD3D12.cpp
index 835d717..3e1cb2f 100644
--- a/src/dawn_native/d3d12/SwapChainD3D12.cpp
+++ b/src/dawn_native/d3d12/SwapChainD3D12.cpp
@@ -19,7 +19,7 @@
 
 #include <dawn/dawn_wsi.h>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     SwapChain::SwapChain(SwapChainBuilder* builder) : SwapChainBase(builder) {
         const auto& im = GetImplementation();
@@ -56,4 +56,4 @@
         device->ExecuteCommandLists({});
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/SwapChainD3D12.h b/src/dawn_native/d3d12/SwapChainD3D12.h
index b244d25..12c1a85 100644
--- a/src/dawn_native/d3d12/SwapChainD3D12.h
+++ b/src/dawn_native/d3d12/SwapChainD3D12.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/SwapChain.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class SwapChain : public SwapChainBase {
       public:
@@ -31,6 +31,6 @@
         dawn::TextureUsageBit mTextureUsage;
     };
 
-}}  // namespace backend::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 55de577..7b35597 100644
--- a/src/dawn_native/d3d12/TextureCopySplitter.cpp
+++ b/src/dawn_native/d3d12/TextureCopySplitter.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         void ComputeTexelOffsets(uint32_t offset,
@@ -206,4 +206,4 @@
         return copy;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/TextureCopySplitter.h b/src/dawn_native/d3d12/TextureCopySplitter.h
index 0ee07f8..58e9122 100644
--- a/src/dawn_native/d3d12/TextureCopySplitter.h
+++ b/src/dawn_native/d3d12/TextureCopySplitter.h
@@ -19,7 +19,7 @@
 
 #include <array>
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     struct TextureCopySplit {
         static constexpr unsigned int kMaxTextureCopyRegions = 2;
@@ -59,6 +59,6 @@
                                              uint32_t offset,
                                              uint32_t rowPitch);
 
-}}  // namespace backend::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 69793f0..1f3f3ff 100644
--- a/src/dawn_native/d3d12/TextureD3D12.cpp
+++ b/src/dawn_native/d3d12/TextureD3D12.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/d3d12/DeviceD3D12.h"
 #include "dawn_native/d3d12/ResourceAllocator.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     namespace {
         D3D12_RESOURCE_STATES D3D12TextureUsage(dawn::TextureUsageBit usage,
@@ -209,4 +209,4 @@
         return dsvDesc;
     }
 
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/TextureD3D12.h b/src/dawn_native/d3d12/TextureD3D12.h
index 8c30460..2c1a791 100644
--- a/src/dawn_native/d3d12/TextureD3D12.h
+++ b/src/dawn_native/d3d12/TextureD3D12.h
@@ -19,7 +19,7 @@
 
 #include "dawn_native/d3d12/d3d12_platform.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
 
     class Device;
 
@@ -55,6 +55,6 @@
       private:
         D3D12_SHADER_RESOURCE_VIEW_DESC mSrvDesc;
     };
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 #endif  // DAWNNATIVE_D3D12_TEXTURED3D12_H_
diff --git a/src/dawn_native/metal/BlendStateMTL.h b/src/dawn_native/metal/BlendStateMTL.h
index 5d7538d..484bf51 100644
--- a/src/dawn_native/metal/BlendStateMTL.h
+++ b/src/dawn_native/metal/BlendStateMTL.h
@@ -18,7 +18,7 @@
 #include "dawn_native/BlendState.h"
 
 #import <Metal/Metal.h>
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class BlendState : public BlendStateBase {
       public:
@@ -27,6 +27,6 @@
         void ApplyBlendState(MTLRenderPipelineColorAttachmentDescriptor* descriptor) const;
     };
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_BLENDSTATEMTL_H_
diff --git a/src/dawn_native/metal/BlendStateMTL.mm b/src/dawn_native/metal/BlendStateMTL.mm
index 27a6737..0622755 100644
--- a/src/dawn_native/metal/BlendStateMTL.mm
+++ b/src/dawn_native/metal/BlendStateMTL.mm
@@ -14,7 +14,7 @@
 
 #include "dawn_native/metal/BlendStateMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
 
@@ -96,4 +96,4 @@
         descriptor.writeMask = MetalColorWriteMask(info.colorWriteMask);
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/BufferMTL.h b/src/dawn_native/metal/BufferMTL.h
index d9c0b0a..7d0b59b 100644
--- a/src/dawn_native/metal/BufferMTL.h
+++ b/src/dawn_native/metal/BufferMTL.h
@@ -20,7 +20,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -67,6 +67,6 @@
         SerialQueue<Request> mInflightRequests;
     };
 
-}}  // namespace backend::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 df68f93..caf31e2 100644
--- a/src/dawn_native/metal/BufferMTL.mm
+++ b/src/dawn_native/metal/BufferMTL.mm
@@ -17,7 +17,7 @@
 #include "dawn_native/metal/DeviceMTL.h"
 #include "dawn_native/metal/ResourceUploader.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     Buffer::Buffer(BufferBuilder* builder) : BufferBase(builder) {
         MTLResourceOptions storageMode;
@@ -99,4 +99,4 @@
         mInflightRequests.ClearUpTo(finishedSerial);
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/CommandBufferMTL.h b/src/dawn_native/metal/CommandBufferMTL.h
index f897206..ab1b13f 100644
--- a/src/dawn_native/metal/CommandBufferMTL.h
+++ b/src/dawn_native/metal/CommandBufferMTL.h
@@ -19,11 +19,11 @@
 
 #import <Metal/Metal.h>
 
-namespace backend {
+namespace dawn_native {
     class RenderPassDescriptorBase;
 }
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -43,6 +43,6 @@
         CommandIterator mCommands;
     };
 
-}}  // namespace backend::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 8ef478b..4fd66a3 100644
--- a/src/dawn_native/metal/CommandBufferMTL.mm
+++ b/src/dawn_native/metal/CommandBufferMTL.mm
@@ -26,7 +26,7 @@
 #include "dawn_native/metal/SamplerMTL.h"
 #include "dawn_native/metal/TextureMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
 
@@ -524,4 +524,4 @@
         UNREACHABLE();
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/ComputePipelineMTL.h b/src/dawn_native/metal/ComputePipelineMTL.h
index d088851..5f216a8 100644
--- a/src/dawn_native/metal/ComputePipelineMTL.h
+++ b/src/dawn_native/metal/ComputePipelineMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class ComputePipeline : public ComputePipelineBase {
       public:
@@ -34,6 +34,6 @@
         MTLSize mLocalWorkgroupSize;
     };
 
-}}  // namespace backend::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 c6f0f3a..3ac7ba1 100644
--- a/src/dawn_native/metal/ComputePipelineMTL.mm
+++ b/src/dawn_native/metal/ComputePipelineMTL.mm
@@ -17,7 +17,7 @@
 #include "dawn_native/metal/DeviceMTL.h"
 #include "dawn_native/metal/ShaderModuleMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     ComputePipeline::ComputePipeline(ComputePipelineBuilder* builder)
         : ComputePipelineBase(builder) {
@@ -53,4 +53,4 @@
         return mLocalWorkgroupSize;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/DepthStencilStateMTL.h b/src/dawn_native/metal/DepthStencilStateMTL.h
index 5490e91..c33fadf 100644
--- a/src/dawn_native/metal/DepthStencilStateMTL.h
+++ b/src/dawn_native/metal/DepthStencilStateMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -34,6 +34,6 @@
         id<MTLDepthStencilState> mMtlDepthStencilState = nil;
     };
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_DEPTHSTENCILSTATEMTL_H_
diff --git a/src/dawn_native/metal/DepthStencilStateMTL.mm b/src/dawn_native/metal/DepthStencilStateMTL.mm
index 7efd68d..fc81133 100644
--- a/src/dawn_native/metal/DepthStencilStateMTL.mm
+++ b/src/dawn_native/metal/DepthStencilStateMTL.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
         MTLCompareFunction MetalDepthStencilCompareFunction(dawn::CompareFunction compareFunction) {
@@ -117,4 +117,4 @@
         return mMtlDepthStencilState;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/DeviceMTL.h b/src/dawn_native/metal/DeviceMTL.h
index 974f7d7..2f4e344 100644
--- a/src/dawn_native/metal/DeviceMTL.h
+++ b/src/dawn_native/metal/DeviceMTL.h
@@ -25,7 +25,7 @@
 #import <QuartzCore/CAMetalLayer.h>
 #include <type_traits>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class MapRequestTracker;
     class ResourceUploader;
@@ -83,6 +83,6 @@
         id<MTLCommandBuffer> mPendingCommands = nil;
     };
 
-}}  // namespace backend::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 fef1ccc..b3dcc97 100644
--- a/src/dawn_native/metal/DeviceMTL.mm
+++ b/src/dawn_native/metal/DeviceMTL.mm
@@ -34,7 +34,7 @@
 
 #include <unistd.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
     dawnProcTable GetNonValidatingProcs();
     dawnProcTable GetValidatingProcs();
 
@@ -199,4 +199,4 @@
         return mResourceUploader;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/Forward.h b/src/dawn_native/metal/Forward.h
index ed26617..d11f5a9 100644
--- a/src/dawn_native/metal/Forward.h
+++ b/src/dawn_native/metal/Forward.h
@@ -23,7 +23,7 @@
     class RenderPassDescriptor;
 }  // namespace
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
@@ -73,6 +73,6 @@
         return ToBackendBase<MetalBackendTraits>(common);
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_FORWARD_H_
diff --git a/src/dawn_native/metal/InputStateMTL.h b/src/dawn_native/metal/InputStateMTL.h
index ca0852a..496e6ea 100644
--- a/src/dawn_native/metal/InputStateMTL.h
+++ b/src/dawn_native/metal/InputStateMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class InputState : public InputStateBase {
       public:
@@ -32,6 +32,6 @@
         MTLVertexDescriptor* mMtlVertexDescriptor = nil;
     };
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_COMMANDINPUTSTATEMTL_H_
diff --git a/src/dawn_native/metal/InputStateMTL.mm b/src/dawn_native/metal/InputStateMTL.mm
index c204b09..1dd94d2 100644
--- a/src/dawn_native/metal/InputStateMTL.mm
+++ b/src/dawn_native/metal/InputStateMTL.mm
@@ -16,7 +16,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
         MTLVertexFormat VertexFormatType(dawn::VertexFormat format) {
@@ -108,4 +108,4 @@
         return mMtlVertexDescriptor;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/PipelineLayoutMTL.h b/src/dawn_native/metal/PipelineLayoutMTL.h
index ecddcd3..d7c5f27 100644
--- a/src/dawn_native/metal/PipelineLayoutMTL.h
+++ b/src/dawn_native/metal/PipelineLayoutMTL.h
@@ -25,7 +25,7 @@
     class CompilerMSL;
 }
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -41,6 +41,6 @@
         PerStage<BindingIndexInfo> mIndexInfo;
     };
 
-}}  // namespace backend::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 1f15617..0e039c8 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 backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     PipelineLayout::PipelineLayout(Device* device, const dawn::PipelineLayoutDescriptor* descriptor)
         : PipelineLayoutBase(device, descriptor) {
@@ -64,4 +64,4 @@
         return mIndexInfo[stage];
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/QueueMTL.h b/src/dawn_native/metal/QueueMTL.h
index 558f2dc..0e4e5cb 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 backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class CommandBuffer;
     class Device;
@@ -30,6 +30,6 @@
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
-}}  // namespace backend::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 4f73777..54a10bd 100644
--- a/src/dawn_native/metal/QueueMTL.mm
+++ b/src/dawn_native/metal/QueueMTL.mm
@@ -17,7 +17,7 @@
 #include "dawn_native/metal/CommandBufferMTL.h"
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -34,4 +34,4 @@
         device->SubmitPendingCommandBuffer();
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/RenderPipelineMTL.h b/src/dawn_native/metal/RenderPipelineMTL.h
index a6ca27b..beace61 100644
--- a/src/dawn_native/metal/RenderPipelineMTL.h
+++ b/src/dawn_native/metal/RenderPipelineMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class RenderPipeline : public RenderPipelineBase {
       public:
@@ -37,6 +37,6 @@
         id<MTLRenderPipelineState> mMtlRenderPipelineState = nil;
     };
 
-}}  // namespace backend::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 104559b..4fc08b9 100644
--- a/src/dawn_native/metal/RenderPipelineMTL.mm
+++ b/src/dawn_native/metal/RenderPipelineMTL.mm
@@ -22,7 +22,7 @@
 #include "dawn_native/metal/ShaderModuleMTL.h"
 #include "dawn_native/metal/TextureMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
         MTLPrimitiveType MTLPrimitiveTopology(dawn::PrimitiveTopology primitiveTopology) {
@@ -141,4 +141,4 @@
         [encoder setRenderPipelineState:mMtlRenderPipelineState];
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/ResourceUploader.h b/src/dawn_native/metal/ResourceUploader.h
index 255e89d..d6e057b 100644
--- a/src/dawn_native/metal/ResourceUploader.h
+++ b/src/dawn_native/metal/ResourceUploader.h
@@ -20,7 +20,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -37,6 +37,6 @@
         SerialQueue<id<MTLBuffer>> mInflightUploadBuffers;
     };
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
 
 #endif  // DAWNNATIVE_METAL_RESOURCEUPLOADER_H_
diff --git a/src/dawn_native/metal/ResourceUploader.mm b/src/dawn_native/metal/ResourceUploader.mm
index d7a14f5..fd99037 100644
--- a/src/dawn_native/metal/ResourceUploader.mm
+++ b/src/dawn_native/metal/ResourceUploader.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     ResourceUploader::ResourceUploader(Device* device) : mDevice(device) {
     }
@@ -54,4 +54,4 @@
         mInflightUploadBuffers.ClearUpTo(finishedSerial);
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/SamplerMTL.h b/src/dawn_native/metal/SamplerMTL.h
index 03283eb..5678689 100644
--- a/src/dawn_native/metal/SamplerMTL.h
+++ b/src/dawn_native/metal/SamplerMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -34,6 +34,6 @@
         id<MTLSamplerState> mMtlSamplerState = nil;
     };
 
-}}  // namespace backend::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 aa9e0e1..0961358 100644
--- a/src/dawn_native/metal/SamplerMTL.mm
+++ b/src/dawn_native/metal/SamplerMTL.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
         MTLSamplerMinMagFilter FilterModeToMinMagFilter(dawn::FilterMode mode) {
@@ -72,4 +72,4 @@
         return mMtlSamplerState;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/ShaderModuleMTL.h b/src/dawn_native/metal/ShaderModuleMTL.h
index cc668e4..60ed58f 100644
--- a/src/dawn_native/metal/ShaderModuleMTL.h
+++ b/src/dawn_native/metal/ShaderModuleMTL.h
@@ -23,7 +23,7 @@
     class CompilerMSL;
 }
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class PipelineLayout;
 
@@ -47,6 +47,6 @@
         std::vector<uint32_t> mSpirv;
     };
 
-}}  // namespace backend::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 32aba7a..8de07d5 100644
--- a/src/dawn_native/metal/ShaderModuleMTL.mm
+++ b/src/dawn_native/metal/ShaderModuleMTL.mm
@@ -22,7 +22,7 @@
 
 #include <sstream>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     namespace {
 
@@ -125,4 +125,4 @@
         return result;
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/SwapChainMTL.h b/src/dawn_native/metal/SwapChainMTL.h
index 41746bf..02f4dca 100644
--- a/src/dawn_native/metal/SwapChainMTL.h
+++ b/src/dawn_native/metal/SwapChainMTL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/SwapChain.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     class Device;
 
@@ -31,6 +31,6 @@
         void OnBeforePresent(TextureBase* texture) override;
     };
 
-}}  // namespace backend::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 4411b2d3..c53299e 100644
--- a/src/dawn_native/metal/SwapChainMTL.mm
+++ b/src/dawn_native/metal/SwapChainMTL.mm
@@ -19,7 +19,7 @@
 
 #include <dawn/dawn_wsi.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     SwapChain::SwapChain(SwapChainBuilder* builder) : SwapChainBase(builder) {
         const auto& im = GetImplementation();
@@ -47,4 +47,4 @@
     void SwapChain::OnBeforePresent(TextureBase*) {
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/TextureMTL.h b/src/dawn_native/metal/TextureMTL.h
index 696fd48..9bb3de6 100644
--- a/src/dawn_native/metal/TextureMTL.h
+++ b/src/dawn_native/metal/TextureMTL.h
@@ -19,7 +19,7 @@
 
 #import <Metal/Metal.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     MTLPixelFormat MetalPixelFormat(dawn::TextureFormat format);
 
@@ -40,6 +40,6 @@
         TextureView(TextureViewBuilder* builder);
     };
 
-}}  // namespace backend::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 02991e3..18c9563 100644
--- a/src/dawn_native/metal/TextureMTL.mm
+++ b/src/dawn_native/metal/TextureMTL.mm
@@ -16,7 +16,7 @@
 
 #include "dawn_native/metal/DeviceMTL.h"
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
 
     MTLPixelFormat MetalPixelFormat(dawn::TextureFormat format) {
         switch (format) {
@@ -99,4 +99,4 @@
     TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
     }
 
-}}  // namespace backend::metal
+}}  // namespace dawn_native::metal
diff --git a/src/dawn_native/null/NullBackend.cpp b/src/dawn_native/null/NullBackend.cpp
index de7cb64..5de42ec 100644
--- a/src/dawn_native/null/NullBackend.cpp
+++ b/src/dawn_native/null/NullBackend.cpp
@@ -18,7 +18,7 @@
 
 #include <spirv-cross/spirv_cross.hpp>
 
-namespace backend { namespace null {
+namespace dawn_native { namespace null {
 
     dawnProcTable GetNonValidatingProcs();
     dawnProcTable GetValidatingProcs();
@@ -216,4 +216,4 @@
     void SwapChain::OnBeforePresent(TextureBase*) {
     }
 
-}}  // namespace backend::null
+}}  // namespace dawn_native::null
diff --git a/src/dawn_native/null/NullBackend.h b/src/dawn_native/null/NullBackend.h
index 97568f3..da5ef23 100644
--- a/src/dawn_native/null/NullBackend.h
+++ b/src/dawn_native/null/NullBackend.h
@@ -36,7 +36,7 @@
 #include "dawn_native/Texture.h"
 #include "dawn_native/ToBackend.h"
 
-namespace backend { namespace null {
+namespace dawn_native { namespace null {
 
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
@@ -174,6 +174,6 @@
         void OnBeforePresent(TextureBase*) override;
     };
 
-}}  // namespace backend::null
+}}  // namespace dawn_native::null
 
 #endif  // DAWNNATIVE_NULL_NULLBACKEND_H_
diff --git a/src/dawn_native/opengl/BlendStateGL.cpp b/src/dawn_native/opengl/BlendStateGL.cpp
index 8a57686..6460cec 100644
--- a/src/dawn_native/opengl/BlendStateGL.cpp
+++ b/src/dawn_native/opengl/BlendStateGL.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
         GLenum GLBlendFactor(dawn::BlendFactor factor, bool alpha) {
@@ -93,4 +93,4 @@
                      info.colorWriteMask & dawn::ColorWriteMask::Alpha);
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BlendStateGL.h b/src/dawn_native/opengl/BlendStateGL.h
index 7c7907a..afc2bde 100644
--- a/src/dawn_native/opengl/BlendStateGL.h
+++ b/src/dawn_native/opengl/BlendStateGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class BlendState : public BlendStateBase {
       public:
@@ -28,6 +28,6 @@
         void ApplyNow(uint32_t attachment);
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_BLENDSTATEGL_H_
diff --git a/src/dawn_native/opengl/BufferGL.cpp b/src/dawn_native/opengl/BufferGL.cpp
index e501f14..4182b4a 100644
--- a/src/dawn_native/opengl/BufferGL.cpp
+++ b/src/dawn_native/opengl/BufferGL.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/opengl/BufferGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     // Buffer
 
@@ -59,4 +59,4 @@
     BufferView::BufferView(BufferViewBuilder* builder) : BufferViewBase(builder) {
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/BufferGL.h b/src/dawn_native/opengl/BufferGL.h
index d5d2f7c..c6c85f6 100644
--- a/src/dawn_native/opengl/BufferGL.h
+++ b/src/dawn_native/opengl/BufferGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -43,6 +43,6 @@
         BufferView(BufferViewBuilder* builder);
     };
 
-}}  // namespace backend::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 68fcc51..054a899 100644
--- a/src/dawn_native/opengl/CommandBufferGL.cpp
+++ b/src/dawn_native/opengl/CommandBufferGL.cpp
@@ -28,7 +28,7 @@
 
 #include <cstring>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
 
@@ -653,4 +653,4 @@
         UNREACHABLE();
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/CommandBufferGL.h b/src/dawn_native/opengl/CommandBufferGL.h
index 99a91f8..dc9218b 100644
--- a/src/dawn_native/opengl/CommandBufferGL.h
+++ b/src/dawn_native/opengl/CommandBufferGL.h
@@ -18,11 +18,11 @@
 #include "dawn_native/CommandAllocator.h"
 #include "dawn_native/CommandBuffer.h"
 
-namespace backend {
+namespace dawn_native {
     class RenderPassDescriptorBase;
-}  // namespace backend
+}  // namespace dawn_native
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -40,6 +40,6 @@
         CommandIterator mCommands;
     };
 
-}}  // namespace backend::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 9bcf43e..f80b2bb 100644
--- a/src/dawn_native/opengl/ComputePipelineGL.cpp
+++ b/src/dawn_native/opengl/ComputePipelineGL.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/opengl/ComputePipelineGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     ComputePipeline::ComputePipeline(ComputePipelineBuilder* builder)
         : ComputePipelineBase(builder), PipelineGL(this, builder) {
@@ -24,4 +24,4 @@
         PipelineGL::ApplyNow();
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/ComputePipelineGL.h b/src/dawn_native/opengl/ComputePipelineGL.h
index dd505d2..654353c 100644
--- a/src/dawn_native/opengl/ComputePipelineGL.h
+++ b/src/dawn_native/opengl/ComputePipelineGL.h
@@ -21,7 +21,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class ComputePipeline : public ComputePipelineBase, public PipelineGL {
       public:
@@ -30,6 +30,6 @@
         void ApplyNow();
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_COMPUTEPIPELINEGL_H_
diff --git a/src/dawn_native/opengl/DepthStencilStateGL.cpp b/src/dawn_native/opengl/DepthStencilStateGL.cpp
index dd9fdf0..03cf763 100644
--- a/src/dawn_native/opengl/DepthStencilStateGL.cpp
+++ b/src/dawn_native/opengl/DepthStencilStateGL.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/opengl/PersistentPipelineStateGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
         GLuint OpenGLCompareFunction(dawn::CompareFunction compareFunction) {
@@ -113,4 +113,4 @@
         glStencilMask(stencilInfo.writeMask);
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/DepthStencilStateGL.h b/src/dawn_native/opengl/DepthStencilStateGL.h
index 0be2914..da06830 100644
--- a/src/dawn_native/opengl/DepthStencilStateGL.h
+++ b/src/dawn_native/opengl/DepthStencilStateGL.h
@@ -17,7 +17,7 @@
 
 #include "dawn_native/DepthStencilState.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
     class PersistentPipelineState;
@@ -29,6 +29,6 @@
         void ApplyNow(PersistentPipelineState& persistentPipelineState) const;
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_DEPTHSTENCILSTATEGL_H_
diff --git a/src/dawn_native/opengl/DeviceGL.cpp b/src/dawn_native/opengl/DeviceGL.cpp
index f414b05..137525a 100644
--- a/src/dawn_native/opengl/DeviceGL.cpp
+++ b/src/dawn_native/opengl/DeviceGL.cpp
@@ -31,7 +31,7 @@
 #include "dawn_native/opengl/SwapChainGL.h"
 #include "dawn_native/opengl/TextureGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
     dawnProcTable GetNonValidatingProcs();
     dawnProcTable GetValidatingProcs();
 
@@ -112,4 +112,4 @@
     void Device::TickImpl() {
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/DeviceGL.h b/src/dawn_native/opengl/DeviceGL.h
index eb7aff0..862b22e 100644
--- a/src/dawn_native/opengl/DeviceGL.h
+++ b/src/dawn_native/opengl/DeviceGL.h
@@ -28,7 +28,7 @@
 #    include "common/windows_with_undefs.h"
 #endif
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device : public DeviceBase {
       public:
@@ -60,6 +60,6 @@
             const dawn::SamplerDescriptor* descriptor) override;
     };
 
-}}  // namespace backend::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 d456722..154919f 100644
--- a/src/dawn_native/opengl/Forward.h
+++ b/src/dawn_native/opengl/Forward.h
@@ -23,7 +23,7 @@
     class RenderPassDescriptor;
 }  // namespace
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     using BindGroup = BindGroupBase;
     using BindGroupLayout = BindGroupLayoutBase;
@@ -73,6 +73,6 @@
         return ToBackendBase<OpenGLBackendTraits>(common);
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_FORWARD_H_
diff --git a/src/dawn_native/opengl/InputStateGL.cpp b/src/dawn_native/opengl/InputStateGL.cpp
index b986dee..6ecaf8f 100644
--- a/src/dawn_native/opengl/InputStateGL.cpp
+++ b/src/dawn_native/opengl/InputStateGL.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     InputState::InputState(InputStateBuilder* builder) : InputStateBase(builder) {
         glGenVertexArrays(1, &mVertexArrayObject);
@@ -58,4 +58,4 @@
         return mVertexArrayObject;
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/InputStateGL.h b/src/dawn_native/opengl/InputStateGL.h
index e15717a..dbdd84b 100644
--- a/src/dawn_native/opengl/InputStateGL.h
+++ b/src/dawn_native/opengl/InputStateGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -35,6 +35,6 @@
         std::array<std::bitset<kMaxVertexAttributes>, kMaxVertexInputs> attributesUsingInput;
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_INPUTSTATEGL_H_
diff --git a/src/dawn_native/opengl/PersistentPipelineStateGL.cpp b/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
index 0b28a25..5d2b832 100644
--- a/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
+++ b/src/dawn_native/opengl/PersistentPipelineStateGL.cpp
@@ -14,7 +14,7 @@
 
 #include "dawn_native/opengl/PersistentPipelineStateGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     void PersistentPipelineState::SetDefaultState() {
         CallGLStencilFunc();
@@ -51,4 +51,4 @@
                               mStencilReadMask);
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PersistentPipelineStateGL.h b/src/dawn_native/opengl/PersistentPipelineStateGL.h
index 87698e0..c67f2a5 100644
--- a/src/dawn_native/opengl/PersistentPipelineStateGL.h
+++ b/src/dawn_native/opengl/PersistentPipelineStateGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class PersistentPipelineState {
       public:
@@ -38,6 +38,6 @@
         GLuint mStencilReference = 0;
     };
 
-}}  // namespace backend::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 b2e7e65..3148d06 100644
--- a/src/dawn_native/opengl/PipelineGL.cpp
+++ b/src/dawn_native/opengl/PipelineGL.cpp
@@ -24,7 +24,7 @@
 #include <iostream>
 #include <set>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
 
@@ -212,4 +212,4 @@
         glUseProgram(mProgram);
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PipelineGL.h b/src/dawn_native/opengl/PipelineGL.h
index 14dc7d2..d216c57 100644
--- a/src/dawn_native/opengl/PipelineGL.h
+++ b/src/dawn_native/opengl/PipelineGL.h
@@ -21,7 +21,7 @@
 
 #include <vector>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
     class PersistentPipelineState;
@@ -49,6 +49,6 @@
         std::vector<std::vector<GLuint>> mUnitsForTextures;
     };
 
-}}  // namespace backend::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 9bc0c5a..4f5c5a4 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 backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     PipelineLayout::PipelineLayout(Device* device, const dawn::PipelineLayoutDescriptor* descriptor)
         : PipelineLayoutBase(device, descriptor) {
@@ -77,4 +77,4 @@
         return mNumSampledTextures;
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/PipelineLayoutGL.h b/src/dawn_native/opengl/PipelineLayoutGL.h
index b1b730b..e824e3f 100644
--- a/src/dawn_native/opengl/PipelineLayoutGL.h
+++ b/src/dawn_native/opengl/PipelineLayoutGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -41,6 +41,6 @@
         size_t mNumSampledTextures;
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_PIPELINELAYOUTGL_H_
diff --git a/src/dawn_native/opengl/QueueGL.cpp b/src/dawn_native/opengl/QueueGL.cpp
index 1243d6b..5c6d10d 100644
--- a/src/dawn_native/opengl/QueueGL.cpp
+++ b/src/dawn_native/opengl/QueueGL.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/opengl/CommandBufferGL.h"
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -28,4 +28,4 @@
         }
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/QueueGL.h b/src/dawn_native/opengl/QueueGL.h
index 35dbd9a..d8bbfa7 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 backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class CommandBuffer;
     class Device;
@@ -30,6 +30,6 @@
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
-}}  // namespace backend::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 a6522fd..d9911be 100644
--- a/src/dawn_native/opengl/RenderPipelineGL.cpp
+++ b/src/dawn_native/opengl/RenderPipelineGL.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/opengl/InputStateGL.h"
 #include "dawn_native/opengl/PersistentPipelineStateGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
         GLenum GLPrimitiveTopology(dawn::PrimitiveTopology primitiveTopology) {
@@ -65,4 +65,4 @@
         }
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/RenderPipelineGL.h b/src/dawn_native/opengl/RenderPipelineGL.h
index 9fdff35..042000c 100644
--- a/src/dawn_native/opengl/RenderPipelineGL.h
+++ b/src/dawn_native/opengl/RenderPipelineGL.h
@@ -23,7 +23,7 @@
 
 #include <vector>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class PersistentPipelineState;
 
@@ -39,6 +39,6 @@
         GLenum mGlPrimitiveTopology;
     };
 
-}}  // namespace backend::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 ec60d39..d8ee7a4 100644
--- a/src/dawn_native/opengl/SamplerGL.cpp
+++ b/src/dawn_native/opengl/SamplerGL.cpp
@@ -17,7 +17,7 @@
 #include "common/Assert.h"
 #include "dawn_native/opengl/DeviceGL.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
         GLenum MagFilterMode(dawn::FilterMode filter) {
@@ -86,4 +86,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/SamplerGL.h b/src/dawn_native/opengl/SamplerGL.h
index ccad9c2..a94f239 100644
--- a/src/dawn_native/opengl/SamplerGL.h
+++ b/src/dawn_native/opengl/SamplerGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -33,6 +33,6 @@
         GLuint mHandle;
     };
 
-}}  // namespace backend::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 b0651a6..c8f1f4e 100644
--- a/src/dawn_native/opengl/ShaderModuleGL.cpp
+++ b/src/dawn_native/opengl/ShaderModuleGL.cpp
@@ -21,7 +21,7 @@
 
 #include <sstream>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     std::string GetBindingName(uint32_t group, uint32_t binding) {
         std::ostringstream o;
@@ -129,4 +129,4 @@
         return mCombinedInfo;
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/ShaderModuleGL.h b/src/dawn_native/opengl/ShaderModuleGL.h
index c2c8a19..9bd7727 100644
--- a/src/dawn_native/opengl/ShaderModuleGL.h
+++ b/src/dawn_native/opengl/ShaderModuleGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -52,6 +52,6 @@
         std::string mGlslSource;
     };
 
-}}  // namespace backend::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 6fad7b5..2cbeee0 100644
--- a/src/dawn_native/opengl/SwapChainGL.cpp
+++ b/src/dawn_native/opengl/SwapChainGL.cpp
@@ -19,7 +19,7 @@
 
 #include <dawn/dawn_wsi.h>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     SwapChain::SwapChain(SwapChainBuilder* builder) : SwapChainBase(builder) {
         const auto& im = GetImplementation();
@@ -44,4 +44,4 @@
     void SwapChain::OnBeforePresent(TextureBase*) {
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/SwapChainGL.h b/src/dawn_native/opengl/SwapChainGL.h
index 8ae6066..23b8188 100644
--- a/src/dawn_native/opengl/SwapChainGL.h
+++ b/src/dawn_native/opengl/SwapChainGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     class Device;
 
@@ -33,6 +33,6 @@
         void OnBeforePresent(TextureBase* texture) override;
     };
 
-}}  // namespace backend::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 06b612f..fe52874 100644
--- a/src/dawn_native/opengl/TextureGL.cpp
+++ b/src/dawn_native/opengl/TextureGL.cpp
@@ -19,7 +19,7 @@
 #include <algorithm>
 #include <vector>
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     namespace {
 
@@ -116,4 +116,4 @@
     TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
     }
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/TextureGL.h b/src/dawn_native/opengl/TextureGL.h
index 0964a2a..3c29a5b 100644
--- a/src/dawn_native/opengl/TextureGL.h
+++ b/src/dawn_native/opengl/TextureGL.h
@@ -19,7 +19,7 @@
 
 #include "glad/glad.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
 
     struct TextureFormatInfo {
         GLenum internalFormat;
@@ -47,6 +47,6 @@
         TextureView(TextureViewBuilder* builder);
     };
 
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 #endif  // DAWNNATIVE_OPENGL_TEXTUREGL_H_
diff --git a/src/dawn_native/vulkan/BindGroupLayoutVk.cpp b/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
index 3470dd8..3361898 100644
--- a/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
+++ b/src/dawn_native/vulkan/BindGroupLayoutVk.cpp
@@ -17,7 +17,7 @@
 #include "common/BitSetIterator.h"
 #include "dawn_native/vulkan/DeviceVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -151,4 +151,4 @@
         *numPoolSizes = numSizes;
         return result;
     }
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BindGroupLayoutVk.h b/src/dawn_native/vulkan/BindGroupLayoutVk.h
index 82e7393..1544448 100644
--- a/src/dawn_native/vulkan/BindGroupLayoutVk.h
+++ b/src/dawn_native/vulkan/BindGroupLayoutVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -40,6 +40,6 @@
         VkDescriptorSetLayout mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace backend::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 c496c0b..49a972c 100644
--- a/src/dawn_native/vulkan/BindGroupVk.cpp
+++ b/src/dawn_native/vulkan/BindGroupVk.cpp
@@ -23,7 +23,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     BindGroup::BindGroup(BindGroupBuilder* builder) : BindGroupBase(builder) {
         // Create a pool to hold our descriptor set.
@@ -135,4 +135,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BindGroupVk.h b/src/dawn_native/vulkan/BindGroupVk.h
index 5d05dfb..9dee3a3 100644
--- a/src/dawn_native/vulkan/BindGroupVk.h
+++ b/src/dawn_native/vulkan/BindGroupVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -35,6 +35,6 @@
         VkDescriptorSet mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BINDGROUPVK_H_
diff --git a/src/dawn_native/vulkan/BlendStateVk.cpp b/src/dawn_native/vulkan/BlendStateVk.cpp
index 58417ae..cc4911b 100644
--- a/src/dawn_native/vulkan/BlendStateVk.cpp
+++ b/src/dawn_native/vulkan/BlendStateVk.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
         VkBlendFactor VulkanBlendFactor(dawn::BlendFactor factor) {
@@ -107,4 +107,4 @@
         return mState;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BlendStateVk.h b/src/dawn_native/vulkan/BlendStateVk.h
index 348bea6..fd02570 100644
--- a/src/dawn_native/vulkan/BlendStateVk.h
+++ b/src/dawn_native/vulkan/BlendStateVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -34,6 +34,6 @@
         VkPipelineColorBlendAttachmentState mState;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BLENDSTATEVK_H_
diff --git a/src/dawn_native/vulkan/BufferUploader.cpp b/src/dawn_native/vulkan/BufferUploader.cpp
index bdcc2af..e74143f 100644
--- a/src/dawn_native/vulkan/BufferUploader.cpp
+++ b/src/dawn_native/vulkan/BufferUploader.cpp
@@ -20,7 +20,7 @@
 
 #include <cstring>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     BufferUploader::BufferUploader(Device* device) : mDevice(device) {
     }
@@ -99,4 +99,4 @@
     void BufferUploader::Tick(Serial) {
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BufferUploader.h b/src/dawn_native/vulkan/BufferUploader.h
index 0ab85f8..37ff0d7 100644
--- a/src/dawn_native/vulkan/BufferUploader.h
+++ b/src/dawn_native/vulkan/BufferUploader.h
@@ -18,7 +18,7 @@
 #include "common/SerialQueue.h"
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -38,6 +38,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_BUFFERUPLOADER_H_
diff --git a/src/dawn_native/vulkan/BufferVk.cpp b/src/dawn_native/vulkan/BufferVk.cpp
index d20c7ff..e8d2c7d 100644
--- a/src/dawn_native/vulkan/BufferVk.cpp
+++ b/src/dawn_native/vulkan/BufferVk.cpp
@@ -20,7 +20,7 @@
 
 #include <cstring>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -267,4 +267,4 @@
         mInflightRequests.ClearUpTo(finishedSerial);
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/BufferVk.h b/src/dawn_native/vulkan/BufferVk.h
index a6042f3..0c466a7 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/vulkan/MemoryAllocator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -74,6 +74,6 @@
         SerialQueue<Request> mInflightRequests;
     };
 
-}}  // namespace backend::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 1b42e96..324d57b 100644
--- a/src/dawn_native/vulkan/CommandBufferVk.cpp
+++ b/src/dawn_native/vulkan/CommandBufferVk.cpp
@@ -24,7 +24,7 @@
 #include "dawn_native/vulkan/RenderPipelineVk.h"
 #include "dawn_native/vulkan/TextureVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -421,4 +421,4 @@
         UNREACHABLE();
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/CommandBufferVk.h b/src/dawn_native/vulkan/CommandBufferVk.h
index 26bf3d4..b6499df 100644
--- a/src/dawn_native/vulkan/CommandBufferVk.h
+++ b/src/dawn_native/vulkan/CommandBufferVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class RenderPassDescriptor;
 
@@ -38,6 +38,6 @@
         std::vector<PassResourceUsage> mPassResourceUsages;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_COMMANDBUFFERVK_H_
diff --git a/src/dawn_native/vulkan/ComputePipelineVk.cpp b/src/dawn_native/vulkan/ComputePipelineVk.cpp
index 9d0000a..7e67f62 100644
--- a/src/dawn_native/vulkan/ComputePipelineVk.cpp
+++ b/src/dawn_native/vulkan/ComputePipelineVk.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/vulkan/PipelineLayoutVk.h"
 #include "dawn_native/vulkan/ShaderModuleVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     ComputePipeline::ComputePipeline(ComputePipelineBuilder* builder)
         : ComputePipelineBase(builder), mDevice(ToBackend(builder->GetDevice())) {
@@ -57,4 +57,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ComputePipelineVk.h b/src/dawn_native/vulkan/ComputePipelineVk.h
index bd4b5ec..340d9fe 100644
--- a/src/dawn_native/vulkan/ComputePipelineVk.h
+++ b/src/dawn_native/vulkan/ComputePipelineVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -35,6 +35,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_COMPUTEPIPELINEVK_H_
diff --git a/src/dawn_native/vulkan/DepthStencilStateVk.cpp b/src/dawn_native/vulkan/DepthStencilStateVk.cpp
index d5c42b0..a50bb0d 100644
--- a/src/dawn_native/vulkan/DepthStencilStateVk.cpp
+++ b/src/dawn_native/vulkan/DepthStencilStateVk.cpp
@@ -16,7 +16,7 @@
 
 #include "common/Assert.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
         VkCompareOp VulkanCompareOp(dawn::CompareFunction op) {
@@ -109,4 +109,4 @@
         return &mCreateInfo;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/DepthStencilStateVk.h b/src/dawn_native/vulkan/DepthStencilStateVk.h
index fc33330..1f9a2a5 100644
--- a/src/dawn_native/vulkan/DepthStencilStateVk.h
+++ b/src/dawn_native/vulkan/DepthStencilStateVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -34,6 +34,6 @@
         VkPipelineDepthStencilStateCreateInfo mCreateInfo;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_DEPTHSTENCILSTATEVK_H_
diff --git a/src/dawn_native/vulkan/DeviceVk.cpp b/src/dawn_native/vulkan/DeviceVk.cpp
index 19f518b..75eb4a3 100644
--- a/src/dawn_native/vulkan/DeviceVk.cpp
+++ b/src/dawn_native/vulkan/DeviceVk.cpp
@@ -50,7 +50,7 @@
 #    error "Unimplemented Vulkan backend platform"
 #endif
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     dawnProcTable GetNonValidatingProcs();
     dawnProcTable GetValidatingProcs();
@@ -684,4 +684,4 @@
         commands->commandBuffer = VK_NULL_HANDLE;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/DeviceVk.h b/src/dawn_native/vulkan/DeviceVk.h
index 11178ac..7a9b5db 100644
--- a/src/dawn_native/vulkan/DeviceVk.h
+++ b/src/dawn_native/vulkan/DeviceVk.h
@@ -27,7 +27,7 @@
 
 #include <queue>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class BufferUploader;
     class FencedDeleter;
@@ -155,6 +155,6 @@
         std::vector<VkSemaphore> mWaitSemaphores;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_DEVICEVK_H_
diff --git a/src/dawn_native/vulkan/FencedDeleter.cpp b/src/dawn_native/vulkan/FencedDeleter.cpp
index ad2234c..6503f73 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 backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     FencedDeleter::FencedDeleter(Device* device) : mDevice(device) {
     }
@@ -170,4 +170,4 @@
         mSamplersToDelete.ClearUpTo(completedSerial);
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/FencedDeleter.h b/src/dawn_native/vulkan/FencedDeleter.h
index a8e0a96..7200eda 100644
--- a/src/dawn_native/vulkan/FencedDeleter.h
+++ b/src/dawn_native/vulkan/FencedDeleter.h
@@ -18,7 +18,7 @@
 #include "common/SerialQueue.h"
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -62,6 +62,6 @@
         SerialQueue<VkSwapchainKHR> mSwapChainsToDelete;
     };
 
-}}  // namespace backend::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 fa29a18..b89261c 100644
--- a/src/dawn_native/vulkan/Forward.h
+++ b/src/dawn_native/vulkan/Forward.h
@@ -17,11 +17,11 @@
 
 #include "dawn_native/ToBackend.h"
 
-namespace backend {
+namespace dawn_native {
     class BufferViewBase;
 }
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class BindGroup;
     class BindGroupLayout;
@@ -70,6 +70,6 @@
         return ToBackendBase<VulkanBackendTraits>(common);
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_FORWARD_H_
diff --git a/src/dawn_native/vulkan/InputStateVk.cpp b/src/dawn_native/vulkan/InputStateVk.cpp
index df51c59..1852702 100644
--- a/src/dawn_native/vulkan/InputStateVk.cpp
+++ b/src/dawn_native/vulkan/InputStateVk.cpp
@@ -16,7 +16,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -106,4 +106,4 @@
         return &mCreateInfo;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/InputStateVk.h b/src/dawn_native/vulkan/InputStateVk.h
index 7204f8b..b44c08a 100644
--- a/src/dawn_native/vulkan/InputStateVk.h
+++ b/src/dawn_native/vulkan/InputStateVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -36,6 +36,6 @@
         std::array<VkVertexInputAttributeDescription, kMaxVertexAttributes> mAttributes;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_INPUTSTATEVK_H_
diff --git a/src/dawn_native/vulkan/MemoryAllocator.cpp b/src/dawn_native/vulkan/MemoryAllocator.cpp
index fa0f019..3ab6c26 100644
--- a/src/dawn_native/vulkan/MemoryAllocator.cpp
+++ b/src/dawn_native/vulkan/MemoryAllocator.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/FencedDeleter.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     DeviceMemoryAllocation::~DeviceMemoryAllocation() {
         ASSERT(mMemory == VK_NULL_HANDLE);
@@ -130,4 +130,4 @@
 
     void MemoryAllocator::Tick(Serial) {
     }
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/MemoryAllocator.h b/src/dawn_native/vulkan/MemoryAllocator.h
index d7042da..afea7af 100644
--- a/src/dawn_native/vulkan/MemoryAllocator.h
+++ b/src/dawn_native/vulkan/MemoryAllocator.h
@@ -18,7 +18,7 @@
 #include "common/SerialQueue.h"
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
     class MemoryAllocator;
@@ -53,6 +53,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_MEMORYALLOCATOR_H_
diff --git a/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp b/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
index 415c182..f527134 100644
--- a/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
+++ b/src/dawn_native/vulkan/NativeSwapChainImplVk.cpp
@@ -20,7 +20,7 @@
 
 #include <limits>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -206,4 +206,4 @@
         return mConfig.format;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/NativeSwapChainImplVk.h b/src/dawn_native/vulkan/NativeSwapChainImplVk.h
index 85fb4be..8a95647 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/dawncpp.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -64,6 +64,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::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 89ebe2a..11b059c 100644
--- a/src/dawn_native/vulkan/PipelineLayoutVk.cpp
+++ b/src/dawn_native/vulkan/PipelineLayoutVk.cpp
@@ -20,7 +20,7 @@
 
 #include "common/BitSetIterator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     PipelineLayout::PipelineLayout(Device* device, const dawn::PipelineLayoutDescriptor* descriptor)
         : PipelineLayoutBase(device, descriptor) {
@@ -67,4 +67,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/PipelineLayoutVk.h b/src/dawn_native/vulkan/PipelineLayoutVk.h
index fad9871..77b6bca 100644
--- a/src/dawn_native/vulkan/PipelineLayoutVk.h
+++ b/src/dawn_native/vulkan/PipelineLayoutVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -34,6 +34,6 @@
         VkPipelineLayout mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_PIPELINELAYOUTVK_H_
diff --git a/src/dawn_native/vulkan/QueueVk.cpp b/src/dawn_native/vulkan/QueueVk.cpp
index 0672f83..c737940 100644
--- a/src/dawn_native/vulkan/QueueVk.cpp
+++ b/src/dawn_native/vulkan/QueueVk.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/vulkan/CommandBufferVk.h"
 #include "dawn_native/vulkan/DeviceVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     Queue::Queue(Device* device) : QueueBase(device) {
     }
@@ -36,4 +36,4 @@
         device->SubmitPendingCommands();
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/QueueVk.h b/src/dawn_native/vulkan/QueueVk.h
index 713ca30..6745c40 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 backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class CommandBuffer;
     class Device;
@@ -31,6 +31,6 @@
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
-}}  // namespace backend::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 273c4f0..76e35f5 100644
--- a/src/dawn_native/vulkan/RenderPassCache.cpp
+++ b/src/dawn_native/vulkan/RenderPassCache.cpp
@@ -19,7 +19,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/TextureVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
         VkAttachmentLoadOp VulkanAttachmentLoadOp(dawn::LoadOp op) {
@@ -206,4 +206,4 @@
 
         return true;
     }
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/RenderPassCache.h b/src/dawn_native/vulkan/RenderPassCache.h
index 4ecd1ab..a93d46f 100644
--- a/src/dawn_native/vulkan/RenderPassCache.h
+++ b/src/dawn_native/vulkan/RenderPassCache.h
@@ -24,7 +24,7 @@
 #include <bitset>
 #include <unordered_map>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -76,6 +76,6 @@
         Cache mCache;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RENDERPASSCACHE_H_
diff --git a/src/dawn_native/vulkan/RenderPassDescriptorVk.cpp b/src/dawn_native/vulkan/RenderPassDescriptorVk.cpp
index 1946105..a0f6d35 100644
--- a/src/dawn_native/vulkan/RenderPassDescriptorVk.cpp
+++ b/src/dawn_native/vulkan/RenderPassDescriptorVk.cpp
@@ -20,7 +20,7 @@
 #include "dawn_native/vulkan/RenderPassCache.h"
 #include "dawn_native/vulkan/TextureVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     RenderPassDescriptor::RenderPassDescriptor(RenderPassDescriptorBuilder* builder)
         : RenderPassDescriptorBase(builder), mDevice(ToBackend(builder->GetDevice())) {
@@ -119,4 +119,4 @@
         mDevice->fn.CmdBeginRenderPass(commands, &beginInfo, VK_SUBPASS_CONTENTS_INLINE);
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/RenderPassDescriptorVk.h b/src/dawn_native/vulkan/RenderPassDescriptorVk.h
index 5add4fb..07b65b6 100644
--- a/src/dawn_native/vulkan/RenderPassDescriptorVk.h
+++ b/src/dawn_native/vulkan/RenderPassDescriptorVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -34,6 +34,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RENDERPASSDESCRIPTORVK_H_
diff --git a/src/dawn_native/vulkan/RenderPipelineVk.cpp b/src/dawn_native/vulkan/RenderPipelineVk.cpp
index 8ebafa0..6c8f653 100644
--- a/src/dawn_native/vulkan/RenderPipelineVk.cpp
+++ b/src/dawn_native/vulkan/RenderPipelineVk.cpp
@@ -24,7 +24,7 @@
 #include "dawn_native/vulkan/RenderPassDescriptorVk.h"
 #include "dawn_native/vulkan/ShaderModuleVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
 
@@ -226,4 +226,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/RenderPipelineVk.h b/src/dawn_native/vulkan/RenderPipelineVk.h
index 2587131..e43676e 100644
--- a/src/dawn_native/vulkan/RenderPipelineVk.h
+++ b/src/dawn_native/vulkan/RenderPipelineVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -35,6 +35,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_RENDERPIPELINEVK_H_
diff --git a/src/dawn_native/vulkan/SamplerVk.cpp b/src/dawn_native/vulkan/SamplerVk.cpp
index b40af26..113ac40 100644
--- a/src/dawn_native/vulkan/SamplerVk.cpp
+++ b/src/dawn_native/vulkan/SamplerVk.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/FencedDeleter.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
         VkSamplerAddressMode VulkanSamplerAddressMode(dawn::AddressMode mode) {
@@ -95,4 +95,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/SamplerVk.h b/src/dawn_native/vulkan/SamplerVk.h
index 872fdc6..076c9af 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/vulkan/MemoryAllocator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Sampler : public SamplerBase {
       public:
@@ -34,6 +34,6 @@
         Device* mDevice = nullptr;
     };
 
-}}  // namespace backend::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 6db4cc1..1c4644e 100644
--- a/src/dawn_native/vulkan/ShaderModuleVk.cpp
+++ b/src/dawn_native/vulkan/ShaderModuleVk.cpp
@@ -19,7 +19,7 @@
 
 #include <spirv-cross/spirv_cross.hpp>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     ShaderModule::ShaderModule(ShaderModuleBuilder* builder) : ShaderModuleBase(builder) {
         std::vector<uint32_t> spirv = builder->AcquireSpirv();
@@ -57,4 +57,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/ShaderModuleVk.h b/src/dawn_native/vulkan/ShaderModuleVk.h
index 55d04f9..4e46787 100644
--- a/src/dawn_native/vulkan/ShaderModuleVk.h
+++ b/src/dawn_native/vulkan/ShaderModuleVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class ShaderModule : public ShaderModuleBase {
       public:
@@ -32,6 +32,6 @@
         VkShaderModule mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_SHADERMODULEVK_H_
diff --git a/src/dawn_native/vulkan/SwapChainVk.cpp b/src/dawn_native/vulkan/SwapChainVk.cpp
index 16ca36e..9e4293e 100644
--- a/src/dawn_native/vulkan/SwapChainVk.cpp
+++ b/src/dawn_native/vulkan/SwapChainVk.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/TextureVk.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     SwapChain::SwapChain(SwapChainBuilder* builder) : SwapChainBase(builder) {
         const auto& im = GetImplementation();
@@ -56,4 +56,4 @@
         device->SubmitPendingCommands();
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/SwapChainVk.h b/src/dawn_native/vulkan/SwapChainVk.h
index 3d200a4..00715e5 100644
--- a/src/dawn_native/vulkan/SwapChainVk.h
+++ b/src/dawn_native/vulkan/SwapChainVk.h
@@ -19,7 +19,7 @@
 
 #include "common/vulkan_platform.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class SwapChain : public SwapChainBase {
       public:
@@ -34,6 +34,6 @@
         dawn::TextureUsageBit mTextureUsage;
     };
 
-}}  // namespace backend::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 fa18435..095cd20 100644
--- a/src/dawn_native/vulkan/TextureVk.cpp
+++ b/src/dawn_native/vulkan/TextureVk.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/vulkan/DeviceVk.h"
 #include "dawn_native/vulkan/FencedDeleter.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     namespace {
         // Converts an Dawn texture dimension to a Vulkan image type.
@@ -380,4 +380,4 @@
         return mHandle;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/TextureVk.h b/src/dawn_native/vulkan/TextureVk.h
index 1069e4f..e5bbe3c 100644
--- a/src/dawn_native/vulkan/TextureVk.h
+++ b/src/dawn_native/vulkan/TextureVk.h
@@ -20,7 +20,7 @@
 #include "common/vulkan_platform.h"
 #include "dawn_native/vulkan/MemoryAllocator.h"
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     VkFormat VulkanImageFormat(dawn::TextureFormat format);
     VkImageUsageFlags VulkanImageUsage(dawn::TextureUsageBit usage, dawn::TextureFormat format);
@@ -59,6 +59,6 @@
         VkImageView mHandle = VK_NULL_HANDLE;
     };
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_TEXTUREVK_H_
diff --git a/src/dawn_native/vulkan/VulkanFunctions.cpp b/src/dawn_native/vulkan/VulkanFunctions.cpp
index 976d958..09f6e51 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 backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
 #define GET_GLOBAL_PROC(name)                                                          \
     name = reinterpret_cast<decltype(name)>(GetInstanceProcAddr(nullptr, "vk" #name)); \
@@ -218,4 +218,4 @@
         return true;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanFunctions.h b/src/dawn_native/vulkan/VulkanFunctions.h
index 6fa1e45..a9a6a54 100644
--- a/src/dawn_native/vulkan/VulkanFunctions.h
+++ b/src/dawn_native/vulkan/VulkanFunctions.h
@@ -19,7 +19,7 @@
 
 class DynamicLib;
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     struct VulkanGlobalKnobs;
     struct VulkanDeviceKnobs;
@@ -210,6 +210,6 @@
         PFN_vkQueuePresentKHR QueuePresentKHR = nullptr;
     };
 
-}}  // namespace backend::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 123a6a2..d7b4a84 100644
--- a/src/dawn_native/vulkan/VulkanInfo.cpp
+++ b/src/dawn_native/vulkan/VulkanInfo.cpp
@@ -28,7 +28,7 @@
     }
 }  // namespace
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     const char kLayerNameLunargStandardValidation[] = "VK_LAYER_LUNARG_standard_validation";
     const char kLayerNameLunargVKTrace[] = "VK_LAYER_LUNARG_vktrace";
@@ -258,4 +258,4 @@
         return true;
     }
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
diff --git a/src/dawn_native/vulkan/VulkanInfo.h b/src/dawn_native/vulkan/VulkanInfo.h
index bc62fa6..b87b666 100644
--- a/src/dawn_native/vulkan/VulkanInfo.h
+++ b/src/dawn_native/vulkan/VulkanInfo.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
 
     class Device;
 
@@ -83,6 +83,6 @@
                           VulkanDeviceInfo* info);
     bool GatherSurfaceInfo(const Device& device, VkSurfaceKHR surface, VulkanSurfaceInfo* info);
 
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 #endif  // DAWNNATIVE_VULKAN_VULKANINFO_H_
diff --git a/src/tests/unittests/CommandAllocatorTests.cpp b/src/tests/unittests/CommandAllocatorTests.cpp
index d0a491a..d870694 100644
--- a/src/tests/unittests/CommandAllocatorTests.cpp
+++ b/src/tests/unittests/CommandAllocatorTests.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/CommandAllocator.h"
 
-using namespace backend;
+using namespace dawn_native;
 
 // Definition of the command types used in the tests
 enum class CommandType {
diff --git a/src/tests/unittests/ErrorTests.cpp b/src/tests/unittests/ErrorTests.cpp
index fdd2c1f..e95bbcf 100644
--- a/src/tests/unittests/ErrorTests.cpp
+++ b/src/tests/unittests/ErrorTests.cpp
@@ -17,7 +17,7 @@
 #include "dawn_native/Error.h"
 #include "dawn_native/ErrorData.h"
 
-using namespace backend;
+using namespace dawn_native;
 
 namespace {
 
diff --git a/src/tests/unittests/PerStageTests.cpp b/src/tests/unittests/PerStageTests.cpp
index d05714a..df1b2c4 100644
--- a/src/tests/unittests/PerStageTests.cpp
+++ b/src/tests/unittests/PerStageTests.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/PerStage.h"
 
-using namespace backend;
+using namespace dawn_native;
 
 // Tests for StageBit
 TEST(PerStage, StageBit) {
diff --git a/src/tests/unittests/RefCountedTests.cpp b/src/tests/unittests/RefCountedTests.cpp
index ff69596..38dfef9 100644
--- a/src/tests/unittests/RefCountedTests.cpp
+++ b/src/tests/unittests/RefCountedTests.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn_native/RefCounted.h"
 
-using namespace backend;
+using namespace dawn_native;
 
 struct RCTest : public RefCounted {
     RCTest() {
diff --git a/src/tests/unittests/ToBackendTests.cpp b/src/tests/unittests/ToBackendTests.cpp
index 3a0764e..d16a4f7 100644
--- a/src/tests/unittests/ToBackendTests.cpp
+++ b/src/tests/unittests/ToBackendTests.cpp
@@ -20,12 +20,12 @@
 #include <type_traits>
 
 // Make our own Base - Backend object pair, reusing the CommandBuffer name
-namespace backend {
+namespace dawn_native {
     class CommandBufferBase : public RefCounted {
     };
 }
 
-using namespace backend;
+using namespace dawn_native;
 
 class MyCommandBuffer : public CommandBufferBase {
 };
diff --git a/src/tests/unittests/d3d12/CopySplitTests.cpp b/src/tests/unittests/d3d12/CopySplitTests.cpp
index d0f16b1..d784628 100644
--- a/src/tests/unittests/d3d12/CopySplitTests.cpp
+++ b/src/tests/unittests/d3d12/CopySplitTests.cpp
@@ -20,7 +20,7 @@
 #include "common/Constants.h"
 #include "common/Math.h"
 
-using namespace backend::d3d12;
+using namespace dawn_native::d3d12;
 
 namespace {
 
diff --git a/src/tests/unittests/validation/ValidationTest.cpp b/src/tests/unittests/validation/ValidationTest.cpp
index 44bcf92..f3f7db2 100644
--- a/src/tests/unittests/validation/ValidationTest.cpp
+++ b/src/tests/unittests/validation/ValidationTest.cpp
@@ -16,7 +16,7 @@
 
 #include "dawn/dawn.h"
 
-namespace backend {
+namespace dawn_native {
     namespace null {
         void Init(dawnProcTable* procs, dawnDevice* device);
     }
@@ -25,7 +25,7 @@
 ValidationTest::ValidationTest() {
     dawnProcTable procs;
     dawnDevice cDevice;
-    backend::null::Init(&procs, &cDevice);
+    dawn_native::null::Init(&procs, &cDevice);
 
     dawnSetProcs(&procs);
     device = dawn::Device::Acquire(cDevice);
diff --git a/src/utils/D3D12Binding.cpp b/src/utils/D3D12Binding.cpp
index 6046621..cfea7ab 100644
--- a/src/utils/D3D12Binding.cpp
+++ b/src/utils/D3D12Binding.cpp
@@ -21,13 +21,13 @@
 #define GLFW_EXPOSE_NATIVE_WIN32
 #include "GLFW/glfw3native.h"
 
-namespace backend { namespace d3d12 {
+namespace dawn_native { namespace d3d12 {
     void Init(dawnProcTable* procs, dawnDevice* device);
 
     dawnSwapChainImplementation CreateNativeSwapChainImpl(dawnDevice device, HWND window);
     dawnTextureFormat GetNativeSwapChainPreferredFormat(
         const dawnSwapChainImplementation* swapChain);
-}}  // namespace backend::d3d12
+}}  // namespace dawn_native::d3d12
 
 namespace utils {
 
@@ -38,7 +38,7 @@
         }
 
         void GetProcAndDevice(dawnProcTable* procs, dawnDevice* device) override {
-            backend::d3d12::Init(procs, device);
+            dawn_native::d3d12::Init(procs, device);
             mBackendDevice = *device;
         }
 
@@ -46,14 +46,14 @@
             if (mSwapchainImpl.userData == nullptr) {
                 HWND win32Window = glfwGetWin32Window(mWindow);
                 mSwapchainImpl =
-                    backend::d3d12::CreateNativeSwapChainImpl(mBackendDevice, win32Window);
+                    dawn_native::d3d12::CreateNativeSwapChainImpl(mBackendDevice, win32Window);
             }
             return reinterpret_cast<uint64_t>(&mSwapchainImpl);
         }
 
         dawnTextureFormat GetPreferredSwapChainTextureFormat() override {
             ASSERT(mSwapchainImpl.userData != nullptr);
-            return backend::d3d12::GetNativeSwapChainPreferredFormat(&mSwapchainImpl);
+            return dawn_native::d3d12::GetNativeSwapChainPreferredFormat(&mSwapchainImpl);
         }
 
       private:
diff --git a/src/utils/MetalBinding.mm b/src/utils/MetalBinding.mm
index da1f07f..a27c9c7 100644
--- a/src/utils/MetalBinding.mm
+++ b/src/utils/MetalBinding.mm
@@ -25,7 +25,7 @@
 #import <Metal/Metal.h>
 #import <QuartzCore/CAMetalLayer.h>
 
-namespace backend { namespace metal {
+namespace dawn_native { namespace metal {
     void Init(id<MTLDevice> metalDevice, dawnProcTable* procs, dawnDevice* device);
     void SetNextDrawable(dawnDevice device, id<CAMetalDrawable> drawable);
     void Present(dawnDevice device);
@@ -117,7 +117,7 @@
         void GetProcAndDevice(dawnProcTable* procs, dawnDevice* device) override {
             mMetalDevice = MTLCreateSystemDefaultDevice();
 
-            backend::metal::Init(mMetalDevice, procs, device);
+            dawn_native::metal::Init(mMetalDevice, procs, device);
             mBackendDevice = *device;
         }
 
diff --git a/src/utils/NullBinding.cpp b/src/utils/NullBinding.cpp
index c6681bc..1b428f1 100644
--- a/src/utils/NullBinding.cpp
+++ b/src/utils/NullBinding.cpp
@@ -14,9 +14,9 @@
 
 #include "utils/BackendBinding.h"
 
-namespace backend { namespace null {
+namespace dawn_native { namespace null {
     void Init(dawnProcTable* procs, dawnDevice* device);
-}}  // namespace backend::null
+}}  // namespace dawn_native::null
 
 namespace utils {
 
@@ -25,7 +25,7 @@
         void SetupGLFWWindowHints() override {
         }
         void GetProcAndDevice(dawnProcTable* procs, dawnDevice* device) override {
-            backend::null::Init(procs, device);
+            dawn_native::null::Init(procs, device);
         }
         uint64_t GetSwapChainImplementation() override {
             return 0;
diff --git a/src/utils/OpenGLBinding.cpp b/src/utils/OpenGLBinding.cpp
index 0f58f7f..8cc1cbc 100644
--- a/src/utils/OpenGLBinding.cpp
+++ b/src/utils/OpenGLBinding.cpp
@@ -25,9 +25,9 @@
 #include <cstdio>
 #include "GLFW/glfw3.h"
 
-namespace backend { namespace opengl {
+namespace dawn_native { namespace opengl {
     void Init(void* (*getProc)(const char*), dawnProcTable* procs, dawnDevice* device);
-}}  // namespace backend::opengl
+}}  // namespace dawn_native::opengl
 
 namespace utils {
     class SwapChainImplGL {
@@ -113,8 +113,8 @@
         }
         void GetProcAndDevice(dawnProcTable* procs, dawnDevice* device) override {
             glfwMakeContextCurrent(mWindow);
-            backend::opengl::Init(reinterpret_cast<void* (*)(const char*)>(glfwGetProcAddress),
-                                  procs, device);
+            dawn_native::opengl::Init(reinterpret_cast<void* (*)(const char*)>(glfwGetProcAddress),
+                                      procs, device);
 
             mBackendDevice = *device;
         }
diff --git a/src/utils/VulkanBinding.cpp b/src/utils/VulkanBinding.cpp
index f714fbc..58f25c7 100644
--- a/src/utils/VulkanBinding.cpp
+++ b/src/utils/VulkanBinding.cpp
@@ -22,7 +22,7 @@
 
 #include <vector>
 
-namespace backend { namespace vulkan {
+namespace dawn_native { namespace vulkan {
     void Init(dawnProcTable* procs,
               dawnDevice* device,
               const std::vector<const char*>& requiredInstanceExtensions);
@@ -32,7 +32,7 @@
     dawnSwapChainImplementation CreateNativeSwapChainImpl(dawnDevice device, VkSurfaceKHR surface);
     dawnTextureFormat GetNativeSwapChainPreferredFormat(
         const dawnSwapChainImplementation* swapChain);
-}}  // namespace backend::vulkan
+}}  // namespace dawn_native::vulkan
 
 namespace utils {
 
@@ -74,24 +74,24 @@
             std::vector<const char*> requiredExtensions(glfwInstanceExtensions,
                                                         glfwInstanceExtensions + extensionCount);
 
-            backend::vulkan::Init(procs, device, requiredExtensions);
+            dawn_native::vulkan::Init(procs, device, requiredExtensions);
             mDevice = *device;
         }
         uint64_t GetSwapChainImplementation() override {
             if (mSwapchainImpl.userData == nullptr) {
                 VkSurfaceKHR surface = VK_NULL_HANDLE;
-                if (glfwCreateWindowSurface(backend::vulkan::GetInstance(mDevice), mWindow, nullptr,
-                                            &surface) != VK_SUCCESS) {
+                if (glfwCreateWindowSurface(dawn_native::vulkan::GetInstance(mDevice), mWindow,
+                                            nullptr, &surface) != VK_SUCCESS) {
                     ASSERT(false);
                 }
 
-                mSwapchainImpl = backend::vulkan::CreateNativeSwapChainImpl(mDevice, surface);
+                mSwapchainImpl = dawn_native::vulkan::CreateNativeSwapChainImpl(mDevice, surface);
             }
             return reinterpret_cast<uint64_t>(&mSwapchainImpl);
         }
         dawnTextureFormat GetPreferredSwapChainTextureFormat() override {
             ASSERT(mSwapchainImpl.userData != nullptr);
-            return backend::vulkan::GetNativeSwapChainPreferredFormat(&mSwapchainImpl);
+            return dawn_native::vulkan::GetNativeSwapChainPreferredFormat(&mSwapchainImpl);
         }
 
       private:
