dawn-cmake/generator/templates
Loko Kung 2e1b359087 Add wire serialized command buffer padding.
Pads serialized wire command buffers to 8 bytes so that we don't have
misaligned write/reads which can cause SIGILL depending on platform and
compilation mode, i.e. -c dbg in google3 builds.

- Adds helpers for aligning sizeof calls.
- Adds constant for wire padding (8u).
- Modifies BufferConsumer to allocate according to padding. This
  guarantees that when we [de]serialize stuff, the padding should be
  equal on both sides.
- Modifies extra byte serialization code (adding CommandExtension
  struct). This makes it clearer that each extension needs to be
  padded independently. Otherwise, before in wire/client/Buffer.cpp,
  since the read/write handle sizes were being passed as a sum, but
  read out separately from the BufferConsumer, we corrupt our pointers.
- Adds some simple unit tests.

Bug: dawn:1334
Change-Id: Id80e7c01a34b9f01c3f02b3e6c04c3bb3ad0eff9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110501
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-11-22 23:19:43 +00:00
..
dawn Add wire serialized command buffer padding. 2022-11-22 23:19:43 +00:00
opengl tint->dawn: Move src/dawn_native -> src/dawn/native 2022-02-04 17:07:46 +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