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

11673 Коммитов

Автор SHA1 Сообщение Дата
Jamie Madill 8257ac3051 Vulkan: Defer RenderPass image barriers.
We accumulate image barriers in two places:

 * for GL sampler textures
 * for GL framebuffer attachments (Render Targets)

Then we issue the barriers together in a single call before the RP.
This fixes a bug where we were missing a layout transition in some
cases when transitioning between a sampler and a render target. It
should also be faster to issue a single barrier before a RP than issue
several smaller barriers.

Bug: angleproject:3539
Bug: angleproject:4029
Change-Id: I180b770f0df6b44d209e5c618ba36bcc1c6372e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044236
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-02-10 21:14:28 +00:00
Jamie Madill 788fa36035 Suppress two failing NVIDIA D3D11 tests.
Bug: angleproject:4391
Bug: angleproject:4392
Change-Id: I81cbf261cf206cd2d38cff93d16056c21bf78557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047416
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-10 20:29:58 +00:00
Cody Northrop 9d86f3310c Capture/Replay: Avoid null pointer dereference in MEC
Small fix to progress Manhattan MEC.

Bug: angleproject:4091
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I7981e19a64f121b2ecca4451574ca2886641c6ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039532
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-10 16:12:18 +00:00
Cody Northrop fc1e8503d8 Capture/Replay: Initial support for framebuffer textures
Bug: angleproject:3662
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I3d9b4dced4c1667382154fb68839d01ba2db9b98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039531
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-10 15:52:48 +00:00
angle-autoroll 00b96fe736 Roll third_party/SwiftShader dd48b7e2d06e..b3b2a4fc756f (11 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/dd48b7e2d06e..b3b2a4fc756f

git log dd48b7e2d06e..b3b2a4fc756f --date=short --first-parent --format='%ad %ae %s'
2020-02-08 bclayton@google.com Fix Android build: Add missing .cpp to Android.bp
2020-02-08 amaiorano@google.com Subzero: fix cosh/sinh deqp failures
2020-02-08 amaiorano@google.com ReactorUnitTests: fix clang-format messing up test suites
2020-02-08 bclayton@google.com Reactor: Copy System/Debug code to Reactor copy
2020-02-08 bclayton@google.com SpirvShaderDebugger: Ignore non-statements
2020-02-07 bclayton@google.com Debug: Control logging level using a compile time knob
2020-02-07 bclayton@google.com Fix chromium build.
2020-02-07 bclayton@google.com Debugging: Merge VkDebug into System/Debug
2020-02-07 bclayton@google.com VkDebug: Android - log messages to logcat.
2020-02-07 bclayton@google.com ReactorBenchmarks: Sweep coroutine perf.
2020-02-07 bclayton@google.com vscode: Add third_party/benchmark to include dirs

Created with:
  gclient setdep -r third_party/SwiftShader@b3b2a4fc75

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I0fcc005ec068e5e4f1de2a08f59d137b00c81693
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046532
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-10 10:10:17 +00:00
angle-autoroll 572d63a716 Roll third_party/glslang/src 95c414ffee64..ae59435606fc (1 commits)
95c414ffee..ae59435606


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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Iff9284070cc4d7446cc238f5bec31a71fa3d7509
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046531
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-10 08:02:17 +00:00
Jamie Madill a8e6a46312 Suppress Vulkan RobustResourceInit tests.
These tests are flaky because of a bug in ANGLE's Vulkan robust
resource init. Mark them as failing until we can resolve the bug.

Bug: angleproject:4255
Bug: angleproject:4384
Change-Id: I8e18a8532850848fc7a25e137dce27dd0d19fa55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046053
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-09 18:46:40 +00:00
Brandon Schade 0a6e118d49 Change g_Mutex from std::mutex to std::recursive_mutex
When running flatland on android-10.0.0_r21 (Pixel 3), libgui's ~EglImage calls
eglTerminate which grabs angle's EGL entry point mutex. The path continues
to libvulkan where eventually another egl call happens (eglDestroyImageKHR) and
it will attempt to take the mutex at the entry point again. So we try to get the
mutex multiple times from the same thread.

Change this mutex to a recursive_mutex to allow for this re-entry of EGL calls

Tests: android-10.0.0_r21/frameworks/native/cmds/flatland
Bug: angleproject:4354
Change-Id: If8a817df45e9f58d5f06884510350e17d7127fa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-02-09 15:08:10 +00:00
Cody Northrop 0d224ccea3 Capture/Replay: Add 2DArray and 3D texture support for MEC
This also includes support for compressed formats, which
required a small refactor to streamline the code, since all
of the entrypoints have slightly different parameter lists
for imageSize and data.

Bug: angleproject:3662
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I007ad9366934fff773f367ecb6387bc8b0d13aa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039530
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-08 19:04:49 +00:00
Jamie Madill 9681190ddc Make Debug marker functions return angle::Result.
Allows error handling in these functions. Necessary for the Vulkan
back-end.

Bug: angleproject:4209
Change-Id: I2092e58e719c6ee562807e1c7e8ad26988342855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040196
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-08 00:11:28 +00:00
Jamie Madill c3854ebc98 Vulkan: Clamp vertex buffer offsets.
Vulkan mandates that vertex buffer offsets are within the size of the
buffer even if robust buffer access is enabled. Do a check in
VertexArrayVk::syncDirtyAttrib to guard against this.

Bug: angleproject:3350
Change-Id: Ia01deb9b7335dd8f632f2cf9b32d2908ba55645c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044491
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-02-07 19:37:22 +00:00
Jamie Madill ca035803d8 Vulkan: Add missing wrapper functions for XFB.
Found when working on the command graph refactor. Also replace the
offsets array with nullptr which should have the same effect.

Bug: angleproject:4029
Change-Id: I72e31c5403c645d72619e14aafef612e454183f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2043270
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-02-07 17:53:59 +00:00
angle-autoroll 51fd2958f9 Roll third_party/spirv-tools/src 1f03ac10270a..fe10239f92f4 (1 commits)
1f03ac1027..fe10239f92


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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Icdd0cfc181c77ee14bfa4054ea849301078b184f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2043351
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-07 08:27:17 +00:00
angle-autoroll 55de83afee Roll third_party/glslang/src 656650f461c8..95c414ffee64 (2 commits)
656650f461..95c414ffee


Created with:
  gclient setdep -r third_party/glslang/src@95c414ffee64

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Id3d1ccb162c60fa5c157982b11641ddab9f2558d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2043352
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-07 08:02:17 +00:00
Cody Northrop e02f4996c6 Vulkan: Pass correct level count in getLevelDrawImageView
This bug was hit by a KHR ES 3.1 test.

This CL just applies the obvious fix already noted by jmadill@.

Test: KHR-GLES31.core.shader_image_size.*-nonMS-*
Bug: angleproject:4008
Bug: angleproject:4108
Change-Id: I5d05c0a7432f7b70d2b995fd8b11224c119ece5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042491
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-02-06 21:40:11 +00:00
Michael Spang 36f2c80acb Fuchsia: Fix size & position of test window on Scenic
Scenic places our window in with its center in the corner if we don't
apply any translation. Therefore we only see 1/4 of the surface.

Translate the surface so the full size is visible. Also account for
display scaling as we're sizing in pixels and scenic is sizing in
density independent pixels.

Bug: angleproject:4382
Test: angle_end2end_tests
Change-Id: I1ae0b877c0ed7cf9d810bb2c8317b9842bd322a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716226
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-06 21:08:30 +00:00
Jamie Madill 3a2522de64 Make TransformFeedbackTest deterministic.
Instead of using rand(), use a fixed seed RNG. This can ensure runs
use the same draw call counts no matter the time of day.

Note: there may have been a setting somewhere that was seeding the RNG
because I wasn't seeing variation between test runs locally. This
change makes it explicit.

Bug: angleproject:4029
Change-Id: Ic51bf2a6779da3b96a3357eed99c0f7fa9d81648
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042210
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-06 21:07:49 +00:00
angle-autoroll 463c318ab7 Roll third_party/vulkan-loader/src b932cf53f769..c731adec183b (4 commits)
b932cf53f7..c731adec18

git log b932cf53f769..c731adec183b --date=short --first-parent --format='%ad %ae %s'
2020-02-06 cnorthrop@google.com loader: Avoid clang warning about parentheses
2020-02-05 charles@lunarg.com loader: secure_getenv change logging WARN to INFO
2020-02-05 charles@lunarg.com loader: don't unconditionally add std-val meta layer
2020-02-05 lenny@lunarg.com loader: Fix buffer size updates in registry search

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I9fda2c484d8cf0a170fefd6f75dcf52282664ac1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042235
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 18:03:30 +00:00
Brian Osman e9dc0201af GL: Mark unused uniform locations that were explicitly bound as ignored
If a uniform location is unused, but a call to glBindUniformLocation has
explicitly bound the uniform, ANGLE validation still treated the uniform
as unused and returned errors. The correct behavior is to ignore the
uniform and silently fail.

Bug: angleproject:4374
Change-Id: Ic7b97f23cf8bc2d5380129322595e51b3d4a9fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036676
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-06 16:27:09 +00:00
angle-autoroll 7572c967ba Roll third_party/glslang/src b82ed734e767..656650f461c8 (1 commits)
b82ed734e7..656650f461


Created with:
  gclient setdep -r third_party/glslang/src@656650f461c8

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I4d5fcf594c2ce786a3ae35e613e7a0dd1a87d6d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2041034
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 10:25:00 +00:00
angle-autoroll 5e28a2b312 Roll third_party/spirv-tools/src 9e52bc0d0c1d..1f03ac10270a (1 commits)
9e52bc0d0c..1f03ac1027


Created with:
  gclient setdep -r third_party/spirv-tools/src@1f03ac10270a

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Iaa49097d4c41ec5b9be5dab1a5f2671bddb1f9c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2041076
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 10:06:10 +00:00
angle-autoroll f5d128faa2 Roll third_party/vulkan-validation-layers/src ab47cacfd3b3..b60b35843e66 (6 commits)
ab47cacfd3..b60b35843e

git log ab47cacfd3b3..b60b35843e66 --date=short --first-parent --format='%ad %ae %s'
2020-02-06 brucedawson@google.com Fix duplicate header file entry
2020-02-05 mark@lunarg.com tests: Revert "Call 1.2 core API using GetInstanceProcAddr"
2020-02-05 mark@lunarg.com tests: Call 1.2 core API using GetInstanceProcAddr
2020-02-05 mark@lunarg.com chassis: Limit GetPhysDevProcAddr to physical device funcs
2020-02-05 tony@lunarg.com layers: Use correct VK version when validating spec consts
2020-02-05 tony@lunarg.com tests: Use maxBoundDescriptorSets instead of hard coding

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Ie303bda1194333bba94d8d21d3b4becdc75a435b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2041075
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 08:09:20 +00:00
angle-autoroll 010c82d40b Roll third_party/vulkan-tools/src 260679605f98..428455ca6121 (2 commits)
260679605f..428455ca61

git log 260679605f98..428455ca6121 --date=short --first-parent --format='%ad %ae %s'
2020-02-05 timo.gurr@gmail.com vkcube: fix unknown CMake command error
2020-01-31 shannon@lunarg.com build: Update known-good for 1.2.132 header

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Ibb125e6cfecda694041c7aa83998c6510d5f7e0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2041074
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 08:03:59 +00:00
angle-autoroll a5bfe7d57c Roll third_party/SwiftShader 8e8e1d0dd729..dd48b7e2d06e (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/8e8e1d0dd729..dd48b7e2d06e

git log 8e8e1d0dd729..dd48b7e2d06e --date=short --first-parent --format='%ad %ae %s'
2020-02-05 amaiorano@google.com Fix MSAN LLVM jit false positives
2020-02-05 bclayton@google.com Disable new gcc 9 warning [init-list-lifetime]

Created with:
  gclient setdep -r third_party/SwiftShader@dd48b7e2d0

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I75bcfe8bc85d98104835ab9740c3c3f7c267e9fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2041077
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-06 08:03:19 +00:00
Shahbaz Youssefi e5385ea920 Vulkan: Compile shaders at link time
Since line raster emulation was changed to use specialization constants,
it has been possible to compile shaders at link time.  However, program
pipeline objects would have required keeping the shader sources around
for recompilation.  Now that all necessary decorations are modified
directly in SPIR-V, it's possible to compile the shaders at link time
and forget about their sources.  Program pipeline objects then simply
"reconfigure" the generated SPIR-V.

A next step could be to also create the Vulkan pipeline object at link
time.  A number of failures due to gaps in CTS testing prevent that work
currently.  In particular, in some situations the generated SPIR-V is
not per spec, for example it may contain vertex attributes with aliasing
locations, or have transform feedback capture of array elements
misconfigured.

Bug: angleproject:3394
Bug: angleproject:4253
Change-Id: I54c0884cf056b511a4a306225cc6ed2cef84d257
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023186
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-06 05:20:06 +00:00
Jamie Madill f1b2c4bed4 Vulkan: Fix overlay with command graph disabled.
Also fixes the missing RenderPass count in the new command recorder.

Bug: angleproject:4029
Change-Id: If7f0cf9e80ef815781ad2684ad1d93a3ed4912ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2037786
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-06 03:01:06 +00:00
Jamie Madill 25b7b846db Vulkan: Command graph linearization (Step 3).
Implements queries with the new command graph syntax. The T-Rex
capture benchmark uses queries so this fixes several errors.

Bug: angleproject:4029
Change-Id: Ia785f8e31257116aa3c75032dd66471b49926a78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021003
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-02-06 00:48:26 +00:00
Jamie Madill 20b1259ae9 Vulkan: Command graph linearization (Step 2).
ES 2.0 is feature complete.

Passes all of the angle_end2end_tests with the new linear command
recording method. Also runs the T-Rex benchmark without any obvious
glitches. Likely has issues with creating too many RenderPasses. ES3
is mostly untouched.

Bug: angleproject:4029
Change-Id: Ic5acf3d768495fbffd07b07bf0a6f2b5787c51f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012900
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-05 23:19:36 +00:00
Jonah Ryan-Davis 806ba5663b Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle
Implement an IOSurface-backed pBuffer surface for the Vulkan backend
on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader
and handle locking/unlocking the IOSurface.

Bug: chromium:1015454
Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-05 21:19:16 +00:00
Julien Isorce 5641d1938f Move generic code from rx::DisplayAndroid/Ozone to rx::DisplayEGL
This CL is intended to move and factorize code only.

Move DisplayAndroid::generateConfigs to DisplayEGL::generateConfigs
because the code is generic and not Android specific. It will be
useful later to provide a default implementation of rx::DisplayEGL.
Same for createWindowSurface and createPbufferSurface, they have
been moved without changes from DisplayAndroid to DisplayEGL.

Unimplemented functions in DisplayOzone and DisplayAndroid have
been moved to DisplayEGL.

Bug: angleproject:4328
Change-Id: Ibbd36f99ea457cbd69391beb4a83f23403bc40fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038286
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-02-05 17:43:47 +00:00
Alexey Knyazev a44d96dcd6 Apply compressed format workarounds to texStorage entrypoints
Bug: angleproject:4266
Change-Id: I70b3cdef35395b3a92bd460c9911b1ed963e0dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038573
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-05 14:59:06 +00:00
Jamie Madill eb63016d0f Add environment overrides for ANGLE features.
Allows the application to override ANGLE behaviour without having to
modify the code or use the ANGLE extension. Useful for testing with the
command graph refactor.

Adds a new string utility for parsing lists of strings from environment
variables.

Bug: angleproject:4029
Change-Id: Ibae93b743c0c385392cd259d9604ce2f2ed988dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2037784
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-05 14:54:56 +00:00
angle-autoroll 9c62f66c72 Roll third_party/glslang/src 540662253ea3..b82ed734e767 (1 commits)
540662253e..b82ed734e7


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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I74671608ecc264f49611e82a3c9ef0a3e4930b9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038127
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-05 10:09:55 +00:00
angle-autoroll ec816af6e7 Roll third_party/vulkan-loader/src 807f14657a25..b932cf53f769 (3 commits)
807f14657a..b932cf53f7

git log 807f14657a25..b932cf53f769 --date=short --first-parent --format='%ad %ae %s'
2020-02-04 lenny@lunarg.com loader: Add core 1.2 functions to gpa_helper
2020-02-04 charles@lunarg.com loader: add null check to loaderValidateLayers
2020-02-04 charles@lunarg.com loader: Warn when loader_secure_getenv() fails

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I6b37613fe780e0d146def7885657b17495b1c93f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038120
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-05 08:52:25 +00:00
angle-autoroll d81ec05eae Roll third_party/SwiftShader 41a7302e9c62..8e8e1d0dd729 (4 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/41a7302e9c62..8e8e1d0dd729

git log 41a7302e9c62..8e8e1d0dd729 --date=short --first-parent --format='%ad %ae %s'
2020-02-04 bclayton@google.com Shader: Add missing switch cases to operationString
2020-02-04 bclayton@google.com OpenGL: Fix switch with only a default case.
2020-02-04 amaiorano@google.com Regres: fix no env-vars for deqp on Windows
2020-02-04 lfy@google.com android: avoid exporting normal Vulkan APIs

Created with:
  gclient setdep -r third_party/SwiftShader@8e8e1d0dd7

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Ia9ff11bbc842f324e2b65745fd6647cede0ba138
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038122
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-05 08:43:05 +00:00
angle-autoroll a4053e2c44 Roll third_party/vulkan-validation-layers/src e85fe4c3cc9f..ab47cacfd3b3 (1 commits)
e85fe4c3cc..ab47cacfd3

git log e85fe4c3cc9f..ab47cacfd3b3 --date=short --first-parent --format='%ad %ae %s'
2020-02-04 tony@lunarg.com gpu: Use updated interface to instrumentation

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Icfbd19b525474b1d3aabe96bb741c5f30c856af1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038176
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-05 08:41:15 +00:00
angle-autoroll 7f2d013ef8 Roll third_party/spirv-tools/src 7a2d408dea60..9e52bc0d0c1d (11 commits)
7a2d408dea..9e52bc0d0c


Created with:
  gclient setdep -r third_party/spirv-tools/src@9e52bc0d0c1d

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 cnorthrop@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: cnorthrop@google.com
Change-Id: Ie6f6f11d84983936e736d7293c5e48d7add4d24e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038121
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-05 08:02:15 +00:00
Shahbaz Youssefi f764fc02e9 Fix varying linking by location
This change breaks the assumption everywhere that varyings can be
identified uniquely by name throughout all stages of the pipeline.

It further implements linking of varyings by location, if specified.

Bug: angleproject:4355
Change-Id: Ie45e48879008c3f0c22d1da3d0d26f37c655e54e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030026
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-02-05 04:51:20 +00:00
Alexey Knyazev 58fc8b11cf Implement RGTC (BC4, BC5) compressed texture formats
gl.xml was modified as two enums were missing from their proper group.
dxgi_support_data.json was fixed to not expect BC4 and BC5 on FL9_3

Bug: angleproject:3149
Change-Id: Ieb97a8cf8e92258c1b44e090e823fac227997174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033068
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2020-02-04 22:58:25 +00:00
Cody Northrop 4933d9d2d6 Capture/Replay: Track compressed texture data
Rather than try to read back compressed data using ANGLE_get_image
(which does not yet support compressed formats), track a shadow copy
of the compressed image and store it like client data.

Test: Mid-execution capture and replay of TRex frames using ETC1
Bug: angleproject:4036
Change-Id: Id15be60f7444cc2e1356e76ff18069c42e552663
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015818
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-02-04 20:56:40 +00:00
Jamie Madill 3e691bb97a Vulkan: Count active renderpasses in overlay.
Useful debugging information for benchmarks. Also helpful when working
with the command graph to ensure we don't regress performance.

Bug: angleproject:4029
Bug: angleproject:4320
Change-Id: Ibe224c40a3acaca9231bf3869486a0f8bba07ba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036402
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-04 19:10:50 +00:00
Alexey Knyazev d8c4b5fb80 Expose ASTC 2D on OpenGL
Bug: angleproject:4372
Change-Id: Ic1800ac10b12547ca9816f7ad9dfd62f83f227c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033066
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2020-02-04 16:38:46 +00:00
Alexey Knyazev 9e774041f8 Update S3TC GL extension strings
Added avoid_dxt1_srgb_texture_format workaround

Bug: angleproject:4266
Change-Id: I286a9c66f6ea1d2c9d3587f6ca85608336eb44a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033065
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-02-04 14:37:37 +00:00
angle-autoroll 0536fb4702 Roll third_party/vulkan-loader/src fb94ccddb725..807f14657a25 (2 commits)
fb94ccddb7..807f14657a

git log fb94ccddb725..807f14657a25 --date=short --first-parent --format='%ad %ae %s'
2020-02-03 lenny@lunarg.com build: Regenerate files for debug utils changes
2020-02-03 lenny@lunarg.com loader: Fix debug utils terminators being skipped

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

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I85fda88b6f1cb17e1e9bae96431471a77d6f73ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036416
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-04 12:54:39 +00:00
angle-autoroll 31f43a63d4 Roll third_party/glslang/src 5e86b28ffb81..540662253ea3 (1 commits)
5e86b28ffb..540662253e


Created with:
  gclient setdep -r third_party/glslang/src@540662253ea3

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I42d8f32fdc6b12dff781f426a7c099458f556056
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036425
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-04 09:27:59 +00:00
Geoff Lang aa6dd50de0 Share scratch buffers between contexts.
The Display now owns scratch buffers and loans them out to contexts
while they are current.  This allows us to to only allocate one scratch
buffer in a single-threaded use case.

Tick the scratch buffers every time a new context is made current.

Lower the lifetime from 1000 to 64 to ensure that in the worst case,
the buffers are cleared after not being used for ~1 second.

BUG=chromium:1030835
BUG=angleproject:4363

Change-Id: I83552424e2beac62b9e41152876b04fc84f53692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2031698
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
2020-02-03 23:35:50 +00:00
Tibor Dusnoki 4546c5cefa Skip failing end2end tests on Windows on ARM
There are multiple failing tests on Windows on ARM which are related to drawing differences.
They seem to be similar to an already reported issue (anglebug.com/3748).

Bug: angleproject:4356
Bug: angleproject:4357
Change-Id: Ide5cc2e6f42d4c4b6fb88352833d20e517005c14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033067
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-03 15:26:29 +00:00
angle-autoroll 326c900efd Roll third_party/vulkan-validation-layers/src bd4b3a888fca..e85fe4c3cc9f (3 commits)
bd4b3a888f..e85fe4c3cc

git log bd4b3a888fca..e85fe4c3cc9f --date=short --first-parent --format='%ad %ae %s'
2020-01-31 s.fricke@samsung.com tests: Added tests for Ycbcr in vkCreateImage
2020-01-31 s.fricke@samsung.com layers: Added Ycbcr support in VkImageCreateInfo
2020-01-31 tony@lunarg.com layers: Use safe_VkImageCreateInfos

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

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: I7c9dc2a0b4aed5232065fa44edda034cd72d9f6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2035158
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-03 08:03:17 +00:00
angle-autoroll 3861bbea6a Roll third_party/SwiftShader 79b36b640692..41a7302e9c62 (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/79b36b640692..41a7302e9c62

git log 79b36b640692..41a7302e9c62 --date=short --first-parent --format='%ad %ae %s'
2020-01-31 capn@google.com Split JIT creation from LLVMReactor.cpp into LLVMJIT.cpp
2020-01-31 bclayton@google.com CMake: Add build rules for google benchmark.
2020-01-31 bclayton@google.com Add google benchmark submodule to third_party.

Created with:
  gclient setdep -r third_party/SwiftShader@41a7302e9c

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: I4d800b6768fae30052cbc2ca56e42973b1756ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2035159
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-02-03 07:58:18 +00:00
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