10152 Commits

Author SHA1 Message Date
James Price
2a284b2a13 [hlsl-writer] Add support for sample_mask builtins
Bug: tint:372
Change-Id: Ie3fe7f6853396ff6a4ff47045b98b3b561bf1340
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40561
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-02-09 19:22:45 +00:00
James Price
2b5acacbd4 [msl-writer] Add support for sample_mask builtins
Bug: tint:372
Change-Id: Ib1d9dc525fbc180b603241c4746cbbd54077a489
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40640
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-02-09 19:13:25 +00:00
Dawn Autoroller
160edb3eba Roll Tint from 4a7981e300f3 to 7b7d69854d8d (19 revisions)
https://dawn.googlesource.com/tint.git/+log/4a7981e300f3..7b7d69854d8d

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC kainino@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: kainino@google.com
Change-Id: I0da1cdfc21d5b09b196b3e79e01cb225717be218
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41242
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-09 18:58:40 +00:00
Ben Clayton
3e8060b4e3 Add type::Type::FriendlyName()
Gives a WGSL-like string for the given type.

Also cleans up some code in IntrinsicTable.

Change-Id: I89a2fadb5291b49dcbf43371bb970eef74670e2c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40605
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-09 18:52:34 +00:00
Ben Clayton
6f48851f27 writer/spirv: Validate arrayLength()
This was tested but the output was not run through the validator.
Once the AST is actually correct, the output is validated correctly.

Fixed: tint:266
Change-Id: I83bb53323c124c8fbaa3cd9b80524f89c2e30557
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40601
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-09 18:45:14 +00:00
Ben Clayton
7b7d69854d TypeResolver: Fix TypeOf() for CallExpression
While traversing and resolving the AST, TypeOf() was called to look up
the semantic node for the given AST expression in order to fetch the
resolved type. However, for CallExpression semantic nodes are
constructed at the end of the AST traversal, and GetType() for these
would unexpectedly return nullptr, causing a crash.

To fix, have TypeDeterminer maintain an internal map of ast::Expression
to resolved type. Always populate this internal map whenever SetType() is
called. At the end of the AST traversal, have CreateSemanticNodes()
construct the semantic nodes for any ast::Expression nodes that do not
already have a semantic node assigned.

With this, GetType() will always return the type set with SetType().

Fixes tint -> dawn autoroller.

Fixed: tint:488
Change-Id: I2830c496d9b2e4807ec01ed69aeafb3912f4a890
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40606
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
2021-02-09 17:38:05 +00:00
Corentin Wallez
42f28d6914 Fix compilation using CMake on Linux
Bug: None
Change-Id: Ib5049d976eb16c0231516c48c52cde4b0968fd6e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41181
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-02-09 16:13:51 +00:00
dan sinclair
81302443f7 Fix building with gcc.
This CL renames the Parameters using statement to ParametersList so it
doesn't conflict with the Parameters method which is used later to
return the ParametersList.

Change-Id: I2ac19ba52fc0834e5a35b4b35a210dcc170866fc
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41240
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-02-09 15:37:44 +00:00
Corentin Wallez
ab8e7e5006 Vulkan: VK_EXT_subgroup_size_control should be chained on the stage
Previousl the VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT was
chained on the VkComputePielineCreateInfo when instead it should be
chained on the VkPipelineShaderStageCreateInfo, causing Vulkan
Validation errors.

Fixed: dawn:671
Change-Id: I9cc803a4f9120cf81f4e143818c3be58b73635d8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40604
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Hao Li <hao.x.li@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-02-09 11:08:48 +00:00
Ben Clayton
ab10db454b writer/spirv: Fix intrinsic calls with ptr 'out' parameters
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>
2021-02-08 23:07:45 +00:00
Ben Clayton
06d8db2bcb Add texture intrinsics to the IntrinsicTable
Automatically implements verification of texture intrinsic overloads.

