Commit Graph

1449 Commits

Author SHA1 Message Date
dan sinclair 1aadbd4e47 Add case_selectors update
This CL adds the missing case_selectors option from the grammar updates.

Change-Id: Ia6c110e917dd574711d396fb34ad53a2a67cf1fe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22306
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 16:56:46 +00:00
dan sinclair 59fc026bcf [spirv-writer] Generate kill statements.
This Cl adds preliminary support for generating Kill commands. This may
change in the future if the semantics of kill are set in WGSL to not
match OpKill.

Bug: tint:5
Change-Id: Id466a1b26b37867a26373b93f56d627a0491f47f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22240
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 13:44:43 +00:00
dan sinclair 091b2b5fc8 Updating to match WGSL spec.
This CL updates a few names, addeds a return_stmt method and re-orders
some code to closer match the current WGSL specification.

Change-Id: I388be1c22d5d10229fdfcdb2ff929c410f5ae638
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22305
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 13:44:06 +00:00
dan sinclair 46e959da39 Update intrinsics in the grammar.
The intrinsic methods were removed from the WGSL grammar and are treated
as builtin functions. This Cl updates Tint to match.

Bug: tint:41
Change-Id: I3f9ff6c17f1ca57ad159d883fd5a966657caeb4f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22301
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 13:43:22 +00:00
dan sinclair 1d2ad81eb9 Update WGSL grammar builtins to match spec.
This CL removes the builtin_decoration from the parser in favour of
using IDENT tokens for builtins. We still convert to an enum in the
parser and validate the value provided.

Bug: tint:41
Change-Id: If5dc3844e3325c75951e7b320c123cf66cb8e106
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22300
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 13:43:11 +00:00
dan sinclair 0647d23607 [spirv-writer] Remove stpq support.
This CL removes conversion of stpq to indexes for a vector swizzle as
they are not supported by WGSL.

Change-Id: I3fde18a8a4205cae83b32ce2830a6df48a8f22f4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22162
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-27 13:08:29 +00:00
dan sinclair 5370390096 Remove NOP.
The NOP command was added for complete SPIR-V bijectivity which is no
longer a goal of WGSL. The NOP command has been removed from the spec,
so remove from Tint.

Change-Id: Ic640d9d3b987a19668dc169ff549444921c5bbb8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22160
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-26 15:05:54 +00:00
dan sinclair 53f2026fc5 Add if with else continue test.
This Cl adds a test for a continue inside an else case.

Bug: tint:5
Change-Id: If9606b18ff8c2af6eb271aa37c404f36097f592e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22060
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-21 17:46:02 +00:00
dan sinclair 615aaed508 [spirv-writer] Fill out cast code.
This Cl adds tests for more of the cast code along with adding a few
missing cast cases.

Bug: tint:5
Change-Id: I417d46661bb310f27329f3e2459b76aa61a49d31
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22040
Reviewed-by: David Neto <dneto@google.com>
2020-05-21 13:57:07 +00:00
David Neto 7e5e02f805 [spirv-reader] Support access chain
Bug: tint:3
Change-Id: Ibdb6698c4a97ce66ed533a9bf007bc352a09244e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21641
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-20 20:36:18 +00:00
David Neto 91c5a496d2 [wgsl-writer] Function var decls don't mention storage class
From WGSL decision in https://github.com/gpuweb/gpuweb/issues/654

Change-Id: I570475cf0d069043d70794d7b92626798963bfdc
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21363
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-20 18:33:54 +00:00
David Neto 1bbc1cb2c1 [spirv-reader] Support null vector, matrix, arr, struct
Bug: tint:3
Change-Id: I2fa25e5d28b965de4a419719e37bc999be8489ea
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21581
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-19 14:46:41 +00:00
David Neto b275fd2f0e [spirv-reader] Systematic bad construct exit tests
Do so systmatically. Before we had tested some as a side effect
of other objectives.

Fix the error message for when we have a bad exit from a loop construct
that bypasses not only the continue construct but the loop merge block
itself.

