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

10996 Коммитов

Автор SHA1 Сообщение Дата
Jamie Madill 664be3f8a3 Capture/Replay: Fix docs link.
Should be samples/capture_replay not samples/capture_and_replay.

Bug: angleproject:3611
Change-Id: I5de4849c875add39df36f7875482e4dc91ca0ca6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880158
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 16:03:38 +00:00
Jamie Madill 070356819d Use googletest nested DEPS file.
This will fix the issue where gclient didn't support checking
out DEPS-inside-DEPS. We pass a 'googletest_revision' variable
to third_party/googletest via recursedeps.

Bug: chromium:1017514
Change-Id: I4ef3785e385775910f24e13e60e284b8ab2996d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881023
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 14:50:24 +00:00
Jamie Madill 7d51cc98bd Roll chromium_revision 9325340209..60074bf9e0 (704874:709436)
Change log: 9325340209..60074bf9e0
Full diff: 9325340209..60074bf9e0

Changed dependencies
* build: 592281c03c..a193dcc697
* testing: 6752fa027a..f712af4fd9
* third_party/googletest: c721b68dde..60616473f7
* third_party/jsoncpp: 48246a0995..571788934b
* third_party/libjpeg_turbo: 9d3bf3e968..bc13578529
* third_party/zlib: ddebad26cf..403ca5ad3a
* tools/clang: 6bc727d9d8..662cbb8d60
DEPS diff: 9325340209..60074bf9e0/DEPS

No update to Clang.

TBR=jmadill@chromium.org,
BUG=None

Change-Id: I429a0179f2941ebe04a41a1e25068c2bc41e66c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881022
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 12:55:13 +00:00
Jamie Madill 155947fc23 Enable "-Wconditional-uninitialized".
This is a final warning used by Skia.

Bug: angleproject:4046
Change-Id: I3970e30e4bd2aef07cddadd7322ef120ac857493
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877481
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 12:38:23 +00:00
Jamie Madill 16370a65a4 Enable "-Winconsistent-missing-destructor-override".
This is purely a code style and consistency warning. Enabled to
support building in Skia.

Bug: angleproject:4046
Change-Id: Ibdcd06ded0195123e52c693851c43d0864e54ad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 11:40:36 +00:00
angle-autoroll ec14fd5a24 Roll third_party/glslang/src 7662586844f4..b131630e7c74 (1 commits)
7662586844..b131630e7c


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

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 jonahr@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=jonahr@google.com
Change-Id: Ia4ef9eeef7404245de43d5adf1636e395c4e61f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880657
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-25 08:02:06 +00:00
Jamie Madill c017cee9df Enable "-Wundefined-reinterpret-cast".
A couple cases popped up where we were using an undefined cast.
Fix them by rearranging assignment macros to use decltype.

Another warning that is enabled in Skia.

Bug: angleproject:4046
Change-Id: Ibdbae0b2a96909b101a259ff805b8b2d43a5174b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877479
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-25 04:44:49 +00:00
Jamie Madill 77fba58c96 Fix improper vertex array assignment in ANGLE test.
Test: StateChangeTestES3.VertexArrayObjectAndDisabledAttributes
Bug: angleproject:4049
Change-Id: Ibda86585e9117686283081a76df213b2b2db0b6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879582
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 01:16:28 +00:00
Geoff Lang 4db96149ce GL: Temporarily disable emulatePrimitiveRestartFixedIndex.
This workaround appears to cause problems on Mac ASAN builds.
Disabling it while investigating the root cause.

BUG=1017337
BUG=angleproject:3997

Change-Id: I16a2f07f8fc69ec4d5ab40a5bf521c43f6854a49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879873
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-10-25 01:09:35 +00:00
Jamie Madill 68945f1c27 Enable "-Wredundant-parens".
This one is also required by Skia. It's purely for consistency and
code readability.

Bug: angleproject:4046
Change-Id: I9ed418a0bf6c7661f0970fef6da7088ca6ae6204
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877478
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 00:26:01 +00:00
Jamie Madill a620685467 Enable "-Wmissing-field-initializers".
This is another warning required by Skia. This one didn't find
anything that surprising. Enabling the warning does help enforce
code consistency and avoids a bit of possible undefined behaviour.

