Remove MapRead/WriteAsync and CreateBufferMapped

Bug: dawn:445

Change-Id: I0b0755b6bb754d1fff99aa59b08362f89950e300
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/26301
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/src/dawn_native/Buffer.cpp b/src/dawn_native/Buffer.cpp
index 4dd1f3a..dcdfb9c 100644
--- a/src/dawn_native/Buffer.cpp
+++ b/src/dawn_native/Buffer.cpp
@@ -65,14 +65,6 @@
                 return {};
             }
 
-            MaybeError MapReadAsyncImpl() override {
-                UNREACHABLE();
-                return {};
-            }
-            MaybeError MapWriteAsyncImpl() override {
-                UNREACHABLE();
-                return {};
-            }
             MaybeError MapAsyncImpl(wgpu::MapMode mode, size_t offset, size_t size) override {
                 UNREACHABLE();
                 return {};
@@ -149,8 +141,6 @@
     BufferBase::~BufferBase() {
         if (mState == BufferState::Mapped) {
             ASSERT(!IsError());
-            CallMapReadCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown, nullptr, 0u);
-            CallMapWriteCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown, nullptr, 0u);
             CallMapCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown);
         }
     }
@@ -213,48 +203,6 @@
         }
     }
 
-    void BufferBase::CallMapReadCallback(uint32_t serial,
-                                         WGPUBufferMapAsyncStatus status,
-                                         const void* pointer,
-                                         uint64_t dataLength) {
-        ASSERT(!IsError());
-        if (mMapReadCallback != nullptr && serial == mMapSerial) {
-            ASSERT(mMapWriteCallback == nullptr);
-
-            // Tag the callback as fired before firing it, otherwise it could fire a second time if
-            // for example buffer.Unmap() is called inside the application-provided callback.
-            WGPUBufferMapReadCallback callback = mMapReadCallback;
-            mMapReadCallback = nullptr;
-
-            if (GetDevice()->IsLost()) {
-                callback(WGPUBufferMapAsyncStatus_DeviceLost, nullptr, 0, mMapUserdata);
-            } else {
-                callback(status, pointer, dataLength, mMapUserdata);
-            }
-        }
-    }
-
-    void BufferBase::CallMapWriteCallback(uint32_t serial,
-                                          WGPUBufferMapAsyncStatus status,
-                                          void* pointer,
-                                          uint64_t dataLength) {
-        ASSERT(!IsError());
-        if (mMapWriteCallback != nullptr && serial == mMapSerial) {
-            ASSERT(mMapReadCallback == nullptr);
-
-            // Tag the callback as fired before firing it, otherwise it could fire a second time if
-            // for example buffer.Unmap() is called inside the application-provided callback.
-            WGPUBufferMapWriteCallback callback = mMapWriteCallback;
-            mMapWriteCallback = nullptr;
-
-            if (GetDevice()->IsLost()) {
-                callback(WGPUBufferMapAsyncStatus_DeviceLost, nullptr, 0, mMapUserdata);
-            } else {
-                callback(status, pointer, dataLength, mMapUserdata);
-            }
-        }
-    }
-
     void BufferBase::CallMapCallback(uint32_t serial, WGPUBufferMapAsyncStatus status) {
         ASSERT(!IsError());
         if (mMapCallback != nullptr && serial == mMapSerial) {
@@ -271,66 +219,6 @@
         }
     }
 
