Commit Graph

9535 Commits

Author SHA1 Message Date
dan sinclair 6c167a0dc7 msl: Promote local private vars to function scope
If a module-scope private variable is only referenced within a single
function, promote it to a function scope declaration instead of
passing it as a parameter. This reduces the number of a function
parameters that are needed in some cases.

Bug: tint:1509
Change-Id: I8951f6216bc7e4cf5abfda314bea1e9ed3ded560
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94002
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-28 02:06:05 +00:00
Jiawei Shao 1a758d8ceb D3D12: Remove tempBuffers in ExecuteCommandList()
This patch clears mTempBuffers everytime after d3d12CommandList
is executed in CommandRecordingContext. Previously mTempBuffers
won't be cleaned up until device is destroyed, which will
consume lots of unnecessary GPU memory.

Bug: chromium:1161355
Change-Id: Ie03d43847ed56e7f2b4bfc5b0f8244dfd7012625
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94820
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-28 00:28:35 +00:00
Austin Eng 65d35f8e7d Report javascript duration in CTS tooling
Always report the Javascript duration from the page instead of
the total duration from ResultDB. Reporting of the total duration
could be added back in the future, but usages of the tooling are
currently interested in the Javascript duration.

Bug: chromium:1336333
Change-Id: I74e91e7a9c29f3a4c45ed67898cc6f2de62e19a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94762
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-06-28 00:15:05 +00:00
Brandon Jones 14e6dfbd95 Remove failing depth32float-stencil8 expectations
The issue causing these tests to fail was resolved in
https://chromium-review.googlesource.com/c/chromium/src/+/3716961

Bug: 1069302
Change-Id: Iacf06539a0415431b3355bc4b2345c2eb7cab61a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94761
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
2022-06-28 00:11:10 +00:00
Ben Clayton 7ebcfc7e0e tint/transform: PromoteInitializersToLet
Rename PromoteInitializersToConstVar to PromoteInitializersToLet, and
implement promotion of 'const' variables that resolve to array types.

This is required, as the backends will inline variables that resolve to
'const' variables, and so we need to promote any 'const' values that
would emit an array constructor.

Bug: tint:1580
Change-Id: I1b7f5459512b0043385ba741d644ec776c912899
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94684
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-27 20:20:25 +00:00
Antonio Maiorano ce466c0df3 tint: spir-v writer: Fix matrix constructor from matrix variable
Bug: tint:1603
Change-Id: I580a450daa9392316cb628ceeb16490ec591deba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94860
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: dan sinclair <dsinclair@google.com>
2022-06-27 20:07:45 +00:00
Dawn Autoroller 7c5255a197 Roll ANGLE from 89e38b5799cc to 8f6889a111eb (2 revisions)
89e38b5799..8f6889a111

