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

11745 Коммитов

Автор SHA1 Сообщение Дата
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
angle-autoroll e39065501c Roll third_party/vulkan-headers/src 881bbb347a08..726435870206 (1 commits)
881bbb347a..7264358702

git log 881bbb347a08..726435870206 --date=short --first-parent --format='%ad %ae %s'
2020-01-21 oddhack@sonic.net Update for Vulkan-Docs 1.2.132

Created with:
  gclient setdep -r third_party/vulkan-headers/src@726435870206

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-headers-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

TBR=tobine@google.com

Bug: None
Change-Id: Id4cb30292b4e2ac7f47d56eae2461acf1a1dbd91
Tbr: tobine@google.com
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2025050
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 17:22:02 +00:00
Ian Elliott a6dfa11fb6 Vulkan: SwiftShader now getting correct sample positions
This was fixed in SwiftShader and I verified it

Bug: angleproject:4213
Change-Id: I6f591b81a62ec4c586d4abb7e6a2345794602833
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2025066
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2020-01-28 17:08:23 +00:00
angle-autoroll ccfe989081 Roll third_party/spirv-tools/src 1b3441036a8f..97f1d485b763 (1 commits)
1b3441036a..97f1d485b7


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

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,syoussefi@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,syoussefi@google.com
Change-Id: I51395f4148ecce27c60eb6e2743a3e067cc23620
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2025056
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 16:36:13 +00:00
Shahbaz Youssefi 7488a09641 Add a test to expose location'ed varying link bug
Bug: angleproject:4355
Change-Id: I2b914d3e6bf74ccf5d3f42d7bd010e44e45645ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-28 15:38:42 +00:00
Jamie Madill f144b77bc8 Make run_code_generation fail if git cl format fails.
The lack of error code was hiding errors in the Skia auto-roller.

Bug: skia:9812
Change-Id: Ib43e5eb1749161e9fa0186bfd4a293dadaf82f8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024178
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-28 13:46:03 +00:00
angle-autoroll 77f99a5a53 Roll third_party/vulkan-loader/src 310fb8617946..44ac9b2f406f (2 commits)
310fb86179..44ac9b2f40

git log 310fb8617946..44ac9b2f406f --date=short --first-parent --format='%ad %ae %s'
2020-01-28 charles@lunarg.com Fix spelling mistakes
2020-01-27 lenny@lunarg.com loader: Update comments for shared aliases

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

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: I59345f736941fb7d09073b23eedb369ec928998f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024579
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 08:15:13 +00:00
angle-autoroll 27389e6ec4 Roll third_party/glslang/src b0ada80356ca..07a55839eed5 (6 commits)
b0ada80356..07a55839ee


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

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: Ib661a6253054f7afb03dd0efc331814bb6fd152f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024580
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 08:05:03 +00:00
angle-autoroll 49032645aa Roll third_party/vulkan-tools/src b181c1a7ddb5..e39b5cf6a1b6 (1 commits)
b181c1a7dd..e39b5cf6a1

git log b181c1a7ddb5..e39b5cf6a1b6 --date=short --first-parent --format='%ad %ae %s'
2020-01-27 charles@lunarg.com vulkaninfo: update readme, move vulkansdk.exe note

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

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: Ia9354d6ec422d61ea6d8c2b9d78969e7a5844015
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024322
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 08:01:43 +00:00
angle-autoroll 43c070193e Roll third_party/SwiftShader 748ad200897b..34e16df059f8 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/748ad200897b..34e16df059f8

git log 748ad200897b..34e16df059f8 --date=short --first-parent --format='%ad %ae %s'
2020-01-27 sugoi@google.com Revert "VK_EXT_shader_stencil_export support"
2020-01-27 sugoi@google.com Sample location fix
2020-01-27 capn@google.com Avoid ignoring unsuccessful routine creation
2020-01-27 capn@google.com Implement byte swizzle operations
2020-01-27 bclayton@google.com Docs: Add VulkanShaderDebugging.md
2020-01-27 sugoi@google.com VK_EXT_shader_stencil_export support

Created with:
  gclient setdep -r third_party/SwiftShader@34e16df059

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: I8b32f7b78a5d813b47059889cf869e31ba8e5bbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024578
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-28 07:58:03 +00:00
Shahbaz Youssefi 086aded3cb Return the correct location count for matrices in structs
GetLocationCount() returned secondary size for fields of a struct.  For
matrices however, the correct value would be the primary size.

This is a similar fix to 6423b7fc7d.

Bug: angleproject:4200
Change-Id: I2c69b9454729993010766fcde0cabec986b7429d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021738
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-27 23:53:39 +00:00
Courtney Goeltzenleuchter d0b4eaf6b9 Vulkan: Allow user to specify preferred device
On a platform with multiple graphics devices (e.g. laptop with
integrated and descrete devices) it's handy to be able
to specify the specific device we want ANGLE to use.
Setting the environment variable ANGLE_PREFERRED_DEVICE to the device
name as returned by VkPhysicalDeviceProperties.deviceName will select
that device.

