Граф коммитов

11774 Коммитов

Автор SHA1 Сообщение Дата
Charlie Lao fed0dda178 Remove getIndexRange call from ValidateDrawRangeElements
The spec doesn't require implementation to validate indices against
range. This extra validation is costing performance dearly, thus should
be removed.

Bug: angleproject:4373
Change-Id: I61b0628e75de368d9e869008b7c99c429222fd6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033495
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-02-03 05:22:31 +00:00
Shahbaz Youssefi 49a53d684a Vulkan: Request used features
Some features were used but not enabled.  There is no validation error
for this.  This change enables the following features:

- shaderStorageBufferArrayDynamicIndexing: used by atomic counter
  emulation.
- shaderSampledImageArrayDynamicIndexing: used by sampler array of array
  emulation, as well EXT_gpu_shader5.
- shaderUniformBufferArrayDynamicIndexing: used by EXT_gpu_shader5.

Bug: angleproject:4071
Change-Id: I582750d1552055deeec50485e6511788b98490c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032144
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-02-01 19:15:49 +00:00
Kenneth Russell 07795d47f8 Disable rewriteRowMajorMatrices workaround.
It's causing flaky crashes in tests. Leave the revised code in place
so it's easier to debug. Disable test which required the workaround.

Bug: angleproject:2273
Bug: angleproject:3843
Change-Id: Iebb682bd3c6282031cc57eda5d3d4d5636be7294
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033870
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2020-02-01 01:58:29 +00:00
Michael Spang a8c7e10f5e Fuchsia: Switch ScenicWindow to use PresentOrReplaceView
This avoids a deprecation warning:

[01253.076] [WARNING:src/ui/bin/root_presenter/app.cc(109)] Using multiple presentations is deprecated. Call PresentOrReplaceView() to force replacement of current presentation.

Bug: angleproject:4360
Change-Id: Icb1898ee542bde8c26a2dcd55c783372fc8ae7c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027935
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-01 00:44:28 +00:00
Michael Spang f63fbcd5f2 Fuchsia: Limit number of concurrent presents in ScenicWindow
The test suite occasionally runs into the following error:

[02036.794449][326733][326738][klog] INFO: [ERROR:src/ui/scenic/lib/scenic/session.cc(412)] Scenic session error (session_id: 1): Present2() called with no more present calls allowed. Terminating session.

This is actually a problem with the test harness as resetting the window
triggers a present with no fences and no OnFramePresentedCallback which
means there is no way to know if we will exceed the limit.

Add an OnFramePresentedCallback and count presents to stay under the
limit. This blocks if there's more than 2 in flight presents. A dedicated
async loop is used to avoid re-entering other code while waiting to
present (there is no such case in the ANGLE test suite currently, but
better safe than sorry).

Typically if we run the whole suite there will be a failure in the
middle, but re-trying the test that failed won't repro the issue. Add a
test that reliably exhausts the limit by calling resetNativeWindow() in a
loop.

Bug: angleproject:4360
Change-Id: I24eb01fd72fc0be57c36e49b5875023a80d6ab91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027934
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-01 00:23:23 +00:00
Geoff Lang a36f8bd492 Mark MemoryBuffer allocation functions as NO_DISCARD
Not all call sites were checking the return value of
MemoryBuffer::resize, mark the return value as NO_DISCARD and fix all
the warnings.

BUG=chromium:1030835

Change-Id: I762796e3d11efc131a814069d78a195b0d4c9f8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028151
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-01 00:08:32 +00:00
Tobin Ehlis 1736c47b74 Vulkan: Remove transient cmd buffer workaround
We no longer need this workaround. Also mCommandPoolFreeList dead code.

Bug: angleproject:3508
Change-Id: Ib73ddd431eb1bf9a55c3421111af4df5976cc1fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033485
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-01-31 20:33:22 +00:00
angle-autoroll 21a3262e6e Roll third_party/vulkan-validation-layers/src 8317b28e672a..bd4b3a888fca (27 commits)
8317b28e67..bd4b3a888f