2022-06-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 7f32e27c6969 to 8fdbb85c2176 (321 revisions)
2022-06-27 ynovikov@chromium.org Skip TextureSampleShadingTest.Basic on Win Intel Vulkan

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: shrekshao@google.com
Change-Id: Id69fa33c084df5faf380f8fac21629327f7672e6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94880
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-27 19:40:55 +00:00
Dawn Autoroller 2f1b0dc47d Roll SwiftShader from 26243894edb8 to ec31f547750c (35 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/26243894edb8..ec31f547750c

2022-06-23 sugoi@google.com Fix stale SPIRV_SHADER_DBG statements
2022-06-23 sugoi@google.com Fix warning on Linux
2022-06-22 swiftshader.regress@gmail.com Regres: Update test lists @ 5cb6a639
2022-06-21 srisser@google.com Add StorageTexelBufferArrayDynamicIndexing
2022-06-21 swiftshader.regress@gmail.com Regres: Update test lists @ ff535623
2022-06-20 sugoi@google.com Expose Vulkan 1.3
2022-06-20 capn@google.com Fix workgroup builtins size
2022-06-20 nicolascapens@google.com Revert "Patch regression in FSR tests"
2022-06-20 capn@google.com Expose Wayland only when enabled
2022-06-20 swiftshader.regress@gmail.com Regres: Update test lists @ f833544f
2022-06-17 sugoi@google.com Expose bufferDeviceAddress support
2022-06-17 sugoi@google.com Handle spv::StorageClassPhysicalStorageBuffer
2022-06-17 srisser@google.com Implement descriptor indexing for texel buffers
2022-06-17 sugoi@google.com Allow subzero to cast pointers to integer types
2022-06-17 capn@google.com Adapt for LLVM 15 coroutine change
2022-06-17 sugoi@google.com Load and Store functions for pointers
2022-06-17 sugoi@google.com Implement SPIR-V OpBitcast for pointers
2022-06-17 sugoi@google.com Allow Operand objects to contain pointers
2022-06-16 sugoi@google.com Avoid clamping uninitialized values when clearing depth images
2022-06-15 antto.makinen@siru.fi Fix the linear-to-sRGB conversion on SRGB storage image writes
2022-06-15 capn@google.com Patch regression in FSR tests
2022-06-15 sugoi@google.com OpTypeForwardPointer support
2022-06-15 sugoi@google.com bufferDeviceAddress: opaqueCaptureAddress support
2022-06-14 antonio.caggiano@collabora.com GN: Wayland build overrides
2022-06-13 dnfield@google.com Missing libs for win32 builds
2022-06-13 nicolas.capens@gmail.com Eliminate multiplication operators on SIMD::Pointer
2022-06-13 capn@google.com Roll dEQP to version 1.3.2 merged into main
2022-06-09 swiftshader.regress@gmail.com Regres: Update test lists @ f1a62bb4
2022-06-08 sugoi@google.com OpSelect implementation for pointers
2022-06-08 srisser@google.com Implement descriptor indexing for storage buffers
2022-06-08 antonio.caggiano@collabora.com GN: Fix wayland import check
2022-06-08 ericcurtin17@gmail.com Do not assume drm card is card0
2022-06-07 sugoi@google.com OpPtrAccessChain implementation
2022-06-06 antonio.caggiano@collabora.com GN: Expose Wayland surface extension on Linux
2022-06-06 antonio.caggiano@collabora.com Dynamically detect libwayland-client

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: shrekshao@google.com
Change-Id: Ia9bb6049dff618bae53b2cd74bfe4d84f773242a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94840
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-27 16:45:17 +00:00
Antonio Caggiano 8a29038826 GN: Wayland build overrides
Introduce //build_overrides/wayland.gni to simplify the management of
the wayland dependencies.

Bug: chromium:1327041
Bug: angleproject:7409
Change-Id: Ib1e120c722aec6ff3cb171f39a8e794b93799129
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/93788
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: dan sinclair <dsinclair@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2022-06-27 15:17:34 +00:00
dawn-autoroll 9111e751c6 Roll vulkan-deps from 3da2aaf1f8a5 to 4e6188c82519 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/3da2aaf1f8a5..4e6188c82519

Changed dependencies:
* vulkan-validation-layers: afb8986592..ea9030ad6c

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: I813e416f99609c50b71b85b7b038fed9ff51a1a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94822
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-27 14:10:01 +00:00
Jiawei Shao dadf11909a Clamp clear color value to legal range for uint/sint formats
This patch clamps GPURenderPassColorAttachment.clearValue into the
legal range for uint/sint formats according to the latest WebGPU
SPEC.

This patch also adds tests to verify we can directly apply floating
point clear values for normalized floating formats.

We don't handle non-normalized floating formats as the exact choice
of the converted value is implementation-defined.

Bug: dawn:1449
Test: dawn_end2end_tests
Change-Id: I864f3e9bafb9c7ecd0ed9cfa7f401174da000884
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94501
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2022-06-27 04:28:32 +00:00
Dawn Autoroller ceb7236547 Roll ANGLE from de109f9ef3be to 89e38b5799cc (1 revision)
de109f9ef3..89e38b5799

2022-06-27 eddiehatfield@google.com Refactor to use ANGLETest vs ANGLETestWithParam

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: Id5040c21f2146cc8e64b21e6f1e96e79bafbc000
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94800
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-27 04:02:43 +00:00
Yan,Shaobo 7ce3c2da35 Add Device.CreateErrorExternalTexture()
Creating GPUExternalTexture from destroyed device should return
an error external texture instead of a valid one. Adding this API
for such usage.

Bug: 1336713, 1338182
Change-Id: Ie7d13811a9c1e8890ba91045c88af63f3fb09687
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94534
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-27 02:57:40 +00:00
Ben Clayton 54b3da95f8 tint/transform: Handle 'const' for Unshadow.
Bug: tint:1580
Change-Id: I0af473ac13abde1f1890851aeb92812be6a52933
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94682
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-26 14:38:30 +00:00
Ben Clayton fcf9fdcad8 tint/writer/wgsl: Emit 'const' variables
Bug: tint:1580
Change-Id: Iea2a38814757f79ba645c94cfa89fe84b5d200d1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94681
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-26 12:40:40 +00:00
Ben Clayton f90313396b tint/reader/wgsl: Drop const_expr parsing
The WGSL specification changed so that the enforcing of
initializers being only const-expr is no longer done by the
grammar. This is change is required to allow for 'const' expressions to
reference each other.

Bug: tint:1580
Change-Id: Ia95b6a0bc86ce391a38f4248f20898dd9a6cf27f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94683
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2022-06-26 11:36:10 +00:00
Ben Clayton e48ef8ef90 tint/reader: Enable 'const' parsing for unit-tests
This enables the WGSL parsing of 'const' for only tint_unittests,
allowing code to be split up into smaller chunks for review.

Once all the logic is submitted to handle 'const', the test-only
flag will be removed, and 'const' will be enabled for production.

Bug: tint:1580
Change-Id: I3189b6bd15445ecc3fa1cd6f568885e7ba3c91c0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94680
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-26 10:52:50 +00:00
Ben Clayton 511529f082 tint/resolver: Clean up workgroup-size error diagnostic
Change-Id: I09cc3e15c1f62d7a104e9727a104f3b2bfc9c973
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94607
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-26 09:05:00 +00:00
Ben Clayton 410a3bd19a tint/resolver: Propagate constant values between 'const's
Required for 'const' values that use other 'const' values in their
expressions.

Bug: tint:1580
Change-Id: I1d86281bec19340fdc0c60dc5b22eb3d6dc04cf5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94606
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-26 08:40:00 +00:00
Ben Clayton e3834c4760 tint/resolver: Resolve 'const' variables
The frontends do not currently emit these, nor do the backends currently
handle them.

Bug: tint:1580
Change-Id: I469a5379663c2802145b28a94f5c1e348cc14ff3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94605
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2022-06-25 23:21:39 +00:00
Dawn Autoroller 153405954d Roll ANGLE from 4c5e9d476bc7 to de109f9ef3be (4 revisions)
4c5e9d476b..de109f9ef3

2022-06-25 djg@apple.com Metal: Maintain BufferPool freelist constraint
2022-06-24 eddiehatfield@google.com Miscellaneous C++17 refactoring
2022-06-24 m.maiya@samsung.com Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
2022-06-24 eddiehatfield@google.com Refactor builtin symbol generation for C++17

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: Iaab195ffa857f5f83df1d8b10f94c853488a7ac1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94780
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-25 12:06:19 +00:00
dawn-autoroll e741b8fcfb Roll vulkan-deps from 87d2649aa928 to 3da2aaf1f8a5 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/87d2649aa928..3da2aaf1f8a5

Changed dependencies:
* vulkan-tools: 25b838f3a2..4643f73ec7
* vulkan-validation-layers: e32ec7b051..afb8986592

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: I20fec8da7343b22b59718b3023bf9bdc5bc49e76
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94723
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-25 12:05:39 +00:00
Ben Clayton 01208e7e42 tint: Rename Global() -> GlobalVar()
We have `GlobalLet()`, `Let()`, `Var()`, so this just
keeps things consistent

Change-Id: Ie9f79b62e737a15b995c5a2b19f84621a5ac3cc9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94604
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-25 08:12:59 +00:00
Ben Clayton 41486e1135 tint: Rename GlobalConst() -> GlobalLet()
GlobalConst() is going to mean a module-scope `const`, once we
support `const`. `GlobalLet()` will then be removed.

Bug: tint:1580
Change-Id: Ie00e9ccdee8c111266850bfe1e1e24f022a59a06
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94603
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2022-06-25 07:17:29 +00:00
Ben Clayton bd8449f37d tint/test: Regenerate expectations
Fix collision of two CLs landing with different expectations.

Change-Id: I44eb904b552f635e37dd51dcc94329fbc34af031
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94685
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2022-06-25 00:55:59 +00:00
Loko Kung 7289bca018 Add dawn version hash to cache keys.
Motivation is to simplify cache evicting by reusing the LRU to evict stale entries from older Dawn versions since there isn't already a simple cache busting solution. The dawn version will just be pushed into the cache keys instead so old version entries will eventually be retired.

- Removes the fingerprint from the GetCachingInterface API on DawnNative.
- Adds the "fingerprint", which was just the hash, to the device;s cache key directly instead.

Bug: dawn:549
Change-Id: I573aa03a2bb96dfe044293b1176d3a7746725572
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94140
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
2022-06-24 23:39:49 +00:00
Ben Clayton b4ff8c859a tint/resolver: Simplify array size evaluation
Use the constant evaluated value instead of manually traversing
variables to find the literal value. This is a small step towards
supporting 'const' values for array sizes.

Also make our OOB-byte related error diagnostics consistent.

Bug: tint:1580
Change-Id: Idf9eb22cdbf69d750218c554e9f826c30458c6b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94600
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-24 23:30:59 +00:00
Antonio Maiorano 268d7b8357 tint: Add support for atomic ops to spirv reader
The following operations are supported:

OpAtomicLoad
OpAtomicStore
OpAtomicExchange
OpAtomicCompareExchange
OpAtomicCompareExchangeWeak
OpAtomicIIncrement
OpAtomicIDecrement
OpAtomicIAdd
OpAtomicISub
OpAtomicSMin
OpAtomicUMin
OpAtomicSMax
OpAtomicUMax
OpAtomicAnd
OpAtomicOr
OpAtomicXor

These are not, but may be supported in the future:

OpAtomicFlagTestAndSet
OpAtomicFlagClear
OpAtomicFMinEXT
OpAtomicFMaxEXT
OpAtomicFAddEXT

Bug: tint:1441
Change-Id: Ifd53643b38d43664905a0dddfca609add4914670
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94121
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2022-06-24 22:28:23 +00:00
dawn-autoroll 57810d81d5 Roll vulkan-deps from 54dba77e8a94 to 87d2649aa928 (6 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/54dba77e8a94..87d2649aa928

Changed dependencies:
* spirv-tools: c4ed5157dc..37d2396cab
* vulkan-loader: 865626abba..e91cfe1cf9
* vulkan-tools: 6f57b1fa23..25b838f3a2
* vulkan-validation-layers: acd5c164ce..e32ec7b051

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: I294f5d5c39cfc94fbd72f1381d20673b731c767c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94721
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-24 22:22:19 +00:00
Ben Clayton ebed939759 tint/resolver: Tidy up variable_test.cc
Split tests up by variable type, and group them.

Change-Id: I4a9ae620883cd2acc05745b54f85df7b3fe7ac3d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94602
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-24 22:21:39 +00:00
Dawn Autoroller 0490ee8e42 Roll ANGLE from 79185677cb63 to 4c5e9d476bc7 (3 revisions)
79185677cb..4c5e9d476b

2022-06-24 yuxinhu@google.com Do not defer clear if FBO attachment is AHB image
2022-06-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1765af41ecf5 to 11ad77222bfe (3 revisions)
2022-06-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 19706bf6c7d2 to 7f32e27c6969 (707 revisions)

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: If14df2368de1351bbcec5cb953ed7d169710b42f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94740
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-24 21:53:39 +00:00
Loko Kung ebafa81813 Suppress ASAN failing D3D12 pipeline caching tests until debugged.
Bug: dawn:1471
Change-Id: I73a38ac113bdd6084c5fe7b5e921f40a9ae5665b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94760
Reviewed-by: Austin Eng <enga@chromium.org>
Auto-Submit: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-06-24 21:48:39 +00:00
Ben Clayton 68ae36e43d tint/resolver: Rename var_let_*test.cc -> variable_*test.cc
Gives us a place to put `const` and `override` tests.

Bug: tint:1580
Change-Id: I0340c37e96f796d2f879d4045623b35927e45c78
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94601
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-24 21:26:39 +00:00
Antonio Maiorano dfeaf29055 tint: Add sem::IndexAccessorExpression
Also store expression object in MemberAccessorExpression, as well as the
struct on sem::StructMember.

These are used to implement spir-v reader atomics in a follow-up CL.

Bug: tint:1441
Change-Id: Iea49cfb7f9d2e7898d89d2dac6a16a14022c546f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94523
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-06-24 20:34:00 +00:00
Austin Eng 90ec3d1368 Change base directory for CTS runner, part 2
Now that the test harness serves resources from the new path at
BUILD_DIR/gen/third_party/dawn, remove the other import of the
framework/resources.js script from the old path.

Bug: chromium:1338672
Change-Id: I854e8276f30924a50cc1631f1b28520f16bb5558
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94700
Commit-Queue: Brandon Jones <bajones@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
2022-06-24 18:50:19 +00:00
Austin Eng c8a276a28e Skip inputSource="const";* f32_logical on Win NVIDIA x86
Also timing out on this platform. For example see:
https://ci.chromium.org/ui/p/chromium/builders/ci/Dawn%20Win10%20x86%20Release%20(NVIDIA)/63134/test-results

Bug: none
Change-Id: I922763a22899b11a9b95fb18248757c5d1ca5e61
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94643
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-24 18:30:59 +00:00
Ben Clayton 32cb9cf2f8 tint/writer: Disable constant inlining for lets
Once 'const' is introduced, let will no longer resolve to a
creation-time constant value.

Add temporary code into each of the writers to prevent constants that
originate from a 'let' from being inlined. This will reduce the amount
of noise in later CLs.

Bug: tint:1580
Change-Id: Id3493a43ac09fe9f042ff2d517d04b2ae854d43e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94541
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2022-06-24 18:15:39 +00:00
Brandon Jones 431c7a4f66 Add maxInterStageShaderVariables Limits
Will statically report the base limit of 16 for now. Important to note
that this is not validated properly within Tint at this point, and the
current constant associated with this limit is actually 15.

Bug: dawn:1448
Change-Id: I74a5815cc34439ccc3b6ff9cd0afbc56590148fe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94661
Commit-Queue: Brandon Jones <bajones@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2022-06-24 17:30:29 +00:00
Zhaoming Jiang c5f7e8f0bc tint: Fix emitting identity matrix ctor in HLSL
This patch fix the issue of identity matrix constructors in HLSL. This
patch also fix dawn e2e tests for identity matrix constructors and zero
matrix constructors.

Bug: tint:1596, tint:1545
Change-Id: I6c41eb299c1d5f89cf18720611f450abae26d3f4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94042
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2022-06-24 17:21:59 +00:00
Ben Clayton f47887d207 tint/writer/msl: Generate an array<T,N> helper
And remove the WrapArraysInStructs transform.

Wrapping arrays in structures becomes troublesome for `const` arrays, as
currently WGSL does not allow `const` structures.

MSL 2.0+ has a builtin array<> helper, but we're targetting MSL 1.2, so
we have to emit our own. Fortunately, it can be done with a few lines of
templated code.

This produces significantly cleaner output.

Change-Id: Ifc92ef21e09befa252a07c856c4b5afdc51cc2e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94540
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
2022-06-24 17:01:59 +00:00
Ben Clayton 3c054304a8 tint/sem: Support arrays for sem::Constant
https://github.com/gpuweb/gpuweb/issues/3056 proposes that creation-time
constant expressions should support arrays. We have verbal agreement to
update to spec to support const arrays.

Bug: tint:1580
Change-Id: If460f729384d700a1c2149c5b7dbe8613a960184
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94330
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2022-06-24 15:28:28 +00:00
Stephen White c174692187 OpenGL: Make Device::gl private.
Make Device::gl private, and rename it to mGL. Change all accesses to
use Device::GetGL() accessor.

This is a precursor to adding native EGLContext support to
Dawn.

Bug: dawn:810
Change-Id: I3793d83644a70bafc6bea8b423c1a7c76beb248d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94560
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-24 14:12:39 +00:00
Ben Clayton e8d47d5263 tint/sem: Add more checks to constant_test.cc
Check more stuff.

Change-Id: I99ba3200bb72975e9b0a740d632f7766d38e9a84
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94334
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2022-06-24 09:01:18 +00:00
Ben Clayton ab70ff7a2f tint/writer/spirv: Clean up accessor tests
Remove duplicate tests.
Use a common pattern of sanitizing, building and dumping the whole
module instead of calling individual methods. There's too much internal
state being tracked in the tests for my liking.

Split most tests into three:
* Const_* tests will check the emission of creation-time-constant
  expressions.
* Runtime_* tests will check the emission of runtime expressions, where
  indexing operates with a constant index.
* Dynamic_* tests will check the emission of runtime expressions, where
  indexing operates with a runtime index.

Bug: tint:1580
Change-Id: I0f92aaaa570cbd917d2b6937c6396605c6b542c9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94333
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-24 08:57:38 +00:00
dawn-autoroll 7400a5519f Roll vulkan-deps from 470172656108 to 54dba77e8a94 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/470172656108..54dba77e8a94

Changed dependencies:
* spirv-cross: ba3e6ffe03..e6925974d1
* spirv-tools: 76fe352190..c4ed5157dc
* vulkan-validation-layers: 6ba32ffc01..acd5c164ce

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: bajones@google.com
Change-Id: Id841745d45d140aa5726409ac2b90098d0a05f30
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94641
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-06-24 08:40:08 +00:00
Ben Clayton 3a68ab4a17 tint/writer: Minor generator cleanup.
No-op change.

Change-Id: Ic5057bbacea09c6ed57d4f735a18d6c1040f1f5f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94332
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-24 08:30:28 +00:00
Brandon Jones 01e4d44e1e Roll third_party/webgpu-cts/ 5a30cb44c..cef4c7678 (33 commits)
Change-Id: Ie4943f8dcda0cc9d485c6c0b586ccb132a05389b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94500
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2022-06-24 08:10:29 +00:00
Ben Clayton 5041480715 tint/writer: Clean up EmitConstant() methods
Aside from more SPIR-V using OpConstantNull, this is a no-op change.
By refactoring these methods, they're easier to read, and contain less
lambda-heavy code.

Change-Id: I89c26b2b9f1cd0785d86fb3293f7cfda550bef2e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94331
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-06-24 08:06:19 +00:00
Zhaoming Jiang 18b966321b tint: remove duplicated ending newline in ctor_conv_intrinsic.cc
This patch remove the duplicated ending newline in ctor_conv_intrinsic
to make cl presubmit upload check happy.

Change-Id: Iec9f415416407696ad210243d011e53dcf28b554
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94662
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-06-24 08:02:19 +00:00
Austin Eng 245e91d42e Add AlignTo method to make a Blob's contents aligned
After loading a Blob from the cache, Dawn may need it to
match a particular alignment. For example, SPIRV must be 4-byte
aligned, or Dawn may need to cast a Blob to a struct layout.

Bug: dawn:549
Change-Id: Iad4857d1ad2d9b41e61e9f177aa7083b1f078be5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94532
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-06-24 07:44:49 +00:00