5881e735f9
To support concurrent readers on multiple command queues/devices, Dawn must support importing via wait multiple fences and also export a signal fence. The previous implementation of using a single fence for waiting and signaling doesn't work for concurrent reads across queues. This CL adds support for specifying multiple wait fences for ExternalImageDXGI via a BeginAccess method that's meant to replace ProduceTexture. There's also an EndAccess method that returns a signal fence for the client. For performance reasons, we use the same fence as the signal fence that the Device uses internally, and record its value on the texture after ExecuteCommandLists. Therefore, the CL also makes the Device's internal fence a shared fence so that we can export it to the client. This CL also expands the ConcurrentExternalImageReadAccess test so that it tests fence synchronization across multiple devices. A number of test helpers also now take an optional device parameter so that we can use pixel value expectations with secondary devices. Bug: dawn:576 Change-Id: I6bc86808ede9b5aacf87667106cbd16731a12516 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/99746 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com> |
||
---|---|---|
.. | ||
native | ||
platform | ||
wire | ||
BUILD.gn | ||
EnumClassBitmasks.h | ||
dawn_proc.h | ||
dawn_thread_dispatch_proc.h | ||
dawn_wsi.h |