diff --git a/src/backend/BindGroup.h b/src/backend/BindGroup.h
index 393cbb9..b3baa30 100644
--- a/src/backend/BindGroup.h
+++ b/src/backend/BindGroup.h
@@ -51,7 +51,7 @@
       public:
         BindGroupBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetLayout(BindGroupLayoutBase* layout);
         void SetUsage(dawn::BindGroupUsage usage);
 
diff --git a/src/backend/BlendState.h b/src/backend/BlendState.h
index 89a8e0e..db2eb84 100644
--- a/src/backend/BlendState.h
+++ b/src/backend/BlendState.h
@@ -50,7 +50,7 @@
       public:
         BlendStateBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetBlendEnabled(bool blendEnabled);
         void SetAlphaBlend(dawn::BlendOperation blendOperation,
                            dawn::BlendFactor srcFactor,
diff --git a/src/backend/Buffer.h b/src/backend/Buffer.h
index aab6616..8e1f47c 100644
--- a/src/backend/Buffer.h
+++ b/src/backend/Buffer.h
@@ -41,7 +41,7 @@
 
         DeviceBase* GetDevice() const;
 
-        // NXT API
+        // Dawn API
         BufferViewBuilder* CreateBufferViewBuilder();
         void SetSubData(uint32_t start, uint32_t count, const uint8_t* data);
         void MapReadAsync(uint32_t start,
@@ -84,7 +84,7 @@
       public:
         BufferBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetAllowedUsage(dawn::BufferUsageBit usage);
         void SetInitialUsage(dawn::BufferUsageBit usage);
         void SetSize(uint32_t size);
@@ -118,7 +118,7 @@
       public:
         BufferViewBuilder(DeviceBase* device, BufferBase* buffer);
 
-        // NXT API
+        // Dawn API
         void SetExtent(uint32_t offset, uint32_t size);
 
       private:
diff --git a/src/backend/Builder.h b/src/backend/Builder.h
index 7a2289e..cf956c9 100644
--- a/src/backend/Builder.h
+++ b/src/backend/Builder.h
@@ -49,7 +49,7 @@
         // Returns true for success cases, and calls the callback with appropriate status.
         bool HandleResult(RefCounted* result);
 
-        // NXT API
+        // Dawn API
         void SetErrorCallback(dawn::BuilderErrorCallback callback,
                               dawn::CallbackUserdata userdata1,
                               dawn::CallbackUserdata userdata2);
@@ -80,7 +80,7 @@
     template <typename T>
     class Builder : public BuilderBase {
       public:
-        // NXT API
+        // Dawn API
         T* GetResult();
 
       protected:
diff --git a/src/backend/CommandBuffer.h b/src/backend/CommandBuffer.h
index 9dc7514..4efd772 100644
--- a/src/backend/CommandBuffer.h
+++ b/src/backend/CommandBuffer.h
@@ -60,7 +60,7 @@
         CommandIterator AcquireCommands();
         std::vector<PassResourceUsage> AcquirePassResourceUsage();
 
-        // NXT API
+        // Dawn API
         void BeginComputePass();
         void BeginRenderPass(RenderPassDescriptorBase* info);
         void CopyBufferToBuffer(BufferBase* source,
diff --git a/src/backend/DepthStencilState.h b/src/backend/DepthStencilState.h
index ed3e2dc..7b21f8c 100644
--- a/src/backend/DepthStencilState.h
+++ b/src/backend/DepthStencilState.h
@@ -59,7 +59,7 @@
       public:
         DepthStencilStateBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetDepthCompareFunction(dawn::CompareFunction depthCompareFunction);
         void SetDepthWriteEnabled(bool enabled);
         void SetStencilFunction(dawn::Face face,
diff --git a/src/backend/Device.h b/src/backend/Device.h
index a99ea15..8e9a452 100644
--- a/src/backend/Device.h
+++ b/src/backend/Device.h
@@ -80,7 +80,7 @@
             const dawn::BindGroupLayoutDescriptor* descriptor);
         void UncacheBindGroupLayout(BindGroupLayoutBase* obj);
 
-        // NXT API
+        // Dawn API
         BindGroupBuilder* CreateBindGroupBuilder();
         BindGroupLayoutBase* CreateBindGroupLayout(
             const dawn::BindGroupLayoutDescriptor* descriptor);
diff --git a/src/backend/InputState.h b/src/backend/InputState.h
index a17d3a2..2b8240a 100644
--- a/src/backend/InputState.h
+++ b/src/backend/InputState.h
@@ -63,7 +63,7 @@
       public:
         InputStateBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetAttribute(uint32_t shaderLocation,
                           uint32_t bindingSlot,
                           dawn::VertexFormat format,
diff --git a/src/backend/Pipeline.h b/src/backend/Pipeline.h
index 9e89337..8e5d809 100644
--- a/src/backend/Pipeline.h
+++ b/src/backend/Pipeline.h
@@ -67,7 +67,7 @@
         const StageInfo& GetStageInfo(dawn::ShaderStage stage) const;
         BuilderBase* GetParentBuilder() const;
 
-        // NXT API
+        // Dawn API
         void SetLayout(PipelineLayoutBase* layout);
         void SetStage(dawn::ShaderStage stage, ShaderModuleBase* module, const char* entryPoint);
 
diff --git a/src/backend/RefCounted.h b/src/backend/RefCounted.h
index 7591fb7..a0a3e87 100644
--- a/src/backend/RefCounted.h
+++ b/src/backend/RefCounted.h
@@ -30,7 +30,7 @@
         uint32_t GetExternalRefs() const;
         uint32_t GetInternalRefs() const;
 
-        // NXT API
+        // Dawn API
         void Reference();
         void Release();
 
diff --git a/src/backend/RenderPassDescriptor.h b/src/backend/RenderPassDescriptor.h
index 78413ba..03ba0ec 100644
--- a/src/backend/RenderPassDescriptor.h
+++ b/src/backend/RenderPassDescriptor.h
@@ -76,7 +76,7 @@
       public:
         RenderPassDescriptorBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         RenderPassDescriptorBase* GetResultImpl() override;
         void SetColorAttachment(uint32_t attachment,
                                 TextureViewBase* textureView,
diff --git a/src/backend/RenderPipeline.h b/src/backend/RenderPipeline.h
index 6ff816f..8af314f 100644
--- a/src/backend/RenderPipeline.h
+++ b/src/backend/RenderPipeline.h
@@ -63,7 +63,7 @@
       public:
         RenderPipelineBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetColorAttachmentFormat(uint32_t attachmentSlot, dawn::TextureFormat format);
         void SetColorAttachmentBlendState(uint32_t attachmentSlot, BlendStateBase* blendState);
         void SetDepthStencilAttachmentFormat(dawn::TextureFormat format);
diff --git a/src/backend/ShaderModule.h b/src/backend/ShaderModule.h
index 1f460f2..c2cc504 100644
--- a/src/backend/ShaderModule.h
+++ b/src/backend/ShaderModule.h
@@ -81,7 +81,7 @@
 
         std::vector<uint32_t> AcquireSpirv();
 
-        // NXT API
+        // Dawn API
         void SetSource(uint32_t codeSize, const uint32_t* code);
 
       private:
diff --git a/src/backend/SwapChain.h b/src/backend/SwapChain.h
index 5f42341..e37b476 100644
--- a/src/backend/SwapChain.h
+++ b/src/backend/SwapChain.h
@@ -31,7 +31,7 @@
 
         DeviceBase* GetDevice();
 
-        // NXT API
+        // Dawn API
         void Configure(dawn::TextureFormat format,
                        dawn::TextureUsageBit allowedUsage,
                        uint32_t width,
@@ -58,7 +58,7 @@
       public:
         SwapChainBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         SwapChainBase* GetResultImpl() override;
         void SetImplementation(uint64_t implementation);
 
diff --git a/src/backend/Texture.h b/src/backend/Texture.h
index 5b76c60..d29605d 100644
--- a/src/backend/Texture.h
+++ b/src/backend/Texture.h
@@ -49,7 +49,7 @@
         dawn::TextureUsageBit GetAllowedUsage() const;
         DeviceBase* GetDevice() const;
 
-        // NXT API
+        // Dawn API
         TextureViewBuilder* CreateTextureViewBuilder();
 
       private:
@@ -66,7 +66,7 @@
       public:
         TextureBuilder(DeviceBase* device);
 
-        // NXT API
+        // Dawn API
         void SetDimension(dawn::TextureDimension dimension);
         void SetExtent(uint32_t width, uint32_t height, uint32_t depth);
         void SetFormat(dawn::TextureFormat format);
diff --git a/src/backend/d3d12/BufferD3D12.h b/src/backend/d3d12/BufferD3D12.h
index 8441231..f2754cb 100644
--- a/src/backend/d3d12/BufferD3D12.h
+++ b/src/backend/d3d12/BufferD3D12.h
@@ -38,7 +38,7 @@
                                 dawn::BufferUsageBit usage);
 
       private:
-        // NXT API
+        // Dawn API
         void SetSubDataImpl(uint32_t start, uint32_t count, const uint8_t* data) override;
         void MapReadAsyncImpl(uint32_t serial, uint32_t start, uint32_t count) override;
         void MapWriteAsyncImpl(uint32_t serial, uint32_t start, uint32_t count) override;
diff --git a/src/backend/d3d12/QueueD3D12.h b/src/backend/d3d12/QueueD3D12.h
index 0d90ba9..ab4b4d2 100644
--- a/src/backend/d3d12/QueueD3D12.h
+++ b/src/backend/d3d12/QueueD3D12.h
@@ -28,7 +28,7 @@
       public:
         Queue(Device* device);
 
-        // NXT API
+        // Dawn API
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
 
       private:
diff --git a/src/backend/metal/QueueMTL.h b/src/backend/metal/QueueMTL.h
index 5a1c63b..dca9fd3 100644
--- a/src/backend/metal/QueueMTL.h
+++ b/src/backend/metal/QueueMTL.h
@@ -26,7 +26,7 @@
       public:
         Queue(Device* device);
 
-        // NXT API
+        // Dawn API
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
diff --git a/src/backend/null/NullBackend.h b/src/backend/null/NullBackend.h
index 1c9af94..0dbcbdc 100644
--- a/src/backend/null/NullBackend.h
+++ b/src/backend/null/NullBackend.h
@@ -160,7 +160,7 @@
         Queue(Device* device);
         ~Queue();
 
-        // NXT API
+        // Dawn API
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
diff --git a/src/backend/opengl/QueueGL.h b/src/backend/opengl/QueueGL.h
index c687fe1..eab07e2 100644
--- a/src/backend/opengl/QueueGL.h
+++ b/src/backend/opengl/QueueGL.h
@@ -26,7 +26,7 @@
       public:
         Queue(Device* device);
 
-        // NXT API
+        // Dawn API
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
diff --git a/src/backend/vulkan/DeviceVk.h b/src/backend/vulkan/DeviceVk.h
index 27e9488..25e029d 100644
--- a/src/backend/vulkan/DeviceVk.h
+++ b/src/backend/vulkan/DeviceVk.h
@@ -62,7 +62,7 @@
         void SubmitPendingCommands();
         void AddWaitSemaphore(VkSemaphore semaphore);
 
-        // NXT API
+        // Dawn API
         BindGroupBase* CreateBindGroup(BindGroupBuilder* builder) override;
         BlendStateBase* CreateBlendState(BlendStateBuilder* builder) override;
         BufferBase* CreateBuffer(BufferBuilder* builder) override;
diff --git a/src/backend/vulkan/QueueVk.h b/src/backend/vulkan/QueueVk.h
index 553c130..2b6206e 100644
--- a/src/backend/vulkan/QueueVk.h
+++ b/src/backend/vulkan/QueueVk.h
@@ -27,7 +27,7 @@
         Queue(Device* device);
         ~Queue();
 
-        // NXT API
+        // Dawn API
         void Submit(uint32_t numCommands, CommandBuffer* const* commands);
     };
 