Bug: angleproject:4046
Change-Id: Ifec7f4afad49cd820bf3c0a79df3f46559473ee2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-25 00:23:31 +00:00
Jamie Madill 859ca039b7 Enable "-Wshadow-field".
This warning verifies we don't give variables names that shadow
fields. This is another good warning to enable that Skia requires.
This CL also fixes a small number of points in code that used this
bad pattern. We have to disable the warning for Glslang for now.

Bug: angleproject:4046
Change-Id: I072a686e3023b60cfafa778525fe712ce1fb5a50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 00:14:11 +00:00
Jamie Madill fd58d22cb0 Enable "-Wtautological-type-limit-compare".
This is used by Skia. It seems like a good this to enable in any case.
It verifies that we don't do pointless comparisons like "int < INTMAX".

Fix the one instance by using the base checked numeric helpers.

Bug: angleproject:4046
Change-Id: Ie14a9cb2754df52929591281062d92ef70df8f97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877474
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 00:04:47 +00:00
Jamie Madill 3db80f9377 Use "full" git cl format by default.
This uses the new setting added to depot_tools. The diff
lines of context setting was removed.

Bug: angleproject:4003
Change-Id: I6f7d471d3cce066cd3a6caa200828d09ccfca5ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879577
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-24 23:14:12 +00:00
Jamie Madill f251995def Capture/Replay: Write capture index file.
This file will be used with multi-frame captures to share common code.
Common code is global state, resource maps, and a list of frame replay
functions. This should make converting a CPP replay into a functional
test quite a bit simpler. The replay files will now be something like:

angle_capture_context1.cpp
angle_capture_context1.h
angle_capture_context1_frame000.cpp
angle_capture_context1_frame001.cpp
... etc

Also adds a template for adding a capture/replay sample. Instructions
are located in samples/BUILD.gn and docs in doc/CaptureAndReplay.md.

Bug: angleproject:3611
Change-Id: I437b338fd84689d670a7d9e3e219d9334de25fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869543
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2019-10-24 21:46:04 +00:00
Tobin Ehlis 7af2676bd7 Fix TextureAttachment support for unsized DS formats
Unsized DS formats should not pick up support from ES3 automatically.
Also unsized DEPTH COMPONENT textures should not be allowed as texture
attachments without also having support for GL_ANGLE_depth_texture or
GL_OES_depth_texture extensions.
This change modifies some unsized formats to require extension support
for TextureAttachment use.

There are a couple of tests bugs that were exposed by this change so
updated those tests as well.

This CL only changes TextureAttachment support, but it's quite possible
that renderbuffer (and texture) support may also need to be updated.
Will attempt that in a follow-on.

Bug: angleproject:3952
Change-Id: I75d15330dc418c421cd2855135e1e8100a89b2e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877135
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-24 21:45:04 +00:00
Jamie Madill a2e66a5e52 Capture/Replay: Introduce environment options and docs.
Introduces a few ways of controlling capture via:

 * `ANGLE_CAPTURE_ENABLED`:
   Can be set to "0" to disable capture entirely.
 * `ANGLE_CAPTURE_OUT_DIR`:
   Can specify an alternate directory than the CWD.
 * `ANGLE_CAPTURE_FRAME_END`:
   This variable can override the default of 10 frame to capture.

Also adds a simple usage guide document.

Bug: angleproject:3611
Change-Id: I49d32d5bae2c490dcbeb0f1ce3c6038e433adfaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869542
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-24 20:09:14 +00:00
Ian Elliott 6b652b3352 Vulkan: Update expectations for SwiftShader sRGB fix
Issue 4011 had 2 root causes, one of which was fixed and the other split out into 4037.

Bug: angleproject:4011
Bug: angleproject:4037
Change-Id: I460588d7667429751416c1904863a5117a8a4b1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1878889
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2019-10-24 16:52:34 +00:00
Jamie Madill c139250ce1 Vulkan: Enable multithreading tests.
These now pass with all the prior work.

One test case is left disabled on Linux due to timeouts.

Bug: angleproject:2464
Change-Id: If41f59f44f78160cf1b26dc05f560afd286996bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832526
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-24 16:47:54 +00:00
Jamie Madill 299b1baf87 GN: Fix one missing check for 'angle_has_build'.
This was blocking using our GN files in Skia.

