Remove TextureViewBuilder and add CreateDefaultTextureView entry point

This patch is the first one to descriptorze texture view. In this
patch, we completely remove TextureViewBuilder and add the entry
point CreateDefaultTextureView for creating a texture view on a
non-array 2D texture using the same type and format.

Texture view descriptors and 2D array texture views will be supported
in the next patch.

BUG=dawn:1, dawn:16

Change-Id: Ibd2a0bcf02cbb567a98d2faaaaa897eff2c062e5
Reviewed-on: https://dawn-review.googlesource.com/1440
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/dawn.json b/dawn.json
index 8ba51e3..fc596b1 100644
--- a/dawn.json
+++ b/dawn.json
@@ -985,8 +985,8 @@
         "category": "object",
         "methods": [
             {
-                "name": "create texture view builder",
-                "returns": "texture view builder"
+                "name": "create default texture view",
+                "returns": "texture view"
             }
         ]
     },
@@ -1038,15 +1038,6 @@
     "texture view": {
         "category": "object"
     },
-    "texture view builder": {
-        "category": "object",
-        "methods": [
-            {
-                "name": "get result",
-                "returns": "texture view"
-            }
-        ]
-    },
     "vertex format": {
         "category": "enum",
         "values": [
diff --git a/examples/CHelloTriangle.cpp b/examples/CHelloTriangle.cpp
index 6b780fc..075b442 100644
--- a/examples/CHelloTriangle.cpp
+++ b/examples/CHelloTriangle.cpp
@@ -72,9 +72,7 @@
     dawnTexture backbuffer = dawnSwapChainGetNextTexture(swapchain);
     dawnTextureView backbufferView;
     {
-        dawnTextureViewBuilder builder = dawnTextureCreateTextureViewBuilder(backbuffer);
-        backbufferView = dawnTextureViewBuilderGetResult(builder);
-        dawnTextureViewBuilderRelease(builder);
+        backbufferView = dawnTextureCreateDefaultTextureView(backbuffer);
     }
     dawnRenderPassDescriptor renderpassInfo;
     {
diff --git a/examples/CppHelloTriangle.cpp b/examples/CppHelloTriangle.cpp
index 6563cc4..7f8e6c1 100644
--- a/examples/CppHelloTriangle.cpp
+++ b/examples/CppHelloTriangle.cpp
@@ -131,7 +131,7 @@
         .SetInputState(inputState)
         .GetResult();
 
-    dawn::TextureView view = texture.CreateTextureViewBuilder().GetResult();
+    dawn::TextureView view = texture.CreateDefaultTextureView();
 
     bindGroup = device.CreateBindGroupBuilder()
         .SetLayout(bgl)
diff --git a/examples/SampleUtils.cpp b/examples/SampleUtils.cpp
index 8d459db..2c1510c 100644
--- a/examples/SampleUtils.cpp
+++ b/examples/SampleUtils.cpp
@@ -146,8 +146,7 @@
     descriptor.mipLevel = 1;
     descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
     auto depthStencilTexture = device.CreateTexture(&descriptor);
-    return depthStencilTexture.CreateTextureViewBuilder()
-        .GetResult();
+    return depthStencilTexture.CreateDefaultTextureView();
 }
 
 void GetNextRenderPassDescriptor(const dawn::Device& device,
@@ -156,7 +155,7 @@
     dawn::Texture* backbuffer,
     dawn::RenderPassDescriptor* info) {
     *backbuffer = swapchain.GetNextTexture();
-    auto backbufferView = backbuffer->CreateTextureViewBuilder().GetResult();
+    auto backbufferView = backbuffer->CreateDefaultTextureView();
     *info = device.CreateRenderPassDescriptorBuilder()
         .SetColorAttachment(0, backbufferView, dawn::LoadOp::Clear)
         .SetDepthStencilAttachment(depthStencilView, dawn::LoadOp::Clear, dawn::LoadOp::Clear)
diff --git a/examples/glTFViewer/glTFViewer.cpp b/examples/glTFViewer/glTFViewer.cpp
index f133bce..7e86c61 100644
--- a/examples/glTFViewer/glTFViewer.cpp
+++ b/examples/glTFViewer/glTFViewer.cpp
@@ -438,7 +438,7 @@
                 .GetResult();
             queue.Submit(1, &cmdbuf);
 
-            textures[iTextureID] = oTexture.CreateTextureViewBuilder().GetResult();
+            textures[iTextureID] = oTexture.CreateDefaultTextureView();
         }
     }
 
diff --git a/src/dawn_native/Device.h b/src/dawn_native/Device.h
index beb293e..6d366a8 100644
--- a/src/dawn_native/Device.h
+++ b/src/dawn_native/Device.h
@@ -56,7 +56,7 @@
             RenderPassDescriptorBuilder* builder) = 0;
         virtual RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) = 0;
         virtual SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) = 0;
