mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-21 18:59:21 +00:00
Add a per-thread proc table using thread local storage
In situations where both dawn_wire and dawn_native are used on separate threads (Chrome with --single-process or --in-process-gpu), it's desirable to have a per-thread proc table so that the WebGPU C++ API can still be used. This eliminates classes of bugs with manual reference/release errors. This also changes many of the GetProcs functions to return const references to the static proc tables known at compile time, instead of a copy. Bug: none Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240 Reviewed-by: Stephen White <senorblanco@chromium.org> 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
df90930683
commit
b04a92f01b
@@ -744,12 +744,9 @@ void DawnTestBase::SetUp() {
|
||||
clientDesc.serializer = mC2sBuf.get();
|
||||
|
||||
mWireClient.reset(new dawn_wire::WireClient(clientDesc));
|
||||
WGPUDevice clientDevice = mWireClient->GetDevice();
|
||||
DawnProcTable clientProcs = dawn_wire::WireClient::GetProcs();
|
||||
cDevice = mWireClient->GetDevice();
|
||||
procs = dawn_wire::client::GetProcs();
|
||||
mS2cBuf->SetHandler(mWireClient.get());
|
||||
|
||||
procs = clientProcs;
|
||||
cDevice = clientDevice;
|
||||
} else {
|
||||
procs = backendProcs;
|
||||
cDevice = backendDevice;
|
||||
|
||||
Reference in New Issue
Block a user