Bug: angleproject:4305
Change-Id: Ib16895add2c36a59135942b52401ceb7b6bc0895
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2002737
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-27 22:44:09 +00:00
Shahbaz Youssefi 2d1d9d3521 Fix atomicAdd validation w.r.t to swizzles
Bug: angleproject:4150
Change-Id: I22c0c0382a2b208dd983fa1981ffc75f1b1945e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022359
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-27 22:03:59 +00:00
Jonah Ryan-Davis 1a1a1427fd Expose eglGetMscRateCHROMIUM from EGL_CHROMIUM_sync_control
When ANGLE is using the GL backend on GLX, we can expose
eglGetMscRateCHROMIUM via glXGetMscRateOML. Otherwise, this function
should return false.

Bug: chromium:1042393
Change-Id: Id9b308c2217e07ee9860e2869be0e23b7a0c7411
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2017048
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-01-27 19:30:45 +00:00
Shahbaz Youssefi a1f1cce605 Vulkan: updateActiveImages: process each image once
There are two issues with processing the images multiple times:

- The graph trips up because on the first addWriteDependency, the
  current writer pointer of the image will be set to the recorder, and
  which on the next addWriteDependency creates a self-dependency.
- We transition the layout of the whole of the image, so doing that
  multiple times is inefficient.

Bug: angleproject:4312
Change-Id: Ibae72e8698edf5db97139f48d68624d3e9a1d5db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022355
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-01-27 18:45:26 +00:00
angle-autoroll 60a3d848a8 Roll third_party/vulkan-loader/src 37d3a235af2c..310fb8617946 (1 commits)
37d3a235af..310fb86179