-        virtual TextureViewBase* CreateTextureView(TextureViewBuilder* builder) = 0;
+        virtual TextureViewBase* CreateDefaultTextureView(TextureBase* texture) = 0;
 
         virtual void TickImpl() = 0;
 
diff --git a/src/dawn_native/Texture.cpp b/src/dawn_native/Texture.cpp
index a438e69..a1a6cf6 100644
--- a/src/dawn_native/Texture.cpp
+++ b/src/dawn_native/Texture.cpp
@@ -126,13 +126,13 @@
         return mUsage;
     }
 
-    TextureViewBuilder* TextureBase::CreateTextureViewBuilder() {
-        return new TextureViewBuilder(mDevice, this);
+    TextureViewBase* TextureBase::CreateDefaultTextureView() {
+        return mDevice->CreateDefaultTextureView(this);
     }
 
     // TextureViewBase
 
-    TextureViewBase::TextureViewBase(TextureViewBuilder* builder) : mTexture(builder->mTexture) {
+    TextureViewBase::TextureViewBase(TextureBase* texture) : mTexture(texture) {
     }
 
     const TextureBase* TextureViewBase::GetTexture() const {
@@ -143,14 +143,4 @@
         return mTexture.Get();
     }
 
-    // TextureViewBuilder
-
-    TextureViewBuilder::TextureViewBuilder(DeviceBase* device, TextureBase* texture)
-        : Builder(device), mTexture(texture) {
-    }
-
-    TextureViewBase* TextureViewBuilder::GetResultImpl() {
-        return mDevice->CreateTextureView(this);
-    }
-
 }  // namespace dawn_native
diff --git a/src/dawn_native/Texture.h b/src/dawn_native/Texture.h
index d9ba9f9..1628a78 100644
--- a/src/dawn_native/Texture.h
+++ b/src/dawn_native/Texture.h
@@ -53,7 +53,7 @@
         DeviceBase* GetDevice() const;
 
         // Dawn API
-        TextureViewBuilder* CreateTextureViewBuilder();
+        TextureViewBase* CreateDefaultTextureView();
 
       private:
         DeviceBase* mDevice;
@@ -68,7 +68,7 @@
 
     class TextureViewBase : public RefCounted {
       public:
-        TextureViewBase(TextureViewBuilder* builder);
+        TextureViewBase(TextureBase* texture);
 
         const TextureBase* GetTexture() const;
         TextureBase* GetTexture();
@@ -77,18 +77,6 @@
         Ref<TextureBase> mTexture;
     };
 
-    class TextureViewBuilder : public Builder<TextureViewBase> {
-      public:
-        TextureViewBuilder(DeviceBase* device, TextureBase* texture);
-
-      private:
-        friend class TextureViewBase;
-
-        TextureViewBase* GetResultImpl() override;
-
-        Ref<TextureBase> mTexture;
-    };
-
 }  // namespace dawn_native
 
 #endif  // DAWNNATIVE_TEXTURE_H_
diff --git a/src/dawn_native/d3d12/DeviceD3D12.cpp b/src/dawn_native/d3d12/DeviceD3D12.cpp
index 538bcad..fd23a2f 100644
--- a/src/dawn_native/d3d12/DeviceD3D12.cpp
+++ b/src/dawn_native/d3d12/DeviceD3D12.cpp
@@ -325,8 +325,8 @@
     ResultOrError<TextureBase*> Device::CreateTextureImpl(const TextureDescriptor* descriptor) {
         return new Texture(this, descriptor);
     }
