Commit Graph

153 Commits

Author SHA1 Message Date
Ben Clayton a9b856e10e Roll third_party/webgpu-cts/ e23ca12d5..900765392 (15 commits)
Update expectations and ts_sources

e23ca12d57..9007653926
 - 900765 Add positive case into invariant duplicate test. (#1307)
 - e02d75 Add more interpolate tests. (#1195)
 - 140d30 wgsl: Stub frexp test (#1305)
 - 039db3 wgsl: Stub acos builtin tests (#1306)
 - 239c46 Test invariant can only be applied once. (#1196)
 - 88062c wgsl: Stub faceFoward tests. (#1303)
 - 5083e8 wgsl: Stub fam builtin tests. (#1304)
 - efa12f wgsl: Stub exp2 builtin tests. (#1302)
 - 495556 wgsl: Add stub for exp builtin (#1301)
 - a6eaaf wgsl: Stub out cross builtin tests (#1300)
 - 9b55e6 wgsl: Add unimplemented stub for cosh builtin. (#1299)
 - 02adc5 cmdline: Add --list-unimplemented (#1214)
 - 8c2c49 wgsl: Add unimplemented quantizeToF16 spec (#1298)
 - 0d388d Sync WGSL spec descriptions to spec text. (#1296)
 - d54181 Fix TypeScript errors with build-out-node. (#1261)

Created with './tools/run cts roll'

Change-Id: Ieb2cf8bb719e03e3b2c929d7e10ee4fb39f01d1d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88003
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2022-04-27 14:23:43 +00:00
Ben Clayton d93d0c994b Roll third_party/webgpu-cts/ 501cb3643..e23ca12d5 (7 commits)
Update expectations and ts_sources

501cb36438..e23ca12d57
 - e23ca1 Remove old builtin combined function file. (#1220)
 - 15883e src/webgpu/util/texture/texel_data: Use `,` for member delimiters (#1215)
 - 719dff Add a test with a Unicode character which would normalize (#1194)
 - deeb73 Remove uniqueId and plan_autogen from WGSL tests. (#1219)
 - 47cb99 Add a quiet option to the test runner. (#1190)
 - 115652 Rename generic WGSL shader_io test case. (#1199)
 - 74dc27 shader/execution: Reduce `atan2` cases (#1198)

Created with './tools/run cts roll'

Change-Id: Id6d29fce42e9c647338795074a13e6a5a6034787
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/87980
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-04-26 11:55:02 +00:00
Ben Clayton 00e845cfdf Roll third_party/webgpu-cts/ 45d2ccd25..88c034819 (4 commits)
Update expectations and ts_sources

45d2ccd250..88c0348191
 - 88c034 ShaderValidationTest: remove string overload (#1184)
 - 93932e Split WGSL test files (#1183)
 - 40b847 Minor comment fixes
 - 6f46b8 Cleanup old WGSL test files. (#1181)

Created with './tools/run cts roll'

Change-Id: I35ea8385af6ddc09c43833d40395c80f7d060002
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/87703
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-04-23 01:11:22 +00:00
Shrek Shao 951d12e94c Add CTS DEPS as input for verify_gen_ts_dep_list action
Change-Id: Id8b2528054a32192227261d81643fd68352e5857
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/87304
Reviewed-by: Loko Kung <lokokung@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2022-04-20 02:34:55 +00:00
Shrek Shao 1d1fcdd005 Fix verify action by rerun gen_ts_dep_list.py
Change-Id: I11cdb607ca94a1c88c1e579779afb92116d12e29
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/87303
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2022-04-19 18:08:34 +00:00
Brandon Jones c6be53e172 Revert "Enable gn check for all build targets."
This reverts commit 61bc38fd52.

Reason for revert: Appears to have broken the Dawn->Chromium autoroller, which is now seeing Abseil linking issues on Mac and Linux.

Example failing roll: https://chromium-review.googlesource.com/c/chromium/src/+/3590451/

Example error log: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8816532799903001889/+/u/compile__with_patch_/stdout

Log Excerpt:
[802/31819] LINK ./dawn_unittests
FAILED: dawn_unittests 
TOOL_VERSION=1650247560 ../../build/toolchain/apple/linker_driver.py -Wcrl,strippath,../../build/mac_files/xcode_binaries/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -Wcrl,installnametoolpath,../../build/mac_files/xcode_binaries/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool ../../third_party/llvm-build/Release+Asserts/bin/clang++  -Werror -fuse-ld=lld -Wl,-fatal_warnings -Wl,--color-diagnostics -arch x86_64 -no-canonical-prefixes -Wl,-dead_strip -nostdlib++ -isysroot ../../build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -mmacosx-version-min=10.11.0 -fprofile-instr-generate -Wl,-ObjC -rpath @executable_path/ -o "./dawn_unittests" "@./dawn_unittests.rsp"
ld64.lld: error: duplicate symbol: __ZN4absl15AsciiStrToLowerEPNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE
>>> defined in obj/third_party/dawn/third_party/gn/abseil-cpp/strings/ascii.o
>>> defined in obj/third_party/abseil-cpp/absl/strings/strings/ascii.o

ld64.lld: error: duplicate symbol: __ZN4absl15AsciiStrToUpperEPNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE
>>> defined in obj/third_party/dawn/third_party/gn/abseil-cpp/strings/ascii.o
>>> defined in obj/third_party/abseil-cpp/absl/strings/strings/ascii.o

ld64.lld: error: duplicate symbol: __ZN4absl26RemoveExtraAsciiWhitespaceEPNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE
>>> defined in obj/third_party/dawn/third_party/gn/abseil-cpp/strings/ascii.o
>>> defined in obj/third_party/abseil-cpp/absl/strings/strings/ascii.o

Original change's description:
> Enable gn check for all build targets.
>
> This CL removes the `check_targets` entry from the .gn file which
> will enable checking all targets. Two of the GN targets have had
> missing dependencies added.
>
> The `gn/abseil-cpp/BUILD.gn` was referenced against the Chromium
> BUILD.gn for abseil to make sure the `public_deps` and `deps`
> match in the two versions. The paths are re-written to match
> the Dawn paths.
>
> Bug: dawn:1372
> Change-Id: I371e17ec9647e6627429be5c81eb7985da3cc5b3
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86861
> Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
> Kokoro: Kokoro <noreply+kokoro@google.com>
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:1372
Change-Id: I1ce6d62138cd99aa3a75c74eea0ac04ce5048b6b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/87161
Reviewed-by: Brandon Jones <bajones@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-04-18 17:35:53 +00:00
dan sinclair 61bc38fd52 Enable gn check for all build targets.
This CL removes the `check_targets` entry from the .gn file which
will enable checking all targets. Two of the GN targets have had
missing dependencies added.

The `gn/abseil-cpp/BUILD.gn` was referenced against the Chromium
BUILD.gn for abseil to make sure the `public_deps` and `deps`
match in the two versions. The paths are re-written to match
the Dawn paths.

Bug: dawn:1372
Change-Id: I371e17ec9647e6627429be5c81eb7985da3cc5b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86861
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-04-15 08:01:01 +00:00
Ben Clayton d9726b23cd Roll CTS and update expectations
Roll CTS to 9861f5e1d92559c03a8d769117124de97adc47c4
Update ts_sources.txt
Regenerate expectations

Change-Id: Ib422e2ee4d2e0c6307f06d0029eaed737fc5d2b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86880
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-04-14 14:54:30 +00:00
Corentin Wallez 8b8b641326 Roll third_party/webgpu-cts/ dcba3ac6b..5e83d8349 (25 commits)
dcba3ac6b8..5e83d8349b

$ git log dcba3ac6b..5e83d8349 --date=short --no-merges --format='%ad %ae %s'
2022-04-13 cwallez Reduce the length of subresource test names (#1164)
2022-04-13 cwallez zero_init: add constant zero to prevent driver unrolling loops. (#1163)
2022-04-13 jiawei.shao Add validation,resource_usages,texture,in_render_misc:* - Part II (#1161)
2022-04-13 jiawei.shao Add validation,resource_usages,texture,in_render_misc:* - Part I (#1157)
2022-04-11 enga Test view format reinterpretation (#1126)
2022-04-11 litherum Only 2D textures can be marked as render targets (#1155)
2022-04-08 cwallez operation,image_copy: Add support for depth16unorm (#1154)
2022-04-08 cwallez image_copy,mip_levels: reduce the mip level count. (#1151)
2022-04-08 cwallez depth_compare_func: Don't use 0.5 as depth16unorm rounds either way (#1152)
2022-04-08 cwallez Fix tests trying to copy aspects of depth-stencil textures. (#1146)
2022-04-08 cwallez depth_clip_clamp: only set stencilLoadOp and friends when needed. (#1153)
2022-04-08 cwallez Fix validation errors with depth/StencilLoad/StoreOp set when not allowed. (#1145)
2022-04-08 enga Shorten test and param lengths in resource_usages,texture,in_render_common:* (#1144)
2022-04-08 jiawei.shao Add validation,resource_usages,texture,in_render_common:* - Part V (#1150)
2022-04-06 cwallez val,buffer,create: Buffer sizes don't have to be multiple of 4. (#1140)
2022-04-06 cwallez image_copy: Ensure bufferOffset % 4 == 0 for depth-stencil. (#1139)
2022-04-06 jiawei.shao Add validation,resource_usages,texture,in_render_common:* - Part IV (#1132)
2022-04-05 enga Fix infinite recursion in CopyExternalImageToTexture.spec.ts (#1143)
2022-04-05 cwallez Use globalThis instead of self. (#1141)
2022-04-05 cwallez val/copyT2T,format_compat: Don't assume compressed is always 4x4 (#1134)
2022-04-05 cwallez Fix DSAttachment load/store ops being specified when disallowed. (#1136)
2022-04-05 cwallez Fix test of BGL binding limits to correctly check limits (#1137)
2022-04-04 cwallez Fix a validation error caused by WriteTexture bytesPerRow: t.width (#1133)
2022-04-04 cwallez Add unicode tests for entryPoint matching. (#1131)
2022-04-04 cwallez writeBuffer: an unaligned bufferOffset is a validation error. (#1129)

Created with:
  roll-dep third_party/webgpu-cts

Change-Id: I048afcaf3d33bcd67401412bf235181013ebf6d2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86533
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-04-13 18:52:46 +00:00
Ben Clayton 2bdabc748f Roll CTS and update expectations
Roll CTS to dcba3ac6b819abb0920e589ca1809ae5b5f87119
Update ts_sources.txt
Regenerate expectations

Change-Id: Ifa0cae3fa1abf9da9e4fbd63acf9cefe2683f50d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85560
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-04-11 18:38:51 +00:00
Corentin Wallez be352ea5b9 CMake: Add support with Swiftshader with DAWN_ENABLE_SWIFTSHADER
Change-Id: I2b3d906bac760a22f33104231a6341415cbff3b5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85365
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-04-11 16:48:43 +00:00
Ben Clayton bf8791bc9d CMake: Fix building of tint with fuzzers enabled
There's an implict dependency between including protobug and SPIR-V tools, as SPIR-V tools needs to know where protobuf lives.

Bug: dawn:1339
Change-Id: I22a95e44af5ae1cc39a9c3400bd319d86e434967
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86070
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-04-07 20:39:24 +00:00
Ryan Harrison e87ac76f7d Merge remote-tracking branch 'tint/main' into HEAD
Integrates Tint repo into Dawn

KIs:
- Building docs for Tint is turned off, because it fails due to lack
  of annotations in Dawn source files.
- Dawn CQ needs to be updated to run Tint specific tests
- Significant post-merge cleanup needed

R=bclayton,cwallez
BUG=dawn:1339

Change-Id: I6c9714a0030934edd6c51f3cac4684dcd59d1ea3
2022-04-06 15:37:27 -04:00
Loko Kung c96ef43684 Updates remainder of references to old vulkan headers and removes them.
Change-Id: I7b0563a9bd3a98c08b81569be04a9c45dbb61f0d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85420
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
2022-04-02 03:02:40 +00:00
Ryan Harrison 3374f43c31 Normalize DEPS to ease merging with Dawn
- Format specific targets to have the hash in the target rule instead
  of a variable.
- Only have the base part of the URL in a variable
- Use vulkan-deps instead of individual DEPS (spirv-tools,
  spirv-headers & glslang)

BUG=tint:1481

Change-Id: I871a656e26050698da2c77f4f39fec94a9c4f8a4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/84723
Reviewed-by: David Neto <dneto@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2022-03-28 18:01:02 +00:00
Alexander Vestin f2556ab35c Initial Android surface
Bug: dawn:286

Change-Id: I50b45706f031254ac5beba5c07c3c4c3d7f9ea12
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/84200
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-03-25 13:18:46 +00:00
Austin Eng 1cdea90f7b Add CTS telemetry harness support
Migrates harness support files added in
https://chromium-review.googlesource.com/c/chromium/src/+/3541414
into Dawn's repo.

Tested in
https://chromium-review.googlesource.com/c/chromium/src/+/3537743

Bug: chromium:1306640
Change-Id: I3000b1223219a1da293af910bf442570b70b7c92
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/84043
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-03-24 00:21:55 +00:00
Austin Eng b542f9d928 Roll third_party/webgpu-cts/ 90654f28f..87e74a93e (20 commits)
Includes changes to third_party/gn/webgpu-cts/BUILD.gn to make the Node build work.

90654f28f4..87e74a93e0

$ git log 90654f28f..87e74a93e --date=short --no-merges --format='%ad %ae %s'
2022-03-17 kainino Bugfix for getTextureCopyLayout introduced in #1068 (#1077)
2022-03-17 gman Implement Basic Worker WebGPU Test (#1075)
2022-03-17 rharrison Implement tests for floating point arithmetic expressions (#1073)
2022-03-18 jiawei.shao Add validation,resource_usages,texture,in_render_common:* - Part II (#1070)
2022-03-16 gman Fix Spelling Errors (#1074)
2022-03-16 kainino float32BitsToNumber/numberToFloat32Bits
2022-03-10 kainino reifyOrigin3D
2022-03-10 kainino move generatePrettyTable to its own file (no changes)
2022-03-10 kainino floatBitsToNumber, floatBitsToNormalULPFromZero, signExtend
2022-03-10 kainino Add getSubTextureCopyLayout helper
2022-03-14 tojiro Add validation tests for various aspects of render bundle creation and usage.
2022-03-16 rharrison Reduce instances of // prettier-ignore to improve readability (#1072)
2022-03-16 rharrison Implement `reverseBits` tests (#1071)
2022-03-16 jiawei.shao Change endPass to end in in_render_common.spec.ts (#1069)
2022-03-15 rharrison Reduce duplication of terms in builtin test strings (#1062)
2022-03-15 bclayton Add bitwise binary expression tests (#1064)
2022-03-15 rharrison Implement `countOneBits` tests (#1065)
2022-03-15 rharrison Remove test stubs for `isInfinite` and `isNormal` (#1063)
2022-03-16 shaobo.yan CTS: Color space conversion operation test for CopyToTexture (#1043)
2022-03-15 bclayton Fix limits of `log()` and `log2()` (#1060)

Created with:
  roll-dep third_party/webgpu-cts

Change-Id: I135a115184602a56d8554287856761ca21c6dce2
Bug: chromium:1306640
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/84040
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-03-19 00:50:18 +00:00
Kai Ninomiya 5c780d784c Add WebGPU CTS dep and build files
These build files are not yet used, but intended to be included by a
build file in Chromium. The test expectations file will move here too,
allowing Dawn/Tint changes to adjust test expectations in the same CL.

Bug: chromium:1306640
Change-Id: Id0be5c155ec7c79252e724cd64e54d1ea9f3dbda
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/83761
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
2022-03-17 21:43:17 +00:00
Stephen White a52abab38c Nuke SPIRV-Cross.
Change-Id: I1fc58d50ba3999e3a9b6f4e30a0799be301893de
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/79481
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-02-11 00:45:51 +00:00
Stephen White 25b3ed12e3 Enable the Tint/GLSL backend in the CMake build.
Don't build the Tint samples, because they require glslang.

Change-Id: I04ac6bb313fa8926bd161b91488d30c2c26ebb67
Bug: dawn:1217
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/79660
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-02-08 15:32:00 +00:00
Stephen White 89c730dbf3 GLSL: only build glslang if we're building samples.
We'll need this to build the GLSL backend in Dawn, since we don't want
glslang there.

Bug: tint:1217
Change-Id: Ied44ca89286c1d53a2e58a7083f0bfb859976770
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/79500
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-02-07 16:05:36 +00:00
Corentin Wallez facbc82d6c Revert "Roll third_party/glfw/ 947731113..df8d7bc89 (184 commits)"
This reverts commit 6c9a5920ea.

Reason for revert: Doesn't roll properly in Chromium.

Original change's description:
> Roll third_party/glfw/ 947731113..df8d7bc89 (184 commits)
>
> 9477311130..df8d7bc892
>
> $ git log 947731113..df8d7bc89 --date=short --no-merges --format='%ad %ae %s'
> 2021-12-31 elmindreda Wayland: Clean up modifier key event handler
> 2021-12-31 elmindreda Wayland: Clean up key translation
> 2021-12-30 elmindreda Wayland: Fix text input not following key repeat
> 2021-12-30 elmindreda Wayland: Clean up key event handler
> 2021-12-30 elmindreda Wayland: Require xkbcommon 0.5.0 or greater
> 2021-12-30 elmindreda Wayland: Clean up text input
> 2021-12-30 elmindreda Clean up internal Unicode code point handling
> 2021-12-29 elmindreda Wayland: Implement key name support
> 2021-12-30 elmindreda Move UTF-8 encoding to shared code
> 2021-12-30 elmindreda Wayland: Fix keys reported as wrong or unknown key
> 2021-12-28 elmindreda Wayland: Fix GLFW_VISIBLE affecting full screen
> 2021-12-28 elmindreda Fix gamma test not checking for NULL return value
> 2021-12-28 elmindreda Wayland: Fix missing damage event on window show
> 2021-12-28 elmindreda Wayland: Fix window not visible after initial swap
> 2021-12-27 elmindreda Wayland: Remove window monitor array pre-alloc
> 2021-12-27 elmindreda Wayland: Remove superfluous initialize to NULL
> 2021-12-27 elmindreda Wayland: Move window title cloning to creation
> 2021-12-27 elmindreda Wayland: Gather framebuffer transparency logic
> 2021-12-27 elmindreda Wayland: Move surface creation function
> 2021-12-26 elmindreda Wayland: Fix repeated key not released on defocus
> 2021-12-27 elmindreda Wayland: Control key repeat via timerfd state
> 2021-12-26 elmindreda Wayland: Clean up event pump
> 2021-12-30 linkmauve Wayland: Use correct action on fallback decoration
> 2021-12-27 elmindreda Wayland: Document delayed window showing
> 2021-12-26 elmindreda Update docs for specific Vulkan surface extensions
> 2021-12-22 elmindreda X11: Fix sonames for loaded libraries on OpenBSD
> 2021-12-22 elmindreda Add hiding and showing to interactive window test
> 2020-07-12 jason Wayland: Fix window hiding
> 2021-12-22 elmindreda Wayland: Fix key repeat continuing when refocused
> 2021-12-22 elmindreda Wayland: Fix duplicate focus event on activation
> 2021-12-14 linkmauve EGL: Use EGL_EXT_present_opaque when available
> 2021-12-14 linkmauve Wayland: Continue poll() if timerfd can’t be read
> 2020-06-05 lattis Wayland: Set O_NONBLOCK on repeat timerfd
> 2021-12-09 elmindreda X11: Add extension header paths to CMake target
> 2021-12-08 elmindreda Fix initial windowed mode size for test
> 2021-12-05 59504965+InKryption Add missing errors section for glfwGetGamepadName
> 2021-12-01 elmindreda Win32: Handle content scale error on creation
> 2021-12-01 elmindreda Win32: Fix bad content scale on monitor disconnect
> 2021-11-30 elmindreda Formatting
> 2021-11-30 elmindreda Cleanup
> 2021-11-02 elmindreda Add credits and update changelog
> 2021-10-31 stephen X11: Fix undefined behavior in glfwSetWindowIcon
> 2021-11-15 stephen Fix docs calling GLFW_CONTEXT_REVISION a hint
> 2021-11-16 elmindreda Gather Null specific platform selection logic
> 2021-11-09 elmindreda Update comments for global mutable data
> 2021-10-28 luzpaz Fix source comment typo
> 2021-11-25 elmindreda Add credit
> 2021-11-22 59504965+InKryption Add missing error to glfwGetClipboardString docs
> 2021-11-22 elmindreda Add credit
> 2021-11-18 jeebjp Cocoa: Use MACH_PORT_NULL for default IOKit port
> (...)
> 2021-07-14 elmindreda Add credit
> 2021-07-07 david.v.mckay realizing "as you would" is platform dependent
> 2021-07-07 david.v.mckay Clarify "as you would" for beginners.
> 2021-06-25 elmindreda Remove errors for gamepad element mismatch
> 2021-06-23 lazylumpster+github Consistent subsections in compile guide
> 2021-06-22 elmindreda Wayland: Fix missing constant on FreeBSD
> 2021-06-22 elmindreda Wayland: Fix case of epollshim find module name
> 2021-06-15 elmindreda Add missing changelog entry
> 2021-06-14 elmindreda Add notes on getting the HDC of a window on Win32
> 2021-06-09 elmindreda Fix some documentation URLs still using http:
> 2021-06-09 elmindreda Update IRC network to Libera.Chat
> 2021-06-09 elmindreda Add 'latest' branch to all CI builds
> 2021-06-09 elmindreda Move VS 2019 builds from AppVeyor to GH Actions
> 2021-06-07 elmindreda Migrate from Travis CI to GitHub Actions
> 2021-06-07 elmindreda Fix numeric conversion warnings in example
> 2021-05-14 elmindreda EGL: Fix creation of single-buffered windows
> 2021-05-14 elmindreda Move single/double-buffer filtering to backends
> 2021-05-13 elmindreda Skip initial buffer swap when single-buffered
> 2021-05-13 elmindreda Make GLFW_DOUBLEBUFFER a window attribute
> 2021-05-13 elmindreda Make monitor and joystick names static strings
> 2021-05-13 elmindreda Remove claim that EGL is not supported on macOS
> 2021-05-12 elmindreda Clarify documentation for hints
> 2021-05-12 elmindreda Fix header version macro descriptions in docs
> 2021-04-20 elmindreda Win32: Always define UNICODE and _UNICODE
> 2021-04-16 elmindreda Win32: Fix macros being enabled for other backends
> 2021-04-22 elmindreda Fix description of video mode ordering in docs
> 2021-04-15 konstantin Fix hardcoded runtime destination in CMake install
> 2021-04-12 elmindreda Win32: Fix compilation with standalone LLVM
> 2021-04-12 elmindreda Replace GL_ARB_debug_output in comments
> 2021-04-12 elmindreda Replace GL_ARB_debug_output in context guide
> 2021-04-11 elmindreda Add Vulkan device presentation support to glfwinfo
> 2021-04-11 elmindreda Add window surface creation to glfwinfo
> 2020-12-10 elmindreda Fix grammar in MoltenVK support docs
> 2021-04-11 elmindreda Add GLFW_X11_XCB_VULKAN_SURFACE flag to glfwinfo
> 2020-12-10 elmindreda Add docs for GLFW_X11_XCB_VULKAN_SURFACE
> 2020-10-23 caramelli.devel Add GLFW_X11_XCB_VULKAN_SURFACE init hint
> 2020-10-12 elmindreda Update USE_MSVC_RUNTIME_LIBRARY_DLL for CMake 3.15
> 2021-03-21 elmindreda Fix implicit double-to-float in linmath.h
> 2021-03-19 elmindreda Add issue number to changelog
> 2021-03-19 elmindreda Remove deprecated Doxygen tag
> 2021-03-15 elmindreda Win32: Add warning when option will have no effect
> 2020-08-20 elmindreda Ignore cached state when setting window attributes
> 2021-03-10 elmindreda Update linmath.h
> 2021-03-09 elmindreda Win32: Add MinGW-w64 detection to version string
> 2021-03-08 elmindreda X11: Fix attribs not applied on leaving fullscreen
> 2021-02-17 elmindreda Update changelog
> 2021-02-09 elmindreda Wayland: Move DPI fallback work to output done
> 2021-01-20 elmindreda Win32: Fix content area rescaling on older systems
> 2021-01-19 elmindreda Win32: Fix full screen windows affected by scaling
> 2021-02-10 elmindreda Cocoa: Fix console apps getting a dock icon
>
> Created with:
>   roll-dep third_party/glfw
>
> Bug: dawn:1246
> Change-Id: If6357019587d43bebc9eea79d8a5af0bf81d4734
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/75421
> Reviewed-by: Loko Kung <lokokung@google.com>
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>

TBR=cwallez@chromium.org,enga@chromium.org,lokokung@google.com

Change-Id: Iab8c93e4cb2b4b905a84c339ea47a5fbd4408caa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:1246
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/77942
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-01-25 14:22:05 +00:00
Corentin Wallez 6c9a5920ea Roll third_party/glfw/ 947731113..df8d7bc89 (184 commits)
9477311130..df8d7bc892

$ git log 947731113..df8d7bc89 --date=short --no-merges --format='%ad %ae %s'
2021-12-31 elmindreda Wayland: Clean up modifier key event handler
2021-12-31 elmindreda Wayland: Clean up key translation
2021-12-30 elmindreda Wayland: Fix text input not following key repeat
2021-12-30 elmindreda Wayland: Clean up key event handler
2021-12-30 elmindreda Wayland: Require xkbcommon 0.5.0 or greater
2021-12-30 elmindreda Wayland: Clean up text input
2021-12-30 elmindreda Clean up internal Unicode code point handling
2021-12-29 elmindreda Wayland: Implement key name support
2021-12-30 elmindreda Move UTF-8 encoding to shared code
2021-12-30 elmindreda Wayland: Fix keys reported as wrong or unknown key
2021-12-28 elmindreda Wayland: Fix GLFW_VISIBLE affecting full screen
2021-12-28 elmindreda Fix gamma test not checking for NULL return value
2021-12-28 elmindreda Wayland: Fix missing damage event on window show
2021-12-28 elmindreda Wayland: Fix window not visible after initial swap
2021-12-27 elmindreda Wayland: Remove window monitor array pre-alloc
2021-12-27 elmindreda Wayland: Remove superfluous initialize to NULL
2021-12-27 elmindreda Wayland: Move window title cloning to creation
2021-12-27 elmindreda Wayland: Gather framebuffer transparency logic
2021-12-27 elmindreda Wayland: Move surface creation function
2021-12-26 elmindreda Wayland: Fix repeated key not released on defocus
2021-12-27 elmindreda Wayland: Control key repeat via timerfd state
2021-12-26 elmindreda Wayland: Clean up event pump
2021-12-30 linkmauve Wayland: Use correct action on fallback decoration
2021-12-27 elmindreda Wayland: Document delayed window showing
2021-12-26 elmindreda Update docs for specific Vulkan surface extensions
2021-12-22 elmindreda X11: Fix sonames for loaded libraries on OpenBSD
2021-12-22 elmindreda Add hiding and showing to interactive window test
2020-07-12 jason Wayland: Fix window hiding
2021-12-22 elmindreda Wayland: Fix key repeat continuing when refocused
2021-12-22 elmindreda Wayland: Fix duplicate focus event on activation
2021-12-14 linkmauve EGL: Use EGL_EXT_present_opaque when available
2021-12-14 linkmauve Wayland: Continue poll() if timerfd can’t be read
2020-06-05 lattis Wayland: Set O_NONBLOCK on repeat timerfd
2021-12-09 elmindreda X11: Add extension header paths to CMake target
2021-12-08 elmindreda Fix initial windowed mode size for test
2021-12-05 59504965+InKryption Add missing errors section for glfwGetGamepadName
2021-12-01 elmindreda Win32: Handle content scale error on creation
2021-12-01 elmindreda Win32: Fix bad content scale on monitor disconnect
2021-11-30 elmindreda Formatting
2021-11-30 elmindreda Cleanup
2021-11-02 elmindreda Add credits and update changelog
2021-10-31 stephen X11: Fix undefined behavior in glfwSetWindowIcon
2021-11-15 stephen Fix docs calling GLFW_CONTEXT_REVISION a hint
2021-11-16 elmindreda Gather Null specific platform selection logic
2021-11-09 elmindreda Update comments for global mutable data
2021-10-28 luzpaz Fix source comment typo
2021-11-25 elmindreda Add credit
2021-11-22 59504965+InKryption Add missing error to glfwGetClipboardString docs
2021-11-22 elmindreda Add credit
2021-11-18 jeebjp Cocoa: Use MACH_PORT_NULL for default IOKit port
(...)
2021-07-14 elmindreda Add credit
2021-07-07 david.v.mckay realizing "as you would" is platform dependent
2021-07-07 david.v.mckay Clarify "as you would" for beginners.
2021-06-25 elmindreda Remove errors for gamepad element mismatch
2021-06-23 lazylumpster+github Consistent subsections in compile guide
2021-06-22 elmindreda Wayland: Fix missing constant on FreeBSD
2021-06-22 elmindreda Wayland: Fix case of epollshim find module name
2021-06-15 elmindreda Add missing changelog entry
2021-06-14 elmindreda Add notes on getting the HDC of a window on Win32
2021-06-09 elmindreda Fix some documentation URLs still using http:
2021-06-09 elmindreda Update IRC network to Libera.Chat
2021-06-09 elmindreda Add 'latest' branch to all CI builds
2021-06-09 elmindreda Move VS 2019 builds from AppVeyor to GH Actions
2021-06-07 elmindreda Migrate from Travis CI to GitHub Actions
2021-06-07 elmindreda Fix numeric conversion warnings in example
2021-05-14 elmindreda EGL: Fix creation of single-buffered windows
2021-05-14 elmindreda Move single/double-buffer filtering to backends
2021-05-13 elmindreda Skip initial buffer swap when single-buffered
2021-05-13 elmindreda Make GLFW_DOUBLEBUFFER a window attribute
2021-05-13 elmindreda Make monitor and joystick names static strings
2021-05-13 elmindreda Remove claim that EGL is not supported on macOS
2021-05-12 elmindreda Clarify documentation for hints
2021-05-12 elmindreda Fix header version macro descriptions in docs
2021-04-20 elmindreda Win32: Always define UNICODE and _UNICODE
2021-04-16 elmindreda Win32: Fix macros being enabled for other backends
2021-04-22 elmindreda Fix description of video mode ordering in docs
2021-04-15 konstantin Fix hardcoded runtime destination in CMake install
2021-04-12 elmindreda Win32: Fix compilation with standalone LLVM
2021-04-12 elmindreda Replace GL_ARB_debug_output in comments
2021-04-12 elmindreda Replace GL_ARB_debug_output in context guide
2021-04-11 elmindreda Add Vulkan device presentation support to glfwinfo
2021-04-11 elmindreda Add window surface creation to glfwinfo
2020-12-10 elmindreda Fix grammar in MoltenVK support docs
2021-04-11 elmindreda Add GLFW_X11_XCB_VULKAN_SURFACE flag to glfwinfo
2020-12-10 elmindreda Add docs for GLFW_X11_XCB_VULKAN_SURFACE
2020-10-23 caramelli.devel Add GLFW_X11_XCB_VULKAN_SURFACE init hint
2020-10-12 elmindreda Update USE_MSVC_RUNTIME_LIBRARY_DLL for CMake 3.15
2021-03-21 elmindreda Fix implicit double-to-float in linmath.h
2021-03-19 elmindreda Add issue number to changelog
2021-03-19 elmindreda Remove deprecated Doxygen tag
2021-03-15 elmindreda Win32: Add warning when option will have no effect
2020-08-20 elmindreda Ignore cached state when setting window attributes
2021-03-10 elmindreda Update linmath.h
2021-03-09 elmindreda Win32: Add MinGW-w64 detection to version string
2021-03-08 elmindreda X11: Fix attribs not applied on leaving fullscreen
2021-02-17 elmindreda Update changelog
2021-02-09 elmindreda Wayland: Move DPI fallback work to output done
2021-01-20 elmindreda Win32: Fix content area rescaling on older systems
2021-01-19 elmindreda Win32: Fix full screen windows affected by scaling
2021-02-10 elmindreda Cocoa: Fix console apps getting a dock icon

Created with:
  roll-dep third_party/glfw

Bug: dawn:1246
Change-Id: If6357019587d43bebc9eea79d8a5af0bf81d4734
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/75421
Reviewed-by: Loko Kung <lokokung@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-01-25 08:49:17 +00:00
Ben Clayton be2362b18c benchmarks: Add a basic set of benchmarks
Add google benchmark to the DEPs.

Implement a basic set of benchmarks for each of the writers and the WGSL parser.

Add build rules for CMake. GN build rules TODO.

Add a simple go tool (ported from Marl) to diff two benchmarks. Less
noisy than the one provided by google benchmark.

Bug: tint:1378
Change-Id: I73cf92c5d9fd2d3bfac8f264864fd774afbd5d01
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/76840
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2022-01-18 18:58:16 +00:00
James Price 38197e7b13 cmake: Always build Tint as a static library
The shared library build of Tint is currently broken with CMake, since
we set -fvisibility=hidden and do not export any of Tint's publicly
used APIs.

Change-Id: I63518fbd13e2adbf17aba79114c66d1567b8268b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/75780
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2022-01-11 16:34:55 +00:00
Corentin Wallez 5bd9445127 Remove CubeReflection and the dependency on GLM
Bug: None
Change-Id: Ie0948a8c14751777754360d276ce212507b74642
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/72581
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-12-14 08:42:36 +00:00
Corentin Wallez 959f1da637 Roll Vulkan headers to 1.2.201
Also delete vulkan.hpp that we don't use, and vulkan_fuchsia_extras that
have since then been upstreamed.

Also updates the fuchsia external import code to use the non-temp
extension.

Bug: dawn:221

Change-Id: I23e1bfedc5a18731be1e58d0bae1bddf6b0f45fa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/71601
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-12-02 20:27:58 +00:00
Ben Clayton 1affadcab7 CMake: Disable Tint's GLSL writer
Currently enabling this build target requires a dependency on glslang, which Dawn does not provide.
Just disable this target while we figure how we want to tackle this.

Bug: tint:1217
Change-Id: I79f2ef6e1b007e69ad4aa0d40500b0d1c6a52d6f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/66605
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-10-15 19:10:23 +00:00
Stephen White 7cf3b28a87 GLSL writer: validate all entry points with glslang.
Generate and validate all entry points individually.
This is required since GLSL has separate shader files, and
can only have a single "main" entry point.

Bug: tint:1217
Change-Id: Ie5cb510aaef3b7c8a7573f5fa9446815284afecb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/61920
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-14 14:39:36 +00:00
Aleksi Sapon 9a10674bb9 CMake: fix third parties when dawn is a sub-build
Set BUILD_TESTING to OFF, mainly so Abseil doesn't build its tests,
which aren't configured properly for sub-builds.

Use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR, so third
parties are built in the same directory as the rest of dawn.

Change-Id: I51a2c0887bfb42c1c21223c41bfcbd2816e34034
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-09-28 16:48:01 +00:00
Ben Clayton 30eeac7578 CMake: Simplify overriding of options / settings
Outer projects can just set() the option / setting before calling add_subdirectory() on Dawn.

Also provide a build directory for Dawn's third_party dependencies. Allows the outer project to specify a third_party directory that's out of the dawn tree.

Change-Id: I04c5f12b362ee9c9488b7b78a6aa5fa6f55dec98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64743
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-09-24 10:38:18 +00:00
Brandon Jones a04663c13d Added Abseil as a third-party dependency (Take 2)
Another attempt at https://dawn-review.googlesource.com/c/dawn/+/63780
Depends on https://skia-review.googlesource.com/c/skia/+/451638

This version of the CL fixes the Cmake and Skia compatibility issues
from the previous CL.

Bug: dawn:563
Change-Id: I41a7ee0aef1924df08a9be41e94effb7cd0025df
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64600
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-09-23 20:36:03 +00:00
Ben Clayton 0ecd67a3fa CMake: Fix build when DAWN_BUILD_EXAMPLES=0
glfw is used by several `src/utils/*.cpp` files, regardless of whether examples are being built or not.

Change-Id: Iba90fbf96e254979c72acf792af3cb86d889f5db
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64742
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-09-23 20:13:53 +00:00
Ben Clayton c19329c832 CMake: Only require SPIRV-Cross when enabling OpenGL backend
Change-Id: Ie6be1301c3f2f9877a9dfb04ab5025559b90d926
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64741
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-09-23 19:24:43 +00:00
Ben Clayton d1c6f83341 CMake: Massage CMakeLists for use by NodeJS bindings
Allow the third_party directory to be controlled by the outer sub-project.

Change-Id: I11030c75254c264c1955150bdf1983771b33b614
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64500
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-09-20 19:47:05 +00:00
Shrek Shao 2f8f2518e5 Revert "Added Abseil as a third-party dependency"
This reverts commit 020d69905e.

Reason for revert: Causing Dawn Skia roll build fails

https://task-scheduler.skia.org/job/AZXXBm9h9ozj3kKiRJM5

Original change's description:
> Added Abseil as a third-party dependency
>
> Using the version in the Chromium repo in order to make use of the .gn
> files it contains.
>
> Doing so also appears to require us to switch where we pull googletest
> from so that the directory structure matches what the Abseil build
> config expects. Fortunately this doesn't seem to cause issues in our
> tests.
>
> Bug: dawn:563
> Change-Id: I55831ad33f282b3d8b03b67826fd2776e5602d89
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63780
> Reviewed-by: Austin Eng <enga@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Auto-Submit: Brandon Jones <bajones@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:563
Change-Id: I0fc4e5fc73ab9b0887591135ec01adde990edd6f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64361
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-09-15 19:22:19 +00:00
Brandon Jones 020d69905e Added Abseil as a third-party dependency
Using the version in the Chromium repo in order to make use of the .gn
files it contains.

Doing so also appears to require us to switch where we pull googletest
from so that the directory structure matches what the Abseil build
config expects. Fortunately this doesn't seem to cause issues in our
tests.

Bug: dawn:563
Change-Id: I55831ad33f282b3d8b03b67826fd2776e5602d89
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63780
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
2021-09-14 16:56:15 +00:00
Alastair Donaldson 66b979d7fb Override CMake cache for fuzzer options
Enabling particular fuzzers requires that certain other CMake options
are enabled. For example, enabling the SPIR-V Tools fuzzer requires
enabling the CMake option for building spirv-fuzz. This change uses the
FORCE parameter to force the CMake cache to be overridden in such cases.
The change also adds FORCE to other options where it seems appropriate,
and improves some doc strings associated with CMake options.

Fixes: tint:1024
Change-Id: Ia72ddc0b3af625bb21ff1cc1c7121185ec3908b6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59204
Auto-Submit: Alastair Donaldson <afdx@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Vasyl Teliman <vasniktel@gmail.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
2021-07-22 10:14:34 +00:00
Vasyl Teliman c6bcab02fd Implement AST fuzzer
This change implements a new fuzzer. It mutates a WGSL shader by traversing
the AST of a program and applying various transformations that might or might not
be semantics preserving.

Change-Id: I6b144bd1067444c3f0b815ba1a646aaf6e739b52
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52160
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Vasyl Teliman <vasniktel@gmail.com>
Reviewed-by: Alastair Donaldson <allydonaldson@googlemail.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-07-13 12:01:25 +00:00
Vasyl Teliman 0b3611b8c8 Add spirv-tools fuzzer
This change adds a new tint fuzzer that uses SPIRV-Tools to fuzz SPIR-V binaries.
The fuzzer works on a corpus of SPIR-V shaders. For each shader from the corpus it uses
one of `spirv-fuzz`, `spirv-reduce` or `spirv-opt` to mutate and then runs the shader through
the Tint compiler in two steps:
- Converts the mutated shader to WGSL.
- Converts WGSL to some target language specified in the CLI arguments.

The list of all supported CLI arguments and their description is in the cli.h file.

Change-Id: I95c0741b78ccc600dd9a73c371d520bdf7814352
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41945
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Vasyl Teliman <vasniktel@gmail.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: Alastair Donaldson <allydonaldson@googlemail.com>
2021-06-24 18:10:46 +00:00
Corentin Wallez 9037669b2e Remove the dependency on shaderc and glslang.
With all tests converted to WGSL we only use shaderc to assemble SPIRV
assembly to binary. shaderc requires glslang but we don't use it at all.
By using SPIRV-Tools directly to assemble SPIR-V, we can remove both the
shaderc and glslang dependencies.

Bug: dawn:572
Bug: chromium:1150045
Change-Id: I1588428dfb9478e7b724478bec662d002ee920e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45765
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-03-24 16:02:13 +00:00
Corentin Wallez a9439199b7 Use Tint/WGSL unconditionally
Bug: dawn:706
Change-Id: I102c37e67e7833bb7441ed8a355a4411bd7b9fb9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45421
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-03-22 21:23:36 +00:00
Aleksi Sapon 9f6bc4e3a9 CMake fix
Add missing source files to CMakeLists.txt (introduced in e3f10e3d8e).

Change-Id: Iac013e6119e9401a2b94a43220ca8f11d86f82dd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/43961
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-03-11 16:27:00 +00:00
Antonio Maiorano 6ce58becd2 Fix VS clang-cl build
* Disable "undefined-var-template" in code, rather than in build files
* Add back some missing headers required when building in this context
* Make sure gtest/gmock do not override the default runtime library

Change-Id: I12c05943fc1d2dee4733ae70db7da026f67e0dad
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/44180
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-03-09 21:51:50 +00:00
dan sinclair 4e6b52a21b Revert "Use upstream SPIRV-Cross GN files."
This reverts commit 9fdbb74072.

Reason for revert: The SPIRV-Cross GN files have a bug which is fixed upstream, but Skia is on an old version of SPIRV-Cross so they don't have the fix. So, the build fails when rolling Dawn into Skia complaining about unknown `-fno-exceptions` on the windows bots. Need Skia to either move to vulkan-deps, or roll their spirv-cross forward before this can re-land.

Original change's description:
> Use upstream SPIRV-Cross GN files.
>
> Previously spirv-cross didn't have its own sources files but this
> changed recently so we should use them. This will ultimately allow
> sharing targets between multiple components in Chromium.
>
> Bug: chromium:1179277
> Change-Id: Ib4bb1884b9ba9c4c3804e96d8adbb8905c60c9a3
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41725
> Auto-Submit: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>

Bug: chromium:1179277
Change-Id: If1003bafa7b35f502c08b2dab91dd3d416aab077
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42420
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-02-24 18:34:21 +00:00
Corentin Wallez 9fdbb74072 Use upstream SPIRV-Cross GN files.
Previously spirv-cross didn't have its own sources files but this
changed recently so we should use them. This will ultimately allow
sharing targets between multiple components in Chromium.

Bug: chromium:1179277
Change-Id: Ib4bb1884b9ba9c4c3804e96d8adbb8905c60c9a3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41725
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-02-19 10:06:42 +00:00
dan sinclair c2118b0dcb Fixup build issues.
This CL adds some override decorations for various destructors and turns
of Werror for the spirv-tools build.

Change-Id: I10ac72cfaee247334f6db2918230283b1f975955
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41420
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2021-02-10 16:57:24 +00:00
Stephen White 30959dd4d2 Fix libEGL.so.1 issue with ANGLE build.
On Linux, ANGLE only builds a libEGL.so, while GLFW expects to find
libEGL.so.1. The fix is to force GLFW to load libEGL.so instead.

Bug: dawn:447
Change-Id: I4baa5b175a093b5b5d7a5c121085db3006c0e097
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39561
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2021-01-29 21:44:45 +00:00
Corentin Wallez 99d6c14a3b CMake: set DAWN_ENABLE_WGSL to ON by default.
Bug: dawn:605
Change-Id: Ie18e438b4db81c5197290afd02fb7392196cd1c6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/35283
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2020-12-09 15:13:57 +00:00