mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-13 23:26:24 +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
@@ -95,7 +95,8 @@ class NativelyDefined(Type):
|
||||
# method arguments or structure members.
|
||||
class RecordMember:
|
||||
def __init__(self, name, typ, annotation, optional=False,
|
||||
is_return_value=False, default_value=None):
|
||||
is_return_value=False, default_value=None,
|
||||
skip_serialize=False):
|
||||
self.name = name
|
||||
self.type = typ
|
||||
self.annotation = annotation
|
||||
@@ -104,6 +105,7 @@ class RecordMember:
|
||||
self.is_return_value = is_return_value
|
||||
self.handle_type = None
|
||||
self.default_value = default_value
|
||||
self.skip_serialize = skip_serialize
|
||||
|
||||
def set_handle_type(self, handle_type):
|
||||
assert self.type.dict_name == "ObjectHandle"
|
||||
@@ -155,7 +157,8 @@ def linked_record_members(json_data, types):
|
||||
m.get('annotation', 'value'),
|
||||
optional=m.get('optional', False),
|
||||
is_return_value=m.get('is_return_value', False),
|
||||
default_value=m.get('default', None))
|
||||
default_value=m.get('default', None),
|
||||
skip_serialize=m.get('skip_serialize', False))
|
||||
handle_type = m.get('handle_type')
|
||||
if handle_type:
|
||||
member.set_handle_type(types[handle_type])
|
||||
|
||||
Reference in New Issue
Block a user