-    TextureViewBase* Device::CreateTextureView(TextureViewBuilder* builder) {
-        return new TextureView(builder);
+    TextureViewBase* Device::CreateDefaultTextureView(TextureBase* texture) {
+        return new TextureView(texture);
     }
 
 }}  // namespace dawn_native::d3d12
diff --git a/src/dawn_native/d3d12/DeviceD3D12.h b/src/dawn_native/d3d12/DeviceD3D12.h
index fed11f5..7ec5d53 100644
--- a/src/dawn_native/d3d12/DeviceD3D12.h
+++ b/src/dawn_native/d3d12/DeviceD3D12.h
@@ -51,7 +51,7 @@
             RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
-        TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
+        TextureViewBase* CreateDefaultTextureView(TextureBase* texture) override;
 
         void TickImpl() override;
 
diff --git a/src/dawn_native/d3d12/TextureD3D12.cpp b/src/dawn_native/d3d12/TextureD3D12.cpp
index 4c16c20..da2e2bf 100644
--- a/src/dawn_native/d3d12/TextureD3D12.cpp
+++ b/src/dawn_native/d3d12/TextureD3D12.cpp
@@ -184,7 +184,7 @@
         mLastUsage = usage;
     }
 
-    TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
+    TextureView::TextureView(TextureBase* texture) : TextureViewBase(texture) {
         mSrvDesc.Format = D3D12TextureFormat(GetTexture()->GetFormat());
         mSrvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING;
         switch (GetTexture()->GetDimension()) {
diff --git a/src/dawn_native/d3d12/TextureD3D12.h b/src/dawn_native/d3d12/TextureD3D12.h
index 8492ba6..58a2488 100644
--- a/src/dawn_native/d3d12/TextureD3D12.h
+++ b/src/dawn_native/d3d12/TextureD3D12.h
@@ -47,7 +47,7 @@
 
     class TextureView : public TextureViewBase {
       public:
-        TextureView(TextureViewBuilder* builder);
+        TextureView(TextureBase* builder);
 
         const D3D12_SHADER_RESOURCE_VIEW_DESC& GetSRVDescriptor() const;
         D3D12_RENDER_TARGET_VIEW_DESC GetRTVDescriptor();
diff --git a/src/dawn_native/metal/DeviceMTL.h b/src/dawn_native/metal/DeviceMTL.h
index 045c285..ccb9627 100644
--- a/src/dawn_native/metal/DeviceMTL.h
+++ b/src/dawn_native/metal/DeviceMTL.h
@@ -47,7 +47,7 @@
             RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
-        TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
+        TextureViewBase* CreateDefaultTextureView(TextureBase* texture) override;
 
         void TickImpl() override;
 
diff --git a/src/dawn_native/metal/DeviceMTL.mm b/src/dawn_native/metal/DeviceMTL.mm
index b285ee3..9f95384 100644
--- a/src/dawn_native/metal/DeviceMTL.mm
+++ b/src/dawn_native/metal/DeviceMTL.mm
@@ -131,8 +131,8 @@
     ResultOrError<TextureBase*> Device::CreateTextureImpl(const TextureDescriptor* descriptor) {
         return new Texture(this, descriptor);
     }
-    TextureViewBase* Device::CreateTextureView(TextureViewBuilder* builder) {
-        return new TextureView(builder);
+    TextureViewBase* Device::CreateDefaultTextureView(TextureBase* texture) {
+        return new TextureView(texture);
     }
 
     void Device::TickImpl() {
diff --git a/src/dawn_native/metal/TextureMTL.h b/src/dawn_native/metal/TextureMTL.h
index 3057c36..6aca712 100644
--- a/src/dawn_native/metal/TextureMTL.h
+++ b/src/dawn_native/metal/TextureMTL.h
@@ -39,7 +39,7 @@
 
     class TextureView : public TextureViewBase {
       public:
-        TextureView(TextureViewBuilder* builder);
+        TextureView(TextureBase* texture);
     };
 
 }}  // namespace dawn_native::metal
diff --git a/src/dawn_native/metal/TextureMTL.mm b/src/dawn_native/metal/TextureMTL.mm
index 40f9c0f..0713dfb 100644
--- a/src/dawn_native/metal/TextureMTL.mm
+++ b/src/dawn_native/metal/TextureMTL.mm
@@ -98,7 +98,7 @@
         return mMtlTexture;
     }
 
-    TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
+    TextureView::TextureView(TextureBase* texture) : TextureViewBase(texture) {
     }
 
 }}  // namespace dawn_native::metal