Bug: tint:3
Change-Id: Iaf8fc9bcd3162002aa906efa90a244ef5f439911
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21580
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-19 14:43:19 +00:00
David Neto e3d235662a [spirv-reader] Remove TODO about nested selections
Remove TOOD about special code for finding badly nested selections.
This is already adequately covered by the dominance-violation checks,
and related tests:

  ClassifyCFGEdges_DomViolation_BeforeIfToSelectionInterior
  ClassifyCFGEdges_DomViolation_BeforeSwitchToSelectionInterior
  ClassifyCFGEdges_DomViolation_BeforeLoopToLoopBodyInterior
  ClassifyCFGEdges_DomViolation_BeforeContinueToContinueInterior
  ClassifyCFGEdges_DomViolation_AfterContinueToContinueInterior

Bug: tint:3
Change-Id: I8c547474d1422a54078d748b39a7d22a500d5d1d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21482
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-19 14:37:10 +00:00
David Neto c02de8fc45 [spirv-reader] remove redundant disabled test
ClassifyCFGEdges_Forward_LoopToContinue is already covered via
ClassifyCFGEdges_LoopContinue_LoopBodyToContinue and ...ConditionalFromNestedIf
and other LoopContinue cases

Bug: tint:3
Change-Id: I4a89a82c0c9a08939036a20f13932c18e1f90df6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21560
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-19 14:34:27 +00:00
David Neto 9f7297c766 [spirv-reader] Unordered float compares
Unordered float compares are not supported directly by WGSL.
Translate them as negated ordered compares.

Bug: tint:3
Change-Id: I4fea7c924054cffc9a39a8be3b3d9f088d302114
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21540
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-14 21:43:27 +00:00
Ryan Harrison 4484fe128d Add include path to public config for BUILD.gn
Needed for Dawn integration

Change-Id: I0d9958b583b26afdbd258e34a7dd1fdf788f3eeb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21720
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-14 14:47:51 +00:00
Ryan Harrison 0bbf1e7460 Small fix for BUILD.gn
Change-Id: I1a43eeebff6d952e76a7247754dc2a89694ab064
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21500
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-11 15:45:51 +00:00
David Neto 3e025a4e74 Rolling 6 dependencies
Roll build/ ad38f3729..6f820da25 (71 commits)

ad38f37298..6f820da254

