mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-21 18:59:21 +00:00
Reland "Add a per-thread proc table using thread local storage"
This is a reland of b04a92f01b
with the deletion of a duplicate exported function in dawn_wire that
was causing a compilation failure on Windows.
Original change's description:
> 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>
Bug: none
Change-Id: Id90e5372132cd93a2f8631c8185d0e71b01bc1af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29443
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
e85652b61d
commit
16e01affcb
@@ -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