7971bfe16f
1. Auto-generate mutex locking code in DawnNative's ProcTable's functions. Using a mutex owned by the related Device. - Unless the function/class has "no autolock" attribute (new) in dawn.json. In which cases, no locking code will be auto-generated. - Currently Instance, Adapter, Surface, Encoder classes and Reference/Release method have "no autolock". 2. Added Feature::ImplicitDeviceSynchronization to enable Device's mutex. - If this feature is disabled, lock/unlock Device's mutex is no-op. Auto-generated locking code will have no effect. This is the default. - This approach is used instead of generating two sets of ProcTable because it's cleaner and the internal code doesn't need to care about whether there is a mutex being locked or not. Furthermore, if there were two sets of ProcTable, and user used dawnProcSetProcs() to set global ProcTable, it would affect all other modules using different Devices. Even though those modules don't need thread safety. Bug: dawn:1662 Change-Id: I75f0d28959f333318e4159916b259131581f79f5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119940 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> |
||
---|---|---|
.. | ||
dawn | ||
opengl | ||
.clang-format | ||
BSD_LICENSE | ||
CPPLINT.cfg | ||
api.h | ||
api_cpp.cpp | ||
api_cpp.h | ||
api_cpp_print.h | ||
api_struct_info.json | ||
dawn_proc.c | ||
dawn_proc_table.h | ||
dawn_thread_dispatch_proc.cpp | ||
library_api_enum_tables.js | ||
mock_api.cpp | ||
mock_api.h |