dawn-cmake/generator/templates
Le Hoang Quyen 7971bfe16f Add an option to enable implicit device synchronization.
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>
2023-04-05 19:35:07 +00:00
..
dawn Add an option to enable implicit device synchronization. 2023-04-05 19:35:07 +00:00
opengl Dawn: Break dependency on ANGLE 2023-03-16 14:31:25 +00:00
.clang-format
BSD_LICENSE
CPPLINT.cfg
api.h dawn.json: Add the "chain roots" data for chained structs. 2022-07-14 12:58:25 +00:00
api_cpp.cpp
api_cpp.h Mark descriptor/options as optional for requestDevice/Adapter 2022-07-26 17:36:44 +00:00
api_cpp_print.h
api_struct_info.json Fix inclusive language presubmit 2022-04-19 22:25:45 +00:00
dawn_proc.c
dawn_proc_table.h
dawn_thread_dispatch_proc.cpp
library_api_enum_tables.js Fix inclusive language presubmit 2022-04-19 22:25:45 +00:00
mock_api.cpp
mock_api.h Convert all dawn includes to use non-system include syntax. 2022-04-19 14:24:04 +00:00