mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-17 08:57:26 +00:00
Add MemoryTransfer interfaces to the wire
This patch adds MemoryTransfer client/server interfaces and uses it to implement data transfers for buffer mapping. This patch also provides a default "inline" implementation of the MemoryTransfer which is used if the embedder does not provide one on initialization. Because implementations of MemoryTransfer perform their own serialization, a skip_serialize option is added to WireCmd records. Bug: dawn:156 Change-Id: I2fa035517628a3ad465b0bc18a6ffc477e2bd67f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8642 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Austin Eng <enga@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
49aae0f3bd
commit
6a5418a760
@@ -17,10 +17,16 @@
|
||||
|
||||
namespace dawn_wire { namespace client {
|
||||
|
||||
Client::Client(CommandSerializer* serializer)
|
||||
Client::Client(CommandSerializer* serializer, MemoryTransferService* memoryTransferService)
|
||||
: ClientBase(),
|
||||
mDevice(DeviceAllocator().New(this)->object.get()),
|
||||
mSerializer(serializer) {
|
||||
mSerializer(serializer),
|
||||
mMemoryTransferService(memoryTransferService) {
|
||||
if (mMemoryTransferService == nullptr) {
|
||||
// If a MemoryTransferService is not provided, fall back to inline memory.
|
||||
mOwnedMemoryTransferService = CreateInlineMemoryTransferService();
|
||||
mMemoryTransferService = mOwnedMemoryTransferService.get();
|
||||
}
|
||||
}
|
||||
|
||||
Client::~Client() {
|
||||
|
||||
Reference in New Issue
Block a user