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 Add .clang-format files and format more files 2020-07-15 19:51:17 +00:00
BSD_LICENSE Further api.h license issue fixes 2021-12-14 01:06:15 +00:00
CPPLINT.cfg Enable build/header_guard 2022-04-11 18:30:50 +00:00
api.h dawn.json: Add the "chain roots" data for chained structs. 2022-07-14 12:58:25 +00:00
api_cpp.cpp Template hardcode functions in webgpu_cpp.cpp 2021-12-14 02:20:15 +00:00
api_cpp.h Mark descriptor/options as optional for requestDevice/Adapter 2022-07-26 17:36:44 +00:00
api_cpp_print.h Make templates webgpu_cpp.h and webgpu_cpp_print.h flexible 2021-12-07 00:46:35 +00:00
api_struct_info.json Fix inclusive language presubmit 2022-04-19 22:25:45 +00:00
dawn_proc.c Replace hardcode functions in templates 2021-12-10 01:35:19 +00:00
dawn_proc_table.h Make the prefix of proc table configurable in api.json 2021-12-05 05:29:44 +00:00
dawn_thread_dispatch_proc.cpp Replace hardcode functions in templates 2021-12-10 01:35:19 +00:00
library_api_enum_tables.js Fix inclusive language presubmit 2022-04-19 22:25:45 +00:00
mock_api.cpp Make the templates of mocking api flexible 2021-12-15 04:35:26 +00:00
mock_api.h Convert all dawn includes to use non-system include syntax. 2022-04-19 14:24:04 +00:00