git log 8317b28e672a..bd4b3a888fca --date=short --first-parent --format='%ad %ae %s'
2020-01-31 tobine@google.com build: Add NOMINMAX to Win ninja build
2020-01-30 mark@lunarg.com build: Move NOMINMAX definition from src to cmake file
2020-01-29 shannon@lunarg.com build: Update known-good for 1.2.132 header
2020-01-28 tony@lunarg.com layers: Fix call to overwrite_range
2020-01-28 s.fricke@samsung.com tests: Added test for VUID 02283
2020-01-28 s.fricke@samsung.com layers: Added VUID 02283
2020-01-28 tony@lunarg.com tests: Add test for 02829 and 02830
2020-01-28 tony@lunarg.com layers: Add validation for 02829 and 02830
2020-01-28 s.fricke@samsung.com layers: Removed redundant sType check
2020-01-28 s.fricke@samsung.com layers: Fix shader not looping correctly
2020-01-27 jeremy@lunarg.com tests: Test specialization constant size
2020-01-27 jeremy@lunarg.com layers: Fix specialization constant size
2020-01-27 tony@lunarg.com tests: Better checking for 1.2
2020-01-24 jzulauf@lunarg.com layers: Optimize descriptor allocation
2020-01-23 Andrew.Fobel@amd.com tests: Add tests for VK_EXT_separate_stencil_usage
2020-01-23 Andrew.Fobel@amd.com layers: Add VK_EXT_separate_stencil_usage support
2020-01-23 jzulauf@lunarg.com build: Update copyright header dates for modified
2020-01-23 jzulauf@lunarg.com layers: Bug fix for parallel iterator
2020-01-23 jzulauf@lunarg.com layers: performance tune ImageSubresourceLayoutMap
2020-01-23 jzulauf@lunarg.com layers: implement small range map and wrapper
2020-01-23 jzulauf@lunarg.com layers: Cleanups and fixes from further unit test
2020-01-23 jzulauf@lunarg.com layers: Fix ImageLayoutIntialState tracking
2020-01-23 jzulauf@lunarg.com layers: Add range map view to image_layout
2020-01-23 jzulauf@lunarg.com layers: Apply google style to new image layout impl
2020-01-23 jzulauf@lunarg.com layers: ImageLayout traversal to iterators
2020-01-23 jzulauf@lunarg.com layers: Refactor heavyweight ForRange/Iterator
2020-01-23 jzulauf@lunarg.com layers: New sparse map for image subresource data

Created with:
  gclient setdep -r third_party/vulkan-validation-layers/src@bd4b3a888fca

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: Ib96b03f57e54f3e39573482c56cae1a2bd0970a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033407
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 20:30:52 +00:00
Yuly Novikov 4dc1eb42a4 Add UWP builders to CQ
Also update doc.

Bug: angleproject:3928
Change-Id: I1134e1fa9338fa95d647502bf62edb42555caec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033487
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2020-01-31 19:33:38 +00:00
Jeff Gilbert a805ac7cbe Allow overriding ANGLE_PLATFORM_EXPORT.
Bug: angleproject:4365
Change-Id: I4098ebdd718624e9d0578e0ee69f0a84a5b78183
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033064
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-01-31 18:43:28 +00:00
Charlie Lao 71153201dc Vulkan: Disable restartRenderPassAfterLoadOpClear workaround
This workaround was added due to qualcomm driver bug b/129281932. But
this has been fixed with recent drivers. Removing the WR here so that it
will not negatively affect performance.

Bug: angleproject:4344
Change-Id: Iea2ec86082a0ced64bfe843bf916c6bdb2aea60b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029210
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-01-31 18:22:58 +00:00
Cody Northrop e580ca8b5c Capture/Replay: Implement Manhattan ES 3.0 support
Populate the entrypoints required to get gfxBench
Manhattan scene to capture and replay correctly from
the beginning of the trace.

Test: Captured and replayed Manhattan frames 0-500 on
both Windows and Linux (Nvidia GPUs)

