Add dawn_wire entrypoints to inject texture in the wire

This allows reserving a texture ID in the client and injecting textures
in the wire, so that the WebGPU control channel can create WebGPU
textures backed by SharedImages in Chromium.

BUG=941543

Change-Id: I1efcfe3dce024bb2d3592f22225407a97b641c1f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/5820
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
Corentin Wallez
2019-03-28 12:57:11 +00:00
committed by Commit Bot service account
parent e821ed6781
commit 339bd9d447
12 changed files with 153 additions and 1 deletions

View File

@@ -27,4 +27,15 @@ namespace dawn_wire { namespace client {
DeviceAllocator().Free(mDevice);
}
ReservedTexture Client::ReserveTexture(DawnDevice cDevice) {
Device* device = reinterpret_cast<Device*>(cDevice);
ObjectAllocator<Texture>::ObjectAndSerial* allocation = TextureAllocator().New(device);
ReservedTexture result;
result.texture = reinterpret_cast<DawnTexture>(allocation->object.get());
result.id = allocation->object->id;
result.generation = allocation->serial;
return result;
}
}} // namespace dawn_wire::client