10225 Commits

Author SHA1 Message Date
David Neto
91332dc475 [spirv-reader] Support kill
Bug: tint:3
Change-Id: I91472b98c9977a5bdce6fc2ab4880e8312881fcf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22500
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-02 19:56:07 +00:00
Bryan Bernhart
adbf9153d9 D3D12: Fix RO storage buffer mismatches.
If the shader declares a storage buffer RO but uses storage buffer in
the BGL, the shader compiler will be told to treat these bindings as
UAV instead of SRV to avoid PSO mismatches.

Bug: dawn:410
Change-Id: I3be3257449de55fd2d35e914233b48c6f7121b58
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22322
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-06-02 19:16:20 +00:00
Austin Eng
3fb9c1bbfb Add warning for non-c-typedef-for-linkage
This is blocking Skia from updating to newer clang

Tbr=cwallez@chromium.org
Bug: chromium:1064305
Change-Id: I7d894dba701ebe2fe0e1b78d5fb42032d88846aa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22522
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-02 18:54:20 +00:00
Austin Eng
5b3cdc66fd Skip creating the VkImageView if the texture usage is only Copy
Bug: dawn:399
Change-Id: Iedd097dc96b248499fefd0c259b13fb55fc39f0d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22380
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-06-02 18:39:59 +00:00
dan sinclair
1d69915155 Rename case statement conditions to selectors.
The name conditions isn't quite correct for the case statement. This CL
updates the code to use selectors instead of conditions.

Change-Id: I98b8050b11e2328f97e4443469572ab47d7c1555
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22520
Reviewed-by: David Neto <dneto@google.com>
2020-06-02 17:18:56 +00:00
David Neto
cb48e79fa5 [spirv-reader] Support return, return-value
Bug: tint:3
Change-Id: Iaaf6ace739ac30e7f9f0bd4ddcef209ab1b71ed8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22480
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-02 16:48:27 +00:00
David Neto
d8613596e2 [spirv-reader] Emit loop and continuing
Bug: tint:3
Change-Id: Iaced5ee41f6b27ab350432fc1c2cdff6042ba191
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22423
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-02 16:46:51 +00:00
David Neto
468c26b233 [spirv-reader] Emit control flow: if/then/else
Bug: tint:3
Change-Id: Ief0544415f27842913a6234a962d163ecedb48df
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21821
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-02 13:25:06 +00:00
Corentin Wallez
47a3341e07 Deprecate Buffer::SetSubData in favor of Queue::WriteBuffer
Bug: dawn:22
Change-Id: I00b3cd65ac4eb494b05918251f4b3b2bcaf24f71
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22200
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-06-02 09:24:39 +00:00
Austin Eng
3b7d0858bf D3D12: Skip dynamic buffer bindings with None visibility
This was hitting an ASSERT because D3D12 doesn't have an option
to set None as the shader visibility.

Bug: dawn:448
Change-Id: I3e056e531e7d1bb89da1736bc609bfe97a2fa194
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22324
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-06-01 23:42:57 +00:00
Ryan Harrison
0e3c27de6a Rolling 5 dependencies
Roll third_party/SPIRV-Tools/ d3d89bb90..f050cca7e (5 commits)

d3d89bb90c..f050cca7ec