diff --git a/src/dawn_native/null/NullBackend.cpp b/src/dawn_native/null/NullBackend.cpp
index 11f13c2..824ff7a 100644
--- a/src/dawn_native/null/NullBackend.cpp
+++ b/src/dawn_native/null/NullBackend.cpp
@@ -94,8 +94,8 @@
     ResultOrError<TextureBase*> Device::CreateTextureImpl(const TextureDescriptor* descriptor) {
         return new Texture(this, descriptor);
     }
-    TextureViewBase* Device::CreateTextureView(TextureViewBuilder* builder) {
-        return new TextureView(builder);
+    TextureViewBase* Device::CreateDefaultTextureView(TextureBase* texture) {
+        return new TextureView(texture);
     }
 
     void Device::TickImpl() {
diff --git a/src/dawn_native/null/NullBackend.h b/src/dawn_native/null/NullBackend.h
index 1a34814..e3aded0 100644
--- a/src/dawn_native/null/NullBackend.h
+++ b/src/dawn_native/null/NullBackend.h
@@ -105,7 +105,7 @@
             RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
-        TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
+        TextureViewBase* CreateDefaultTextureView(TextureBase* texture) override;
 
         void TickImpl() override;
 
diff --git a/src/dawn_native/opengl/DeviceGL.cpp b/src/dawn_native/opengl/DeviceGL.cpp
index 8066ebd..e2d60f5 100644
--- a/src/dawn_native/opengl/DeviceGL.cpp
+++ b/src/dawn_native/opengl/DeviceGL.cpp
@@ -102,8 +102,8 @@
     ResultOrError<TextureBase*> Device::CreateTextureImpl(const TextureDescriptor* descriptor) {
         return new Texture(this, descriptor);
     }
-    TextureViewBase* Device::CreateTextureView(TextureViewBuilder* builder) {
-        return new TextureView(builder);
+    TextureViewBase* Device::CreateDefaultTextureView(TextureBase* texture) {
+        return new TextureView(texture);
     }
 
     void Device::TickImpl() {
diff --git a/src/dawn_native/opengl/DeviceGL.h b/src/dawn_native/opengl/DeviceGL.h
index 87c27cf..05f21d3 100644
--- a/src/dawn_native/opengl/DeviceGL.h
+++ b/src/dawn_native/opengl/DeviceGL.h
@@ -42,7 +42,7 @@
             RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
-        TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
+        TextureViewBase* CreateDefaultTextureView(TextureBase* texture) override;
 
         void TickImpl() override;
 
diff --git a/src/dawn_native/opengl/TextureGL.cpp b/src/dawn_native/opengl/TextureGL.cpp
index 9033f6d..fdc85ff 100644
--- a/src/dawn_native/opengl/TextureGL.cpp
+++ b/src/dawn_native/opengl/TextureGL.cpp
@@ -129,7 +129,7 @@
 
     // TextureView
 
-    TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
+    TextureView::TextureView(TextureBase* texture) : TextureViewBase(texture) {
     }
 
 }}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/opengl/TextureGL.h b/src/dawn_native/opengl/TextureGL.h
index 7e40b1a..2fd7ffe 100644
--- a/src/dawn_native/opengl/TextureGL.h
+++ b/src/dawn_native/opengl/TextureGL.h
@@ -46,7 +46,7 @@
 
     class TextureView : public TextureViewBase {
       public:
-        TextureView(TextureViewBuilder* builder);
+        TextureView(TextureBase* texture);
     };
 
 }}  // namespace dawn_native::opengl
diff --git a/src/dawn_native/vulkan/DeviceVk.cpp b/src/dawn_native/vulkan/DeviceVk.cpp
index 6dc6c78..6e4d601 100644
--- a/src/dawn_native/vulkan/DeviceVk.cpp
+++ b/src/dawn_native/vulkan/DeviceVk.cpp
@@ -266,8 +266,8 @@
     ResultOrError<TextureBase*> Device::CreateTextureImpl(const TextureDescriptor* descriptor) {
         return new Texture(this, descriptor);
     }