$ git log ad38f3729..6f820da25 --date=short --no-merges --format='%ad %ae %s'
2020-05-08 thakis mac: Stop using -all_load.
2020-05-08 chromium-autoroll Roll Fuchsia SDK from 0.20200507.3.1 to 0.20200508.0.1
2020-05-08 hzjian Remove package name check in write_build_config.py
2020-05-08 chromium-autoroll Roll Fuchsia SDK from 0.20200507.2.1 to 0.20200507.3.1
2020-05-07 tcwang Disable -Wmax-tokens for Chrome OS
2020-05-07 cduvall Move system_webview_apk_target to declare_args()
2020-05-07 wnwen Android: Lint chrome_public_test_apk
2020-05-07 chromium-autoroll Roll Fuchsia SDK from 0.20200507.1.1 to 0.20200507.2.1
2020-05-07 agrieve Android: Use different outputs for turbine vs ijar
2020-05-07 agrieve Android: Use non-dummy multiprocessing in compile_resources.py
2020-05-07 chromium-autoroll Roll Fuchsia SDK from 0.20200505.3.1 to 0.20200507.1.1
2020-05-07 bjoyce Remove jetifcation of resources.
2020-05-07 agrieve Android: Add .arsc resource filtering
2020-05-06 perrier Reland "[Android] add sr-Latn to locales.gni and resource packs"
2020-05-06 agrieve Stop building monochrome_public_apk on android-binary-size trybot
2020-05-06 thomasanderson Reland "Remove third_party/binutils""
2020-05-06 wnwen Android: Run lint only on nontest apks and bundles
2020-05-06 agrieve AndroidWebView: Add assert_no_deps for material_design
2020-05-06 agrieve generate_gradle.py: Use ninja from PATH
2020-05-06 wez Revert "Roll Fuchsia SDK from 0.20200505.3.1 to 0.20200506.0.1"
2020-05-06 chromium-autoroll Roll Fuchsia SDK from 0.20200505.3.1 to 0.20200506.0.1
2020-05-06 steveroe [fuchsia] Add test runner diagnostics for emulator exit status.
2020-05-06 chromium-autoroll Roll Fuchsia SDK from 0.20200505.2.1 to 0.20200505.3.1
2020-05-05 sclittle Revert "Remove third_party/binutils""
2020-05-05 thomasanderson Remove third_party/binutils"
2020-05-05 chromium-autoroll Roll Fuchsia SDK from 0.20200505.1.1 to 0.20200505.2.1
2020-05-05 hypan emulator: Add textpb files for avd creation
2020-05-05 sebmarchand Enable PGO for all Win official builds
2020-05-05 hzjian Make crazy. library prefixing an explicit build setting
2020-05-05 spang [fuchsia] Add scenic to test manifest
2020-05-05 agrieve Android: Disable proguard mapping for incremental APKs in release
2020-05-05 chromium-autoroll Roll Fuchsia SDK from 0.20200504.3.1 to 0.20200505.1.1
2020-05-05 cduvall Only add WebLayer translations package for bundles
2020-05-05 chromium-autoroll Roll Fuchsia SDK from 0.20200504.2.1 to 0.20200504.3.1
2020-05-04 cduvall [WebLayer] Fix crash when other shared resource library is loaded
2020-05-04 sebmarchand Enable PGO for all Mac official builds
2020-05-04 cduvall Mark WebLayer specific resources as final in standalone WebView
2020-05-04 wez [fuchsia] Suppress [[[ELF ...]]] lines in symbolizer output.
2020-05-04 yuezhanggg Add strings for conditional tab strip
2020-05-04 chromium-autoroll Roll Fuchsia SDK from 0.20200504.1.1 to 0.20200504.2.1
2020-05-04 thakis mac: Disable assert for using hermetic xcode for official builds.
2020-05-04 chromium-autoroll Roll Fuchsia SDK from 0.20200503.3.1 to 0.20200504.1.1
2020-05-04 chromium-autoroll Roll Fuchsia SDK from 0.20200503.2.1 to 0.20200503.3.1
2020-05-03 chromium-autoroll Roll Fuchsia SDK from 0.20200503.1.1 to 0.20200503.2.1
2020-05-03 chromium-autoroll Roll Fuchsia SDK from 0.20200503.0.1 to 0.20200503.1.1
2020-05-03 chromium-autoroll Roll Fuchsia SDK from 0.20200501.3.3 to 0.20200503.0.1
2020-05-03 sebmarchand Revert "Automatically do a PGO build when setting the official bit on Win & Mac"
2020-05-02 thakis Reland "mac: Reorganize how SDK search paths are set when using hermetic Xcode."
2020-05-02 sebmarchand Automatically do a PGO build when setting the official bit on Win & Mac
2020-05-02 chromium-autoroll Roll Fuchsia SDK from 0.20200501.2.1 to 0.20200501.3.3
2020-05-01 bjoyce Add enable_jetify dummy step.
2020-05-01 mthiesse Allow test apks to run even when test server spawning fails
2020-05-01 adithyas Revert "mac: Reorganize how SDK search paths are set when using hermetic Xcode."
2020-05-01 thakis mac: Reorganize how SDK search paths are set when using hermetic Xcode.
2020-05-01 bpastene chromeos: Allow arbitrary env vars to be specified for device tests.
2020-05-01 chromium-autoroll Roll Fuchsia SDK from 0.20200501.1.1 to 0.20200501.2.1
2020-05-01 mheikal Separate native libs expectation files by target_cpu
2020-05-01 chromium-autoroll Roll Fuchsia SDK from 0.20200430.3.1 to 0.20200501.1.1
2020-05-01 chromium-autoroll Roll Fuchsia SDK from 0.20200430.2.2 to 0.20200430.3.1
2020-05-01 mheikal Create separate targets for expectation checking
2020-04-30 wez [fuchsia] Cleanup unnecessary variables from Fuchsia's common.py.
2020-04-30 chromium-autoroll Roll Fuchsia SDK from 0.20200430.1.1 to 0.20200430.2.2
2020-04-30 thomasanderson Keep symbols TOC files unsorted
2020-04-30 hzjian Add support for AndroidManifest check for downstream targets
2020-04-30 cduvall Fix WebView bundles not having translations in base modules
2020-04-30 agrieve Reland: Android: Use R8 for dex splitting
2020-04-30 chromium-autoroll Roll Fuchsia SDK from 0.20200430.0.1 to 0.20200430.1.1
2020-04-30 mthiesse Remove slow (dead?) debug code in local_device_gtest_run.py
2020-04-30 nator [WebLayer] Actually filter components_chromium_strings.
2020-04-30 chromium-autoroll Roll Fuchsia SDK from 0.20200429.3.1 to 0.20200430.0.1
2020-04-30 chromium-autoroll Roll Fuchsia SDK from 0.20200429.2.1 to 0.20200429.3.1