$ git log d3d89bb90..f050cca7e --date=short --no-merges --format='%ad %ae %s'
2020-05-29 andreperezmaselco.developer spirv-fuzz: Add push id through variable transformation (#3359)
2020-05-27 rharrison Rolling 4 dependencies (#3380)
2020-05-27 stevenperron Start SPIRV-Tools v2020.4
2020-05-27 stevenperron Finalize SPIRV-Tools v2020.3
2020-05-27 stevenperron Update CHANGES

Roll third_party/glslang/ 2b0eafb1d..d39b8afc4 (4 commits)

2b0eafb1de..d39b8afc47

$ git log 2b0eafb1d..d39b8afc4 --date=short --no-merges --format='%ad %ae %s'
2020-05-28 40001162+alelenv EXT_ray_tracing requires spv1.4 (#2237)
2020-05-28 shuizhuyuanluo fix warning unused parameter in release build (#2251)
2020-05-27 greg Fix missing patch decoration for TessFactor PCF arg (#2249)
2020-05-27 greg Update SPIRV-Tools to stable. Also SPIRV-Headers to TOT. (#2250)

Roll third_party/shaderc/ 7d2f8c57e..da87b8d8b (3 commits)

7d2f8c57ee..da87b8d8b0

$ git log 7d2f8c57e..da87b8d8b --date=short --no-merges --format='%ad %ae %s'
2020-06-01 bryan.bernhart Support forcing storage buffers to be always declared as UAV. (#1076)
2020-06-01 rharrison Roll third_party/spirv-cross/ 61cddd630..d385bf096 (4 commits) (#1077)
2020-05-26 rharrison Rolling 4 dependencies and expectations (#1074)

Roll third_party/spirv-headers/ ac638f181..11d7637e7 (7 commits)

ac638f1815..11d7637e7a

$ git log ac638f181..11d7637e7 --date=short --no-merges --format='%ad %ae %s'
2020-06-01 dneto spir-v.xml: Use plain ASCII quotes in comment
2020-05-29 cepheus Rebuild headers against the previous grammar commit.
2020-05-29 dmitry.sidorov Apply suggestions
2020-04-05 dmitry.sidorov Add Intel specific definitions from KhronosGroup/SPIRV-LLVM-Translator
2020-05-29 cepheus Header build from previous grammar update.
2020-05-25 michael.kinsner Propose bit allocation mechanism for the FP Fast Math Mode bitfield, following from the mechanism previously added for the loop control bitfield.
2020-04-05 dmitry.sidorov Add SPV_INTEL_function_pointers preview extension

Roll third_party/tint/ 537039009..e2be48975 (11 commits)

https://dawn.googlesource.com/tint/+log/537039009663..e2be4897566d

$ git log 537039009..e2be48975 --date=short --no-merges --format='%ad %ae %s'
2020-06-01 dsinclair Fix merge conflict
2020-06-01 dsinclair [spirv-writer] Add fallthrough support
2020-06-01 dsinclair [spirv-writer] Add switch support
2020-06-01 dneto [spirv-reader] use stack of statement lists
2020-06-01 dneto [spirv-reader] Add problematic CFG case as disabled test
2020-06-01 dsinclair Add case_selectors update
2020-06-01 dsinclair [spirv-writer] Generate kill statements.
2020-06-01 dsinclair Updating to match WGSL spec.
2020-06-01 dsinclair Update intrinsics in the grammar.
2020-06-01 dsinclair Update WGSL grammar builtins to match spec.
2020-05-27 dj2 [spirv-writer] Remove stpq support.

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint

Change-Id: Ifbd3f1db31c76b8895242dd5104d2027de8824af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22442
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-06-01 20:07:53 +00:00
Bryan Bernhart
e388716e52 Roll third_party/shaderc/ 7d2f8c57e..da87b8d8b (3 commits)
7d2f8c57ee..da87b8d8b0

$ git log 7d2f8c57e..da87b8d8b --date=short --no-merges --format='%ad %ae %s'
2020-06-01 bryan.bernhart Support forcing storage buffers to be always declared as UAV. (#1076)
2020-06-01 rharrison Roll third_party/spirv-cross/ 61cddd630..d385bf096 (4 commits) (#1077)
2020-05-26 rharrison Rolling 4 dependencies and expectations (#1074)

Created with:
    roll-dep third_party/shaderc

Change-Id: Icc6d6048d584e1b58a9ff777e5e7238fab6aeda7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22422
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-06-01 19:19:12 +00:00
dan sinclair
e2be489756 Fix merge conflict
Change-Id: Idd941099241e9310fea13932c3ef4fcf5083730a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22441
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-01 19:00:41 +00:00
dan sinclair
dadd149d9b [spirv-writer] Add fallthrough support
This CL adds support for the fallthrough statement in a `case` block.

Bug: tint:5
Change-Id: I282643a304846a19212d41bd8bd20a60398bd793
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22220
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 18:56:56 +00:00
dan sinclair
916b408111 [spirv-writer] Add switch support
This CL adds switch support to the SPIR-V writer.

Bug: tint:5
Change-Id: I8a6ad40cb2d344c87abdf842194b60afb1b4c96e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22165
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 18:56:34 +00:00
David Neto
7768f5b308 [spirv-reader] use stack of statement lists
This is preparation for emitting nested control flow.

Bug: tint:3
Change-Id: I90fc7edba8cb9937f722e6f5e94c7f222d34c403
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/21801
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-01 18:51:06 +00:00
Corentin Wallez
b730bfa356 Fix missing space in an error string.
TBR=enga@chromium.org

Change-Id: I7c543fa0f0fad721edd5a5de585ddd54e757535d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22401
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-06-01 17:27:32 +00:00
David Neto
b83c651654 [spirv-reader] Add problematic CFG case as disabled test
In this case, a basic block is a continue target
for both an outer loop and is also for itself as a
single-block loop.

Bug: Tint:3
Change-Id: If361004a4b871966674ca972922c45e712ce7c9c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22420
Reviewed-by: dan sinclair <dsinclair@google.com>
2020-06-01 16:59:24 +00:00
dan sinclair
1aadbd4e47 Add case_selectors update
This CL adds the missing case_selectors option from the grammar updates.

Change-Id: Ia6c110e917dd574711d396fb34ad53a2a67cf1fe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22306
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 16:56:46 +00:00
Austin Eng
2dfc42dd39 Fix ValidateEntireSubresourceCopied
This function was validating the depth of the copy which is
incorrect for 2D array textures. Remove this check for now
since it would be only relevant for 3D textures which Dawn
does not support yet.

Bug: dawn:424
Change-Id: I756080a899a7c5effe5843a530d4db0571bc10d5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22323
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-06-01 16:19:02 +00:00
Corentin Wallez
13110bff05 d3d12_platform: ensure windows.h macros don't cause compile errors
The windows.h macros were undefined only at the end of this platform
header previously but with the addition of d3d12sdklayers.h the
definition of ID3D12DebugQueue::GetMessage picked up the macro and
became GetMessageA or GetMessageW, but Dawn code referred to it as
GetMessage causing a compilation error.

Fix this by preemptively loading windows.h and undefing some of the
macros so that the D3D12 headers don't see them.

Bug:
Change-Id: I1985cc20a9bdec1d25619ac5088e918b2acf8ecb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22400
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-06-01 13:58:22 +00:00
dan sinclair
59fc026bcf [spirv-writer] Generate kill statements.
This Cl adds preliminary support for generating Kill commands. This may
change in the future if the semantics of kill are set in WGSL to not
match OpKill.

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

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

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

Bug: tint:41
Change-Id: If5dc3844e3325c75951e7b320c123cf66cb8e106
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22300
Reviewed-by: David Neto <dneto@google.com>
2020-06-01 13:43:11 +00:00
Corentin Wallez
0357eed7de Revert "Check FP16 support on vulkan backend"
This reverts commit bdc05c3d5fef780382c3fd5e5ebcb14bd929819a.

Reason for revert: Likely culprit for crbug.com/1087896

Bug: chromium:1087896

Original change's description:
> Check FP16 support on vulkan backend
>
> This patch check FP16 support on vulkan backend, and introduces
> the shader_float16 extension.
>
> BUG=dawn:426
> TEST=dawn_end2end_tests
>
> Change-Id: Ie09568a416ce9eb2c11afeede3e7da520550d5fb
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21901
> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Reviewed-by: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,kainino@chromium.org,yunchao.he@intel.com,jiawei.shao@intel.com,shaobo.yan@intel.com,hao.x.li@intel.com,enga@chromium.org,jiajie.hu@intel.com,xinghua.cao@intel.com

Bug: dawn:426
Change-Id: I8a42cf01ab32b3504bc7c1a335307db761424bdd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22360
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-29 16:54:35 +00:00
Austin Eng
f7a98fa854 Ensure dynamic buffer offset bindings are sorted in increasing order
A previous CL sorted bindings by binding number, but bindings were first
sorted by type. This means a bind group layout with mixed dynamic
storage and uniform buffers would not always have all dynamic bindings
in increasing order. Instead, it would be strictly increasing within
each section of uniform/storage buffers. This CL corrects the issue
by first sorting dynamic buffers by binding number.

Bug: dawn:408
Change-Id: I3689eb64ad8aa8768cebe266eebcba75a21894ce
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22303
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-05-29 16:19:58 +00:00
Enrico Galli
4c32bd0b7d D3D12: Silence known debug layer warnings
This will help remove noise in debug layer output. This patch also
 promotes warnings and higher to Dawn errors.

BUG: dawn:363, dawn:418, dawn:419, dawn:421

Change-Id: I3112c94aff71fc7e76dff48c82bafe9e051ed3b4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21702
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-29 08:29:58 +00:00
Corentin Wallez
6ced832d74 Fix unlinking nullptr error scopes if device init failed
When device initialization failed, DeviceBase::mCurrentErrorScope is
nullptr so we need to guard the call to UnlinkForShutdown.

Bug: chromium:1081998
Change-Id: I65a1948117fa9461f7fc8d2d1d70aef669bc375d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21685
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-29 08:04:48 +00:00
Jiawei Shao
0e5301c23e Add basic supports of storage textures on OpenGL
This patch adds the basic supports of read-only and write-only storage
textures on OpenGL backend. Currently on OpenGL backend we only support
using either a layer of a texture or the entire texture as either read-
only or write-only storage texture.

BUG=dawn:267
TEST=dawn_end2end_tests

Change-Id: I235b98d8d961a17739ea35eec9726dcc80889c4b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22180
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-29 07:51:08 +00:00
Corentin Wallez
da6dccd7c5 Metal: Fix clearing of subresource mipmaps.
On Intel the lazy-clearing optimization that bundled multiple
subresources at once to lazy-clear failed when multiple different
mip-levels were bundled together. The rendering was "clipped" to the
size of the smalled miplevel, resulting in some mip levels not being
fully cleared.

Bug:
Change-Id: Icfafbeae25bd426119a0b499237052c87eafe93e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22341
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-29 07:37:48 +00:00
Bryan Bernhart
454c699d47 Rolling 1 dependencies
Roll third_party/spirv-cross/ 61cddd630..d385bf096 (4 commits)

61cddd6307..d385bf096f

$ git log 61cddd630..d385bf096 --date=short --no-merges --format='%ad %ae %s'
2020-05-28 bryan.bernhart Prefer set/binding API
2020-05-28 post Document all CLI options.
2020-05-28 post Do not mask writes to remapped variables in all cases.
2020-05-27 bryan.bernhart HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.

Created with:
    roll-dep third_party/spirv-cross

Change-Id: Ibc41180952fed94d3b1089801bd31d087d2e7f41
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22307
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-29 07:29:38 +00:00
Corentin Wallez
e4f8e19e72 Remove the defaulting for bytesPerRow = 0
Bug: dawn:432
Change-Id: I335cdc367c322764861878bfb604ecc6a146b732
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22340
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-29 07:28:38 +00:00
Austin Eng
295a4177ae Add ScopedEnvironmentVar class for setting env variables in BackendVk
In the Vulkan backend, we only need to set VK_LAYER_PATH and
VK_ICD_FILENAMES while we're gathering the device information. After
this, we should unset the environment variables or they will persist
and affect loading Vulkan again (from Dawn or another client) in the
future.

Bug: dawn:406
Change-Id: I30c38b0980e181126fcd7fa911bbf9e8aa35f3b8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22021
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-05-28 16:05:04 +00:00
Austin Eng
f874525de3 OpenGL: Fix rendering to a layer of a depth/stencil texture
Bug: dawn:430
Change-Id: Ifb6c72374707a05054cfef021840bc8305b4f9d7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22320
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2020-05-28 08:53:23 +00:00
Austin Eng
09987b88f1 Metal: Fix rendering to a layer of a depth/stencil texture
Bug: dawn:430
Change-Id: Ice053a44a0720055fe02b2589153a04ffaa87e65
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22302
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2020-05-28 08:51:23 +00:00
Austin Eng
bf3611ce73 Add tests for using a subresource as output attachment
This adds tests that it is possible to render into a subresource bound
as an output attachment. Attaching a subresource as an output attachment
is still not implemented correctly on OpenGL and Metal.

This CL also adds a helper to DawnTest to allow checking stencil buffer
contents.

Bug: dawn:430
Change-Id: Ic8652dd9da8d3c7a47d7b0548306e2054f642e7d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22164
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-05-28 08:29:03 +00:00
Jiawei Shao
a3636ed888 Support multiple array layers in one texture-to-texture copy command
This patch adds the supports of copying multiple array layers of a
2D array texture in one texture-to-texture call. Note that in D3D12
and Metal it is implemented by copying each array layer in a for-loop.

Note that we need extra validations when the source and destination
texture are the same one in a texture-to-texture copy. This CL does
not include these validations and we will add them in another one.

BUG=dawn:18
TEST=dawn_unittests, dawn_end2end_tests

Change-Id: I1239543e5692e140474b3c1de0b3579be449e283
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22140
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-28 01:01:32 +00:00
Jiawei Shao
f62ab75a5c Disallow using cube or cube array texture views as storage textures
This patch adds validations to forbid using cube or cube array texture
views as storage textures in Dawn as they are not supported on D3D12.

BUG=dawn:267
TEST=dawn_unittests

Change-Id: Iafb705a4bedae25ee54cfa45f710b2f3b7aab912
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22166
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-28 00:17:08 +00:00
dan sinclair
0647d23607 [spirv-writer] Remove stpq support.
This CL removes conversion of stpq to indexes for a vector swizzle as
they are not supported by WGSL.

Change-Id: I3fde18a8a4205cae83b32ce2830a6df48a8f22f4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22162
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-27 13:08:29 +00:00
Hao Li
55c85f66d2 Query API: Extensions
Add extensions of pipeline statistics and timestamp queries.

Bug: dawn:434
Change-Id: I1a472ee4819bd36ce629034cf5175430bab1febc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22100
Commit-Queue: Hao Li <hao.x.li@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-05-27 05:15:18 +00:00
Xinghua Cao
bdc05c3d5f Check FP16 support on vulkan backend
This patch check FP16 support on vulkan backend, and introduces
the shader_float16 extension.

BUG=dawn:426
TEST=dawn_end2end_tests

Change-Id: Ie09568a416ce9eb2c11afeede3e7da520550d5fb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21901
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-27 02:49:08 +00:00
Jiajie Hu
3e332cd475 Set a default value for dawn_glm_dir like other GN build overrides
Bug: dawn:437
Change-Id: Iffdb281df32a506b1cf21823d27ee18710427457
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22102
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiajie Hu <jiajie.hu@intel.com>
2020-05-27 01:33:33 +00:00
Jiajie Hu
6a029fc9d8 Only download binutils in standalone build
This condition is most useful in non-standalone build AND the higher
level DEPS file recurses into Dawn via recursedeps.

Bug: dawn:437
Change-Id: Ib0aa8366a1a45a80a1dc11b911dbb208455af2fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22103
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiajie Hu <jiajie.hu@intel.com>
2020-05-27 01:21:53 +00:00
Yunchao He
0cd6533d1a Implement texture subresource on Vulkan
This change implemented texture subresource on Vulkan. It added a new
function to handle barriers for texture subresource for bind groups.
It also simplified barriers which are set for texture clear and copy.

Before this patch, all barriers are done upon all mip levels and all
array layers. With this patch, barriers are done upon particular mip
level(s) and array layer(s).

We may need more texture subresource end2end tests for copy and clear
opterations. I will visit that later.

Bug: dawn:157

Change-Id: Ie2247c6315326494f2d3736334e84b2867a16c17
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22024
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-27 00:10:33 +00:00
Natasha Lee
04701f9f1e Fire map callback if map async operation fails
Bug: dawn:400
Change-Id: If656239714f2c088e52aff30ef27a20f2fc42ba8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21940
Commit-Queue: Natasha Lee <natlee@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-26 20:33:03 +00:00
Ryan Harrison
73c9909266 Rolling 9 dependencies
Roll third_party/SPIRV-Tools/ 95df4c964..d3d89bb90 (11 commits)

95df4c9643..d3d89bb90c

$ git log 95df4c964..d3d89bb90 --date=short --no-merges --format='%ad %ae %s'
2020-05-26 andreperezmaselco.developer spirv-fuzz: Support bit width argument for int and float types (#3378)
2020-05-26 andreperezmaselco.developer Fix function use (#3372)
2020-05-25 jaebaek spirv-val: allow DebugInfoNone for DebugTypeComposite.Size (#3374)
2020-05-25 47594367+rg3igalia Add validation support for ImageGatherBiasLodAMD (#3363)
2020-05-21 38433336+AnastasiaStulova Fix validation failure on OpDecorationGroup (#3365)
2020-05-21 greg Remove deprecated interfaces from instrument passes (#3361)
2020-05-21 jaebaek Preserve debug info in inline pass (#3349)
2020-05-21 dnovillo Reject folding comparisons with unfoldable types. (#3370)
2020-05-21 paulthomson Improve build instructions for fuzzer (#3364)
2020-05-20 stevenperron Add unrolling to performance passes (#3082)
2020-05-20 jaebaek Handle OpConstantNull in ssa-rewrite (#3362)

Roll third_party/glslang/ 2e0f0a051..2b0eafb1d (7 commits)

2e0f0a0517..2b0eafb1de

$ git log 2e0f0a051..2b0eafb1d --date=short --no-merges --format='%ad %ae %s'
2020-05-25 alanbaker Update spirv tools (#2246)
2020-05-21 dneto Reorder member init to match decl order (#2241)
2020-05-21 40001162+alelenv Add support for primitive culling layout qualifier. (#2220)
2020-05-21 rharrison Replace incorrect uint32_t with correct int vars (#2235)
2020-05-21 shuizhuyuanluo Do not build glslang-testsuite when ENABLE_CTEST is disabled (#2240)
2020-05-21 mbechard fix incorrect error when multiple compilation units don't declare layouts (#2238)
2020-05-21 shuizhuyuanluo Add an option to make Exceptions enabled (#2239)

Roll third_party/shaderc/ 00ac5d821..7d2f8c57e (1 commit)

$ git log 00ac5d821..7d2f8c57e --date=short --no-merges --format='%ad %ae %s'
2020-05-21 rharrison Rolling 6 dependencies and update expectations (#1073)

Roll third_party/spirv-cross/ 29ad40e93..61cddd630 (4 commits)

29ad40e93e..61cddd6307

$ git log 29ad40e93..61cddd630 --date=short --no-merges --format='%ad %ae %s'
2020-05-25 post Handle physical pointers in reflection API.
2020-05-22 post GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
2020-05-21 dsinclair Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
2020-05-20 dsinclair Roll dependencies

Roll third_party/spirv-headers/ c0df742ec..ac638f181 (1 commit)

c0df742ec0..ac638f1815

$ git log c0df742ec..ac638f181 --date=short --no-merges --format='%ad %ae %s'
2020-05-20 dneto Update example to use unified1 headers

Roll third_party/tint/ 1bbc1cb2c..537039009 (5 commits)

https://dawn.googlesource.com/tint/+log/1bbc1cb2c122..537039009663

$ git log 1bbc1cb2c..537039009 --date=short --no-merges --format='%ad %ae %s'
2020-05-26 dsinclair Remove NOP.
2020-05-21 dj2 Add if with else continue test.
2020-05-21 dj2 [spirv-writer] Fill out cast code.
2020-05-20 dneto [spirv-reader] Support access chain
2020-05-20 dneto [wgsl-writer] Function var decls don't mention storage class

Roll third_party/vulkan-headers/ e01f13e1f..09531f279 (6 commits)

e01f13e1f7..09531f2793

$ git log e01f13e1f..09531f279 --date=short --no-merges --format='%ad %ae %s'
2020-05-15 oddhack Update for Vulkan-Docs 1.2.141
2020-05-04 devrel Remove advanced notice of header change
2020-05-04 oddhack Update for Vulkan-Docs 1.2.140
2020-04-27 oddhack Update for Vulkan-Docs 1.2.139
2020-04-23 mikew Revert "Export versioned targets for CMake"
2019-11-14 rahul Export versioned targets for CMake

Roll third_party/vulkan-loader/ 50eaecd72..006586926 (8 commits)

50eaecd721..006586926a

$ git log 50eaecd72..006586926 --date=short --no-merges --format='%ad %ae %s'
2020-05-25 shannon Build: Update known-good files for 1.2.141 header
2019-10-28 charles loader: add per-application override layer settings
2020-05-12 charles loader: Preload ICD use its own mutex
2020-05-05 shannon build: Fix `loader_genvk.py` error logging
2020-05-04 shannon build: Update known-good for 1.2.140 header
2020-04-28 petr_kraus docs: Fix typo
2020-04-24 lenny loader: Check for null when creating a queue
2020-04-18 petr_kraus docs: Fix link in interface docs

Roll third_party/vulkan-validation-layers/ 7e1fb3d60..31bdb2d43 (168 commits)

7e1fb3d602..31bdb2d437

$ git log 7e1fb3d60..31bdb2d43 --date=short --no-merges --format='%ad %ae %s'
2020-05-24 s.fricke tests: Add FindSupportedDepthStencilFormat check
2020-05-21 s.fricke layers: Fix False Positive AHB BindBuffer
2020-05-21 mark tests: Add tests cases for CreateInstance status messages
2020-05-19 mark tests: Add tests for the layer message filter
2020-05-19 mark tests: Generalize SetEnvVar for use in any test case
2020-05-19 mark layers: Update layer settings file for message filtering
2020-05-19 mark layers: Enable filtering of VUIDs from layer output
2020-05-15 mark chassis: Add processing for msg id filtering
2020-05-15 mark chassis: Output status message at CreateInstance-time
2020-05-21 mark tests: Avoid deprecated ext test false positive
2020-05-15 mark chassis: Switch enables/disables from struct to array
2020-05-22 mark corechecks: Fix typo in SubpassDescription error msg
2020-05-19 tony tests: Re-enable gpu-av ray tracing test
2020-05-20 tony gpu: Fix ray tracing scratch buffer creation
2020-05-20 s.fricke layers: Label 02498 and 02824
2020-05-20 s.fricke tests: Add samplerAnisotropy check
2020-05-21 jeremy tests: Test transform feedback VUIDs
2020-05-21 jeremy layers: Add transform feedback VUIDs
2020-05-18 tony tests: Test for query reset/begin in different cmdbufs
2020-05-18 tony layers: Fix queries false positives
2020-05-15 s.fricke tests: Add VUID 01431
2020-05-15 s.fricke layers: Add VUID 01431
2020-05-16 s.fricke layers: Fix bug for multiple compute pipelines
2020-05-16 s.fricke layers: Add index to pipeline log messages
2020-05-19 s.fricke tests: Add VK_EXT_pipeline_creation_cache_control
2020-05-16 s.fricke layers: Add VK_EXT_pipeline_creation_cache_control
2020-05-19 s.fricke tests: Remove duplicate feature being set
2020-05-16 s.fricke layers: Add VUID 01207
2020-05-16 s.fricke layers: Add VUID 00926
2020-05-15 s.fricke layers: Add VUID 00764
2020-05-14 tony tests: Add test for validation features
2020-05-13 tony layers: Validate validation features
2020-05-15 s.fricke tests: Add AHB MemoryReq VUIDs
2020-05-14 s.fricke layers: Add AHB MemoryReq VUIDs
2020-05-12 mark docs: Update khronos validation layer doc for form and content
2020-05-05 mark tests: Add spec URL tests
2020-05-05 mark cmake: Add spec build option to tests build
2020-05-04 mark cmake: Add layer option to create annotated spec vuid links
2020-05-02 mark logging: Construct either khronos or annotated spec links
2020-05-05 mark scripts: Use apiversion from json file instead of hardcoded
2020-05-01 mark scripts: Update val stats script to generate 1.2 errormsg URLs
2020-05-13 s.fricke layers: Add attachment index to message
2020-05-13 s.fricke layers: Label YCbCr VUIDs
2020-05-14 mark practices: Warn that debug_report is deprecated
2020-05-14 mark tests: Add deprecated extension test cases
2020-05-14 mark practices: Repair deprecated extension version checks
2020-05-13 tony layers: Fix custom border color check
2020-04-15 tony tests: Tests for custom border color
2020-04-15 tony layers: Validation for VK_EXT_custom_border_color
2020-05-12 jan-harald.fredriksen tests: Add VK_EXT_fragment_density_map validation tests
(...)
2020-04-28 s.fricke layers: Add Support for RP Attachment VUIDs
2020-04-29 s.fricke tests: Add support for vkBindImageMemory2 VUID
2020-04-29 s.fricke layers: Add support for vkBindImageMemory2 VUID
2020-04-27 souravp tests: VK_NV_device_diagnostic_checkpoints
2020-04-27 souravp layers: VK_NV_device_diagnostic_checkpoints
2020-04-23 s.fricke tests: Add support for VUID 02634
2020-04-23 s.fricke layers: Add support for VUID 02634
2020-04-25 s.fricke tests: Add VUID 01658 and 01659
2020-04-25 s.fricke layers: Add VUID 01658 and 01659
2020-04-28 tony layers: Fix ValidateClearAttachmentExtent
2020-04-29 mark practices: Fix ValidateReturnCodes parameters
2020-04-25 s.fricke tests: Add VUID 02682 and 02683
2020-04-25 s.fricke layers: Add VUID 02682 and 02683
2020-04-26 s.fricke tests: Fix unexpected errors for AHB test
2020-04-24 mark practices: Fix fcn names and revamp manual fcn handling
2020-04-27 tony gpu: Stop using deprecated spirv-tools var
2020-04-27 jzulauf tests: Add persitant storage for renderpass info
2020-04-27 tony practices: Don't validate swapchain memory
2020-04-09 mikes scripts: Object tracker optional handling
2020-04-23 tony practices: Fix CreateFramebuffer
2020-04-25 petr_kraus tests: Test swapchain image props
2020-04-25 petr_kraus layers: Initialize image props for a swapchain
2020-04-24 karen docs: update khronos_validation_layer.md
2020-04-24 lionel.g.landwerlin Fix validation of blended attachments on imageless framebuffers
2020-04-22 s.fricke tests: Add YCbCr Format Feature VUIDs
2020-04-22 s.fricke layers: Add YCbCr Format Feature VUIDs
2020-04-23 tony gpu: Fix promoted buffer device address
2020-04-21 s.fricke layers: Fix VUID 02023 to use image state format feature
2020-04-19 s.fricke Fix cubearray test from failing on device
2020-04-21 petr_kraus tests: Test concurrent access with vkGetDeviceQueue
2020-04-22 petr_kraus layers: Fix threading resetting counters on vkGet*
2020-04-16 mark scripts: Pick up VUIDS in comment lines
2020-04-16 mark stateless: Add comments to pick up implicit VUs in stats
2020-04-16 mark corechecks: Add comments for built-up VUIDs
2020-04-16 mark corechecks: Remove some comments that'd throw off valstats
2020-04-17 souravp tests: For VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421
2020-04-17 souravp layers: Add VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421
2020-04-18 petr_kraus tests: Remove mock workarounds in instanceless
2020-04-21 sam.walls practices: add null pointer check for PreCallRecordCreateInstance
2020-04-03 tony tests: Split out gpu-av and printf into their own classes
2020-04-19 git layers: add support for VK_EXT_headless_surface
2020-04-20 tony layers: Fix renderpass2 tracking
2020-04-19 s.fricke tests: Add support for VUID 02260
2020-04-19 s.fricke layers: Add support for VUID 02260
2020-04-20 jbolz layers: Fix crash when there are more blend attachments than subpass color attachments
2020-04-16 s.fricke tests: Check coverage without memory requirements
2020-04-16 s.fricke layers: Remove redundant memory checking
2020-04-19 petr_kraus tests: Fix failing TestAliasedMemoryTracking
2020-03-24 jbolz tests: Test cube image view layerCount
2020-03-24 jbolz layers: Validate cube image view layerCount

Created with:
  roll-dep third_party/SPIRV-Tools third_party/glslang third_party/shaderc third_party/spirv-cross third_party/spirv-headers third_party/tint third_party/vulkan-headers third_party/vulkan-loader third_party/vulkan-validation-layers

Change-Id: I84be3d3f03acf0e3037b1da86478e665a12d71cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22163
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-05-26 20:00:43 +00:00
Brandon Jones
e370ec6de4 Allow Attempted Eviction When The Residency LRU Is Empty
Removes an assert when attempting to evict the residency LRU while
empty.

Bug: dawn:415
Change-Id: If346d0f2cc28ec089871b3c5aaf8f5641344f9fe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/22023
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2020-05-26 19:40:23 +00:00
dan sinclair
5370390096 Remove NOP.
The NOP command was added for complete SPIR-V bijectivity which is no
longer a goal of WGSL. The NOP command has been removed from the spec,
so remove from Tint.

Change-Id: Ic640d9d3b987a19668dc169ff549444921c5bbb8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/22160
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2020-05-26 15:05:54 +00:00
Jiawei Shao
31c9c6949e Add tests for image2DArray
This patch adds the dawn_end2end_tests on the use of 2D array texture
views as read-only and write-only storage textures.

In HLSL neither RWTextureCube nor RWTextureCubeArray are supported, and
the HLSL function Load() also accept neither TextureCube nor
TextureCubeArray, thus we can neither support imageCube nor
imageCubeArray in the shaders used by Dawn.

BUG=dawn:267
TEST=dawn_end2end_tests

Change-Id: I0bce8bd3bff75baa14943b974ef3a6cc2b6d2434
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21980
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-05-25 00:19:51 +00:00