git log 37d3a235af2c..310fb8617946 --date=short --first-parent --format='%ad %ae %s'
2020-01-24 shannon@lunarg.com loader: Update copyright date to include 2020

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

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 timvp@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: timvp@google.com
Change-Id: Id295d999da84a9787906274b29a5cf2704f41d5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022607
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-27 08:01:35 +00:00
angle-autoroll 78fdcee175 Roll third_party/spirv-tools/src b97057e7f747..1b3441036a8f (6 commits)
b97057e7f7..1b3441036a


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

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 timvp@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: timvp@google.com
Change-Id: I74460814982034369877ec0f33a803c9d181a656
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022605
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-27 08:00:05 +00:00
angle-autoroll 41a9838085 Roll third_party/SwiftShader 5ef91b82cbed..748ad200897b (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5ef91b82cbed..748ad200897b

git log 5ef91b82cbed..748ad200897b --date=short --first-parent --format='%ad %ae %s'
2020-01-24 capn@google.com Don't override vkQueuePresentKHR() failure codes with VK_SUBOPTIMAL_KHR
2020-01-24 capn@google.com Discern between per-swapchain and vkQueuePresent command results
2020-01-24 amaiorano@google.com Subzero: replace globals with external memory for constant vectors
2020-01-24 amaiorano@google.com SubzeroReactor: implement missing atomic ops
2020-01-24 bclayton@google.com Regres: add cmd/run_testlist
2020-01-24 bclayton@google.com Regres: Restructure directories for main packages

Created with:
  gclient setdep -r third_party/SwiftShader@748ad20089

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 timvp@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: timvp@google.com
Change-Id: I413c92d71d802c0df2d06d416c93d0f313e8a51e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022606
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-27 07:51:25 +00:00
angle-autoroll 589b1875f6 Roll third_party/vulkan-tools/src 93ab50fc27de..b181c1a7ddb5 (4 commits)
93ab50fc27..b181c1a7dd

git log 93ab50fc27de..b181c1a7ddb5 --date=short --first-parent --format='%ad %ae %s'
2020-01-24 charles@lunarg.com vulkaninfo: use gpu version instead of instance
2020-01-24 shannon@lunarg.com vulkaninfo: Update copyright date to include 2020
2020-01-24 shannon@lunarg.com winRT: Update copyright date to include 2020
2020-01-24 charles@lunarg.com vulkaninfo: remove duplicate flags/bitmasks

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

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 timvp@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: timvp@google.com
Change-Id: I1e713740496a8749fc0b8c82b542ef16f2d12855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022604
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-01-27 07:45:25 +00:00
Ethan Lee fcef6dcb6a For GGP builds, define __ggp__ manually.
Unlike other platforms' definitions, the GGP SDK expects the project files to
define this instead of having the compiler define it for us.

Bug: angleproject:4237
Change-Id: I8f10311fdff785a74c5e49fc53a512f1c050bff3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021010
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-25 16:30:46 +00:00
Jamie Madill 52ef28dcfe Vulkan: Update active textures before setupDraw().
The linear command graph prohibits rendering outside the render pass
*after* we begin a renderpass. The prior code would render outside a
render pass (changing image layouts) even after a RenderPass was
started in setupDraw(). The new code changes the image layouts in
ContextVk::syncState so we no longer need to "prepend" image layout
changes after we started a RenderPass. Now we record layout changes
followed by the draw calls or other renderpass ops.

Bug: angleproject:4029
Bug: angleproject:3539
Change-Id: I420858907ac38f995400c1b566c856d966a4e979
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015940
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-01-25 15:39:16 +00:00
Jeff Vigil 564eb6f2a9 Implement EGL_IMG_context_priority
Change RendererVk to have 3 VkQueues instead of one.
Each queue has a priority. To match extension: Low, Med, High.
gl::Context contains priority.
ContextVk contains a reference to one of the queues.
Every call to vulkan that uses queue, uses the associated context queue.

Bug: angleproject:3962
Change-Id: Ibd913a07a81c77bd975921d6dbae6a222842e88b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1978154
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-25 03:14:25 +00:00
Cody Northrop 080d711bb3 Tests: Add a perf test using traces
This test will load traces and cycle through a set of frames.

The new tests are:

    TracePerfTest.Run/gl_trex_200_210
    TracePerfTest.Run/gl_trex_800_810
    TracePerfTest.Run/gl_trex_900_910
    TracePerfTest.Run/gl_trex_1300_1310

To download the traces, you must be granted access and authenticate
with the cloud.  See the steps in RestrictedTraces.md for this.

Then add the following to the end of your .gclient file:

    "custom_vars": {
      "checkout_angle_internal":"True"
    },

And run `glcient runhooks`.

To enable building the test, add the following GN arg:

    build_angle_trace_perf_tests = true

See the new markdown document for ways to execute the tests.

Bug: angleproject:3630
Change-Id: Ic25cd94fb36b35fcf187e88d3bf9548c65f59755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949605
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-01-25 01:53:15 +00:00
Jamie Madill 3712b2e445 Vulkan: Command graph linearization (Step 1).
This initial prototype introduces a new feature to the Vulkan back-end
that disables the deferred command recording. The intent is to have a
lower CPU overhead during submission calls which currently walk a DAG.

The feature is not complete. Currently it only passes the ANGLE
SimpleOperationTests. Moreover it is extremely simple and only allows
use of one command buffer at a time. In the future we'll allow open
command buffers for recording outside and inside render pass commands
at the same time. We'll also support collapsing RenderPasses together
for some use cases.

Currently the prototype only passes "SimpleOperationTest". There are
quite a few unimplemented features like queries, XFB, etc.

Bug: angleproject:4029
Change-Id: I82760986683f55e37ac4ea559de6f4cffb6ef84e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953485
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-01-24 23:42:15 +00:00
Tibor Dusnoki d5d8ffa85e Disable ANGLE GL and Vulkan on Windows on ARM
Currently Windows on ARM doesn't support OpenGL but it is enabled in ANGLE by default.
Vulkan is only supported via Swiftshader so we should not test native Vulkan.
Therefore it causes crashes and fails on Windows on ARM when running angle_end2end_tests.

Bug: angleproject:4318
Change-Id: I70349ed53a2248df2dc8e7a0c0b3a6a5537a1110
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007414
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-01-24 21:39:02 +00:00
Jeff Gilbert 23521ca334 Validate `context` before use in ValidateStreamConsumerGLTextureExternalAttribsNV.
Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1608235

Bug: angleproject:4333
Change-Id: I957b6412f7c744e4bbaa7d8084b3c81ee58d45ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015838
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-01-24 20:54:20 +00:00
Artem Bolgar e93a438b4e GL_OVR_multiview shouldn't be defined for WebGL spec'ed shaders
According to the latest change in WebGL's OVR_multiview2 spec, the GL_OVR_multiview should NOT be defined. Refer to https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/

I.e. this shader should NOT fail compilation:

#version 300 es
#extension GL_OVR_multiview2 : require
#ifdef GL_OVR_multiview
    #error legacy GL_OVR_multiview support must be forbidden
#endif
....

Bug: angleproject:4279
Change-Id: Ic94cba6785ea3a1fa14d5131dc0960214aa574be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994830
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
2020-01-24 20:52:50 +00:00
James Darpinian 512abe85bb Clamp array accesses when robust buffer access not available
Apple doesn't support GL_KHR_robust_buffer_access_behavior, so we don't
know if we can trust the driver to be safe with out of bounds array
accesses. It's not currently failing the out of bounds access tests, but
this may be coincidental. In general it makes sense to always clamp
array accesses when GL_KHR_robust_buffer_access_behavior is not
supported.

The validating command decoder actually enables this workaround
unconditionally, but that seems unnecessary.

Bug: angleproject:2978
Change-Id: Ib061dd4db10e044ced0dff95d0aac6a91f15b100
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2018182
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
2020-01-24 20:29:30 +00:00
Jamie Madill 0a3f58f1eb Fix undefined behaviour in ClearTest.
We were expecting an uninitialized texture to contain black. However
the contents of the texture data may be undefined.

Discovered when working with the Vulkan command stream refactor.

Bug: angleproject:4029
Change-Id: Ia5d24707746819b116ac0053fabb48033574569a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2017978
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-24 18:31:49 +00:00
Jamie Madill c67252eaf7 Add feature flags to EGLPlatformParameters "tie".
The missing flags were causing the configs to be reused and improperly
tested. Noticed when working with the Vulkan command graph feature.

Bug: angleproject:4029
Change-Id: I2fea73fc0637d1adbf73577eb5dfcfa4a759c066
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2019503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-24 18:20:29 +00:00