Roll testing/ d7c3cca9b..46f9803f0 (70 commits)

d7c3cca9bc..46f9803f0c

$ git log d7c3cca9b..46f9803f0 --date=short --no-merges --format='%ad %ae %s'
2020-05-08 donnd [TTS] Update the test config for 2 new experiments
2020-05-08 bpastene Increase shard count of browser_tests on Linux ChromiumOS MSan Tests.
2020-05-07 hypan Reland "android: Add AR test to android-10-arm64-rel builder"
2020-05-07 jonahr Run metal dEQP tests in a single process + launcher.
2020-05-07 bsheedy Support multiple expected device IDs
2020-05-07 grt Fix use of ConnectNamedPipe in FileUtilTest.ReadFileToStringWithNamedPipe.
2020-05-07 isamsonov Additional buildbot config for mac10.15-blink-rel
2020-05-07 bsheedy Run GPU Mac experimental on 10.15.4
2020-05-07 gangwu [Omnibox] Enable reducing Omnibox Clipboard suggestion age by default
2020-05-07 gbeaty Add a flag for the location of the LUCI configuration files.
2020-05-07 jeffyoon [pgo] Migrate isolate_coverage_data to isolate_profile_data
2020-05-07 mohsen Remove field trial config for DisableLatencyRecoveryDesktop
2020-05-07 gbeaty Avoid dumping output on success in generate_buildbot_json_unittest.
2020-05-07 chonggu [Fuchsia] Enable capture_unittests on Fuchsia CI bots.
2020-05-07 magchen Add GpuWatchdogV2NewTimeout to fieldtrial_testing_config
2020-05-06 ewannpv Adds EnablePersistentDownloads to Field Trial Testing Configuration
2020-05-06 bsheedy Switch experimental GPU Win Intel driver version
2020-05-06 thomasanderson Reland "Remove third_party/binutils""
2020-05-06 lindsayw [ios] Upgrade to target MacOS10.15 for iOS bots
2020-05-06 jonahr Enable metal-backend dEQP tests on the GPU waterfall
2020-05-06 jmadill Set angle_perftests batch limit on Android.
2020-05-06 chonggu [Fuchsia] Use headless ozone for Fuchsia ARM64 bots.
2020-05-06 wez [Fuchsia] Un-filter some URLRequestQuicTest.*CancelPush* tests.
2020-05-06 iopopesc Fixed several visual bugs for the eye dropper.
2020-05-06 bsheedy Run Telemetry minidump tests on Android
2020-05-06 xiaochengh Reland "Add field trial entry for FontPreloadingDelaysRendering"
2020-05-05 jeffyoon [pgo] removing the pgo test definitions in src
2020-05-05 sclittle Revert "Remove third_party/binutils""
2020-05-05 thomasanderson Remove third_party/binutils"
2020-05-05 bsheedy Reland "Run telemetry_perf_unittests with Crashpad"
2020-05-05 zhaoyangli [iOS][code coverage] Config LLVM path when initing ChromeWebView.
2020-05-05 estaab Add test expectations for WebLayer skew tests.
2020-05-05 bpastene Disable ReloadMultipleSadTabs on storage-flavor of interactive_ui_tests.
2020-05-05 gbeaty Remove configuration for chromium.lkgr master.
2020-05-05 bpastene Add vaapi_unittests to CrOS VM testers.
2020-05-05 gangwu [Omnibox] Enable Omnibox clipboard suggestions removal by default
2020-05-05 collinbaker Update WebUITabStrip entry in fieldtrial_testing_config.json
2020-05-05 agable Remove redundant testing spec for mac-rel
2020-05-05 twellington Clean-up after bookmarks reordering launch
2020-05-05 engedy Revert "Run telemetry_perf_unittests with Crashpad"
2020-05-05 msisov ozone: tests: enable compositor_unittests on Ozone X11/Wayland Testers.
2020-05-05 grt Diagnose FileUtilTest.ReadFileToStringWithNamedPipe flakes.
2020-05-04 bsheedy Run telemetry_perf_unittests with Crashpad
2020-05-04 rdevlin.cronin [Extensions Menu] Add a fieldtrial_testing_config
2020-05-04 mheikal Check 64bit expectations on android-pie-arm64-rel
2020-05-04 rockot Move Storage Service tests to CQ; sandboxed to FYI
2020-05-04 behdadb Removed experimental tag from Perf tests on Windows
2020-05-04 msisov ozone/x11/wayland: enable content_browsertests
2020-05-04 jkim a11y: Include AXPlatformNodeBaseTest only with native accessibility
2020-05-02 jeffyoon [pgo] add sparse option for .profraw files in code coverage merge scripts
2020-05-02 chonggu [Fuchsia] Add more unittests to Fuchsia FYI Bot.
2020-05-02 liaoyuke Print profdata command to assist debugging
2020-05-02 xiaochengh Revert "Add field trial entry for FontPreloadingDelaysRendering"
2020-05-01 jeffyoon [pgo] sparse disable flag for code_coverage merge scripts
2020-05-01 rushans [Sync] Remove MergeBookmarksUsingGUIDs from field trial config.
2020-05-01 enga Run the WebGPU CTS with backend validation layers enabled
2020-05-01 manukh [omnibox] Add HQP midword features to fieldtrial_testing_config.json
2020-05-01 jeffyoon Revert "[code coverage/pgo] defaulting sparse to false"
2020-05-01 msisov xvfb: weston: Disable idle time out.
2020-05-01 jeffyoon [code coverage/pgo] defaulting sparse to false
2020-05-01 wenyufu [HomepagePromo] Add homepage promo controller
2020-05-01 hypan webrtc: Upgrade the K Nexus5 fyi builder to L due to k deprecation.
2020-04-30 yoangela [omnibox] Remove reference to physical web from fieldtrial_testing_config.json
2020-04-30 penghuang Add virtual/android tests from skiarenderer_(vulkan|gl)_blink_web_tests
2020-04-30 rsorokin cros: Fix LoginUtilsTest.RlzInitialized test
2020-04-30 mvanouwerkerk Enable Remote Copy and Unido On Signin v2 by default.
2020-04-30 zhaoyangli [iOS][code coverage] Add device types to iOS code coverage tests.
2020-04-29 fangzhoug Add SynchronousPageFlipTesting to field trial config
2020-04-29 jonahr Re-enable swangle passthrough webgl tests
2020-04-29 mamir Enable Pixel Test for the now Parameterised PasswordBubbleBrowserTest