-    void BufferBase::MapReadAsync(WGPUBufferMapReadCallback callback, void* userdata) {
-        GetDevice()->EmitDeprecationWarning(
-            "Buffer::MapReadAsync is deprecated. Use Buffer::MapAsync instead");
-
-        WGPUBufferMapAsyncStatus status;
-        if (GetDevice()->ConsumedError(ValidateMap(wgpu::BufferUsage::MapRead, &status))) {
-            callback(status, nullptr, 0, userdata);
-            return;
-        }
-        ASSERT(!IsError());
-
-        ASSERT(mMapWriteCallback == nullptr);
-
-        // TODO(cwallez@chromium.org): what to do on wraparound? Could cause crashes.
-        mMapSerial++;
-        mMapReadCallback = callback;
-        mMapUserdata = userdata;
-        mMapOffset = 0;
-        mMapSize = mSize;
-        mState = BufferState::Mapped;
-
-        if (GetDevice()->ConsumedError(MapReadAsyncImpl())) {
-            CallMapReadCallback(mMapSerial, WGPUBufferMapAsyncStatus_DeviceLost, nullptr, 0);
-            return;
-        }
-
-        MapRequestTracker* tracker = GetDevice()->GetMapRequestTracker();
-        tracker->Track(this, mMapSerial, MapType::Read);
-    }
-
-    void BufferBase::MapWriteAsync(WGPUBufferMapWriteCallback callback, void* userdata) {
-        GetDevice()->EmitDeprecationWarning(
-            "Buffer::MapReadAsync is deprecated. Use Buffer::MapAsync instead");
-
-        WGPUBufferMapAsyncStatus status;
-        if (GetDevice()->ConsumedError(ValidateMap(wgpu::BufferUsage::MapWrite, &status))) {
-            callback(status, nullptr, 0, userdata);
-            return;
-        }
-        ASSERT(!IsError());
-
-        ASSERT(mMapReadCallback == nullptr);
-
-        // TODO(cwallez@chromium.org): what to do on wraparound? Could cause crashes.
-        mMapSerial++;
-        mMapWriteCallback = callback;
-        mMapUserdata = userdata;
-        mMapOffset = 0;
-        mMapSize = mSize;
-        mState = BufferState::Mapped;
-
-        if (GetDevice()->ConsumedError(MapWriteAsyncImpl())) {
-            CallMapWriteCallback(mMapSerial, WGPUBufferMapAsyncStatus_DeviceLost, nullptr, 0);
-            return;
-        }
-
-        MapRequestTracker* tracker = GetDevice()->GetMapRequestTracker();
-        tracker->Track(this, mMapSerial, MapType::Write);
-    }
-
     void BufferBase::MapAsync(wgpu::MapMode mode,
                               size_t offset,
                               size_t size,
@@ -367,7 +255,7 @@
         }
 
         MapRequestTracker* tracker = GetDevice()->GetMapRequestTracker();
-        tracker->Track(this, mMapSerial, MapType::Async);
+        tracker->Track(this, mMapSerial);
     }
 
     void* BufferBase::GetMappedRange(size_t offset, size_t size) {
@@ -450,14 +338,10 @@
             // A map request can only be called once, so this will fire only if the request wasn't
             // completed before the Unmap.
             // Callbacks are not fired if there is no callback registered, so this is correct for
-            // CreateBufferMapped.
-            CallMapReadCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown, nullptr, 0u);
-            CallMapWriteCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown, nullptr, 0u);
+            // mappedAtCreation = true.
             CallMapCallback(mMapSerial, WGPUBufferMapAsyncStatus_Unknown);
             UnmapImpl();
 
-            mMapReadCallback = nullptr;
-            mMapWriteCallback = nullptr;
             mMapCallback = nullptr;
             mMapUserdata = 0;
 
@@ -599,7 +483,7 @@
         switch (mState) {
             case BufferState::Mapped:
             case BufferState::MappedAtCreation:
-                // A buffer may be in the Mapped state if it was created with CreateBufferMapped
+                // A buffer may be in the Mapped state if it was created with mappedAtCreation
                 // even if it did not have a mappable usage.
                 return {};
             case BufferState::Unmapped:
@@ -626,20 +510,8 @@
         mState = BufferState::Destroyed;
     }
 
-    void BufferBase::OnMapCommandSerialFinished(uint32_t mapSerial, MapType type) {
-        switch (type) {
-            case MapType::Read:
-                CallMapReadCallback(mapSerial, WGPUBufferMapAsyncStatus_Success,
-                                    GetMappedRangeInternal(false, 0, mSize), GetSize());
-                break;
-            case MapType::Write:
-                CallMapWriteCallback(mapSerial, WGPUBufferMapAsyncStatus_Success,
-                                     GetMappedRangeInternal(true, 0, mSize), GetSize());
-                break;
-            case MapType::Async:
-                CallMapCallback(mapSerial, WGPUBufferMapAsyncStatus_Success);
-                break;
-        }
+    void BufferBase::OnMapCommandSerialFinished(uint32_t mapSerial) {
+        CallMapCallback(mapSerial, WGPUBufferMapAsyncStatus_Success);
     }
 
     bool BufferBase::IsDataInitialized() const {