Bug: angleproject:4091
Change-Id: I5447a6835e55e944772d37219f2bd414606f0a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-01-31 17:21:06 +00:00
Shahbaz Youssefi c73475fb3c Vulkan: Fix UtilsVk dirtying driver uniforms descriptor set binding
Most UtilsVk functions bind a descriptor set to index 0 (same as driver
uniforms). If that happens to close a render pass, all is well as
starting a new render pass ensures all descriptor sets are rebound.
However, if the render pass is not closed, or if a dispatch call is
issued (which never rebinds descriptor sets if not explicitly
necessary), then the driver uniforms descriptor set may end up never
rebound, causing a validation error (and possible crash or corruption).

This change makes sure that UtilsVk notifies the context when it binds a
descriptor set.  The context then dirties the driver uniforms binding
as appropriate.

Bug: angleproject:4272
Change-Id: Ief20c7884fbe39712f844247489812afc70b30a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027938
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-31 16:28:25 +00:00
angle-autoroll 5de415c5e3 Roll third_party/SwiftShader 6c3dc3581eaf..79b36b640692 (13 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6c3dc3581eaf..79b36b640692

git log 6c3dc3581eaf..79b36b640692 --date=short --first-parent --format='%ad %ae %s'
2020-01-30 capn@google.com Fix use after free
2020-01-30 capn@google.com Have Kokoro accept imports from Piper
2020-01-30 amaiorano@google.com Subzero: fix incorrect cast
2020-01-30 capn@google.com Export Vulkan API entry functions
2020-01-30 capn@google.com Support LLVM 9+ build changes
2020-01-30 bclayton@google.com Regres: Fix unix build
2020-01-29 capn@google.com Regres: aways use build output path for ICD json
2020-01-29 capn@google.com Associate bug IDs with unimplemented functionality
2020-01-29 amaiorano@google.com Fix memory leak in rr::Optimizer
2020-01-29 bclayton@google.com Regres: Make it work on windows.
2020-01-29 amaiorano@google.com Subzero: implement coroutines for Win32
2020-01-29 bclayton@google.com SpirvShaderDebugger: Expose builtins in HLSL / GLSL.
2020-01-29 bclayton@google.com Vulkan/Debug: Add VariableContainer::extend()

Created with:
  gclient setdep -r third_party/SwiftShader@79b36b6406

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: I9ef2fb4008e8f9061df5b71bbf532f20a9caf188
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032848
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 10:42:34 +00:00
angle-autoroll dd0f12d0e4 Roll third_party/vulkan-tools/src ebe1b7497acb..260679605f98 (1 commits)
ebe1b7497a..260679605f

git log ebe1b7497acb..260679605f98 --date=short --first-parent --format='%ad %ae %s'
2020-01-29 jeremyk@lunarg.com build: Update MoltenVK version in known_good.json

Created with:
  gclient setdep -r third_party/vulkan-tools/src@260679605f98

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: Ia19dd5c1d3ce0bfbd2197c8e8482b9cd6572399d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032835
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 08:47:13 +00:00
angle-autoroll e5dbecac9f Roll third_party/vulkan-loader/src 44ac9b2f406f..fb94ccddb725 (1 commits)
44ac9b2f40..fb94ccddb7

git log 44ac9b2f406f..fb94ccddb725 --date=short --first-parent --format='%ad %ae %s'
2020-01-28 shannon@lunarg.com build: Update known-good for 1.2.132 header

Created with:
  gclient setdep -r third_party/vulkan-loader/src@fb94ccddb725

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: I4e12eb0260422c2dc86f2a71cc60fbf321647dd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032834
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 08:45:23 +00:00
angle-autoroll 2742cd10e2 Roll third_party/spirv-tools/src 97f1d485b763..7a2d408dea60 (4 commits)
97f1d485b7..7a2d408dea


Created with:
  gclient setdep -r third_party/spirv-tools/src@7a2d408dea60

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: Ia823c5eff6f7513d78345ef6d0193c026e0bf19e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032837
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 08:34:33 +00:00
angle-autoroll 689295e340 Roll third_party/glslang/src 9a80305c0897..5e86b28ffb81 (1 commits)
9a80305c08..5e86b28ffb


Created with:
  gclient setdep -r third_party/glslang/src@5e86b28ffb81

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: Ia4b90712005cf624f973a43dca3e335f552f963b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032838
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-31 08:12:53 +00:00
Yuly Novikov 088b1baa94 Change uuid attributes to declspec in winrt.
Due to
warning C4467: usage of ATL attributes is deprecated

Bug: angleproject:3928
Change-Id: I6620acc85ae974445a2a01fc109568fac8c3b23b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032152
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-31 04:56:46 +00:00
Kenneth Russell e196bc85ac Add driver bug workaround for rewriting row major matrices.
Joint work with syoussefi@, who wrote the RewriteRowMajorMatrices
pass, and revised it for this CL to not rely on the
NameNamelessUniformBuffers pass - which was breaking it on the GL
backend.

Hook up previously written RewriteRowMajorMatrices transformation, and
enable on all GPU types on macOS. It is needed at least for AMD and
Intel GPUs.

Add a new test which verifies the behavior of dynamically-indexed
arrays of row-major matrices.

Bug: angleproject:2273
Bug: angleproject:3843
Change-Id: Id582f9cf6b9b1a59091aab1786539174f360b705
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008717
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-01-30 22:08:39 +00:00
Yuly Novikov c8e486b1df Roll chromium_revision e1633af636..8ffb18d0b9 (724302:736949)
To include Windows toolchain with UWP support from build.

Change log: e1633af636..8ffb18d0b9
Full diff: e1633af636..8ffb18d0b9

Changed dependencies
* build: dfe5662014..e5293d8fa2
* buildtools: 6b3e658d6f..afc5b798c7
* testing: c1b508625d..cf6ed46cff
* third_party/googletest: f8eeeb06c0..c83f99e10c
* third_party/jsoncpp: 1cfec065ed..493c9385c9
* third_party/libjpeg_turbo: bc13578529..ce0e57e8e6
* third_party/yasm: 02a8d2167f..0d0134789a
* third_party/zlib: f262c1b3c4..b9b9a5af7c
* tools/clang: a9190d6699..953ea7aff8
DEPS diff: e1633af636..8ffb18d0b9/DEPS

Clang version changed c2443155a0fb245c8f17f2c1c72b6ea391e86e81:eaabaf7e04fe98990a8177a3e053346395efde1c
Details: e1633af636..8ffb18d0b9/tools/clang/scripts/update.py

TBR=ynovikov@chromium.org,
Bug: angleproject:3928
Change-Id: I8346ac7f178e73388d3dda26c6994302ece79585
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2031764
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2020-01-30 19:25:46 +00:00
Jamie Madill d9884d3e71 Vulkan: Don't dirty index/vertex buffers on each syncState.
This will help for the command graph refactor so we can set up the
command buffer barriers before we start the render pass for draw.

Bug: angleproject:3539
Bug: angleproject:4029
Change-Id: If5a55db6ac1e06609a3a1e2245d7ab351152886a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028450
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-30 17:02:57 +00:00
Jamie Madill ee07cb3175 Test Harness: Allow filter with sharding params.
Some tweaks to when we call gtest initialization allows this to work.

Bug: angleproject:3162
Change-Id: I75159108d3f746f666e57c1a6495a8c8616ef1cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024335
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-01-30 00:34:18 +00:00
Tobin Ehlis 12c0e765ee Add GN arg to extract native libs in APK
Added GN bool arg "angle_extract_native_libs."
When "false," which is the default, the native libs are zipped in the ANGLE
apk. When true, the libs will be extracted which is useful when capturing
flame graphs in order to see the ANGLE function names in your flamegraph.

Bug: angleproject:4304
Change-Id: I86c91e5028688142b1137b859c800f2243c124d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028524
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-01-29 23:40:07 +00:00
James Darpinian e4859ae57b Fix re-enabling ARB_texture_rectangle
My earlier change https://crrev.com/c/1991969 had a bug. If
ARB_texture_rectangle is disabled once, it can't be re-enabled because
the extension behavior entry is deleted. ResetExtensionBehavior needs
to restore it.

Bug: angleproject:3770
Change-Id: Icf96acece8ea8d17287c8d09fb4849b61c9c2a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023398
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
2020-01-29 22:18:32 +00:00
Geoff Lang 80da421468 D3D11: Copy from Image objects instead of TextureStorage when possible.
glCopyTextureCHROMIUM calls in D3D11 would call getNativeTexture on the
copy source which would allocate a TextureStorage11 if one did not
already exist. This caused full mip-chain allocations in some cases when
we could have just copied directly from the staging Image11.

When navigating to wikipedia.org:

                      Peak memory | Stable memory
Passthrough (before):      142 mb |        119 mb
Passthrough (after):       138 mb |        106 mb
Validating:                139 mb |        110 mb

No mip-mapped textures were allocated after this change.

BUG=chromium:1030835

Change-Id: Icd14afaec445299423cfea293cba501d774f6ade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028147
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
2020-01-29 20:56:30 +00:00
Michael Spang 053929aca6 Fuchsia: Enable perFrameWindowSizeQuery by default
Fuchsia won't return VK_ERROR_OUT_OF_DATE_KHR after a size change, so we
need to check every frame. In fact we don't even tell Scenic what the new
size is during resize, because it does not care - the surface size
determines the "window size", not the other way around.

Bug: angleproject:4348
Change-Id: I8f9af0d1379f4993865c7ccedc9aba3cab90cf54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023914
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 18:16:20 +00:00
Alexis Hetu 33027d3e55 Enable GL_OES_depth_texture_cube_map with Vulkan backend
GL_OES_depth_texture_cube_map depends on depthTextureOES,
but adds the same new texture format/type requirements as
GL_OES_packed_depth_stencil, so instead of adding a
specific check for GL_OES_depth_texture_cube_map, the
Vulkan backend checks for a combination of
GL_OES_depth_texture and GL_OES_depth_texture_cube_map
to enable GL_OES_depth_texture_cube_map.

ANGLE has no specific checks for whether a format is
"cubemappable", but Vulkan has no restrictions of the
format of cubemaps, so if the proper formats are
supported, creating a cube of any of these formats
should be implicitly supported.

Bug: angleproject:4293
Change-Id: I968dbe8869ba0f50de18dd41f1195e847c06b520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026027
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-01-29 17:50:10 +00:00
Michael Spang 09d51a5754 Fuchsia: Skip PointSpriteAlternatingDrawTypes on ARM Fuchsia
This is not passing currently, skip it for now.

Bug: angleproject:4349
Change-Id: If36a144e8d17cc94c2186a7a794358b14223349e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023913
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 16:55:47 +00:00
shrekshao eca11cc81c SH_CLAMP_INDIRECT_ARRAY_BOUNDS logic update
Remain the old hardware requirement for turning on clampArrayAccess. But
also turns it on universally for WebGL context. So that we won't suffer
from clampArrayAccess not handled properly on some compute shader deqp
tests.

Bug: chromium:1042252, angleproject:4361
Change-Id: Ib11affd6df27ce7d2100980d2b8decdee36876e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026029
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2020-01-29 16:53:37 +00:00
Shahbaz Youssefi b91acdcfea Vulkan: Cleanup glslang wrapper
There are no longer @@ QUALIFIER and or @@ LAYOUT markers.  Only @@
XFB-DECL @@ and @@ XFB-OUT @@ markers remain, which are now replaced
with simple string manipulation.

Bug: angleproject:3394
Change-Id: I9c1883458d9de3ea59ac08aae57a7c8985e7afbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012741
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-01-29 16:50:37 +00:00
Courtney Goeltzenleuchter cb2b5136e9 Vulkan: Simplify format table generation
Remove the "override" table. That gets in the way of some solutions.
If a format cannot be supported by a native Vulkan format as indicated
in the "map" table, then check fallbacks.

Also add support for native RGBA4 and R5G5B5A1 support. Previously
those formats would be emulated with RGBA8 due to the override, but
now code will check if the native format is available and use it.

Bug: angleproject:4282
Change-Id: Ib33ea40543d91a2c2a95075b277f825a8822037c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994538
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-01-29 15:42:57 +00:00
Shahbaz Youssefi f1f082e137 Vulkan: Set varying location & xfb decorations in SPIR-V
The shader translator outputs arbitrary location indices.  Once compiled
by glslang, the SPIR-V transformer modifies these decorations.  If the
transform feedback extension is used, it will also add the relevant
decorations to the varyings that are captured.

Bug: angleproject:3394
Change-Id: I5ecafd0536408612a5d4b920dbabbfabe650657c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008468
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 15:01:27 +00:00
Jeff Gilbert 05e08edf70 Disable skipValidation when context is lost.
Lost no-error contexts should gracefully handle GetProgramiv, etc.

Includes test that a lost no-error context doesn't crash on getProgramiv.
Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1601703

Bug: angleproject:4244
Change-Id: I8c37df37e83308ab85ad958df6dab46b0ab348e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003239
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-29 14:07:37 +00:00
angle-autoroll 13c44dfeb0 Roll third_party/glslang/src 07a55839eed5..9a80305c0897 (1 commits)
07a55839ee..9a80305c08


Created with:
  gclient setdep -r third_party/glslang/src@9a80305c0897

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: I3161499b3a6b2e3ad96ef5952782c4409289fa1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027195
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-29 08:38:56 +00:00
angle-autoroll 71508b2088 Roll third_party/vulkan-tools/src e39b5cf6a1b6..ebe1b7497acb (1 commits)
e39b5cf6a1..ebe1b7497a

git log e39b5cf6a1b6..ebe1b7497acb --date=short --first-parent --format='%ad %ae %s'
2020-01-28 charles@lunarg.com vulkaninfo: use patch version from instance

Created with:
  gclient setdep -r third_party/vulkan-tools/src@ebe1b7497acb

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: I878644e5a636c1a21740dda675b6199a86b9f118
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027217
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-29 07:52:26 +00:00
angle-autoroll 1f4ddc9611 Roll third_party/SwiftShader 34e16df059f8..6c3dc3581eaf (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/34e16df059f8..6c3dc3581eaf

git log 34e16df059f8..6c3dc3581eaf --date=short --first-parent --format='%ad %ae %s'
2020-01-28 capn@google.com Support LLVM 8+ build changes
2020-01-28 bclayton@google.com SpirvShaderDebugger: Fix double nesting of struct members

Created with:
  gclient setdep -r third_party/SwiftShader@6c3dc3581e

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

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

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

Bug: None
Tbr: tobine@google.com
Change-Id: Ie221229f552143cbb8c98b731b5bd4fdd3a17195
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027194
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-29 07:51:16 +00:00
Shahbaz Youssefi 5ca050d1fd Vulkan: Set fragment output locations in SPIR-V
The shader translator outputs arbitrary location indices for fragment
outputs.  Once compiled by glslang, the SPIR-V transformer modifies
these decorations.

Bug: angleproject:3394
Change-Id: Ib9d8336bccc392e789e4d93031fdcce9c466b7a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011214
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 06:09:40 +00:00
Shahbaz Youssefi bef8ca7d3f Vulkan: Set vertex attribute locations in SPIR-V
The shader translator outputs arbitrary location indices for vertex
attributes.  Once compiled by glslang, the SPIR-V transformer modifies
these decorations.

Bug: angleproject:3394
Change-Id: I88453b44e3a8770f51e79228148233ff308f1885
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011212
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-01-29 05:56:10 +00:00
Shahbaz Youssefi 71e6afb1c1 Vulkan: Set set/binding in SPIR-V
This change introduces a SPIR-V transformer that modifies shader
interface variable decorations directly in SPIR-V instead of
manipulating the input GLSL.  Currently, descriptor set and binding
indices are set by the transformer.

The shader translator outputs arbitrary set and binding indices.  Once
compiled by glslang, the SPIR-V transformer modifies these decorations.
The ultimate goal is to be able to modify the SPIR-V again when program
pipeline objects decide a different set/binding is necessary.

Bug: angleproject:3394
Change-Id: If358265a72bf1fe9f5676562b39a632cb2e05dc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-29 05:24:40 +00:00
Michael Spang 2bc9cc12f0 Fuchsia: Blacklist swiftshader on Fuchsia
This doesn't work and is highly misleading as the tests run with the real
GPU.

Bug: angleproject:4353
Change-Id: Id9139436e39d5e8e063bcc679b7c63f589d3b748
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023912
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 03:45:10 +00:00
Michael Spang 44c7507381 Fuchsia: Disable GLES3 testing on Fuchsia ARM
The vulkan driver is missing required extensions so these tests are all
failing.

Bug: angleproject:4352
Change-Id: Id1af7c40798d8844fbf832c6066260fe3a8bfeda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023911
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-29 01:54:50 +00:00
Shahbaz Youssefi e28883ded6 Vulkan: Fix handling of inactive fragment outputs
These were never assigned a location.  They are now removed by the
translator similar to other inactive variables.

Bug: angleproject:4313
Change-Id: I3398d06e1dea3f43b84f206cca07cde5b44b21a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021734
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-29 00:15:24 +00:00
Michael Spang bab2b3de22 Vulkan: Disable global merge for volk
This optimization pass breaks the build by exporting volk's internal
binding symbols from libGLESv2.so. Since the test binary also links volk,
this causes a SEGV as the wrong (uninitialized) function pointer is
called.

This is an LLVM bug and will be fixed upstream:
https://reviews.llvm.org/D73235

Bug: angleproject:4351
Change-Id: Iebe0eabd975f8109231df30eef8c9074af8190e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023910
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
2020-01-29 00:08:54 +00:00
Michael Spang b630bf9eb8 Fuchsia: Implement SystemInfo on Fuchsia
The Android vulkan code is reusable, so move that to a new file
SystemInfo_vulkan.cpp and call it in the Android & Fuchsia
implementations. This is necessary to skip tests based on GPU.

Bug: angleproject:4349, angleproject:4352
Change-Id: I8330cfcdbd41f4d51391bd5ed7f0820c55e02801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023909
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-28 22:38:54 +00:00
Yuly Novikov e3ba0d7d19 Disable 'nodiscard' warning on MSVC for dEQP.
Bug: angleproject:4358
Change-Id: I774b4ba442e27935a676f2ce82356e8c77a0db27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024334
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-28 20:26:15 +00:00
Michael Spang 4a8fa19f05 Fuchsia: Switch to gfx_tests sandbox configuration
The default sandbox config for tests built in chromium doesn't allow
access to the GPU or display. Switch to the gfx_tests sandbox config
to allow the tests to run.

Bug: angleproject:4350
Change-Id: Ib80db196ef55df694369cfc7a3cf18327ce7c952
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023908
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-28 19:26:13 +00:00
shrekshao 571ceb5faa Turn on clampArrayAccess globally but off for compute shaders
out-of-bounds-uniform-array-access.html could fail on Linux Nvidia
OpenGL even if GL_KHR_robust_buffer_access_behavior is available.
Turning clampArrayAccess on globally but turn it off for Compute Shader,
which is not used by WebGL so should be okay.

FYI: The failures when turning this on globally are all in compute shaders.
One could be fixed by using int cast instead of float for the clamp
modifier. The other is due to array.length() couldn't return correct
result for array in SSBO.

Bug: chromium:1042252
Change-Id: Ic6f7adae4600d35207646881b18990a0c25a889a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2020463
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2020-01-28 19:11:43 +00:00
Jamie Madill cc414d5718 D3D11: Fix uninitialized BufferEx SRV.
This was causing an unrelated error that was complicating diagnosing
test failures with the command graph refactor.

Bug: angleproject:4029
Change-Id: I31df76e7ea1c7fb731b49e97ac8a527a165efd48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024331
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-28 19:01:33 +00:00
Jamie Madill af5e38223a Fix overlay build.
The overlay define was placed in the libANGLE target instead of in the
config. This was causing a compile error in the capture-enabled build.

Bug: None
Change-Id: I9df02faaf57683119ca49a9b44e41ff049b05556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023479
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-28 17:38:13 +00:00