It may not be the root cause of CTS memory leak, but we found some
issues in D3D12 memory allocation for large buffers (> 4M).
The memory allocation is not freed correctly when we call buffer
destroy. When we create a large buffer, it always allocate committed
resources from the system memory and append it to LRU cache, and will
try to free the expired memory in LRU cache when the left memory size
is not enough for the current allocation. When we call buffer destroy,
we remove its heap from LRU cache, release its allocation, but will
add the allocation reference to a delete queue and wait to be freed
together in the next device.tick. At this time, the destroyed memory is
not really released to the system memory. If no tick is triggered during
the buffer allocation and deallocation, these memories will never be
reused again and there will be a memory leak. We need to free these
memories when we detect there is not enough memory, do not wait for
device.tick to do that.
Add a stress case to track the issue, and need to discuss how to fix it.
Bug: dawn:957
Change-Id: Id4bcc97496d372ad7c27c31675327ca12e133217
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55740
Commit-Queue: Hao Li <hao.x.li@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Core WebGPU requires some Vulkan features to be implemented. Check for
them so that we don't return an adapter for a Vulkan device with
insufficient features.
Bug: dawn:796
Change-Id: I445760f184807b8f2d4ee248289b512c18038f33
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55920
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
This ensures ObjC objects do not leak. On non-Apple
platforms, the scope does nothing.
Fixed: dawn:546
Change-Id: Id43702e6536bf9cb37825a5449511e10cf0734f5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55841
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Set BUILD_EXAMPLE to OFF in UWP.
Disable Vulkan in UWP.
Compile GLFW related sources only on supported platform.
Remove linking to user32.lib in UWP.
Add linking to dxgi.lib only in debug configuration.
Use EmptyDebugLogger in UWP.
Bug: dawn:766
Change-Id: I3e6149058048d1b597267dfb9d63342b6a54e0af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55260
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch modifies the ValidateLinearTextureCopyOffset for T2B and B2T
commands to make sure that buffer offset is a multiple of 4 when the
texture is of a depth/stencil format. The unittests are also updated
to cover these cases.
Bug: dawn:721
Change-Id: I5cb9487e61e7f6ac7075157a092a1f3577844042
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55720
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Metal needs RenderTarget usage to be added to the texture
allocation so the clear can be done using a render pass.
Already working for GL which does not have usage flags on
creation.
Also working on Vulkan which does not need a render pass.
We use vkCmdClearColorImage.
D3D12 also needs a render pass to clear multisampled textures,
but it already requires multisampled
textures to be created with RenderTarget flags.
To test the behavior, NonzeroTextureCreation tests are
expanded, and the ExpectSampledDepthData helper is factored
into a more general ExpectSampledFloatData helper.
Fixes: dawn:794
Change-Id: If0f9f26f3c58b4292c85265aa7ff330e9931ddae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55604
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This change adds a few tests to cover more copy scenarios like
copy between different mip levels of the same texture, copies
between 3D texture and 2D Array textures for partial copies,
non-zero offset (copy origin), non-zero mip level, etc.
The new tests expose a bug, which is fixed by this change.
It also re-arranges the tests, in order to put all tests into
corresponding categories like T2B, B2T and T2T tests. Within each
category, tests are in the sequence of 2D texture tests, 2D array
texture tests, and 3D texture tests.
Bug: dawn:547
Change-Id: I624a8814d91950e69126705611f02e258eaf216b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55540
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Fixes locations that explicitly have TODOs about
checking for overflow. Also fixup other locations found while
searching the code for arithmetic operations.
Fixes: dawn:830
Change-Id: I4ef6b97a9cde14439e573a1da8d569ab985efc53
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55605
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is to get the new version of d3dcompiler_47.dll present in the
updated Windows toolchain.
Also rolls tools/clang and libc++abi to match the version used by
Chromium for this //build and //buildtools revision.
Also fixes -Wdeprecated-copy-with-dtor warnings in Dawn.
Roll build/ ea192b29d..0ff4b3d4e (529 commits; 1 trivial rolls)
ea192b29d2..0ff4b3d4ee
$ git log ea192b29d..0ff4b3d4e --date=short --no-merges --format='%ad %ae %s'
2021-06-22 chromium-autoroll Roll Fuchsia SDK from 5.20210621.3.1 to 5.20210622.0.1
2021-06-22 joelhockey Revert "Roll src/buildtools/third_party/libc++/trunk/ 8fa879467..79a2e924d (426 commits)"
2021-06-22 chromium-autoroll Roll Fuchsia SDK from 5.20210621.1.1 to 5.20210621.3.1
2021-06-21 robliao Add LASTCHANGE_YEAR Support to //build/util/version.py
2021-06-21 chromium-autoroll Roll Fuchsia SDK from 5.20210621.0.1 to 5.20210621.1.1
2021-06-21 stha09 unbundle: add libavcodec/packet.h to shim headers
2021-06-21 thakis Revert "Reland^4 "mac: Temporarily use lld as linker in non-pgo builds""
2021-06-21 chromium-autoroll Roll Fuchsia SDK from 5.20210620.3.1 to 5.20210621.0.1
2021-06-21 chromium-autoroll Roll Fuchsia SDK from 5.20210620.2.1 to 5.20210620.3.1
2021-06-20 chromium-autoroll Roll Fuchsia SDK from 5.20210620.0.1 to 5.20210620.2.1
2021-06-20 chromium-autoroll Roll Fuchsia SDK from 5.20210619.3.1 to 5.20210620.0.1
2021-06-20 thakis Reland^4 "mac: Temporarily use lld as linker in non-pgo builds"
2021-06-20 chromium-autoroll Roll Fuchsia SDK from 5.20210619.1.1 to 5.20210619.3.1
2021-06-19 chromium-autoroll Roll Fuchsia SDK from 5.20210619.0.1 to 5.20210619.1.1
2021-06-19 chromium-autoroll Roll Fuchsia SDK from 5.20210616.3.1 to 5.20210619.0.1
2021-06-19 brucedawson Updated toolchain with new d3dcompiler_47.dll
2021-06-18 thakis mac: Stop using thin archives in lld builds for now
2021-06-18 robliao Add LASTCHANGE_YEAR to lastchange.py for Automatic Year Substitution
2021-06-18 asully Revert "Reland^3 "mac: Temporarily use lld as linker in non-pgo builds""""
2021-06-18 thakis Reland^3 "mac: Temporarily use lld as linker in non-pgo builds"""
2021-06-18 bpastene chromeos: Isolate the test image rather than qemu image for VM tests.
2021-06-18 thakis posix: Remove sysroot_ld_path.sh
2021-06-18 gbeaty Add OWNERS files for controlling CQ usage.
2021-06-17 bialpio WebXR: roll ARCore APK version, revert workaround
2021-06-17 thakis Add a comment to install-sysroot.py saying where the output goes
2021-06-17 tikuta build: remove unused run_under_python2 references
2021-06-17 yyanagisawa ignore rewrapper related configs in build/args/chromeos.
2021-06-17 chromium-autoroll Roll Fuchsia SDK from 5.20210616.2.1 to 5.20210616.3.1
2021-06-17 pkotwicz [Build Android] Add tests for incremental javac
2021-06-17 yyanagisawa rewrapper: use linux config for chromeos host compiles.
2021-06-16 bpastene Revert "chromeos: Don't run lacros-related Tast tests on ash-chrome bots."
2021-06-16 miketaylr Revert back to generating chromium_git_revision.h via version.py
2021-06-16 chromium-autoroll Roll Fuchsia SDK from 5.20210615.2.1 to 5.20210616.2.1
2021-06-16 asully Indexeddb: Enable TSAN on CorruptDBRequestHandler
2021-06-16 rnk Give all Clang maintainers OWNERS in //build for cflag changes
2021-06-16 wnwen Android: Increase dex max heap size
2021-06-16 djean [ios] Move ios deployment target to 13.0
2021-06-16 hidehiko Remove dependency to linux/dri from Lacros.
2021-06-15 svenzheng Lacros tests run in parallel
2021-06-15 rnk Revert "Reland "Reland "mac: Temporarily use lld as linker in non-official non-component builds"""
2021-06-15 chromium-autoroll Roll Fuchsia SDK from 5.20210614.3.1 to 5.20210615.2.1
2021-06-15 hferreiro Merge ash/public/cpp/ash_switches.* into ash/constants/
2021-06-15 thakis Reland "Reland "mac: Temporarily use lld as linker in non-official non-component builds""
2021-06-15 pkotwicz [Build] Change 'cannot find symbol' compile message.
2021-06-15 chromium-autoroll Roll Fuchsia SDK from 5.20210614.2.1 to 5.20210614.3.1
2021-06-14 antoinedesbois Add config for unresolved symbols
2021-06-14 agrieve Update android resources doc: R.java are from androd_library()
2021-06-14 chromium-autoroll Roll Fuchsia SDK from 5.20210613.3.1 to 5.20210614.2.1
2021-06-14 pkotwicz [Build] Pass accurate GN target name to compile_java.py
2021-06-14 mheikal [Android] Enable unused resources removal on bundle targets (relandx2)
(...)
2021-03-30 chonggu [Fuchsia] Rename additional_manifests to additional_manifest_fragments
2021-03-30 chromium-autoroll Roll Fuchsia SDK from 3.20210329.3.1 to 3.20210330.0.1
2021-03-30 weizhong Manual roll of catapult
2021-03-30 chromium-autoroll Roll Fuchsia SDK from 3.20210329.1.1 to 3.20210329.3.1
2021-03-30 rmcelrath Check getActivity method owner in FragmentActivityReplacer
2021-03-30 svenzheng Lacros: ash_clang_x64 uses x11 ozone_platform
2021-03-29 bjoyce Mark UNKNOWN test results as ABORT for result_db.
2021-03-29 chromium-autoroll Roll Fuchsia SDK from 3.20210329.0.1 to 3.20210329.1.1
2021-03-29 pkotwicz Move BuildConfig.template to //build
2021-03-29 thakis Reformat a comment in the win toolchain gn file.
2021-03-29 chromium-autoroll Roll Fuchsia SDK from 3.20210328.3.1 to 3.20210329.0.1
2021-03-29 hidehiko Pass all available FDs from ash-chrome.
2021-03-28 chromium-autoroll Roll Fuchsia SDK from 3.20210328.1.1 to 3.20210328.3.1
2021-03-28 thakis symlink.py: Remove an "unused variable f" lint warning
2021-03-28 chromium-autoroll Roll Fuchsia SDK from 3.20210328.0.1 to 3.20210328.1.1
2021-03-28 chromium-autoroll Roll Fuchsia SDK from 3.20210327.3.1 to 3.20210328.0.1
2021-03-27 chromium-autoroll Roll Fuchsia SDK from 3.20210327.1.1 to 3.20210327.3.1
2021-03-27 chromium-autoroll Roll Fuchsia SDK from 3.20210327.0.1 to 3.20210327.1.1
2021-03-27 chromium-autoroll Roll Fuchsia SDK from 3.20210326.3.1 to 3.20210327.0.1
2021-03-26 chromium-autoroll Roll Fuchsia SDK from 3.20210326.1.1 to 3.20210326.3.1
2021-03-26 chromium-autoroll Roll Fuchsia SDK from 3.20210325.4.1 to 3.20210326.1.1
2021-03-26 chonggu [Fuchsia] Switch web engine and runner tests to use test-cmx fragments
2021-03-26 chromium-autoroll Roll Fuchsia SDK from 3.20210325.2.1 to 3.20210325.4.1
2021-03-25 gangwu Call ClipDescription#isStyledText() in Android S
2021-03-25 hnakashima [Android] Create lookup_dep.py
2021-03-25 bjoyce Change UNKNOWN default status of gtests to CRASH.
2021-03-25 thakis In is_ubsan_security builds, add fsanitize=vptr at gn level, not flag level
2021-03-25 thakis mac: Use llvm-nm when building on a non-mac host
2021-03-25 bjoyce Add additional regex check for crashes.
2021-03-25 chromium-autoroll Roll Fuchsia SDK from 3.20210325.0.1 to 3.20210325.2.1
2021-03-25 rubensf [reclient][nacl] Change nacl executable paths to use '\' on windows.
2021-03-25 hans Add script for analyzing the include graph
2021-03-25 sdefresne Use build/branding_buildflags.h instead of GOOGLE_CHROME_BUILD
2021-03-25 chromium-autoroll Roll Fuchsia SDK from 3.20210324.3.1 to 3.20210325.0.1
2021-03-25 aeubanks Unbreak Linux libFuzzer MSan bot
2021-03-25 chromium-autoroll Roll Fuchsia SDK from 3.20210324.1.1 to 3.20210324.3.1
2021-03-24 dpranke Attempt #4 of "Add test directory -> monorail component metadata to test"
2021-03-24 steveroe [fuchsia] Add test json to warn if Chrome-Fuchsia packages exceed 38.6M
2021-03-24 bsheedy Mark Android emulator as supported config
2021-03-24 akhuang Re-enable precompiled headers on Windows, since it's been fixed in Clang.
2021-03-24 chromium-autoroll Roll Fuchsia SDK from 3.20210324.0.1 to 3.20210324.1.1
2021-03-24 chromium-autoroll Roll Fuchsia SDK from 3.20210323.3.1 to 3.20210324.0.1
2021-03-24 dpranke Update '#!/usr/bin/python' shebangs to '#!/usr/bin/env python'.
2021-03-24 wez [android] Migrate Android toolchain rules to use llvm-{nm|strip}.
2021-03-24 chromium-autoroll Roll Fuchsia SDK from 3.20210323.1.1 to 3.20210323.3.1
2021-03-23 horo Revert "Attempt #3 of "Add test directory -> monorail component metadata."""
2021-03-23 dpranke Attempt #3 of "Add test directory -> monorail component metadata.""
2021-03-23 chonggu [Fuchsia] Remove unnecessary package vars from yaml files
2021-03-23 wez [clang] Use llvm-nm and llvm-strip when using Clang toolchain.
2021-03-23 chromium-autoroll Roll Fuchsia SDK from 3.20210323.0.1 to 3.20210323.1.1
Roll buildtools/ 69cc9b8a3..9c143ace7 (26 commits; 1 trivial rolls)
69cc9b8a3a..9c143ace75
$ git log 69cc9b8a3..9c143ace7 --date=short --no-merges --format='%ad %ae %s'
2021-06-22 joelhockey Revert "Roll src/buildtools/third_party/libc++/trunk/ 8fa879467..79a2e924d (426 commits)"
2021-06-17 ukai Update for roll clang llvmorg-13-init-12576-g643b6407-1 : llvmorg-13-init-12881-g4017d033-1
2021-06-14 ukai Update for roll clang llvmorg-13-init-12491-g055770d5-1 : llvmorg-13-init-12576-g643b6407-1
2021-06-11 ukai Update for roll clang llvmorg-13-init-11649-g4d788fb8-1 : llvmorg-13-init-12491-g055770d5-1
2021-06-09 ukai Revert "update for clang_version=llvmorg-13-init-11999-g50c0aaed-1"
2021-06-07 ukai update for clang_version=llvmorg-13-init-11999-g50c0aaed-1
2021-06-07 ukai fix reclient_cfgs/OWNERS
2021-06-04 ukai update for clang_version=llvmorg-13-init-11649-g4d788fb8-1
2021-06-04 ukai Add OWNERS for buildtools/reclient_cfgs
2021-06-01 ukai Add reclient_cfgs/win-cross-experiments
2021-05-21 rubensf [reclient] Add option for remote links.
2021-05-20 wnwen Android: Fix java_checker ignored directories
2021-05-19 wnwen Android: Fix py3 presubmit compat for java files
2021-05-19 jopalmer [COIL] Change chromium code search type links to use main rather than master for buildtools
2021-05-14 sky cct: calls setClientDataHeaderForNewTab for hidden tabs
2021-05-14 dpranke Reland "Make //buildtools/checkdeps Python3-compatible."
2021-05-12 thakis Revert "Make //buildtools/checkdeps Python3-compatible."
2021-05-12 dpranke Make //buildtools/checkdeps Python3-compatible.
2021-05-03 msavigny [reclient] Fix up reclient nacl wrapper config.
2021-04-30 msavigny [reclient] Fix up reclient c/c++ wrapper config.
2021-03-29 thakis linux: Don't link clang-format against zlib
2021-03-29 thakis linux: Build clang-format in a sysroot
2021-03-29 thakis mac: Don't link clang-format against libz.1.dylib either
2021-03-28 thakis mac: Don't link clang-format against /usr/lib/libncurses.5.4.dylib
2021-03-26 thakis mac: Add clang-format binary that can run on arm.
Created with:
roll-dep build buildtools
Change-Id: I48668fb6b45df25ba3cd2bc04665a78a9c4399ed
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55620
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Tint now combines a fixed sample mask with any mask authored in the
shader, and generates the builtin if necessary.
Fixed: tint:387
Change-Id: Ic084f28356432566e8d2566f45cf0730f4cd2f6d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55686
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Various aspects with this appear to be broken.
Bug: dawn:838
Change-Id: If706508b90214f9b5f4b2884448f281945295827
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55560
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
This bug does not need any work done. The code is correct. Depth
stencil store operations occur in the LATE_FRAGMENT_TESTS_BIT
stage. See crbug.com/dawn/853 for more information.
Fixes: dawn:853
Change-Id: Ib0b7a5af65d09d67d7500ad89dd88c32e13c6d91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55602
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
This reverts commit 7fc0c0519a.
Include fix for issues that caused initial revert
BUG=dawn:950
Change-Id: If1d095d19dd771fd7a608bc54f1bd908562d332c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55682
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This reverts commit 48183b8f58.
Reason for revert: Part of Dawn->Chromium breakage
BUG=dawn:950
Original change's description:
> Vulkan: honor bufferImageGranularity the simplest way.
>
> Vulkan requires that linear and opaque resources be placed in different
> "pages" of bufferImageGranularity size, as some hardware uses the page
> table to contain some compression bits or other stuff. Make Dawn honor
> this limit by aligning all allocations to bufferImageGranularity. This
> is pretty bad and should be improved later.
>
> Also does some cleanups:
> - Add kMappableBufferUsage to represent all mappable usages.
> - Remove the proxy function for resource management from
> vulkan::Device and call ResourceMemoryAllocator directly.
> - Use an enum to make the difference between mappable, linear and
> opaque resources.
>
> This issue was found while doing a change of the memory type selection
> in Vulkan, that started failing some unrelated tests on Nvidia. Without
> knowing the details of the HW or the driver it is really hard to write
> tests, except by copy-pasting a failing test. This is why there is no
> test added in this CL, and instead will rely on tests not failing with
> the follow-up CL.
>
> Bug: dawn:659
>
> Change-Id: Ib7c1f3f1949457e04ca8e23d212dc60af7046213
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52920
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,senorblanco@chromium.org,enga@chromium.org,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I133f6a44227819bf262ad2b6e8e9d0d7bfaaefaa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:659
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55642
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Previously when comparing a "bestType" that's device-local with a
"current" that's non-device-local, the logic to favor device-local
memory would be skipped and the types compared on their size. This lead
to incorrect memory types selection on some configurations (where the
small device local heap was selected).
Bug: dawn:659
Change-Id: Ie764815082ebeef845b70077fe630df05bcdb92b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39500
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Vulkan requires that linear and opaque resources be placed in different
"pages" of bufferImageGranularity size, as some hardware uses the page
table to contain some compression bits or other stuff. Make Dawn honor
this limit by aligning all allocations to bufferImageGranularity. This
is pretty bad and should be improved later.
Also does some cleanups:
- Add kMappableBufferUsage to represent all mappable usages.
- Remove the proxy function for resource management from
vulkan::Device and call ResourceMemoryAllocator directly.
- Use an enum to make the difference between mappable, linear and
opaque resources.
This issue was found while doing a change of the memory type selection
in Vulkan, that started failing some unrelated tests on Nvidia. Without
knowing the details of the HW or the driver it is really hard to write
tests, except by copy-pasting a failing test. This is why there is no
test added in this CL, and instead will rely on tests not failing with
the follow-up CL.
Bug: dawn:659
Change-Id: Ib7c1f3f1949457e04ca8e23d212dc60af7046213
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52920
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
After adding some e2e tests for 3D texture T2T copy on non-zero mip
levels, it turns out that there is a bug in the e2e test itself.
The 3D texture copy splitter works well.
Bug: dawn:547
Change-Id: I51aef7aaca4caf9c86bfb0590eb0288d17731ba5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55144
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Tint now matches the behavior of spirv-cross for shaders to use the
arrayLength builtin, and so needs a uniform buffer containing storage
buffer lengths to be passed to shaders that use this builtin.
Fixed: tint:256
Change-Id: Ib51cc4a3c6f7c2cdea867a23ed868d9d3740d734
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55181
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
https://chromium.googlesource.com/vulkan-deps/+log/3d799e0e9b08..6cbd7212ad42
$ git log 3d799e0e9..6cbd7212a --date=short --no-merges --format='%ad %ae %s'
2021-06-21 chromium-autoroll Roll Vulkan-Headers from 9d10a96f2d57 to 37164a5726f7 (2 revisions)
2021-06-18 chromium-autoroll Roll SPIRV-Tools from bcef913745e3 to 5dd2f76918bb (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-ValidationLayers from d1071c19a85c to 16db45029320 (4 revisions)
2021-06-17 chromium-autoroll Roll glslang from e74b35f3f5f8 to b38100f6bc00 (1 revision)
2021-06-17 chromium-autoroll Roll glslang from b9d06bdb0108 to e74b35f3f5f8 (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-Tools from 1c9e13dea32d to a680671d95bf (2 revisions)
2021-06-17 chromium-autoroll Roll glslang from 71612a7e5d6a to b9d06bdb0108 (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-ValidationLayers from ae3d0c321731 to d1071c19a85c (1 revision)
2021-06-17 chromium-autoroll Roll Vulkan-Tools from ec76459d6fdf to 1c9e13dea32d (1 revision)
2021-06-17 chromium-autoroll Roll SPIRV-Tools from 4d22f58a812e to bcef913745e3 (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-ValidationLayers from adb3eb0e78e3 to ae3d0c321731 (1 revision)
2021-06-16 chromium-autoroll Roll glslang from c830b26b5f7a to 71612a7e5d6a (1 revision)
2021-06-16 chromium-autoroll Roll glslang from a23e1436367f to c830b26b5f7a (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-Tools from 02897e9cb615 to ec76459d6fdf (1 revision)
2021-06-16 chromium-autoroll Roll Vulkan-Tools from f1f5bdbd1b60 to 02897e9cb615 (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-Tools from 7501ad708eaf to f1f5bdbd1b60 (1 revision)
2021-06-15 chromium-autoroll Roll glslang from b848fd6a9452 to a23e1436367f (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-ValidationLayers from e82c237574e0 to adb3eb0e78e3 (1 revision)
2021-06-15 chromium-autoroll Roll Vulkan-ValidationLayers from dafb955601bb to e82c237574e0 (2 revisions)
2021-06-15 chromium-autoroll Roll SPIRV-Tools from ecdd9a3e6bd3 to 4d22f58a812e (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from 7397d2636a3d to dafb955601bb (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from d867d21eb247 to 7397d2636a3d (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from 0143cbebff88 to 7501ad708eaf (1 revision)
2021-06-14 chromium-autoroll Roll glslang from fe1515867665 to b848fd6a9452 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from ac9393317a5c to 0143cbebff88 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Tools from 53231a96c0a6 to ac9393317a5c (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-ValidationLayers from b82d4bc69296 to d867d21eb247 (1 revision)
2021-06-14 chromium-autoroll Roll Vulkan-Headers from 07c4a37bcf41 to 9d10a96f2d57 (1 revision)
2021-06-11 chromium-autoroll Roll Vulkan-Tools from bbdf584b4f62 to 53231a96c0a6 (3 revisions)
2021-06-11 chromium-autoroll Roll Vulkan-Tools from 1021540dc2d2 to bbdf584b4f62 (1 revision)
2021-06-10 chromium-autoroll Roll SPIRV-Tools from bbc660edabf9 to ecdd9a3e6bd3 (2 revisions)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from 9dbca316aac1 to bbc660edabf9 (1 revision)
2021-06-09 chromium-autoroll Roll glslang from 3d935ea2243b to fe1515867665 (1 revision)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from c1a75bfabf6e to 9dbca316aac1 (1 revision)
2021-06-09 chromium-autoroll Roll SPIRV-Tools from d07505c761f5 to c1a75bfabf6e (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from cf7757488619 to b82d4bc69296 (4 revisions)
2021-06-08 chromium-autoroll Roll glslang from cb2c7fd674b9 to 3d935ea2243b (1 revision)
2021-06-08 chromium-autoroll Roll SPIRV-Tools from fb02131cb4ac to d07505c761f5 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 24f70cac5d64 to cf7757488619 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 55a3fc242217 to 24f70cac5d64 (1 revision)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 7cc35d372606 to 55a3fc242217 (2 revisions)
2021-06-08 chromium-autoroll Roll Vulkan-ValidationLayers from 8ce298d4d287 to 7cc35d372606 (1 revision)
2021-06-08 chromium-autoroll Roll SPIRV-Tools from 87a28679762f to fb02131cb4ac (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 159b3cc24003 to 8ce298d4d287 (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 46de0cdb7445 to 159b3cc24003 (12 revisions)
2021-06-07 chromium-autoroll Roll Vulkan-Tools from a8e96342e57d to 1021540dc2d2 (1 revision)
2021-06-07 chromium-autoroll Roll glslang from 1fa21491bc20 to cb2c7fd674b9 (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-Tools from 3ae088978f21 to a8e96342e57d (1 revision)
2021-06-07 chromium-autoroll Roll Vulkan-ValidationLayers from 5573a8ccfc9d to 46de0cdb7445 (1 revision)
2021-06-07 chromium-autoroll Roll SPIRV-Tools from c05f74415425 to 87a28679762f (1 revision)
(...)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 5d97074c3a01 to faea0bb06837 (2 revisions)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 5919c92a5bf2 to 5d97074c3a01 (1 revision)
2021-06-01 chromium-autoroll Roll Vulkan-ValidationLayers from 1dfbd1790542 to 5919c92a5bf2 (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from 0861a8fa21bd to 8b3dc6bbed46 (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from 9646c733e91d to 0861a8fa21bd (1 revision)
2021-06-01 chromium-autoroll Roll SPIRV-Tools from ec1bc3e2e567 to 9646c733e91d (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 94787b19f5f1 to 1dfbd1790542 (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 7176ec2ec8b6 to 94787b19f5f1 (2 revisions)
2021-05-31 chromium-autoroll Roll Vulkan-Tools from daa3490ea48a to 6149e30699b3 (1 revision)
2021-05-31 chromium-autoroll Roll Vulkan-ValidationLayers from 4ce9838c233c to 7176ec2ec8b6 (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 299187b140d1 to 4ce9838c233c (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-Tools from 4e4619ae690a to daa3490ea48a (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 93883725f2d9 to 299187b140d1 (1 revision)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 3a5976ccf876 to 93883725f2d9 (2 revisions)
2021-05-28 chromium-autoroll Roll Vulkan-ValidationLayers from 8a22bcf6bf74 to 3a5976ccf876 (2 revisions)
2021-05-27 chromium-autoroll Roll glslang from 6fe560f74f47 to 6bdcb4be344d (1 revision)
2021-05-27 chromium-autoroll Roll SPIRV-Cross from ff61890722a9 to a6ce49ca2420 (1 revision)
2021-05-27 chromium-autoroll Roll SPIRV-Tools from 94f570d7aa88 to ec1bc3e2e567 (1 revision)
2021-05-26 chromium-autoroll Roll SPIRV-Tools from 00ce2bb474e8 to 94f570d7aa88 (1 revision)
2021-05-26 chromium-autoroll Roll Vulkan-ValidationLayers from 67b22bff6c6f to 8a22bcf6bf74 (3 revisions)
2021-05-26 chromium-autoroll Roll Vulkan-ValidationLayers from 527470176179 to 67b22bff6c6f (1 revision)
2021-05-25 chromium-autoroll Roll SPIRV-Tools from e2ac64bdf003 to 00ce2bb474e8 (1 revision)
2021-05-25 chromium-autoroll Roll SPIRV-Tools from 91931ffcd22a to e2ac64bdf003 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from b0d5e59282a3 to 527470176179 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Tools from 72c2d5f0b0e5 to 4e4619ae690a (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Loader from a132dee142c0 to 3bdb32d29f2d (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from c7cd7dd80597 to b0d5e59282a3 (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-ValidationLayers from 00cc43d56498 to c7cd7dd80597 (1 revision)
2021-05-24 chromium-autoroll Roll SPIRV-Tools from 0afe1f2b3fa2 to 91931ffcd22a (1 revision)
2021-05-24 chromium-autoroll Roll Vulkan-Headers from 9af411e83fb0 to 7fe877c90abf (1 revision)
2021-05-22 chromium-autoroll Roll SPIRV-Tools from f0d110e3058b to 0afe1f2b3fa2 (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from 9326420ac7ef to 00cc43d56498 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from faec1a8643d2 to ff61890722a9 (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from bcc40ac73917 to 9326420ac7ef (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 9ea0e8b859da to faec1a8643d2 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from a6c951485604 to 9ea0e8b859da (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 0214990e7caa to a6c951485604 (1 revision)
2021-05-21 chromium-autoroll Roll SPIRV-Cross from 418542eaefdb to 0214990e7caa (1 revision)
2021-05-21 chromium-autoroll Roll Vulkan-ValidationLayers from c8b831c8282e to bcc40ac73917 (1 revision)
2021-05-20 chromium-autoroll Roll glslang from e71278cc927f to 6fe560f74f47 (1 revision)
2021-05-20 chromium-autoroll Roll Vulkan-ValidationLayers from cf0476d422aa to c8b831c8282e (24 revisions)
2021-05-20 chromium-autoroll Roll Vulkan-ValidationLayers from 9c5f59d1777c to cf0476d422aa (2 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 27cda2ec97d6 to 9c5f59d1777c (8 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-Tools from f89f72e10562 to 72c2d5f0b0e5 (4 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 0bbc61128c85 to 27cda2ec97d6 (1 revision)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from 65bde5b6634a to 0bbc61128c85 (1 revision)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from cfd1a0935879 to 65bde5b6634a (5 revisions)
2021-05-19 chromium-autoroll Roll Vulkan-ValidationLayers from db3f43f84989 to cfd1a0935879 (1 revision)
2021-05-18 chromium-autoroll Roll Vulkan-ValidationLayers from 1d86b3235b42 to db3f43f84989 (2 revisions)
2021-05-18 chromium-autoroll Roll glslang from 202c8abae0a3 to e71278cc927f (1 revision)
TBR=enga@chromium.org
Created with:
roll-dep third_party/vulkan-deps
Change-Id: I5a00ff7e4ef3e6237d8a0ed92168c6506656de26
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55255
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This CL adds the support ofwgpu::CopyTextureForBrowserOptions::alphaOps
for CopyTextureForBrowser(), which allows the user to specify the alpha
operations (DontChange, Premultiply, Unpremultiply) when calling
CopyTextureForBrowser().
BUG=chromium:1217153
Change-Id: Idb5dd4482b33f2ada9aafc24380afeb48f2e26bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54800
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
ShaderRobustnessPerf:
SPIRV-Cross apparently generates incorrect code for MSL and OpenGL, when
attempting to initialize workgroup memory. Disable these tests when not
running with use_tint_generator.
D3D12DescriptorHeapTest:
The UBO layout for a mat2x2 was incorrect, but the test relied upon this.
Temporarily disable the test so we can roll the fix.
Bug: dawn:945
Bug: dawn:946
Change-Id: I810249b26a8a0b583796c0ba63b8a703eb9540e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55248
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Refer the TODO in ShaderModuleBase::InjectCompilationMessages to
issue dawn:944 for further tracking.
Bug: dawn:753
Change-Id: I2ff09ba5914f2df0182bf26e9001a66782811f06
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55223
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Add the formatted tint messages in OwnedCompilationMessages, which will be emit after creating the shader module succeeds of fails.
This patch also change the compilation messages handling in creating shader modules. Now the compilation messages are separated from sparseResult, and should be handled manually. A new method, ShaderModuleBase::InjectCompilationMessages, is introduced to move a given OwnedCompilationMessages into the shader module, and emit the formatted tint errors and warnings. This method should be called explicitly on a valid or error shader module.
Bug: dawn:753
Change-Id: I5825186c6d9c4aa7725aebd0c302bfce5e1f37cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53890
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Also tighten previous suppressions to only apply when using the Tint
generator.
TBR=bclayton@google.com
Bug: tint:904
Change-Id: I22210227c428eb38901904966ec2c3bd70ce607b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Copies between 3D and 2DArray textures need to be done depth/array
slice by slice via CopyTextureRegion() API on D3D12 because this
API can copy one single subresource every time.
However, if both src and dst textures are 3D texture, we can copy
all depth slices in one shot, which is a fast path for this
copy scenario.
Bug: dawn:547
Change-Id: I950ed58319fb0f30dfc8a2de3e57e8a64406f7e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55140
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Disabling the one test clearly wasn't enough
Bug: tint:904
Change-Id: I23f448d2f3028fff13e4eb406b08a7175166ea9d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/55100
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Sarah Mashayekhi <sarahmashay@google.com>
Reviewed-by: Sarah Mashayekhi <sarahmashay@google.com>
The vertex buffer alignment in particular is helps make the
implementation of programmable pulling much easier on Metal since the
vertex data will be able to be represented as array<u32>.
Bug: dawn:805
Change-Id: I2bf2742db3b8fa478be620c892925b8b75dc514c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54659
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
This didn't make sense since these members can be specified to have no
data by setting the length to 0.
- Prevent uses of this patten by adding an assert in WireCmd.cpp's
generator.
- Fix SetBindGroup dynamicOffset to not be optional but default to
nullptr instead.
This issues would cause a read of uninitialized pointers becaus the
generator code looked like this:
SetBindGroupCmd cmd;
cmd.dynamicOffsetCount = record.dynamicOffsetCount; // 1
bool has_dynamicOffset = record.has_dynamicOffsetl // false
if (has_dynamicOffset) {
cmd.dynamicOffsets = ...;
}
// Oh no! dynamicOffsets contains garbage even if dynamicOffsetCount
// is set to 1. dawn_native will happily read it.
Bug: chromium:1220036
Change-Id: I5c468b639f671cef3be2fa64667a0bf114fc902b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54643
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Values of array and matrix can now only be indexed by a constant value.
Dynamic indexing requires the value to be held in memory.
See: https://github.com/gpuweb/gpuweb/issues/1782
Bug: tint:867
Change-Id: I2b9ad6e40fc8121e7aca3a71c190639b39b0b862
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54652
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Otherwise bindings with non-zero groups get through to the Tint MSL
backend and break assumptions.
Bug: tint:104, dawn:571
Change-Id: I8d95ba142a386ff0d992ffe5f88a7acf93057ce1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54960
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
CopySplitTests unittests were added for 2D texture copy splitter.
Now that we have added 3D texture copy splitter recently, it's time
to enable these unittests for 3D texture copy splitter.
This change enables the CopySplitTests unittests for 3D texture copy
splitter, with some fixes:
- Footprint depends on bufferOffset and copySize, not bufferSize,
- Copy regions overlap validation incorrectly added 1 extra pixel,
- For 2D texture copy regions, there is one empty row at most in
a copy region. However, it is not true for 3D texture copy
regions when we are copying the last row of each slice.
It also adds a few more tests for 3D texture copy splitter when the
copySize.height is 1 and there is an empty row in the copy region.
Bug: dawn:547
Change-Id: I5381993ed5c656da0f82395e7c7bccc54d784767
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54500
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
TextureOffset should respect both origin and copySize when we are
addressing the empty first row issue. So textureOffset in copy 1
should just move/add (copySize.height - blockInfo.height) rows
in order to copy the last row of all depth slices but the last one.
Bug: dawn:547
Change-Id: I6a1acf656651869c8934897d5c7e8974f1a5eb9a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54441
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>