Remove deprecated Wire APIs Bug: dawn:565 Change-Id: I577532347c79e64b418a93551027e89910c3ce68 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40480 Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org>
diff --git a/examples/SampleUtils.cpp b/examples/SampleUtils.cpp index 2522d20..48a8d60 100644 --- a/examples/SampleUtils.cpp +++ b/examples/SampleUtils.cpp
@@ -142,7 +142,6 @@ s2cBuf = new utils::TerribleCommandBuffer(); dawn_wire::WireServerDescriptor serverDesc = {}; - serverDesc.device = backendDevice; serverDesc.procs = &backendProcs; serverDesc.serializer = s2cBuf; @@ -153,9 +152,14 @@ clientDesc.serializer = c2sBuf; wireClient = new dawn_wire::WireClient(clientDesc); - cDevice = wireClient->GetDevice(); procs = dawn_wire::client::GetProcs(); s2cBuf->SetHandler(wireClient); + + auto deviceReservation = wireClient->ReserveDevice(); + wireServer->InjectDevice(backendDevice, deviceReservation.id, + deviceReservation.generation); + + cDevice = deviceReservation.device; } break; }
diff --git a/generator/templates/dawn_wire/WireCmd.cpp b/generator/templates/dawn_wire/WireCmd.cpp index 8199888..87c1fe3 100644 --- a/generator/templates/dawn_wire/WireCmd.cpp +++ b/generator/templates/dawn_wire/WireCmd.cpp
@@ -689,10 +689,6 @@ bool DeserializeWGPUDeviceProperties(WGPUDeviceProperties* deviceProperties, const volatile char* deserializeBuffer, size_t deserializeBufferSize) { - if (deserializeBufferSize == 0) { - // TODO(enga): Remove this after updating Chromium. - deserializeBufferSize = SerializedWGPUDevicePropertiesSize(deviceProperties); - } const volatile WGPUDevicePropertiesTransfer* transfer = nullptr; if (GetPtrFromBuffer(&deserializeBuffer, &deserializeBufferSize, 1, &transfer) != DeserializeResult::Success) {
diff --git a/src/dawn_wire/WireClient.cpp b/src/dawn_wire/WireClient.cpp index d20fdc9..481ced4 100644 --- a/src/dawn_wire/WireClient.cpp +++ b/src/dawn_wire/WireClient.cpp
@@ -25,10 +25,6 @@ mImpl.reset(); } - WGPUDevice WireClient::GetDevice() const { - return mImpl->GetDevice(); - } - const volatile char* WireClient::HandleCommands(const volatile char* commands, size_t size) { return mImpl->HandleCommands(commands, size); }
diff --git a/src/dawn_wire/WireServer.cpp b/src/dawn_wire/WireServer.cpp index 763b5fc..a3599f4 100644 --- a/src/dawn_wire/WireServer.cpp +++ b/src/dawn_wire/WireServer.cpp
@@ -18,8 +18,7 @@ namespace dawn_wire { WireServer::WireServer(const WireServerDescriptor& descriptor) - : mImpl(new server::Server(descriptor.device, - *descriptor.procs, + : mImpl(new server::Server(*descriptor.procs, descriptor.serializer, descriptor.memoryTransferService)) { }
diff --git a/src/dawn_wire/client/Client.cpp b/src/dawn_wire/client/Client.cpp index 4ceaaba..3b29f9e 100644 --- a/src/dawn_wire/client/Client.cpp +++ b/src/dawn_wire/client/Client.cpp
@@ -84,18 +84,6 @@ } } - WGPUDevice Client::GetDevice() { - // This function is deprecated. The concept of a "default" device on the wire - // will be removed in favor of ReserveDevice/InjectDevice. - if (mDevice == nullptr) { - ReservedDevice reservation = ReserveDevice(); - mDevice = FromAPI(reservation.device); - ASSERT(reservation.id == 1); - ASSERT(reservation.generation == 0); - } - return reinterpret_cast<WGPUDeviceImpl*>(mDevice); - } - ReservedTexture Client::ReserveTexture(WGPUDevice device) { auto* allocation = TextureAllocator().New(this);
diff --git a/src/dawn_wire/client/Client.h b/src/dawn_wire/client/Client.h index d0e3d5a..db9ed43 100644 --- a/src/dawn_wire/client/Client.h +++ b/src/dawn_wire/client/Client.h
@@ -39,8 +39,6 @@ const volatile char* HandleCommandsImpl(const volatile char* commands, size_t size) override; - WGPUDevice GetDevice(); - MemoryTransferService* GetMemoryTransferService() const { return mMemoryTransferService; } @@ -76,7 +74,6 @@ #include "dawn_wire/client/ClientPrototypes_autogen.inc" - Device* mDevice = nullptr; ChunkedCommandSerializer mSerializer; WireDeserializeAllocator mAllocator; MemoryTransferService* mMemoryTransferService = nullptr;
diff --git a/src/dawn_wire/server/Server.cpp b/src/dawn_wire/server/Server.cpp index 5da35fe..ea0d8fc 100644 --- a/src/dawn_wire/server/Server.cpp +++ b/src/dawn_wire/server/Server.cpp
@@ -17,8 +17,7 @@ namespace dawn_wire { namespace server { - Server::Server(WGPUDevice device, - const DawnProcTable& procs, + Server::Server(const DawnProcTable& procs, CommandSerializer* serializer, MemoryTransferService* memoryTransferService) : mSerializer(serializer), @@ -30,13 +29,6 @@ mOwnedMemoryTransferService = CreateInlineMemoryTransferService(); mMemoryTransferService = mOwnedMemoryTransferService.get(); } - - // For the deprecated initialization path: - // The client-server knowledge is bootstrapped with device 1, generation 0. - if (device != nullptr) { - bool success = InjectDevice(device, 1, 0); - ASSERT(success); - } } Server::~Server() {
diff --git a/src/dawn_wire/server/Server.h b/src/dawn_wire/server/Server.h index d073009..90d29c4 100644 --- a/src/dawn_wire/server/Server.h +++ b/src/dawn_wire/server/Server.h
@@ -151,8 +151,7 @@ class Server : public ServerBase { public: - Server(WGPUDevice device, - const DawnProcTable& procs, + Server(const DawnProcTable& procs, CommandSerializer* serializer, MemoryTransferService* memoryTransferService); ~Server() override;
diff --git a/src/fuzzers/DawnWireServerFuzzer.cpp b/src/fuzzers/DawnWireServerFuzzer.cpp index bee8bd1..d6cfe62 100644 --- a/src/fuzzers/DawnWireServerFuzzer.cpp +++ b/src/fuzzers/DawnWireServerFuzzer.cpp
@@ -152,11 +152,12 @@ DevNull devNull; dawn_wire::WireServerDescriptor serverDesc = {}; - serverDesc.device = device.Get(); serverDesc.procs = &procs; serverDesc.serializer = &devNull; std::unique_ptr<dawn_wire::WireServer> wireServer(new dawn_wire::WireServer(serverDesc)); + wireServer->InjectDevice(device.Get(), 1, 0); + device = nullptr; // Server owns the device now. wireServer->HandleCommands(reinterpret_cast<const char*>(data), size); @@ -173,9 +174,7 @@ } } - // Destroy the server before the device because it needs to free all objects. wireServer = nullptr; - device = nullptr; // If we support error injection, and an output directory was provided, output copies of the // original testcase data, prepended with the injected error index.
diff --git a/src/include/dawn_wire/Wire.h b/src/include/dawn_wire/Wire.h index 805feff..bb46701 100644 --- a/src/include/dawn_wire/Wire.h +++ b/src/include/dawn_wire/Wire.h
@@ -49,10 +49,9 @@ const WGPUDeviceProperties* deviceProperties, char* serializeBuffer); - // TODO(enga): Remove the default value after updating Chromium. DAWN_WIRE_EXPORT bool DeserializeWGPUDeviceProperties(WGPUDeviceProperties* deviceProperties, const volatile char* deserializeBuffer, - size_t deserializeBufferSize = 0); + size_t deserializeBufferSize); } // namespace dawn_wire
diff --git a/src/include/dawn_wire/WireClient.h b/src/include/dawn_wire/WireClient.h index 5f8b479..097fd1a 100644 --- a/src/include/dawn_wire/WireClient.h +++ b/src/include/dawn_wire/WireClient.h
@@ -54,7 +54,6 @@ WireClient(const WireClientDescriptor& descriptor); ~WireClient() override; - WGPUDevice GetDevice() const; const volatile char* HandleCommands(const volatile char* commands, size_t size) override final;
diff --git a/src/include/dawn_wire/WireServer.h b/src/include/dawn_wire/WireServer.h index 9ff6fed..59df6a4 100644 --- a/src/include/dawn_wire/WireServer.h +++ b/src/include/dawn_wire/WireServer.h
@@ -29,7 +29,6 @@ } // namespace server struct DAWN_WIRE_EXPORT WireServerDescriptor { - WGPUDevice device; const DawnProcTable* procs; CommandSerializer* serializer; server::MemoryTransferService* memoryTransferService = nullptr;
diff --git a/src/tests/unittests/GetProcAddressTests.cpp b/src/tests/unittests/GetProcAddressTests.cpp index 10f9c5c..8f90efc 100644 --- a/src/tests/unittests/GetProcAddressTests.cpp +++ b/src/tests/unittests/GetProcAddressTests.cpp
@@ -71,7 +71,7 @@ clientDesc.serializer = mC2sBuf.get(); mWireClient = std::make_unique<dawn_wire::WireClient>(clientDesc); - mDevice = wgpu::Device::Acquire(mWireClient->GetDevice()); + mDevice = wgpu::Device::Acquire(mWireClient->ReserveDevice().device); mProcs = dawn_wire::client::GetProcs(); break; }
diff --git a/src/tests/unittests/wire/WireTest.cpp b/src/tests/unittests/wire/WireTest.cpp index db27f8c..bf08eaf 100644 --- a/src/tests/unittests/wire/WireTest.cpp +++ b/src/tests/unittests/wire/WireTest.cpp
@@ -50,12 +50,10 @@ mC2sBuf = std::make_unique<utils::TerribleCommandBuffer>(mWireServer.get()); WireServerDescriptor serverDesc = {}; - serverDesc.device = mockDevice; serverDesc.procs = &mockProcs; serverDesc.serializer = mS2cBuf.get(); serverDesc.memoryTransferService = GetServerMemoryTransferService(); - EXPECT_CALL(api, DeviceReference(mockDevice)); mWireServer.reset(new WireServer(serverDesc)); mC2sBuf->SetHandler(mWireServer.get()); @@ -66,9 +64,13 @@ mWireClient.reset(new WireClient(clientDesc)); mS2cBuf->SetHandler(mWireClient.get()); - device = mWireClient->GetDevice(); dawnProcSetProcs(&dawn_wire::client::GetProcs()); + auto deviceReservation = mWireClient->ReserveDevice(); + EXPECT_CALL(api, DeviceReference(mockDevice)); + mWireServer->InjectDevice(mockDevice, deviceReservation.id, deviceReservation.generation); + + device = deviceReservation.device; apiDevice = mockDevice; // The GetQueue is done on WireClient startup so we expect it now.