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

@@ -25,6 +25,12 @@ namespace dawn_wire {
class Client;
}
struct ReservedTexture {
DawnTexture texture;
uint32_t id;
uint32_t generation;
};
class DAWN_WIRE_EXPORT WireClient : public CommandHandler {
public:
WireClient(CommandSerializer* serializer);
@@ -34,6 +40,8 @@ namespace dawn_wire {
DawnProcTable GetProcs() const;
const char* HandleCommands(const char* commands, size_t size) override final;
ReservedTexture ReserveTexture(DawnDevice device);
private:
std::unique_ptr<client::Client> mImpl;
};

View File

@@ -32,6 +32,8 @@ namespace dawn_wire {
const char* HandleCommands(const char* commands, size_t size) override final;
bool InjectTexture(DawnTexture texture, uint32_t id, uint32_t generation);
private:
std::unique_ptr<server::Server> mImpl;
};