Roll third_party/binutils/ f9ce77769..256677820 (3 commits)

f9ce777698..2566778206

$ git log f9ce77769..256677820 --date=short --no-merges --format='%ad %ae %s'
2020-05-06 thomasanderson Reland "Remove third_party/binutils""
2020-05-05 sclittle Revert "Remove third_party/binutils""
2020-05-05 thomasanderson Remove third_party/binutils"

Roll third_party/googletest/ dcc92d0ab..a09ea700d (20 commits)

dcc92d0ab6..a09ea700d3

$ git log dcc92d0ab..a09ea700d --date=short --no-merges --format='%ad %ae %s'
2020-05-07 absl-team Googletest export
2020-05-04 absl-team Googletest export
2020-04-30 absl-team Googletest export
2020-04-28 absl-team Googletest export
2020-04-27 absl-team Googletest export
2020-04-24 absl-team Googletest export
2020-04-23 absl-team Googletest export
2020-04-20 absl-team Googletest export
2020-04-20 absl-team Googletest export
2020-04-17 absl-team Googletest export
2020-05-01 56075233+keshavgbpecdelhi Removed a typo in README.md
2020-03-28 arthur.j.odwyer Add -Wdeprecated to the build configuration.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.
2020-04-19 igor.n.nazarenko Enable protobuf printing for open-source proto messages.
2020-04-16 arthur.j.odwyer VariadicMatcher needs a non-defaulted move constructor for compile-time performance.
2020-04-05 jijyunneng Remove duplicate codes existed in get-nprocessors.sh
2020-03-18 calum.robinson Add GTEST_BRIEF option

