dawn-cmake/generator/templates
Corentin Wallez 75f554d973 WireCmd: disallow optional members with length="otherMember"
This didn't make sense since these members can be specified to have no
data by setting the length to 0.

 - Prevent uses of this patten by adding an assert in WireCmd.cpp's
   generator.
 - Fix SetBindGroup dynamicOffset to not be optional but default to
   nullptr instead.

This issues would cause a read of uninitialized pointers becaus the
generator code looked like this:

  SetBindGroupCmd cmd;
  cmd.dynamicOffsetCount = record.dynamicOffsetCount; // 1
  bool has_dynamicOffset = record.has_dynamicOffsetl // false
  if (has_dynamicOffset) {
    cmd.dynamicOffsets = ...;
  }
  // Oh no! dynamicOffsets contains garbage even if dynamicOffsetCount
  // is set to 1. dawn_native will happily read it.

Bug: chromium:1220036
Change-Id: I5c468b639f671cef3be2fa64667a0bf114fc902b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54643
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-06-17 16:04:29 +00:00
..
dawn_native Add helper functions to iterate over ChainedStructs 2021-04-22 17:49:42 +00:00
dawn_wire WireCmd: disallow optional members with length="otherMember" 2021-06-17 16:04:29 +00:00
opengl Implement EGLImage external texture API for GL. 2021-06-03 16:19:16 +00:00
.clang-format Add .clang-format files and format more files 2020-07-15 19:51:17 +00:00
dawn_proc.c Add Instance and CreateInstance to webgpu.h 2020-01-10 13:06:48 +00:00
dawn_proc_table.h Reland "Add a per-thread proc table using thread local storage" 2020-10-06 16:13:42 +00:00
dawn_thread_dispatch_proc.cpp Reland "Add a per-thread proc table using thread local storage" 2020-10-06 16:13:42 +00:00
library_webgpu_enum_tables.js Generators for Emscripten 2020-01-28 23:54:38 +00:00
mock_webgpu.cpp Autogenerate all of the wire callback mocks 2020-12-17 17:59:37 +00:00
mock_webgpu.h Autogenerate all of the wire callback mocks 2020-12-17 17:59:37 +00:00
webgpu.h Add ability to generate typedefs from dawn.json 2021-02-08 19:48:06 +00:00
webgpu_cpp.cpp Niceify formatting in webgpu_cpp 2020-07-30 19:02:43 +00:00
webgpu_cpp.h Add ability to generate typedefs from dawn.json 2021-02-08 19:48:06 +00:00
webgpu_cpp_print.h Add utilities for printing Dawn enums and bitmasks 2021-06-01 18:49:12 +00:00
webgpu_struct_info.json Fixes for Emscripten generators 2020-07-15 08:57:49 +00:00