Bug: tint:449
Change-Id: I74858902ddcc02337641dd422b800378215b0c7a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40507
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-08 22:59:44 +00:00
Ben Clayton
59d24735d0 Add IntrinsicTable
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>
2021-02-08 22:42:54 +00:00
Ben Clayton
316f9f6b6d Add semantic::Intrinsic
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>
2021-02-08 22:31:44 +00:00
Stephen White
e7e42ebbed Only default ANGLE to swiftshader if envvar empty.
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>
2021-02-08 21:30:44 +00:00
Ben Clayton
bab3197fda ProgramBuilder: Add more helpers for Members / Arrays
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>
2021-02-08 21:16:21 +00:00
Ben Clayton
4c51d97a5c Validator: Change the error message for v-0031
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>
2021-02-08 21:14:52 +00:00
Ben Clayton
a51aa1f805 Fix intrinsic tests so arguments match an overload
Change-Id: I8c5464e3198c6a3b154f5f3433466955e203efee
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40502
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-02-08 21:10:11 +00:00
James Price
21692def05 Skip SPIR-V validation when not generating SPIR-V
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>
2021-02-08 20:45:11 +00:00
Ben Clayton
b57c19d450 Change StorageTexture::SubTypeFor() signature
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>
2021-02-08 20:35:01 +00:00
Ben Clayton
3b4f3d2860 Fix tests so they only exercise legal texture overloads
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>
2021-02-08 20:24:52 +00:00
Ben Clayton
599d8f8c0d Rename intrinsic.cc to sem_intrinsic.
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>
2021-02-08 20:11:22 +00:00
Ben Clayton
052ab89a1e Rename semantic::Intrinsic to semantic::IntrinsicType
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>
2021-02-08 19:53:42 +00:00
Brandon Jones
58a471ae25 Add ability to generate typedefs from dawn.json
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>
2021-02-08 19:48:06 +00:00
Ben Clayton
2ddb1783c5 Add semantic::CallTarget, have Function derive from it
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>
2021-02-08 19:13:19 +00:00
David Neto
7efea888fa spirv-reader: instance_index must have u32 store type
Fixed: tint:485
Change-Id: I73613ae916b2d86b25470f292e5bf5cd5c7f288b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40582
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-08 16:12:09 +00:00
James Price
61306b882d [wgsl-reader][wgsl-writer] Fix implicit handle storage class for textures
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>
2021-02-08 15:08:49 +00:00
David Neto
6d1687fb01 spirv-reader: vertex_index always has u32 store-type
Fixed: tint:483
Change-Id: Ie26941ab751425dfbc0924ea21bee32dc0f92527
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40623
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-08 15:02:49 +00:00
Corentin Wallez
3c568f188d Revert "spirv-reader: add disabled test for compare sampling with explicit Lod"
This reverts commit 4a7981e300f3e61fe0f7cb6e55e993dc3b7c2a93.

Reason for revert: Empty GTest Values() causes compilation error in Chromium.

Original change's description:
> spirv-reader: add disabled test for compare sampling with explicit Lod
>
> This is blocked by discussion at W3C
> https://github.com/gpuweb/gpuweb/issues/1319
>
> Bug: tint:482
> Change-Id: Ic3a2b32fb09a431edbd7716a394a9eb3f163fb85
> Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40621
> Commit-Queue: Ben Clayton <bclayton@google.com>
> Reviewed-by: Ben Clayton <bclayton@google.com>
> Auto-Submit: David Neto <dneto@google.com>

TBR=dneto@google.com,bclayton@google.com

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

Bug: tint:482
Change-Id: I637c40950cd343196c2703c9854f584bf8f1c084
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40603
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-02-08 09:49:09 +00:00
Dawn Autoroller
734e88b2e7 Roll Tint from a2fa690cda46 to 4a7981e300f3 (1 revision)
https://dawn.googlesource.com/tint.git/+log/a2fa690cda46..4a7981e300f3

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: I7dfa7d1ffa02c090b81d5e4b8f5ea52eb2d2745b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41100
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-08 09:04:39 +00:00
Bryan Bernhart
2831f05840 D3D12: Log warning if missing SDK layers
Log warning (vs ASSERT) if SDK layers are not installed.

