D3D12: Empty CPU written range in Unmap calls on READBACK heaps

In order to remove a warning in the D3D debug layer, this patch passes
an empty range CPU written range to calls of Unmap on READBACK
buffers.

Bug: dawn:419
Change-Id: Ic4dcbf31beb3a257c3d88896f4bb97e19caf0cc6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/24301
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn_native/d3d12/AdapterD3D12.cpp b/src/dawn_native/d3d12/AdapterD3D12.cpp
index c6078e5..5b98915 100644
--- a/src/dawn_native/d3d12/AdapterD3D12.cpp
+++ b/src/dawn_native/d3d12/AdapterD3D12.cpp
@@ -144,10 +144,6 @@
             //
 
             // Remove after warning have been addressed
-            // https://crbug.com/dawn/419
-            D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY,
-
-            // Remove after warning have been addressed
             // https://crbug.com/dawn/421
             D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE,
         };
diff --git a/src/dawn_native/d3d12/BufferD3D12.cpp b/src/dawn_native/d3d12/BufferD3D12.cpp
index 2521e93..808b134 100644
--- a/src/dawn_native/d3d12/BufferD3D12.cpp
+++ b/src/dawn_native/d3d12/BufferD3D12.cpp
@@ -265,7 +265,9 @@
     }
 
     MaybeError Buffer::MapAtCreationImpl() {
-        DAWN_TRY(MapInternal(true, "D3D12 map at creation"));
+        // Setting isMapWrite to false on MapRead buffers to silence D3D12 debug layer warning.
+        bool isMapWrite = (GetUsage() & wgpu::BufferUsage::MapWrite) != 0;
+        DAWN_TRY(MapInternal(isMapWrite, "D3D12 map at creation"));
         return {};
     }