Use the new semantic::Intrinsic::Parameters() information to determine whether a parameter is a pointer.
Don't generate a load if the parameter expects a pointer.
Fixed: tint:361
Change-Id: I1420a6b0e22d52f67a5e52151fb073ac33df5bd5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40508
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Provides a centeralized table for all intrinsic overloads.
IntrinsicTable::Lookup() takes the intrinsic type and list of arguments, returning either the matched overload, or a sensible error message.
The validator has expectations that the TypeDeterminer resolves the return type of an intrinsic call, even when the signature doesn't match. To handle this, create semantic::Intrinsic nodes even when the overload fails to match. A significant portion of the Validator's logic for handling intrinsics can be removed (future change).
There are a number of benefits to migrating the TypeDeterminer and Validator over to the IntrinsicTable:
* There's far less intrininsic-bespoke code to maintain (no more duplicate `kIntrinsicData` tables in TypeDeterminer and Validator).
* Adding or adjusting an intrinsic overload involves adding or adjusting a single Register() line.
* Error messages give helpful suggestions for related overloads when given incorrect arguments.
* Error messages are consistent for all intrinsics.
* Error messages are far more understandable than those produced by the TypeDeterminer.
* Further improvements on the error messages produced by the IntrinsicTable will benefit _all_ the intrinsics and their overloads.
* The IntrinsicTable generates correct parameter information, including whether parameters are pointers or not.
* The IntrinsicTable will help with implementing autocomplete for a language server
Change-Id: I4bfa88533396b0b372aef41a62fe47b738531aed
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40504
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
semantic::Intrinsic derives from semantic::CallTarget, which can be obtained from the Target() accessor on the CallExpression.
Flesh out semantic::Parameter to contain a `Usage` - extra metadata for the parameter.
The information in `Intrinsic` is enough to remove the `semantic::IntrinsicCall` and `semantic::TextureIntrinsicCall` types.
Change-Id: Ida9c193674ad8605d8f12f6a1d27f38c7d008434
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40503
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Only set SwiftShader as the default ANGLE backend if the
ANGLE_DEFAULT_PLATFORM environment var is empty. This will allow
devs to set it.
Bug: dawn:447
Change-Id: I49aac4bcb4b0b7c56903eca68248ee22cdf1e6f2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41140
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Add overloads of TypesBuilder::array() that take a stride parameter.
Add overload of ProgramBuilder:Member() that has an offset
Change-Id: If8337e410e73eade504432599a9798bbc511382e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40600
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
It previously said:
"a struct containing a runtime-sized array must be in the 'storage' storage class"
This had be looking at the variable's storage class, when the error was actually trying to tell me I needed `[[block]]` on the struct declaration.
Change-Id: I7a23a0c0c35508bdac20c808d2635592638dfa77
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40602
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Sarah Mashayekhi <sarahmashay@google.com>
Otherwise the sample app crashes when using --dawn-validation with a
non-SPIR-V output format.
Change-Id: Ic6e03e758747602d15f3a1d5b9d9cefee1aad527
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41120
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
So that it takes a type::Manager instead of a ProgramBuilder.
Makes this callable from places that has the former and not the latter.
Change-Id: Ie968617ae944cc6621c17467a4f7caadacba548f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40505
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
textureLoad():
* Does not operate on cube textures
* Does not have a `level` parameter for storage textures
* Requires an `array_index` argument for arrayed texture types
textureSample():
* Only supports f32 data types for sampled textures
Bug: tint:449
Change-Id: I30b3a0c32245d5e6c4b1f3aeef112a67ffb1d055
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40506
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
For consistency with the other .cc file names in this directory.
The reason we need the sem_ prefix is because all the tint lib code is compiled as a single target, and .GN cannot cope with .cc files with the same file name, even if they're in different directories.
This could be fixed by building each directory as a separate target, but we have circular dependencies that currently make this impossible.
Change-Id: I2f1379ff11dd863f81662449f73d67832f0a8a4e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40501
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
This allows us to create a semantic::Intrinsic class that holds more information about the particular intrinsic overload.
Change-Id: I180ddb507ebc92172badfdd3a59af346f96e1f02
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40500
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Can be used to help with deprecation during simple struct renames.
Includes typedefs for VertexAttributeDescriptor -> VertexAttribute and
VertexBufferLayoutDescriptor -> VertexBufferLayout as specified by the
latest RenderPipelineDescriptor changes.
Bug: dawn:642
Change-Id: Iab3d74d179884499540e813b0e66859713031ccb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40581
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
CallTarget holds parameter information. This is simple to extract from an ast::Function.
CallTarget will also be used for intrinsics, which can be overloaded. CallTarget will hold the resolved overload parameter signature.
Bug: tint:361
Change-Id: I4dadc4a99293f12ede9e9cbd9132ba5f9b9830ed
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40284
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Unwrap the type before checking if it is a handle type, to account for
access decorations.
Bug: tint:332
Change-Id: I8af9749fec1e2f5dbd7c3bec0b73e506ae111a28
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40540
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
The wire now supports more than one device, and Chrome is updated
to use the new code path. This fixes same-device validation for
createReadyPipeline.
Bug: dawn:565
Change-Id: Id05001ed1a7e535690c87f535da6f72a0e794c59
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40460
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This helper is no longer needed now that the descriptor has full
defaults and is even optional in CreateSampler.
Bug: dawn:599
Change-Id: I0d25233ebb1e817ad27f3ddaca988e01e2a5298c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40520
Commit-Queue: Stephen White <senorblanco@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Adds support for NV12 texture format and per plane view aspects.
Only allows planar sampling of imported DX11 textures. See usage
tests for examples and formats.h for rules.
Bug: dawn:551
Change-Id: I44b89d2c07bb9969638e77ce7c756ef367167f0c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/38781
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Roll build/ 3769c3b43..6fa63e6b1 (136 commits; 1 trivial rolls)
3769c3b43c..6fa63e6b15
$ git log 3769c3b43..6fa63e6b1 --date=short --no-merges --format='%ad %ae %s'
2021-02-04 thakis Revert "clang tot bots: Temporarily make -Warray-bounds not an error"
2021-02-04 chromium-autoroll Roll Fuchsia SDK from 0.20210203.2.1 to 0.20210204.0.1
2021-02-04 svenzheng Add strip_binary and strip_binary_chrome target
2021-02-03 chromium-autoroll Roll Fuchsia SDK from 0.20210203.1.1 to 0.20210203.2.1
2021-02-03 bjoyce Add size info files to builds
2021-02-03 thakis clang tot bots: Temporarily make -Warray-bounds not an error
2021-02-03 thomasanderson [Linux Sysroot] Remove pipewire header workaround
2021-02-03 wez [fuchsia] Remove opt-out from RELR packing dynamic relocation segments.
2021-02-03 agrieve Android: Never sign .aab files
2021-02-03 chromium-autoroll Roll Fuchsia SDK from 0.20210202.3.1 to 0.20210203.1.1
2021-02-03 aeubanks Reland again: Pin to LLVM's legacy pass manager
2021-02-03 chromium-autoroll Roll Fuchsia SDK from 0.20210202.2.1 to 0.20210202.3.1
2021-02-03 guterman Revert "Proof of concept for test selection via GN"
2021-02-03 thakis win toolchain: Remove assumption about relative path from setenv json file to toolchain root.
2021-02-02 findit-for-me Revert "Reland: Pin to LLVM's legacy pass manager"
2021-02-02 aeubanks Reland: Pin to LLVM's legacy pass manager
2021-02-02 wnwen Android: Add a build server for analysis tasks
2021-02-02 chromium-autoroll Roll Fuchsia SDK from 0.20210202.0.1 to 0.20210202.2.1
2021-02-02 grulja Remove PipeWire 0.2 from sysroot
2021-02-02 raphael.kubo.da.costa Make //build/linux compatible with Python 3.
2021-02-02 mheikal Android:Remove deprecated create_srcjar gn android_resources knob
2021-02-02 chromium-autoroll Roll Fuchsia SDK from 0.20210201.3.2 to 0.20210202.0.1
2021-02-02 fangzhoug Revert "Lacros: Flip OS_LINUX and OS_CHROMEOS on lacros."
2021-02-02 cduvall Avoid separate manifest for autofill_assistant in Trichrome
2021-02-02 steveroe [fuchsia] Switch from zstd to the Fuchsia SDK blobfs-compression utility.
2021-02-02 aeubanks Revert "Make optimize_max -Os when optimize_for_size"
2021-02-02 chromium-autoroll Roll Fuchsia SDK from 0.20210201.1.1 to 0.20210201.3.2
2021-02-02 findit-for-me Revert "Pin to LLVM's legacy pass manager"
2021-02-01 mheikal Reuse prepare_resources' generated R.txt files in java_library_impl
2021-02-01 aeubanks Pin to LLVM's legacy pass manager
2021-02-01 liaoyuke Lacros: Move binary size to a separate builder
2021-02-01 chromium-autoroll Roll Fuchsia SDK from 0.20210131.3.1 to 0.20210201.1.1
2021-02-01 chromium-autoroll Roll Fuchsia SDK from 0.20210131.2.1 to 0.20210131.3.1
2021-01-31 chromium-autoroll Roll Fuchsia SDK from 0.20210131.1.1 to 0.20210131.2.1
2021-01-31 chromium-autoroll Roll Fuchsia SDK from 0.20210130.3.1 to 0.20210131.1.1
2021-01-31 chromium-autoroll Roll Fuchsia SDK from 0.20210129.3.1 to 0.20210130.3.1
2021-01-30 chromium-autoroll Roll Fuchsia SDK from 0.20210129.2.1 to 0.20210129.3.1
2021-01-30 liaoyuke Lacros: Change builder name and move out of fyi
2021-01-30 ythjkt Lacros: Flip OS_LINUX and OS_CHROMEOS on lacros.
2021-01-30 cduvall Fix typo in proguard.py
2021-01-29 chromium-autoroll Roll Fuchsia SDK from 0.20210129.0.1 to 0.20210129.2.1
2021-01-29 brucedawson Add an option to put full PDB paths in PE files
2021-01-29 denik Reland "Extend the targets of debug_fission with ThinLTO"
2021-01-29 chromium-autoroll Roll Fuchsia SDK from 0.20210128.2.2 to 0.20210129.0.1
2021-01-29 chonggu [Fuchsia] Enable code coverage for Cr-Fuchsia test targets.
2021-01-29 findit-for-me Revert "Roll src/buildtools/third_party/libc++/trunk/ d9040c75c..69897abe2 (1149 commits)"
2021-01-29 bpastene chromeos: Make the test runner and its tests py3-compatible.
2021-01-29 chromium-autoroll Roll Fuchsia SDK from 0.20210128.1.1 to 0.20210128.2.2
2021-01-28 dullweber Split grouped tests by Feature annotation
2021-01-28 aeubanks Make optimize_max -Os when optimize_for_size
(...)
2021-01-22 wnwen Android: Remove md5_check for compile_resources.py
2021-01-22 chromium-autoroll Roll Fuchsia SDK from 0.20210121.3.1 to 0.20210122.1.1
2021-01-22 cwallez tool_wrapper.py: Use bytes in ExecLinkWrapper
2021-01-22 chromium-autoroll Roll Fuchsia SDK from 0.20210121.2.1 to 0.20210121.3.1
2021-01-22 bjoyce Fix test_log possibly being too large.
2021-01-22 agrieve Android: Plumb enabled_proguard_obfuscation to L8
2021-01-21 chromium-autoroll Roll Fuchsia SDK from 0.20210121.0.1 to 0.20210121.2.1
2021-01-21 wnwen Android: Add more java build configs to depfile
2021-01-21 steveroe [fuchsia] Exclude ICU component blobs from package size calculation.
2021-01-21 hans [build] Only apply thin_lto_enable_optimizations to select targets
2021-01-21 chromium-autoroll Roll Fuchsia SDK from 0.20210120.3.1 to 0.20210121.0.1
2021-01-21 liaoyuke Fix undefined gn variables in ebuild
2021-01-21 agrieve Add libstdc++.so.6 as data for llvm-symbolizer
2021-01-21 chromium-autoroll Roll Fuchsia SDK from 0.20210120.1.1 to 0.20210120.3.1
2021-01-20 agrieve Android: Add missing build edge for DFM build configs
2021-01-20 chromium-autoroll Roll Fuchsia SDK from 0.20210119.2.1 to 0.20210120.1.1
2021-01-20 ajgo Set enable_cet_shadow_stack for Windows x64
2021-01-20 chromium-autoroll Roll Fuchsia SDK from 0.20210119.1.1 to 0.20210119.2.1
2021-01-20 ythjkt Lacros: Remove complete-member-pointers flag from lacros.
2021-01-19 wnwen Android: Use fine-grain dependencies for desugar
2021-01-19 liaoyuke Reland "Lacros: create lacros tast test targets"
2021-01-19 hans build: Remove last leftover -enable-dse-memoryssa=false flag
2021-01-19 hans [build] Enable the ThinLTO cache also on Windows
2021-01-19 chromium-autoroll Roll Fuchsia SDK from 0.20210118.3.1 to 0.20210119.1.1
2021-01-19 chromium-autoroll Roll Fuchsia SDK from 0.20210118.2.1 to 0.20210118.3.1
2021-01-18 chromium-autoroll Roll Fuchsia SDK from 0.20210118.0.1 to 0.20210118.2.1
2021-01-18 pkotwicz [Build] Make Android Lint Tests Better Integration Tests
2021-01-18 thakis mac: Update hermetic Xcode to 12.3 and production SDK to 11.1.
2021-01-18 chromium-autoroll Roll Fuchsia SDK from 0.20210117.3.1 to 0.20210118.0.1
2021-01-18 chromium-autoroll Roll Fuchsia SDK from 0.20210116.0.1 to 0.20210117.3.1
2021-01-17 chromium-autoroll Roll Fuchsia SDK from 0.20210115.2.1 to 0.20210116.0.1
2021-01-17 thakis mac: Don't use rsp files with libtool either
2021-01-16 denik Extend the targets of debug_fission with ThinLTO
2021-01-15 jamescook lacros: Enable the crosapi mojo interface in interactive_ui_tests
2021-01-15 chromium-autoroll Roll Fuchsia SDK from 0.20210115.0.1 to 0.20210115.2.1
2021-01-15 wnwen Android: Use d8's desugar dependencies
2021-01-15 liaoyuke Revert "Lacros: create lacros tast test targets"
2021-01-15 liaoyuke Lacros: create lacros tast test targets
2021-01-15 chromium-autoroll Roll Fuchsia SDK from 0.20210114.3.1 to 0.20210115.0.1
2021-01-15 chromium-autoroll Roll Fuchsia SDK from 0.20210114.1.1 to 0.20210114.3.1
2021-01-15 bjoyce Escape characters in uploaded summary.
2021-01-14 agrieve apk_operations.py: Use //third_party/jdk for apksigner
2021-01-14 steveroe [fuchsia] Make fuchsia size test pass or fail depending on package sizes.
2021-01-14 chromium-autoroll Roll Fuchsia SDK from 0.20210111.3.1 to 0.20210114.1.1
2021-01-14 jwata [build] remove unused Swarming xcode install scripts
2021-01-14 ythjkt Lacros: Remove deprecated gn/macro variable names.
2021-01-13 hans build: Remove leftover -enable-dse-memoryssa=false flag
2021-01-13 yukishiino Revert "Roll Fuchsia SDK from 0.20210111.3.1 to 0.20210112.3.1"
2021-01-13 chromium-autoroll Roll Fuchsia SDK from 0.20210111.3.1 to 0.20210112.3.1
2021-01-12 ntfschr Android: print bundletool output
Roll buildtools/ 235cfe435..fc5af1ac7 (13 commits; 2 trivial rolls)
235cfe435c..fc5af1ac75
$ git log 235cfe435..fc5af1ac7 --date=short --no-merges --format='%ad %ae %s'
2021-02-02 olaola Updating re-client tooling version to 0.19.3.
2021-01-29 findit-for-me Revert "Roll src/buildtools/third_party/libc++/trunk/ d9040c75c..69897abe2 (1149 commits)"
2021-01-27 peconn 🍱 Add example regex for Java test DEPS.
2021-01-26 twellington Update checkdeps trailing slash failure message
2021-01-26 dpranke Roll GN from d62642c9..55ad154c
2021-01-26 olaola Upgrading reclient version to 0.19.2.
2021-01-25 olaola Bugfix: download reclient binaries on Windows
2021-01-25 hans DEPS: Pull clang-format scripts from the new mirror
2021-01-21 msavigny Add third_party/llvm-build/Release+Asserts to remote inputs.
2021-01-20 msavigny Change the default execution strategy for reclient.
2021-01-15 dpranke Roll GN from 595e3be7..1b4a9dfc
Roll tools/clang/ b12d1c836..aecd85e06 (34 commits)
b12d1c836e..aecd85e062
$ git log b12d1c836..aecd85e06 --date=short --no-merges --format='%ad %ae %s'
2021-02-04 keishi Force include blink common/ dirs in the rewrite_raw_ptr_fields rewrite
2021-02-03 omerkatz heap: Fix clang plugin build
2021-02-03 keishi Exclude TargetProcess::base_address_ from rewrite_raw_ptr_fields
2021-02-03 keishi Exclude PlatformSharedMemoryMapping::base_ from rewrite_raw_ptr_fields
2021-02-03 omerkatz heap: Fix plugin bug for cppgc builds
2021-02-03 omerkatz heap: Update clang plugin for cppgc library
2021-02-03 keishi Revert "Treat CheckedPtr specially in FindBadConstructsConsumer"
2021-02-03 keishi Treat CheckedPtr specially in FindBadConstructsConsumer
2021-02-03 thakis clang build script: Try to unbreak build after NDK update
2021-02-01 keishi Add fields to ignore in rewrite_raw_ptr_fields
2021-02-01 zequanwu Revert "Download and run update.py from build.py"
2021-02-01 glazunov [CheckedPtr] Update manual ignore list
2021-02-01 zequanwu Download and run update.py from build.py
2021-01-29 hans Update TranslationUnitGenerator.cpp for upstream change
2021-01-29 hans Fix clang's build.py GetCommitDescription() on windows
2021-01-28 hans Fix Blink GC plugin after Clang API change
2021-01-28 hans Clang: the tip-of-tree version is now 13.0.0
2021-01-28 rnk Update blink GC plugin for Clang API change
2021-01-27 lukasza Fixing test expectations to match ToT behavior.
2021-01-27 lukasza Skip fields of a struct that is used in `reinterpret_cast`.
2021-01-23 bartekn Add MiraclePtr team to OWNERS of related files
2021-01-22 glazunov [BackupRefPtr] Support pointers past the end of allocation
2021-01-22 thakis Roll clang llvmorg-12-init-16548-gf1d5cbbd-1 : llvmorg-12-init-17251-g6de48655-1.
2021-01-20 keishi Exclude BigEndianWriter::ptr_ from rewrite_raw_ptr_fields
2021-01-20 keishi Fix BackupRefPtr 32bit builds
2021-01-19 hans mac: Update clang build script for the SDK 11.1 bump
2021-01-19 thakis clang roll script: Remove linux_chromium_chromeos_asan_rel_ng from cq bots.
2021-01-19 thakis Roll clang llvmorg-12-init-16296-g5e476061-2 : llvmorg-12-init-16548-gf1d5cbbd-1.
2021-01-19 keishi Add chrome/install_static to manual-paths-to-ignore.txt
2021-01-18 hans Rebuild the clang package with a newer GCC version
2021-01-15 keishi Revert deletion of "const-char" filtering rule
2021-01-15 keishi Exclude fields being used with cbor decoder's ELEMENT() macro from rewrite_raw_ptr
2021-01-15 keishi Add win build detection to rewrite_raw_ptr_fields/rewrite.sh
2021-01-14 ramyan [Project Code Inclusion] Remove use of blacklist
Created with:
roll-dep build buildtools tools/clang
Change-Id: I3d67c9321af24814c8d26ecd768c1821333dc4cc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40380
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Re-enables Intel D3D12 GPU-based validation bots. This comes after the
--enable-backend-validation=partial option was introduced and the bot
configurations were changed to make use of it.
Bug: dawn:598
Change-Id: I9f5c5111340aeefa729e0d2fd26f9f884813eb3a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40481
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
TODO: passing pointer to them as a function parameter
Bug: tint:471
Change-Id: Ibd55bdc77a2bfb0f5712dd9bf332910999b8d0d1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40123
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Callbacks should all reject instead of waiting for the device
to idle on shutdown.
Bug: dawn:652
Change-Id: Id4a9ab2560aa34b8ea574271f61f8a499e15ab3a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40360
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Refactors DawnTest's backend validation options to use an enum, as well
as adds the 'partial' option enable backend validation with a
reduced performance overhead to address TDR issues on the bots.
Bug: dawn:598
Change-Id: I759eff03bd117f1f20ad82aa2b71a87834f42b1d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40000
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
These types have an implicit storage class of UniformConstant.
Bug: tint:332
Change-Id: I78c5b2a085e543ebba7d5e92b8f11550d0cd4d49
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40400
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
Automatically set the storage class to UniformConstant.
Producing an error if an explicit storage class is given is deferred
until downstream users have caught up.
Bug: tint:332
Change-Id: I70e7390dc95d6f578a0fdeb675ca63a8b5b4fa26
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40160
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Enum conversion of builtins depends on storage class.
Bug: tint:471
Change-Id: I0b93c26139f72c70786b9b70f1016e62e1df62f4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40122
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
* Fix how the HLSL writer determines how to use a RWByteAddressBuffer
* Fix how the HLSL writer decides the register space for a storage
variable
* Fix inference of hlsl format in the tint executable
* Add support for data packing intrinsics
* type determination
* validation
* writers
* spirv reader
Bug: tint:340, tint:473, tint:474
Change-Id: I45dc8fd7c6f9abc7d30f617c7e3d713d7965b76e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40342
Commit-Queue: Alan Baker <alanbaker@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
The tests should wait till the MapAsync operation is complete
before calling GetMappedRange.
Bug: dawn:651
Change-Id: Iec001efaa3c3b76704dc4d926e91d1b1c58901bb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40303
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is useful for checking that generated SPIR-V is actually valid.
Change-Id: I851748f96b00e57d5915b32e4afec2b1c933b691
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40283
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
- Add more end2end tests for direct and indirect dispatches, including
0x0x0, 0xNxM, Nx0xM, NxMx0
- For direct dispatch, they will cause system crash on Metal backend.
Bug: dawn:640
Change-Id: I77a4bee87df89857b05b713de8d78b0cb1f0ca50
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39520
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
Workaround for Metal becuase system crashes on 0 dispatches.
Bug: dawn:640
Change-Id: I5bd33b22242ddc31816a16acb019ce2f552808bb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39521
Commit-Queue: Hao Li <hao.x.li@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Pull the mutable 'is_swizzled' semantic field from ast::MemberAccessorExpression and into a new semantic::MemberAccessorExpression node.
Have the TypeDeterminer create these semantic::MemberAccessorExpression nodes.
Bug: tint:390
Change-Id: I8fc6e36dabb417190528536a94d027af54059222
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40142
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
If TypeDetermination fails, then semantic info may be missing.
We don't want to have to guard against missing semantic nodes in each writer.
Bug: tint:390
Change-Id: I3124b514ce88f83bd3f75747c4ec6c960282f3c6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40141
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Functions like CreateReadyRenderPipeline reserve an
ObjectId for the pipeline created but the Id can not be
used until the callback is called successfully.
Bug: chromium:1172774, chromium:1172775
Change-Id: I145c0f033a2bde7957d15da2da8b9b19c6520ceb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39840
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is more a property of a MemberAccessorExpression than the identifier itself.
Change-Id: Icb17df1fe43a959332d73df026e77ca4e07d23ed
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40140
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>