Bug: angleproject:4046
Change-Id: I12887a53c5f92b0e00206f8d391a8d03433b5e6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877475
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-24 16:38:44 +00:00
Geoff Lang 3a8b890860 GL: Follow-up primitive restart emulation fixes.
- Use the existing utility function for computing the primitive
   restart index.
 - Fix bad merge that removed the unfoldShortCircuits feature.

BUG=1017337
BUG=angleproject:3997

Change-Id: I4ba5ada9816731bdd29a0e518ce225bdd69a762e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876453
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-10-24 16:11:36 +00:00
angle-autoroll 56d4da0510 Roll third_party/SwiftShader 7738ed713e7b..883e817b14bf (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7738ed713e7b..883e817b14bf

git log 7738ed713e7b..883e817b14bf --date=short --no-merges --format='%ad %ae %s'
2019-10-23 webmaster@saschawillems.de Added vkGetPhysicalDeviceWin32PresentationSupportKHR to Vulkan ICD

Created with:
  gclient setdep -r third_party/SwiftShader@883e817b14

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 jonahr@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=jonahr@google.com
Change-Id: If101eb655a556a70884b6b65d8f628d98901e73a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877852
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-24 10:00:13 +00:00
angle-autoroll 806747e036 Roll third_party/glslang/src 5e634c8999e6..7662586844f4 (3 commits)
5e634c8999..7662586844


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

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 jonahr@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=jonahr@google.com
Change-Id: Ibaa281c82997e29b0d27a1e67c828a8f693c79d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877851
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-24 08:04:13 +00:00
Tobin Ehlis b2885bc4a4 Vulkan:Enable UpdateBufferInUse test on AMD
Re-tested this and it's now passing so turning it on.

Bug: angleproject:3255
Change-Id: Iccf63cfaa4386dfda5628e189362631e655953f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876081
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2019-10-23 22:28:58 +00:00
Xinyi He 052167bc15 Vulkan: Mipmap is unconditionally enabled in ANGLE
ANGLE always enables the Mipmap. The fix does redefining
the image with mipmaps and replace the origin one only
when it is necessary.

Bug: angleproject:3737
Change-Id: Ia33a16fd7feae303fb114988059c4eec58c4232d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750627
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2019-10-23 20:38:28 +00:00
Tobin Ehlis 88a99e4382 Vulkan:Roll Loader
Update loader to version that will make sure the
VK_ICD_FILENAMES env variable is always picked up on Windows.

Bug: angleproject:2464
Change-Id: I6c161c00e0af708f288f59fc62b9cb9d6f131626
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876451
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2019-10-23 19:22:36 +00:00
Tobin Ehlis 710040a3dd OES_depth32 is for render buffer capability
Our format caps table was incorrectly reporting GL_DEPTH_COMPONENT32_OES
supported as a texture or texture attachment if OES_depth32 extension is
supported. However, the OES_depth32 extension spec says:

This extension enables 32-bit depth components as a valid render buffer
storage format.

So texture and texture attachment should not be reported as supported if
OES_depth32 is available but neither GL_ANGLE_depth_texture or
GL_OES_depth_texture are supported, which is currently the case for
swiftshader.

Bug: angleproject:3952
Change-Id: Ia29853229de9ff0918d6752631edfccf5f2ba3f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1874007
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2019-10-23 18:56:46 +00:00
Tobin Ehlis 08af1c8018 Vulkan:Store full 64bit handle in GarbageObject
On 32bit builds we were only storing 32bit handles for non-
dispatchable objects. This resulted in the handles getting shrunk
from 64-bits which then led to false validation errors.

Fixed this by using VK_DEFINE_NON_DISPATCHABLE_HANDLE() macro in
GarbageObject instead of VK_DEFINE_HANDLE().

Also MSVC on Win32 didn't like reinterpret_cast<> with the updated
64bit handles so migrated a number of GarbageHandle casts to be
c-style which is contrary to style guide, but is preferable to
conditional code.

Bug: angleproject:3924
Bug: angleproject:3946
Change-Id: Icb4139e34989179e46ac1f0c76269ff49ab1e897
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1873244
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-23 17:43:44 +00:00
angle-autoroll a1ed9d1a84 Roll third_party/SwiftShader a68a80a4dbf9..7738ed713e7b (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a68a80a4dbf9..7738ed713e7b

git log a68a80a4dbf9..7738ed713e7b --date=short --no-merges --format='%ad %ae %s'
2019-10-22 amaiorano@google.com Fix sRGB conversion not applying generally
2019-10-22 bclayton@google.com regres: Automatically build dEQP based on new config file
2019-10-22 amaiorano@google.com Fix unary minus warnings
2019-10-21 sugoi@google.com Enable support for Bresenham lines
2019-10-21 sugoi@google.com Fix queries with arrays containing other structures
2019-10-18 amaiorano@google.com Fix Win32SurfaceKHR resize issues

Created with:
  gclient setdep -r third_party/SwiftShader@7738ed713e

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 jonahr@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: angleproject:4011,angleproject:4034
TBR=jonahr@google.com
Change-Id: If970eee12d3553e8fdc2c333028b8289ebf6832a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1875374
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-23 14:16:21 +00:00
Jamie Madill a9f11bf14b GN: Separate out constructor/destructor warnings.
This will allow for the capture/replay sample to disable the warnings.
We'd like to keep them enabled for most of ANGLE code.

Bug: angleproject:3611
Change-Id: I3cc7af26fa54c03cc5b79727e7b403a1b218a903
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869544
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2019-10-23 05:38:12 +00:00
Le Quyen a48f95abef Move Vulkan GlslangWrapper code to a shared location.
Metal backend will reuse Vulkan's GlslangWrapper code.
The Metal backend will use this code to translate glsl to spirv then
cross compile to Metal Shading Language using spirv-cross.
So the source code of GlslangWrapper should be moved outside vulkan folder.

Bug: angleproject:2634
Change-Id: I208062daf0d77756c9d32cfdab925b7dfdf83e05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1858042
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-23 04:49:21 +00:00
Jamie Madill d4affcdd2a Vulkan: Roll validation layers.
Includes a fix necessary for multithreading tests.

Bug: angleproject:2464
Change-Id: I009e48be611ef7b96ad9caba8e0729881e1a8fb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1872789
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-23 03:56:11 +00:00
Jamie Madill 1efcbdb62f Vulkan: Fix sampler object lifetime.
Using the same scheme as we do for VkImageViews we can track VkSampler
lifetime using SharedResourceUse. This fixes the race condition that
could occur when samplers are deleted in one Context while being used
in another.

This fixes the last known resource lifetime issue. The multithreading
tests should now pass without validation errors.

Also adds regression tests to angle_end2end_tests.

Bug: angleproject:2464
Change-Id: I9dbed5062a0863b240ddf1a9b5d28560334934de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869548
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
2019-10-23 03:24:30 +00:00
jchen10 df9a7500d3 Remove forceNonZeroScissor workaround
The original driver bug no longer exists after upgrading the bots. This
workaround has the side effect causing the bug 3867.

Bug: angleproject:3407
Bug: angleproject:3867
Change-Id: I64f2e41729f209a1cef5ba49140650207666992c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1870845
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-23 03:12:21 +00:00
jchen10 b307010280 Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
This is a workaround for the webgl2 conformance test case
WebglConformance_conformance2_glsl3_vector_dynamic_indexing_swizzled_lvalue.
Dynamic indexing of swizzled lvalue like "v.zyx[i] = 0.0" is problematic on
various platforms. This removes the indexing by translating it this way:

void dyn_index_write_vec3(inout vec3 base, in int index, in float value){
  switch (index) {
    case (0):
      (base[0] = value);
      return ;
    case (1):
      (base[1] = value);
      return ;
    case (2):
      (base[2] = value);
      return ;
    default:
      break;
  }
  if ((index < 0))
  {
    (base[0] = value);
    return ;
  }
  {
    (base[2] = value);
  }
}

...
dyn_index_write_vec3(v.zyx, i, 0.0);
...

Bug: chromium:709351
Change-Id: I971b38eb404209b56e6764af1063878c078a7e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869109
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2019-10-23 02:45:10 +00:00
Geoff Lang 0b779a7c4e GL: Emulate primitive restart when PRIMITIVE_RESTART_FIXED_INDEX is unavailable.
PRIMITIVE_RESTART_FIXED_INDEX isn't available until desktop GL 4.3. When it is
not available, emulate it by enabling PRIMITIVE_RESTART and set the primitive
restart index before each draw call based on the index type.

TEST=deqp/functional/gles3/primitiverestart/*

BUG=angleproject:3997

Change-Id: Id736f1056cb07da91c6d592693406333142e6265
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1853885
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2019-10-22 23:20:01 +00:00
Tobin Ehlis be1fa7d8cd Vulkan: Enable VK_EXT_line_rasterization
Plumbing to make ANGLE use VK_EXT_line_rasterization
extension when available.

Bug: angleproject:3981
Change-Id: I12913c20bff69ab0b7c16462c10b8b5fd8e1c2a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1865027
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-22 20:45:20 +00:00
Mingyu Hu 9122bec285 Fix EXT_multisample_render_to_texture perf regression
EXT_multisampled_render_to_texture was causing perf
degradation through multiple unnecessary creation/destruction
of the shadow multisampled texture. This is solved by keeping around
the multisampled texture, so both will be available.

Bug: chromium:1015031
Change-Id: I44deee67c02c19bc8749d3ed0d45661f52902e72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1872618
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-22 16:52:35 +00:00
Jamie Madill 89eda11eb7 Metal: Move ldflags to Metal backend config.
ldflags apparently don't work in source_sets.

Bug: chromium:1014228
Change-Id: I123900ae7f7ef3705301dc9b78cdf92ebd0e5c4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1873235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-22 16:28:53 +00:00
angle-autoroll 66aae7e647 Roll third_party/glslang/src 834ee546f93d..5e634c8999e6 (3 commits)
834ee546f9..5e634c8999


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

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 jonahr@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=jonahr@google.com
Change-Id: Ie6d635a2afa818b4d12347528dd50bb32e69066a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1873103
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-22 07:55:21 +00:00
Jonah Ryan-Davis 5335faaece Robust validate_step_info in generate_stats.py
If there is a warning during validate_step_info and the step_info is
None, the script should not attempt to update that step in the
Spreadsheet object.

Bug: angleproject:4030
Change-Id: Ib94ba82219745ee4ab36c52e9b1d3a04a76a05d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1872569
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-22 00:06:35 +00:00
Courtney Goeltzenleuchter f228038dde Treat Pixel 2 XL and Pixel 2 the same
When running on a Pixel 2 XL PIXEL2 expecations were not being
applied. Both devices use the same chipset and have same capabilities
so treat them the same for expectations.

Bug: angleproject:4025
Change-Id: I5287e80c21b681765af540ed6dfbd053aa838c1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866076
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-21 16:14:24 +00:00
Tim Van Patten 4a80ba25e6 Vulkan: Ignore VK_INCOMPLETE from vkGetPipelineCacheData
From vkGetPipelineCacheData(3) Manual Page:

If pDataSize is less than the maximum size that can be retrieved by
the pipeline cache, at most pDataSize bytes will be written to
pData, and vkGetPipelineCacheData will return VK_INCOMPLETE. Any
data written to pData is valid and can be provided as the
pInitialData member of the VkPipelineCacheCreateInfo structure
passed to vkCreatePipelineCache.

Bug: angleproject:3988
Test: CQ, CtsOpenGLTestCases
Change-Id: I34589ee3c9e27839a9cd0168b4a2186f4cbb255e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1854680
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2019-10-21 02:22:15 +00:00
Jamie Madill 68591effc0 Vulkan: Store ImageView access in the graph.
This will ensure we don't destroy the image views when they are still
in use by other Contexts.

Bug: angleproject:2464
Change-Id: I1d3ba2ad241250e31ea32873446c4cb23971750d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1843236
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-21 00:44:25 +00:00
Jamie Madill f939cb63fd Revert "Reland "Add more test_utils functions.""
This reverts commit 7923e234bc.

Reason for revert: Fails compilation on rollers:

    [2097/6048] SOLINK ./lib_angle_unittests__library.cr.so
    FAILED: lib_angle_unittests__library.cr.so lib_angle_unittests__library.cr.so.TOC lib.unstripped/lib_angle_unittests__library.cr.so
    python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="../../third_party/android_ndk/toolch...(too long)
    ld.lld: error: undefined symbol: glCreateShader
    >>> referenced by shader_utils.cpp
    >>>               angle_util_static/shader_utils.o:(CompileShader(unsigned int, char const*)) in archive obj/third_party/angle/libangle_util_static.a
    
    ld.lld: error: undefined symbol: glShaderSource

Original change's description:
> Reland "Add more test_utils functions."
> 
> This is a reland of 5fcfcea4a9
> 
> Re-land uses static linking with angle_util. The root cause
> of the CFI error wasn't solved. Static linking works around
> the problem by not using any export rules.
> 
> Original change's description:
> > Add more test_utils functions.
> >
> > Includes methods for creating temporary files, deleting files, and
> > reading files into a string. Also renames GetPathSeparator to mention
> > it's only used for environment variables. Includes a new virtual type
> > angle::Process that will be used to implement cross-platform async
> > Process launching for tests. Also includes a way to specify a custom
> > crash handler callback.
> >
> > Also adds a few unit tests for the new functionality. They are disabled
> > on Android because the functions are not needed by the new test runner.
> >
> > Bug: angleproject:3162
> > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940
> > Commit-Queue: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> 
> Bug: chromium:1015810
> Bug: angleproject:3162
> Change-Id: I6a2c1e7b585a13ca846759f32da0777c00d7f7e6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869541
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

TBR=ynovikov@chromium.org,jonahr@google.com,jmadill@chromium.org

Change-Id: I975b2214411906cb981bffa04fa50e0a65ff8b4e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1015810, angleproject:3162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1870811
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-20 21:44:47 +00:00
Jamie Madill 7923e234bc Reland "Add more test_utils functions."
This is a reland of 5fcfcea4a9

Re-land uses static linking with angle_util. The root cause
of the CFI error wasn't solved. Static linking works around
the problem by not using any export rules.

Original change's description:
> Add more test_utils functions.
>
> Includes methods for creating temporary files, deleting files, and
> reading files into a string. Also renames GetPathSeparator to mention
> it's only used for environment variables. Includes a new virtual type
> angle::Process that will be used to implement cross-platform async
> Process launching for tests. Also includes a way to specify a custom
> crash handler callback.
>
> Also adds a few unit tests for the new functionality. They are disabled
> on Android because the functions are not needed by the new test runner.
>
> Bug: angleproject:3162
> Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>

Bug: chromium:1015810
Bug: angleproject:3162
Change-Id: I6a2c1e7b585a13ca846759f32da0777c00d7f7e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869541
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-20 21:15:05 +00:00
Jamie Madill beacd8c815 Vulkan: Rename format fields.
Renames 'angleFormat' to 'intendedFormat'. Also renames 'bufferFormat'
and 'imageFormat' to 'actualImageFormat' and 'actualBufferFormat'. This
renaming should make it clearer to the reader what the meaning of the
different format fields are. Intended format is the front-end format
and the actual formats are the formats we pass to Vulkan. Also updates
the documentation.

Bug: angleproject:4009
Change-Id: If61bf7250e88f7ed3d452718574c963d718e27b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866077
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-20 17:21:55 +00:00
Jamie Madill d739727b79 Remove Vulkan repos from exec script whitelist.
This is no longer needed with the static generated code baking.

Bug: angleproject:3320 
Change-Id: Id549792bf0e1d3e0433904a666d70630278b15c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869547
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-20 16:26:45 +00:00
Jamie Madill 0163470450 Revert "util: Always specify default visibility on exports."
This reverts commit 2bf23ea84e.

Reason for revert: Probably not the right fix. Will export
all angle_utils symbols in places where they shouldn't be.

Original change's description:
> util: Always specify default visibility on exports.
> 
> This fixes undefined behaviour with CFI.
> 
> Bug: chromium:1015810
> Bug: angleproject:3162
> Change-Id: I58cfb78adabbff05e5b4560dfd70b190411fa26d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869303
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

TBR=ynovikov@chromium.org,jmadill@chromium.org

Change-Id: Ie847a9e6506178eb2b14e63a1ee5e9a1775b4548
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1015810, angleproject:3162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869546
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-20 13:15:25 +00:00
Jamie Madill 2bf23ea84e util: Always specify default visibility on exports.
This fixes undefined behaviour with CFI.

Bug: chromium:1015810
Bug: angleproject:3162
Change-Id: I58cfb78adabbff05e5b4560dfd70b190411fa26d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869303
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-19 13:36:22 +00:00