-    TextureViewBase* Device::CreateTextureView(TextureViewBuilder* builder) {
-        return new TextureView(builder);
+    TextureViewBase* Device::CreateDefaultTextureView(TextureBase* texture) {
+        return new TextureView(texture);
     }
 
     void Device::TickImpl() {
diff --git a/src/dawn_native/vulkan/DeviceVk.h b/src/dawn_native/vulkan/DeviceVk.h
index 0ff8441..803101f 100644
--- a/src/dawn_native/vulkan/DeviceVk.h
+++ b/src/dawn_native/vulkan/DeviceVk.h
@@ -74,7 +74,7 @@
             RenderPassDescriptorBuilder* builder) override;
         RenderPipelineBase* CreateRenderPipeline(RenderPipelineBuilder* builder) override;
         SwapChainBase* CreateSwapChain(SwapChainBuilder* builder) override;
-        TextureViewBase* CreateTextureView(TextureViewBuilder* builder) override;
+        TextureViewBase* CreateDefaultTextureView(TextureBase* texture) override;
 
         void TickImpl() override;
 
diff --git a/src/dawn_native/vulkan/TextureVk.cpp b/src/dawn_native/vulkan/TextureVk.cpp
index 6deb69b..353e243 100644
--- a/src/dawn_native/vulkan/TextureVk.cpp
+++ b/src/dawn_native/vulkan/TextureVk.cpp
@@ -342,8 +342,8 @@
         mLastUsage = usage;
     }
 