Roll third_party/spirv-tools/ 49ca250b4..c8590c18b (5 commits)

49ca250b44..c8590c18bd

$ git log 49ca250b4..c8590c18b --date=short --no-merges --format='%ad %ae %s'
2020-05-06 jaebaek Preserve debug info for wrap-opkill (#3331)
2020-05-05 jbolz Validate ShaderCallKHR memory scope (#3332)
2020-05-01 afdx spirv-fuzz: Do not allow adding stores to read-only pointers (#3316)
2020-04-30 paulthomson reduce: increase default step limit (#3327)
2020-04-30 afdx Generalize IsReadOnlyVariable() to apply to pointers (#3325)

Roll tools/clang/ 948b9d009..54f2e0def (4 commits)

948b9d0097..54f2e0def1

$ git log 948b9d009..54f2e0def --date=short --no-merges --format='%ad %ae %s'
2020-05-06 lukasza Inserting an include of the new header during the rewrite.
2020-05-02 sebmarchand clang upload script: Use Cq-Include-Trybots: for official builders
2020-04-30 thakis clang: Only copy msdia140.dll next to llvm-symbolizers when building clang.
2020-04-30 hans Clang build script: prefer Python 2 on Mac until infra problem is fixed

Created with:
  roll-dep build buildtools testing third_party/binutils third_party/googletest third_party/spirv-headers third_party/spirv-tools tools/clang

Change-Id: I90db087ffcea4d67caf1b6b63d53d1cbed8f2828
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21380
Reviewed-by: David Neto <dneto@google.com>
2020-05-08 13:56:54 +00:00
David Neto cad427e787 [spirv-reader] Find if-selection internal headers
Finds the "then", the "else", and "premerge" nodes.
The premerge node, if it exists, is the first block where
the normal forward flow of the "then" and "else" clauses
converge, but before the merge block.

Finds error case where there a block has both an if-break
edge and a forward-to-premerge.  There is no good way
to model that in a high level language.

Bug: tint:3
Change-Id: I759fc539f3480e38d091041db6a9abd15f3df769
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21240
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-07 20:27:42 +00:00
David Neto d8082d27a3 [spirv-reader] Rename Edge::kToMerge to kIfBreak
Change-Id: I187b88cb68a04e46a16b6391013bdaf148191cc2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21221
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-07 20:20:05 +00:00
David Neto 15fd7366cc [spirv-reader] Classify kSwitchBreak from deep in control flow
This also refactors break detection.

Bug: tint:3
Change-Id: I3a3e01c8d76d7c6fc2a14b3dbff136acd487e802
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21220
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-07 20:20:05 +00:00
dan sinclair 4dfda012b2 Rename brace and bracket to match spec
The names for brace and bracket got flipped in the spec, update Tint to
match.

Change-Id: Ifbad5f239834b77b9aa27ef21b9d704cab742f4f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21260
Reviewed-by: David Neto <dneto@google.com>
2020-05-07 19:47:39 +00:00
Ryan Harrison 1f1f08f94a Add spvtools deps to top-level targets
Dawn has issues with building tint targets without these specified. Putting them
in public_deps doesn't resolve the linking issue.

Change-Id: Ib99f2d4a74cbb3a33c0aa9e47e5eb788ef01a7e8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21280
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-07 17:17:15 +00:00
Ryan Harrison ace7a13662 Fixes to unbreak the BUILD.gn build
Change-Id: I0077bb103fc6940c1af029a65b7069cb6fbec3d9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21201
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-06 21:49:55 +00:00
dan sinclair a4e6858b94 Remove push constants.
Push constants won't be supported by WebGPU. This CL removes them from
Tint.

For the SPIR-V reader case, this means the push constant will cause a
unknown storage class error.

Bug: tint:19
Change-Id: I10b09ce589b6b370fc828af0cd56e6213c5bc694
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21180
Reviewed-by: David Neto <dneto@google.com>
2020-05-06 21:48:23 +00:00
Ryan Harrison 506fe795b6 Remove unused entries from .gni file
These args were either previously used, but no longer are, or were never
implemented. Removing them since they are just cruft now.

Change-Id: Ie8d755868f8045b4836db608a3817837ddcb4f16
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21200
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-06 18:45:49 +00:00
David Neto ab56088ae7 [spirv-reader] Classify kSwitchBreak edges
These used to be classified as kToMerge

Bug: tint:3
Change-Id: I63fb286c371582676e5943a3082c0614b9c8d5d0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21081
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-06 18:32:38 +00:00
David Neto 920bdcd0aa [spirv-reader] Refine selection construct concept
Distinguish between selections constructs starting with with
OpBranchConditional and those starting with OpSwitch.

We'll use this in a followup CL to track break from a switch.

Bug: tint:3
Change-Id: I8d000cb42325535a4937c84f83a83c98a9b8d4c5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21080
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-06 18:32:29 +00:00
David Neto 054927d7eb [spirv-reader] Classify CFG edges
Classify CFG edges:
 - loop backedge
 - a structured exit:
   - loop break
   - loop continue
   - selection break
 - fallthrough
 - forward (any of the rest)

Also error out when there should have been a merge instruction.
(More than one unique fallthrough or forward edge).

Includes lots of tests.

Bug: tint:3
Change-Id: I70f27680bdf098213056522abf04ac58a6b478ab
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20481
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-05 21:17:13 +00:00
dan sinclair 32b41b79da Add block annotations to computeboids
Annotate structures with [[block]] annotations.

Change-Id: Ieb6d5cee203fa1e9c090dc147d2c8d1473abb224
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21022
Reviewed-by: David Neto <dneto@google.com>
2020-05-05 14:21:43 +00:00
dan sinclair 265d5d0904 Unique method names in computeboids
WebGPU requires unique entry point names.

Change-Id: I0dc5123abdc1a4da343b60460443498f8611d7b9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21021
Reviewed-by: David Neto <dneto@google.com>
2020-05-05 14:21:35 +00:00
dan sinclair b1870eff04 [spirv-writer] Add a LocalSize execution mode.
In SPIR-V a compute entry point requires a WorkGroup Size constant or a
LocalSize execution mode. This CL adds a 1,1,1 execution mode as a
starting point.

Bug: tint:74
Change-Id: Ie5bf639472033dca9ffe333548e7f31d4d318768
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21020
Reviewed-by: David Neto <dneto@google.com>
2020-05-05 14:21:28 +00:00
dan sinclair 2287f33424 [spirv-writer] Add null initializers where needed.
The WGSL spec requires initializers for Output, Private and Function
variables. This CL adds initializers where needed.

Bug: tint:75
Change-Id: Id97f85a67ead2ffc41d6bdd1b71bf7034b04502a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20980
Reviewed-by: David Neto <dneto@google.com>
2020-05-05 14:21:19 +00:00
dan sinclair 5b43c58f02 [spirv-writer] First pass at entry point interface
This CL adds the first simple pass at adding interface variables into
the entry point command. It simply lists all Input/Output module scoped
variables onto all entry points.

Bug: tint:28
Change-Id: I962462d783f3b97bb3da32fd9890ceb90808942b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20963
Reviewed-by: David Neto <dneto@google.com>
2020-05-04 19:42:43 +00:00
dan sinclair 6ca2699eaf Windows fixes.
This CL fixes up some issues which give compile errors when building
with Visual Studio.

Change-Id: Ib76644d869dd2adccd579621d18804d84b65a74c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20940
Reviewed-by: David Neto <dneto@google.com>
2020-05-04 18:58:24 +00:00
dan sinclair 253ee1b3ef Fixup IntLiteral names.
This CL fixes the IntLiteral name to contain the type of the literal.
This keeps i32 and u32 from fighting over a given name. Now, the name
ends up being __int__i32_0 instead of __int_0.

Change-Id: Ifb9f0516139d25f34312c75c77318eccbe076ef8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20941
Reviewed-by: David Neto <dneto@google.com>
2020-05-04 18:58:19 +00:00
dan sinclair 6164da26b7 [spirv-writer] Handle load of array accessors if needed.
In some cases the array access must generate a load if there is a
following swizzle. This CL adds the needed load.

Bug: tint:71
Change-Id: Ib6ca6284af993962d9d573b323d54be7ce0e726c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20920
Reviewed-by: David Neto <dneto@google.com>
2020-05-04 17:06:17 +00:00
dan sinclair 8a669aabeb [spirv-builder] Generate load for cast expression.
If the value being casted is a pointer it must be loaded first. This CL
adds the needed load.

Bug: tint:72
Change-Id: Ia019b7976db6b97c811f6424db8fe4f07a3d11f3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20900
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: dan sinclair <dsinclair@google.com>
2020-05-04 17:06:05 +00:00
David Neto c8c10e83df [spirv-writer] Generate load for var initializer, if needed
Change-Id: I609860bb05fae3e6e5eb21a471f869030f384ad0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20721
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-01 19:09:08 +00:00
dan sinclair de4259ef80 Fixup computeboids translation error.
There was a - that changed to a + while converting. Fixed.

Change-Id: Ic50a04624c5f4efdfc114459ccd5f42fc53c3ca2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20629
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:06:03 +00:00
dan sinclair abd472e45a [spirv-writer] Add start of cast support.
This CL starts support for the cast expression. It adds the i32 to f32
conversion path.

Bug: tint:5
Change-Id: Id1eafc38592060c4b5b91964302d79a847e2edaf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20628
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:05:55 +00:00
dan sinclair 64db1d9a9b Add mising computeboids casts.
This CL adds in missing casts from i32 to f32 when using the count
variables in computeboids to create vec3<f32> values.

Change-Id: I3e66e2db0fc626b94ae98142cd95a65feff7fc53
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20627
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:05:43 +00:00
dan sinclair cf3517812c [spirv-writer] Load array accessors if required.
If an array accessor index is a variable it needs to be loaded before we
can use it to access the array. This CL adds the call to generate the
load for the index.

Bug: tint:5
Change-Id: I74143d2eb746727e857218d54126e1f5fd785bdf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20780
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:05:21 +00:00
dan sinclair cf2af15d94 [spirv-writer] Add assignment tests.
This CL adds assignment tests which require evaluating an access chain
to get the thing being written into.

Bug: tint:5
Change-Id: I475173b7b4ef4223de6f4258b8fa920760196b12
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20626
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:05:14 +00:00
dan sinclair 576c9afab9 [spirv-writer] Add function with body test.
This CL implements the disabled function with body test.

Bug: tint:5
Change-Id: Ia5b2270373fdf734536b77d9dbac41bd35e3218f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20625
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:05:03 +00:00
dan sinclair a0b375458d [spirv-writer] Enable FunctionVar_WithNonConstantConstructor
This CL updates and enables the disabled
FunctionVar_WithNonConstantConstructor test.

Bug: tint:5
Change-Id: If45152034968bd81aa3cf7ae76dfdb02598b6e4b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20760
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 19:04:56 +00:00
David Neto ac47807974 Fix compute_boids.wgsl literal types, storage class
Change-Id: I13279ab0db4c0a7587f4307bf923a59c59d5af2e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20624
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-01 19:02:35 +00:00
David Neto 540ab2160b [spirv-writer] Fragment shaders use OriginUpperLeft
Fixes a validation error

Change-Id: Ie003ac61a10f87f3d0c42ad8cb162da50c1c416b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20740
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-05-01 19:02:25 +00:00
dan sinclair 7cac245abc [spirv-writer] Handle multi name swizzles.
This CL rebuilds the accessor code to allow generating multi item
swizzles. This requires being able to output the access chain in the
middle of the access chain and then work with the results of that access
chain.

Bug: tint:5
Change-Id: I0687509c9ddec6a2e13d9e3595f04a091ee9af7b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20623
Reviewed-by: David Neto <dneto@google.com>
2020-05-01 16:17:03 +00:00