Bug: dawn:460
Change-Id: Idd5266b3d0781b09bda903fa0bc843f6600b2447
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40580
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2021-02-06 03:23:05 +00:00
Austin Eng
7fe5aa2eac Remove deprecated Wire APIs
Bug: dawn:565
Change-Id: I577532347c79e64b418a93551027e89910c3ce68
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40480
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-02-05 23:36:30 +00:00
David Neto
4a7981e300 spirv-reader: add disabled test for compare sampling with explicit Lod
This is blocked by discussion at W3C
https://github.com/gpuweb/gpuweb/issues/1319

Bug: tint:482
Change-Id: Ic3a2b32fb09a431edbd7716a394a9eb3f163fb85
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40621
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: David Neto <dneto@google.com>
2021-02-05 22:06:03 +00:00
Dawn Autoroller
20d5e380b3 Roll Tint from 1f2d38c826ce to a2fa690cda46 (1 revision)
https://dawn.googlesource.com/tint.git/+log/1f2d38c826ce..a2fa690cda46

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: I27f7871593c37eb1e2a6d96821785a8ce471d914
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40622
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-05 21:16:44 +00:00
Austin Eng
05d9e2cde2 Nuke the ClientMatches hack for same-device validation
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>
2021-02-05 21:08:44 +00:00
Corentin Wallez
fb2e77106a Remove utils::GetDefaultSamplerDescriptor
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>
2021-02-05 20:26:54 +00:00
Bryan Bernhart
14a2398e71 D3D12: Support per plane views with NV12 textures
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>
2021-02-05 20:11:24 +00:00
Corentin Wallez
185c6a5b0f Rolling 3 dependencies
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>
2021-02-05 13:58:53 +00:00
Brandon Jones
2b9707d336 Re-enable Intel D3D12 Validation Tests
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>
2021-02-05 00:14:42 +00:00
Stephen White
4846281d36 Don't call glUniform for Storage Texture on OpenGL ES.
Change-Id: I8595fb2c89e45819995748e502b800fb88605f44
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40341
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2021-02-04 22:17:52 +00:00
David Neto
a2fa690cda spirv-reader: sample_mask_in, sample_mask_out
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>
2021-02-04 22:12:30 +00:00
Dawn Autoroller
f92307dcc3 Roll Tint from b17aea159c32 to 1f2d38c826ce (13 revisions)
https://dawn.googlesource.com/tint.git/+log/b17aea159c32..1f2d38c826ce

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: Ib44a5b016588d29625e4c7fb5fbd2a94c69f2ae5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40440
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-04 20:46:02 +00:00
Austin Eng
a75b230acf Reject callbacks if the device is destroyed before completion
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>
2021-02-04 20:38:02 +00:00
Brandon Jones
bdbf98afca Add Backend Validation Levels Option to Dawn Tests
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>
2021-02-04 19:32:12 +00:00
James Price
1f2d38c826 [wgsl-writer] Omit the storage class for handle types
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>
2021-02-04 18:35:40 +00:00
James Price
0ff5e0bfb8 [wgsl-reader] Remove explicit storage class from samplers/textures
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>
2021-02-04 18:26:00 +00:00
David Neto
ef6eefdc8f spirv-reader: builtin conversions for sample_mask_in, sample_mask_out
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>
2021-02-04 17:34:00 +00:00
James Price
77f4f0280d [type-determiner] Add test coverage for scoping rules
Change-Id: I56430365585678812d6a91e26e0faee1409e53b3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40200
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-04 16:33:20 +00:00
David Neto
f4329f57e5 spirv-reader: GLSLStd450RoundEven maps to round
This is from the resolution to https://github.com/gpuweb/gpuweb/issues/1381

Bug: tint:3
Change-Id: If4158d8ff3bffce0e82d2230e5df5650193e7541
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40180
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2021-02-04 16:22:50 +00:00
Alan Baker
c63e1c0791 Implement data packing intrinsics
* 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>
2021-02-04 16:17:49 +00:00
Austin Eng
ef369b9ffc Fix GetMappedRange unittests on the wire
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>
2021-02-04 16:10:52 +00:00