-    TextureView::TextureView(TextureViewBuilder* builder) : TextureViewBase(builder) {
-        Device* device = ToBackend(builder->GetDevice());
+    TextureView::TextureView(TextureBase* texture) : TextureViewBase(texture) {
+        Device* device = ToBackend(texture->GetDevice());
 
         VkImageViewCreateInfo createInfo;
         createInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
diff --git a/src/dawn_native/vulkan/TextureVk.h b/src/dawn_native/vulkan/TextureVk.h
index d87e0a3..e1c4831 100644
--- a/src/dawn_native/vulkan/TextureVk.h
+++ b/src/dawn_native/vulkan/TextureVk.h
@@ -50,7 +50,7 @@
 
     class TextureView : public TextureViewBase {
       public:
-        TextureView(TextureViewBuilder* builder);
+        TextureView(TextureBase* texture);
         ~TextureView();
 
         VkImageView GetHandle() const;
diff --git a/src/tests/end2end/BlendStateTests.cpp b/src/tests/end2end/BlendStateTests.cpp
index 5a02280..b1f9d0e 100644
--- a/src/tests/end2end/BlendStateTests.cpp
+++ b/src/tests/end2end/BlendStateTests.cpp
@@ -702,7 +702,7 @@
 
     for (uint32_t i = 0; i < 4; ++i) {
         renderTargets[i] = device.CreateTexture(&descriptor);
-        renderTargetViews[i] = renderTargets[i].CreateTextureViewBuilder().GetResult();
+        renderTargetViews[i] = renderTargets[i].CreateDefaultTextureView();
     }
 
     dawn::RenderPassDescriptor renderpass = device.CreateRenderPassDescriptorBuilder()
diff --git a/src/tests/end2end/DepthStencilStateTests.cpp b/src/tests/end2end/DepthStencilStateTests.cpp
index 64e4bc4..ee9ce9e 100644
--- a/src/tests/end2end/DepthStencilStateTests.cpp
+++ b/src/tests/end2end/DepthStencilStateTests.cpp
@@ -35,7 +35,7 @@
             renderTargetDescriptor.usage = dawn::TextureUsageBit::OutputAttachment | dawn::TextureUsageBit::TransferSrc;
             renderTarget = device.CreateTexture(&renderTargetDescriptor);
 
-            renderTargetView = renderTarget.CreateTextureViewBuilder().GetResult();
+            renderTargetView = renderTarget.CreateDefaultTextureView();
 
             dawn::TextureDescriptor depthDescriptor;
             depthDescriptor.dimension = dawn::TextureDimension::e2D;
@@ -48,7 +48,7 @@
             depthDescriptor.usage = dawn::TextureUsageBit::OutputAttachment;
             depthTexture = device.CreateTexture(&depthDescriptor);
 
-            depthTextureView = depthTexture.CreateTextureViewBuilder().GetResult();
+            depthTextureView = depthTexture.CreateDefaultTextureView();
 
             renderpass = device.CreateRenderPassDescriptorBuilder()
                 .SetColorAttachment(0, renderTargetView, dawn::LoadOp::Clear)
diff --git a/src/tests/end2end/RenderPassLoadOpTests.cpp b/src/tests/end2end/RenderPassLoadOpTests.cpp
index dbafeb4..6b36a3d 100644
--- a/src/tests/end2end/RenderPassLoadOpTests.cpp
+++ b/src/tests/end2end/RenderPassLoadOpTests.cpp
@@ -66,7 +66,7 @@
             descriptor.usage = dawn::TextureUsageBit::OutputAttachment | dawn::TextureUsageBit::TransferSrc;
             renderTarget = device.CreateTexture(&descriptor);
 
-            renderTargetView = renderTarget.CreateTextureViewBuilder().GetResult();
+            renderTargetView = renderTarget.CreateDefaultTextureView();
 
             RGBA8 zero(0, 0, 0, 0);
             std::fill(expectZero.begin(), expectZero.end(), zero);
diff --git a/src/tests/end2end/SamplerTests.cpp b/src/tests/end2end/SamplerTests.cpp
index f0de366..c22f138 100644
--- a/src/tests/end2end/SamplerTests.cpp
+++ b/src/tests/end2end/SamplerTests.cpp
@@ -105,7 +105,7 @@
             .GetResult();
 
         queue.Submit(1, &copy);
-        mTextureView = texture.CreateTextureViewBuilder().GetResult();
+        mTextureView = texture.CreateDefaultTextureView();
     }
 
     void TestAddressModes(AddressModeTestCase u, AddressModeTestCase v, AddressModeTestCase w) {
diff --git a/src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp b/src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp
index 117d234..c6e1144 100644
--- a/src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp
+++ b/src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp
@@ -33,8 +33,7 @@
     descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
     dawn::Texture attachment = device.CreateTexture(&descriptor);
 
-    return attachment.CreateTextureViewBuilder()
-        .GetResult();
+    return attachment.CreateDefaultTextureView();
 }
 
 // A render pass with no attachments isn't valid
diff --git a/src/tests/unittests/validation/ValidationTest.cpp b/src/tests/unittests/validation/ValidationTest.cpp
index 85ba237..e01722e 100644
--- a/src/tests/unittests/validation/ValidationTest.cpp
+++ b/src/tests/unittests/validation/ValidationTest.cpp
@@ -85,8 +85,7 @@
         descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
 
         auto colorBuffer = device.CreateTexture(&descriptor);
-        auto colorView = colorBuffer.CreateTextureViewBuilder()
-            .GetResult();
+        auto colorView = colorBuffer.CreateDefaultTextureView();
 
         return device.CreateRenderPassDescriptorBuilder()
             .SetColorAttachment(0, colorView, dawn::LoadOp::Clear)
@@ -139,7 +138,7 @@
     descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
     dummy.attachment = device.CreateTexture(&descriptor);
 
-    dawn::TextureView view = AssertWillBeSuccess(dummy.attachment.CreateTextureViewBuilder()).GetResult();
+    dawn::TextureView view = dummy.attachment.CreateDefaultTextureView();
 
     dummy.renderPass = AssertWillBeSuccess(device.CreateRenderPassDescriptorBuilder())
         .SetColorAttachment(0, view, dawn::LoadOp::Clear)
diff --git a/src/utils/DawnHelpers.cpp b/src/utils/DawnHelpers.cpp
index 0871f26..69f594f 100644
--- a/src/utils/DawnHelpers.cpp
+++ b/src/utils/DawnHelpers.cpp
@@ -145,7 +145,7 @@
             dawn::TextureUsageBit::OutputAttachment | dawn::TextureUsageBit::TransferSrc;
         result.color = device.CreateTexture(&descriptor);
 
-        dawn::TextureView colorView = result.color.CreateTextureViewBuilder().GetResult();
+        dawn::TextureView colorView = result.color.CreateDefaultTextureView();
         result.renderPassInfo = device.CreateRenderPassDescriptorBuilder()
                                     .SetColorAttachment(0, colorView, dawn::LoadOp::Clear)
                                     .GetResult();