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

231 Коммитов

Автор SHA1 Сообщение Дата
Jamie Madill 2f3e4db838 Capture/Replay: Serialize trace metadata to a JSON file.
This will allow us to remove more code auto-generation for the trace
tests. The trace info now can be loaded directly from JSON instead of
from the autogenerated information.

Bug: angleproject:5133
Change-Id: I04e22b9279b19282df274bc8defcd363d0449111
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-09-08 17:13:59 +00:00
Alexey Knyazev 5519d3184d Vulkan: Enable VVL on macOS
Bug: angleproject:4082
Change-Id: I4c8c28b4d885e7716967f43518ee611ab47c104a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140172
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-09-08 14:35:21 +00:00
Shahbaz Youssefi 58930a73ce Translator: Facilitate integration in FireFox; Part 2
Support for desktop GLSL builtins is now controlled by a gn arg, instead
of being tied to is_android.

Bug: angleproject:6188
Change-Id: Ia152d31bd49ca6de2b29873ee4998c1598904382
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076285
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-08-27 04:27:01 +00:00
Shahbaz Youssefi b8d6f8aa93 Translator: Facilitate integration in FireFox
Instead of relying on is_apple to build workarounds applied on apple
hardware, a new build argument is added for this purpose.  This allows
FireFox to more easily include these files in their build system (which
builds every workaround on every platform).

The workarounds are reorganized too and moved from tree_ops/gl/mac to
tree_ops/apple.  RewriteRowMajorMatrices is moved there too as it's now
used by both gl and metal.  This workaround is large, and removing it
from non-apple builds improves binary size (~40KB on Linux).

Bug: angleproject:6188
Change-Id: I8e1dab44d0235bb6b8341d53721bdd0d157d46c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047385
Reviewed-by: Jeff Gilbert <jgilbert@mozilla.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-27 03:05:45 +00:00
Alexis Hetu 729cbcf172 Make Display and X11 available in the same build
Chromium can use the 'use_ozone' and 'use_x11' build flags
simultaneously, so we need the Vulkan display to still be
selectable, even when the 'use_x11' flag is used.

This is required to make SwANGLE work with Ozone/Wayland, which
is going to use EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE
when SwANGLE is requested.

Bug: chromium:1231934
Change-Id: I2ac1d3d9bc231608d7f77e9a2540f4c538840076
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2021-07-23 17:12:58 +00:00
Jamie Madill 646c02b9eb Update angle_assert_always_on condition.
A prior CL would miss the standalone case.

Bug: chromium:1227171
Change-Id: Ib1c06d0ae7eed0feb082516690b227b964de72b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048853
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 14:23:58 +00:00
Alexis Hetu 20ae10c2dc Enable SwANGLE on all ozone platforms.
SwANGLE should be available on all ozone platforms.
This will also compile the vulkan backend.

Bug: chromium:1227864
Change-Id: I4971e52f45e70fed91567c3d2f369dafe160ff4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043626
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2021-07-22 17:31:28 +00:00
Jamie Madill 2b86e2d60f GN: Update dcheck/assert conditions.
In preparation for a Chromium change that makes dchecks enabled
by default in Release builds, we'll keep ASSERT disabled in
Release by default. We add a new flag 'angle_assert_always_on'
for controlling ANGLE ASSERT behaviour.

Also slightly refactors the direct SPIR-V generation GN.

Chromium CL: https://crrev.com/c/2893204

Bug: chromium:1225701
Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-19 19:05:44 +00:00
Jonah Ryan-Davis 96aa681ce3 Enable SwANGLE on ozone headless
To switch ozone testing to SwANGLE we need ANGLE to be able to run
vulkan/swiftshader on the ozone headless platform.

Bug: chromium:1227864
Change-Id: Icb8dc8fc4b3a5bc2402be2e41334350815fdd4dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027045
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-07-15 22:21:03 +00:00
Tim Van Patten 223cd0ac24 Capture/Replay: Refactor shared context handling
This is the initial CL to enable capture/replay of multi-context
applications.

This CL refactors FrameCapture and FrameCaptureShared to move much of
the functionality into FrameCaptureShared, since most everything is
shared by Contexts in the share group. For example, the setup of the
majority of the GL objects is done in the new SetupReplayContextShared()
function in the new $LABEL_capture_context_shared_frame001.cpp file. The
setup is performed by (for example):

    void SetupReplay()
    {
        $LABEL::InitReplay();
        $LABEL::SetupReplayContextShared();
        SetupReplayContext2();
    }

This performs the shared setup first, followed by the context-specific
setup, which may reference shared objects careated by
LABEL::SetupReplayContextShared().

No re-capturing is required with this change, since the external APIs
(i.e., SetupReplay()) are still the same.

Bug: angleproject:5878
Test: Manual MEC and replay of Magic Tiles 3, Candy Crush Soda Saga, Temple Run 2
Change-Id: Iab7bfe651437e9be1dee83514cd97acc20c61d1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965780
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-15 04:03:03 +00:00
Sergey Ulanov b73eee719c Reland: [Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.

Bug: chromium:1203879
Change-Id: I5cadcdf46ed1cfb5ebb3cb69dbfef063e9e2b826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3012368
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-08 23:47:18 +00:00
Geoff Lang dc334829d8 Disable ANGLE's VK backend on official Chrome Android builds.
ANGLE's VK backend induces a memory and binary size regression due to
global initializers in glslang/spirvtools. Disable it on Android Chrome
official builds.

Bug: chromium:1172451
Change-Id: I08d77cf11e20b393c0faf7c85d08c92061e5a09b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2969385
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2021-06-17 16:51:07 +00:00
Sergey Ulanov c670917ce0 [Fuchsia] Cleanup vulkan_fuchsia_ext.h
Removed defintions of fuchsia-specific vulkan types from
vulkan_fuchsia_ext.h . Instead, the types provided by vulkan_fuchsia.h
are used now.
Also re-enabled vulkan validation on Fuchsia.

Bug: chromium:1215736
Change-Id: I795347b7fb61d90033749533cefd42cf180730fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934718
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-06-10 14:42:51 +00:00
Geoff Lang 88156d2686 Revert "[Vulkan] Add DisplayVkNull"
This reverts commit cbbaf76b75.

Reason for revert: Suspecting this breaks the fuchsia_x64 bot WebGL
tests.

Ex: 
https://chromium-review.googlesource.com/c/chromium/src/+/2904812

Original change's description:
> [Vulkan] Add DisplayVkNull
>
> Currently all DisplayVk implementations depend on VK_KHR_swapchain and
> VK_KHR_surface extensions. When running Chromium on Fuchsia these
> extensions are never used (content is shown on the screen using
> ImagePipe API without dependency on swapchain). ANGLE still depended
> on these extensions for DisplayVkFuchsia.
> This CL adds DisplayVkNull, which allows to run ANGLE without dependency
> on swapchain. It's usable only offscreen and cannot present content on
> a surface.
>
> Bug: chromium:1203879
> Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

Bug: chromium:1203879
Change-Id: I6701ffff48fcb925f387e63b356d2d5cf360ea7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904183
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-19 13:52:50 +00:00
Jamie Madill dd686e48f0 Test Runner: Add test expectations parser.
Moves the test expectations from dEQP into the test runner.
Also updates angle_end2end_tests to take an expectations file.
Includes some very simple angle_end2end_tests expectations.
Note that the expectations in the file are less expressive than the
skips we use in the cpp.

Bug: angleproject:5951
Change-Id: Ib92235575bc3ea5f3a977ce416b0e78fe806e39b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-05-14 20:45:51 +00:00
Sergey Ulanov cbbaf76b75 [Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.

Bug: chromium:1203879
Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-14 20:05:19 +00:00
Jamie Madill 0639f7a9e6 Check angle_has_build before including runtime_deps.
This target doesn't exist in Skia.

Bug: angleproject:5940
Change-Id: I0095b771c0d57ec45bfd9294962c540d70679e6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2884700
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-10 21:10:41 +00:00
Shahbaz Youssefi 730bbcbb5c Use ANGLE GL for Lacros Chrome
Currently, no ANGLE platform flag is enabled for Lacros Chrome.
GL is selected as default by this change for ChromeOS in general.

Based on change by Eriko Kurimoto <elkurin@chromium.org>

Bug: chromium:1203176
Change-Id: I539a459b6d3db60da191570e933afd8d06d3c3eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877010
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-05-08 00:38:45 +00:00
Jamie Madill 08805e351f Explicitly include "runtime_deps" on Windows.
For applications and tests, we need the runtime deps for component
builds. It still like this omission was causing test failures on
Intel in standalone.

Bug: angleproject:5114
Change-Id: Ifd9e90b28f985e4d2d1392a97ecb75907290f5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2878093
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2021-05-06 21:04:05 +00:00
Sergey Ulanov c59b9a3379 [Fuchsia] Disable Vulkan validation
Vulkan is being updated on Fuchsia. Disable validation to unblock it.

Bug: fuchsia:73208
Change-Id: I8a6eecc16ef021d379cfcca8795896a6e6dae11c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2876070
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-05-06 15:51:08 +00:00
John Plate dfe208f188 Add loader for CL pass-through back end
Bug: angleproject:5904
Change-Id: If4960f3150f6bbc85a30f0f6ac5c9e668e6ff756
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2864022
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-06 13:06:09 +00:00
Shahbaz Youssefi bcf9ffa511 Revert "Use ANGLE GL for Lacros Chrome"
This reverts commit b62f8dd116.

Reason for revert: Breaks skia roll. See

https://ci.chromium.org/raw/build/logs.chromium.org/skia/535503ce58f24311/+/annotations

Original change's description:
> Use ANGLE GL for Lacros Chrome
>
> Currently, no ANGLE platform flag is enabled for Lacros Chrome.
> GL is selected as default by this change.
>
> Bug: chromium:1203176
> Change-Id: I7f810c496dc1806c030e7292a319624d45c33fa1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2851829
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: chromium:1203176
Change-Id: I82b50a9fb57ffb9a6d9112d1a07f3b03775c5bcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2875350
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-05-06 01:32:27 +00:00
Eriko Kurimoto b62f8dd116 Use ANGLE GL for Lacros Chrome
Currently, no ANGLE platform flag is enabled for Lacros Chrome.
GL is selected as default by this change.

Bug: chromium:1203176
Change-Id: I7f810c496dc1806c030e7292a319624d45c33fa1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2851829
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-05-04 17:36:22 +00:00
John Plate 05fb22724f Add support for OpenCL ICD Loader
Bug: angleproject:5908
Change-Id: Idafc0d15b69f9a21f2ab5e48c4c34f0dc0e0ee96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2854598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
2021-05-03 17:27:16 +00:00
John Plate 16a919b174 Add stubs for CL platform layer back ends
Bug: angleproject:5904
Change-Id: If23c7f76013a17c3c67c13194566438035beb3d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2853582
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-04-27 18:43:49 +00:00
John Plate 9acfccbdf1 Disable OpenCL support by default
Bug: angleproject:5892
Change-Id: I99d4c0e450e469f911abc05fbe1e714190e16900
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848508
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: John Plate <jplate@google.com>
2021-04-23 23:22:06 +00:00
Geoff Lang da791e3ecd D3D11: Disable CompositorNativeWindow11 in Chromium builds.
CompositorNativeWindow11's IsValidNativeWindow can only return true or
crash. If a user passes in an invalid window handle, ANGLE's D3D11
backend will always crash.

Ideally this window type would be exposed through an extension and
the user passes in an enum telling ANGLE that the window is an
ISpriteVisual instead of ANGLE trying to detect it from a void pointer.

Bug: chromium:1176118
Change-Id: Ia7568adcd929dcd9200c7da2d0a991da55e1e89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846800
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2021-04-22 20:23:10 +00:00
John Plate e25f3b105f Generate empty CL object classes
Bug: angleproject:5886
Change-Id: I01566f40e85bd7f5531536fdc1df42965622a939
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2844969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
2021-04-22 17:19:56 +00:00
Jamie Madill 2f808349bd Add standalone Android build.
Includes necessary DEPS and GN build changes.
Some folders are copied directly from Chromium because they don't
exist as source mirrors or aren't available for other reasons.

Bug: angleproject:2344
Change-Id: Ibb7f8a3e2288048b7aed2b0e277ca63b5a932c57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826480
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2021-04-20 15:24:42 +00:00
Alexis Hetu 45344f0555 Allow Chromecast tests to run on SwANGLE
This cl makes 2 changes allowing Chromecast tests to use
SwANGLE:
1) It sets angle_use_vulkan_display to true when using
   Chromecast, effectively allowing SwANGLE to be used
2) It sets angle_vulkan_display_mode to "headless", allowing
   it to use DisplayVkHeadless instead of DisplayVkSimple,
   which ends up using "VK_EXT_headless_surface" instead of
   "VK_KHR_display", so that it's supported by SwiftShader
   Vulkan on Chromecast.

Bug: chromium:1060139
Change-Id: Ia521ebddac14f5e34666bb9b64603bec598c41ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826196
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2021-04-14 21:04:38 +00:00
Yuly Novikov 82cc2d213b Really fix iOS build
Complete the fix started in http://crrev.com/c/2812698

Bug: angleproject:5811
Change-Id: I9fa50b31dda116e01203d65d47dc6420391e999d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818243
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-04-10 00:11:48 +00:00
Peter Kotwicz bf0c6ae1ee Improve Angle Android gtest support
This CL makes angle_test() use an angle-specific gtest launcher -
AngleUnitTestActivity.java. This enables building standalone Android
angle without //base

Chromium-Bug: 1149922
Bug: None
Change-Id: Id84f3e2bd84c5017ed1988ca07534f424ebfa596
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745535
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-04-07 16:50:52 +00:00
Yuke Liao 3036ff2d82 Lacros: Fix xvfb condition in angle
For Lacros, xvfb is only used in Linux-Lacros, but not on-device
config, so this CL fixes the problem.

Bug: chromium:1195415
Test: built Chromium and Angle from source
Change-Id: Ia9adf706716c424b14a395189755932e445b7050
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802854
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-04-06 16:23:06 +00:00
Jamie Madill 78dde332f2 Move restricted traces to CIPD.
All traces are now stored as DEPS entries in CIPD. The auto-generation
script generates the DEPS entries. Note that we don't include DEPS in
the list of generated outputs to simplify other rollers. Also we update
auto-generation to include full sources list to allow 'gn analyze' to
work successfully.

Usees a trace fixture for common code. This will enable a more compact
trace without as much repeated code. We must land a set of re-trace
traces to avoid breakage. 

Also includes a python script for uploading new traces to CIPD. The
script first checks if traces are already present in the cloud, and if
so it skips the upload. It will take a while to complete as the number
of traces grows larger as it takes a few seconds per trace.

The traces in this patch are also re-traced to use the common fixture
code instead of including duplicated code in each trace. They now form
a simple common interface and the autogenerated cpp is now simply a list
of properties.

I've also updated the capture/replay tests to use the simpler common
entry point integration. There is less auto-generated glue code now.
We now use a new serialized string query extension instead of calling
directly into ANGLE's internals.

Also includes a docs update. The capture/replay sample is broken and
we'll need to update it in a follow-up CL. Also includes a few necessary
fixes to the retracing script.

Bug: angleproject:5811
Change-Id: I977bc6dc56843c8966377fc445ae97e91e17319a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797833
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-04-05 23:00:39 +00:00
James Clarke 06d194e2ae Reland "Add support for building in Flutter Windows UWP configuration"
This is a reland of 68ac4e43aa

Original change's description:
> Add support for building in Flutter Windows UWP configuration
>
> Bug: angleproject:5527
> Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

Bug: angleproject:5527
Change-Id: I3d5c3a35d73e3946ae40c779e76e0343039bf660
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-03-15 19:16:03 +00:00
Peng Huang a5ab7974a2 Turn on vulkan backend for android ndk level < 26
Fixes two issue for build Vulkan backend for android ndk level < 26,
* Disable Vulkan validation layers for android ndk level < 26
* Share vulkan memory allocator implementation with chrome to avoid
  duplicated symbols link errors.
* Only run vulkan backend test with Android P or newer

Note: This change will break android-binary-size try bot, we need to
update expected_static_initializer_count to 4 at [1] while rolling this
change into chromium.

    [1] https://source.chromium.org/chromium/chromium/src/+/master:chrome/android/static_initializers.gni;l=19?q=expected_static_initializer_count&ss=chromium%2Fchromium%2Fsrc

Bug: chromium:1170339
Change-Id: Idb9238d8f339724c4d8f9ac136305b95ff06fae4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656980
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-01-29 21:21:12 +00:00
Yuly Novikov 3846cff344 Suppress headers includes privacy checks on iOS
shared libraries are hidden inside ios_framework_bundle,
so technically we are not allowed to include headers from them.

Ignore this check since everything works fine besides "gn gen --check".
All ANGLE headers are considered public, so we don't need this check.

Bug: angleproject:5417
Change-Id: I6b621132dfe85e0fb1bea4ae2b93097945a8801a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2643859
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-01-22 16:27:14 +00:00
Michał Pichliński 80b45c33c1 Make metal_shader_cache_file_hooking a data_deps
After https://chromium-review.googlesource.com/c/angle/angle/+/2580918
angle_unittests will not run on OSX when it is non component build
and metal_shader_cache_file_hooking is a shared library:
dyld: Library not loaded: ./libmetal_shader_cache_file_hooking.dylib

Bug: angleproject:5565
Change-Id: I1ac43d928cfaff692aa233c2ba3504a73573ee3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2640173
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-01-20 16:12:07 +00:00
Austin Eng 0739f07a95 Revert "Add support for building in Flutter Windows UWP configuration"
This reverts commit 68ac4e43aa.

Reason for revert: Crashes Chrome GPU process startup on Windows x86
See crbug.com/1168272

Original change's description:
> Add support for building in Flutter Windows UWP configuration
>
> Bug: angleproject:5527
> Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

TBR=geofflang@chromium.org,stuart.morgan@gmail.com,jmadill@chromium.org,james@clarkezone.io

# Not skipping CQ checks because original CL landed > 1 day ago.

Tbr: jmadill@chromium.org
Bug: angleproject:5527, chromium:1168272
Change-Id: Ifb37c8026253c6a7c334d5b6c83018c888a9f51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2638572
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-01-20 01:32:56 +00:00
James Clarke 68ac4e43aa Add support for building in Flutter Windows UWP configuration
Bug: angleproject:5527
Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-01-18 16:52:37 +00:00
Shahbaz Youssefi 5b8dec52b6 Reland "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 51603c63d1.

Reason for revert: Fixed issue that broke Skia build

Original change's description:
> Revert "Use is_apple instead of is_mac and is_ios everywhere"
>
> This reverts commit 2762641a3a.
>
> Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
>
> Original change's description:
> > Use is_apple instead of is_mac and is_ios everywhere
> >
> > Bug: chromium:1161513
> > Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> > Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> TBR=jdarpinian@chromium.org,syoussefi@chromium.org
>
> Bug: chromium:1161513
> Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

TBR=jdarpinian@chromium.org,syoussefi@chromium.org

Bug: chromium:1161513
Change-Id: I3cf30aa047a1f208fa7d1acda1d6d4e5da7b6ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622244
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-01-12 15:44:03 +00:00
Yuly Novikov 9325fd8b77 Fix iOS build
Broken by crrev.com/c/2618040

Bug: angleproject:5417
Change-Id: Id4a81c3e933b679956c82356c14b5639d56b6859
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622234
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-01-11 20:43:21 +00:00
Shahbaz Youssefi 51603c63d1 Revert "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 2762641a3a.

Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.

Original change's description:
> Use is_apple instead of is_mac and is_ios everywhere
>
> Bug: chromium:1161513
> Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

TBR=jdarpinian@chromium.org,syoussefi@chromium.org

Bug: chromium:1161513
Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-01-09 04:51:43 +00:00
Stephen White f4cd17472a Reland "Changes to build inside a Dawn checkout."
This is a reland of 11c31e0a4a

I've landed upstream Skia change https://skia-review.googlesource.com/c/skia/+/351496
which should make this safe to reland.

Original change's description:
> Changes to build inside a Dawn checkout.
>
> Add an "angle_standalone" flag that can be disabled by Dawn.
> Put test definitions behind angle_standalone || build_with_chromium.
>
> Bug: angleproject:5462
> Change-Id: I58c9b18723384334156e2a3dd86ed3f89afcaade
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587451
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Stephen White <senorblanco@chromium.org>

Bug: angleproject:5462
Change-Id: I4ff92d45b3692312a004f03b425234b78c5a6219
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618040
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-01-08 21:45:19 +00:00
Shahbaz Youssefi 2762641a3a Use is_apple instead of is_mac and is_ios everywhere
Bug: chromium:1161513
Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-01-06 21:28:50 +00:00
Shahbaz Youssefi 382bf2883f Organize AST transforms per backend
Most of the AST transforms are written as a workaround to an issue that
affects a single backend.  This change identifies such transforms and
organizes them by backend.  They are then only built if the respective
backend is.

Additionally, about half of the GL transforms are due to mac
workarounds, including the large RewriteRowMajorMatrices transform.
Mac-specific workarounds are additionally only built on said platform.

This change reduces the ANGLE binary size:

- 106KB in a Vulkan-only build on Linux
- 27KB in a GL-only build on Android (60KB on Linux)

Bug: chromium:1084580
Bug: chromium:1161513
Change-Id: I64b334332c0d4f848756c6538af0d8d96864c7e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601346
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-01-06 06:15:55 +00:00
Peng Huang 2ec7d75099 Disable null backend on Android
This change saves 6.6KB on Android

Bug: angleproject:5490
Bug: chromium:1161513
Change-Id: I14636694ed7bff61accfac934fbbf6f619d2f6b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606528
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-12-30 23:41:40 +00:00
Peng Huang 47ee6a7b09 Add build flags to disable desktop gl backend
This change saves about 100KB on Android

Bug: angleproject:5490
Change-Id: Ieca0e597423f74a917197f381560af5409a9e874
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601341
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2020-12-29 19:42:01 +00:00
James Darpinian 0dbe7cdde4 iOS testing support
angle_white_box_tests build and runs and passes on the iOS
simulator with this change. angle_end2end_tests builds and runs but
crashes.

Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I8817e46415c4598cbfae49804727a2e9b21baff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600361
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2020-12-23 20:25:41 +00:00
Jamie Madill c500ee031d Revert "Changes to build inside a Dawn checkout."
This reverts commit 11c31e0a4a.

Reason for revert: Broke ANGLE -> Skia roll because of GN error.

Bug: angleproject:5489

Original change's description:
> Changes to build inside a Dawn checkout.
>
> Add an "angle_standalone" flag that can be disabled by Dawn.
> Put test definitions behind angle_standalone || build_with_chromium.
>
> Bug: angleproject:5462
> Change-Id: I58c9b18723384334156e2a3dd86ed3f89afcaade
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587451
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Stephen White <senorblanco@chromium.org>

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: angleproject:5462
Change-Id: I4363d1d35b03e00d970e25ddd3d7eac51ad2da2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-12-23 18:56:08 +00:00
Stephen White 11c31e0a4a Changes to build inside a Dawn checkout.
Add an "angle_standalone" flag that can be disabled by Dawn.
Put test definitions behind angle_standalone || build_with_chromium.

Bug: angleproject:5462
Change-Id: I58c9b18723384334156e2a3dd86ed3f89afcaade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587451
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-12-21 21:25:54 +00:00
Jamie Madill 653f6196ce Import Vulkan DEPS from the new vulkan-deps repo.
This will allow the entire set of Vulkan DEPS to be rolled as one.

Bug: angleproject:5390
Change-Id: I10ca4f966f986baf3aab7250935802a3ed1065f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587671
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2020-12-18 18:09:50 +00:00
Jamie Madill 4798c8cf20 Introduce GN variables for Vulkan repos.
This will allow them to be seamlessly overrideen in other repos.

Bug: angleproject:5390
Change-Id: I973cae48b5683e39ea3b07898b95956511260319
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2591107
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-12-15 15:15:35 +00:00
Le Hoang Quyen cb8903b143 Metal: Ignore OS's internal shader cache when testing.
Internal shader cache caused timeout in some dEQP tests.
Work-around: ignore the cache by hooking fopen function and return null
when the cache related files are accessed.

Bug: angleproject:5354
Change-Id: I12ca228540925e67454bf24ce1ba83d703882c87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580918
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2020-12-15 02:42:59 +00:00
James Darpinian 27e52ca05d Fix build when angle_has_build == false
Need to declare use_xcode_clang when building outside chromium.

Bug: angleproject:5440
Change-Id: I4d622c1b6085d89b69c828b2c965d22c1f806f45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579750
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
2020-12-09 00:19:00 +00:00
James Darpinian dea8629453 iOS build support
libGLESv2 builds with these changes on iOS, iOS Simulator, and
Mac Catalyst, using CGL or EAGL as appropriate. Tests will
require more work. Fixed several errors in the EAGL code which
hadn't been detected because the code wasn't built.

Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I29072d82607ef2500732c5cc00318fdab4a46b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570211
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
2020-12-07 21:47:35 +00:00
Alexis Hetu f2a154858d Suppress memory leaks detected by LSAN
In order to be able to land SwANGLE in Chromium, this cl adds
suppressions for memory leaks detected by LSAN. Some of these should
be fixed and some are intentional leaks of global variables.

This cl should allow the linux_chromium_asan_rel_ng bot to pass while
using SwANGLE and shouldn't break the win-libfuzzer-asan-rel bot.

Bug: chromium:972686
Bug: angleproject:5377
Change-Id: I7e2336aba43fcfeb95716d6c0aa05caf855134aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2020-12-04 21:15:09 +00:00
Jamie Madill 2edec86441 Improve stack backtraces on Linux.
This switches the Linux crash handler to use addr2line when it
is available. Addr2line is much better at converting addresses
into readable information. The downside is that we must use a
system call to a binary since it's not easy to integrate with
addr2line source.

Bug: angleproject:5239
Change-Id: I13cbaa4ba30166718fb12d924c76ba4f2675453c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2515265
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-11-11 17:07:12 +00:00
Ian Elliott e2ecb2ddef Enable logging API commands to Android logcat
This enables logging API commands to Android logcat.  It is enabled
via the following GN arg:

    angle_enable_android_api_logcat = true

On desktop, API commands can continue to be logged to the
"angle_debug.txt" file via a different mechanism, with the GN arg:

    angle_enable_trace = true

Bug: b/170249632
Change-Id: Id52e75f966a97692ec6d69eb3d254ba295a151c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519094
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
2020-11-07 04:29:17 +00:00
Xiaoxuan Liu db00732e0f Vulkan display mode: fix skia build failure
Separate angle_use_vulkan_display into another
declare_args() for skia build.

Bug: angleproject:5214
Change-Id: I9f829b8a8c95947832f69ca2d78e050aa60ce8ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519171
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-11-04 13:27:00 +00:00
Jamie Madill 3e5b6f81d1 Enable writing histogram-set-json-format.
This uses the protobuf histogram functionality to build up a histogram
set. The test suites then output the histograms to JSON. This is only
implemented for angle_perftests.

Bug: angleproject:5161
Change-Id: Ia5a7868e8d8dcf4f13d83115ae622828c63ef0d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482295
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-11-03 20:17:58 +00:00
Xiaoxuan Liu 61180d011c Reland "Add support for Linux vulkan backend with VK_KHR_display"
This is a reland of a7bb6a9b15

Original change's description:
> Add support for Linux vulkan backend with VK_KHR_display
>
> Implement Linux simple display mode with vulkan backend
> through VK_KHR_display.
>
> Added value 'EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE' for
> attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE to identify
> the new simple display mode. Also reserved
> EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE for headless mode.
>
> How to enable:
> Add
>
> ```
> use_x11=false
> angle_vulkan_display_mode="simple" # default value
> ```
>
> into args.gn, then compile with linux vulkan args.
>
> Bug: angleproject:5214
> Change-Id: I1247585b9de8b55df106aba99322281f1c183203
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494320
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: angleproject:5214
Change-Id: I3921f6cb292c86658f39e739a878baad1ef64dba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2515327
Commit-Queue: Xiaoxuan Liu <xiaoxuan.liu@arm.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-11-03 03:38:40 +00:00
Jamie Madill 807e6b3367 Revert "Add support for Linux vulkan backend with VK_KHR_display"
This reverts commit a7bb6a9b15.

Reason for revert: Failing on Ozone builder, see bug.

Bug: angleproject:5289

Original change's description:
> Add support for Linux vulkan backend with VK_KHR_display
>
> Implement Linux simple display mode with vulkan backend
> through VK_KHR_display.
>
> Added value 'EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE' for
> attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE to identify
> the new simple display mode. Also reserved
> EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE for headless mode.
>
> How to enable:
> Add
>
> ```
> use_x11=false
> angle_vulkan_display_mode="simple" # default value
> ```
>
> into args.gn, then compile with linux vulkan args.
>
> Bug: angleproject:5214
> Change-Id: I1247585b9de8b55df106aba99322281f1c183203
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494320
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

TBR=syoussefi@chromium.org,sunny.sun@arm.com,jmadill@chromium.org,xiaoxuan.liu@arm.com

Change-Id: I3e2a2a044c220ed8d25be0d82184e5fba7b9c06a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5214
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514637
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-11-02 17:15:21 +00:00
Xiaoxuan Liu a7bb6a9b15 Add support for Linux vulkan backend with VK_KHR_display
Implement Linux simple display mode with vulkan backend
through VK_KHR_display.

Added value 'EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE' for
attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE to identify
the new simple display mode. Also reserved
EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE for headless mode.

How to enable:
Add

```
use_x11=false
angle_vulkan_display_mode="simple" # default value
```

into args.gn, then compile with linux vulkan args.

Bug: angleproject:5214
Change-Id: I1247585b9de8b55df106aba99322281f1c183203
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494320
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-11-02 14:07:40 +00:00
Tim Van Patten ee4e0866cb Vulkan: Add descriptor set allocation counters
Add descriptor set allocation counters for the following:
- ContextVk
  - Driver uniform allocations for graphics and compute pipelines.
- ProgramExecutableVk
  - ANGLE driver uniforms
  - Uniforms
  - Textures
  - Other shader resources
- UtilsVk
  - All of the UtilsVk::Function types increment the same counter

Each object's counters live within the object itself and the cumulative
total is output as part of that object's destruction. On Present, all of
the descriptor set counts are collected into a single total which is
used to update the overlay each frame.

In order to see the cumulative total output for each object, the
following GN args must be enabled:
is_debug = true
angle_enable_perf_counter_output = true

To see the descriptor set allocation overlay:
ANGLE_OVERLAY=VulkanDescriptorSetAllocations

Bug: angleproject:5067
Test: Manual verification with angle_perftests
Change-Id: Ie45fda56ade3e68bfba7bf6da9554eb05a02c6b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2429487
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2020-10-28 03:18:17 +00:00
Jamie Madill 2f7fc0f371 Tests: Remove standalone duplication.
Also cleans up some compiler warnings that crept in because of how
we structured the test sources in GN. We also no longer need special
handling for the test "main" files.

Must land after http://crrev.com/c/2495003 rolls into ANGLE.

Bug: angleproject:5124
Change-Id: I43ff91b5c8f00214886cd8ac2403702e5026a840
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495281
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-24 01:10:28 +00:00
Jamie Madill c8542d28cb Temporarily duplicate standalone tests.
This switches 'angle_*_tests' to be identical to
'standalone_angle_*_tests'. Once rolled into Chromium we can
then switch back to using 'angle_*_tests' and finally remove
'standalone_angle_*_tests' entirely.

Must land after https://crrev.com/c/2490987

Bug: angleproject:5124
Change-Id: I1f4794d429733a43113dcba6aaaba0c047607e50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491932
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 12:16:10 +00:00
Yuke Liao 450209c394 Declare ozone_platform_gbm when angle doesn't have build
Otherwise, it causes build breakages to other projects that depend on
it, such as Skia project.

Bug: angleproject:5146
Change-Id: I09d8e175fa76fb098a0836c2542986609fae7757
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462721
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-09 18:42:34 +00:00
Yuke Liao 2d9d904ecb Roll Chromium manually from edbb6564c87b to a5a8696e5087 (458 revisions)
edbb6564c8..a5a8696e50

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

Changed dependencies
* build: 6186e428fc..854fdb73c8
* testing: 1c37217884..0fa2c0deee
* tools/clang: c5290b5af7..7e5979b1dd
* tools/mb: 5e26fff7a7..cc0ee19df9
No update to Clang.

Bug: angleproject:5038,angleproject:5124
Change-Id: Idcfbd8a5887c76b15d5a8aa424233eaef5de3a96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2457127
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-07 19:08:03 +00:00
Yuke Liao 8268309317 Rename ui/ozone/ozone.gni to build/config/ozone.gni
This CL depends on:
https://chromium-review.googlesource.com/c/chromium/src/+/2427423

Bug: chromium:1129223
Change-Id: I16d845772d13541153ee4775dbe6ba75f8485d7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447030
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-06 14:59:24 +00:00
Jamie Madill 19e9df68a7 Re-land "Add a small unit test that dumps system info."
Re-land fixes the GL APIs accidentally leaking into the test.

We can use this in the trace gold tests to identify system properties.
The test uses Vulkan info collection when available and dumps out the
known GPU info as JSON.

Bug: angleproject:4090
Bug: b/168049670
Change-Id: I1481fee14ed8c573f10164d74ec27701e1ad80ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433090
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-09-28 18:15:32 +00:00
Shahbaz Youssefi 88dd1a5995 Revert "Add a small unit test that dumps system info."
This reverts commit 52ee81cfdc.

Reason for revert: Causes build failure on Android (https://ci.chromium.org/b/8868097753228061152), and is blocking ANGLE roll (crrev.com/c/2433419)

Original change's description:
> Add a small unit test that dumps system info.
>
> We can use this in the trace gold tests to identify system properties.
> The test uses Vulkan info collection when available and dumps out the
> known GPU info as JSON.
>
> Bug: angleproject:4090
> Bug: b/168049670
> Change-Id: Ib8d2244d82b650b94818da30adab180b471af556
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>

TBR=cnorthrop@google.com,jmadill@chromium.org

Change-Id: I2b87c323c896be67aa9fbee2cad980927d551d7f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4090
Bug: b/168049670
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433089
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-26 18:21:36 +00:00
Jamie Madill 52ee81cfdc Add a small unit test that dumps system info.
We can use this in the trace gold tests to identify system properties.
The test uses Vulkan info collection when available and dumps out the
known GPU info as JSON.

Bug: angleproject:4090
Bug: b/168049670
Change-Id: Ib8d2244d82b650b94818da30adab180b471af556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-09-26 01:23:34 +00:00
Jamie Madill 2d74170f89 GN: Componentize GL back-end.
Bug: angleproject:3943
Change-Id: I88c2ec8a9f49746f6ce9838b0d1c8e8ea0a8ae9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405806
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-09-16 16:58:48 +00:00
Hidehiko Abe 90a9cf9619 Expand is_linux to is_linux || is_chromeos.
Currently is_linux is set to true on Chrome OS build,
but it is planned to set to false. This CL is the preparation
to keep the current behavior.

Bug: chromium:1110266
Test: Built locally. Tryjob.
Change-Id: I4124dfb251d68a519fed3e08555d1aa5a694c77c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404500
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-10 20:29:01 +00:00
Jamie Madill 35d3c4164e Generalize zlib utils dir for Skia build.
Bug: skia:7647
Change-Id: I3664355d183c1aec87ffd35ab23f594cdd1766c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-08-26 18:30:01 +00:00
Dirk Pranke 24c2f0e74e Set use_xvfb where needed in test wrappers.
The GN test() template now generates bin/run_ wrappers for
targets; this CL ensures that they'll properly declare when
the wrappers need to use Xvfb on Linux.

Bug: chromium:816629
Change-Id: I4f227eab3306f737f77bbe3341039d710184db96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2370337
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-08-23 22:01:40 +00:00
Etienne Bergeron 75b59e7dc4 Enable the use of chromium worker pool
This CL is a revert of:
  https://chromium-review.googlesource.com/c/chromium/src/+/2276245

The issue with CFI was fixed here:
  https://chromium-review.googlesource.com/c/chromium/src/+/2276245

Bug: chromium:1091259
Change-Id: I601112b106e63a96144191263ac6a867d77154d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2277099
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-07-07 16:32:55 +00:00
Dirk Pranke 465a912582 Remove old reference to run_gtest_angle_test.py.
We should've removed this in https://crrev.com/c/2280255; by
leaving it in, the chromium build still tries to include it
when building fuchsia packages, even though it isn't needed.

TBR=jmadill@chromium.org
Bug: angleproject:3162
Change-Id: I6314a88e276b4459534344d500345ccf5de2b649
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281553
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Dirk Pranke <dpranke@google.com>
2020-07-04 20:56:48 +00:00
Dirk Pranke a86c8547cb Add missing data deps to angle test executables.
Currently the Chromium build defines some wrapper test
targets for ANGLE (//chrome/test:angle_perftests
and //chrome/test:standalone_angle_unittests) that seem to
exist only to specify some extra data dependencies. By moving
those data dependencies into angle, this removes a couple of
targets in Chromium that are otherwise problematic for
my planned changes for crbug.com/816629.

Bug: chromium:816629
Change-Id: Ic0d50132f102f39749c92b062eec38a529db2c1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280255
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
2020-07-02 23:53:30 +00:00
Etienne Bergeron 2761f01d68 Disable the use of chromium worker threads
The use of worker thread is chromium is triggering CFI error.

This CL disables the use of chromium worker pool to avoid
blocking the roll-deps:
  https://chromium.googlesource.com/angle/
      angle.git/+log/1be395fe1250..a935c65a0488

The intend is to avoid the effects of the fix from that CL:
  https://chromium-review.googlesource.com/c/angle/angle/+/2262573
Instead of reverting the CL (with is an obvious mistake) we disable
the feature.

Bug: chromium:1091259
Change-Id: I4e473ec42be2a82e47e2e4c882f75ba33bcd9476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275730
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
2020-06-30 21:58:15 +00:00
Jamie Madill 4f2fb80b50 Tests: Add scripts/common.py to standalone data.
This file is needed by the bots to run as an isolated script.

Bug: angleproject:3162
Change-Id: I1bb87b3622613334b379896a3c124a6007676346
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275729
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-30 16:11:19 +00:00
Etienne Bergeron 9e83c15193 Active the delegate worker pool for chromium (3/3)
This CL is activating the delegate WorkerPool in Chromium.

Must land after:
  https://chromium-review.googlesource.com/c/angle/angle/+/2231708

Related CLs:
1) https://chromium-review.googlesource.com/c/angle/angle/+/2231708
2) https://chromium-review.googlesource.com/c/chromium/src/+/2231864
3) [this CL]

Bug: chromium:1091259
Change-Id: I62c7175fec2846fee014702d8561eeaf48ca93de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231710
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-06-17 18:22:21 +00:00
Jamie Madill e2d64532b8 Tests: Add missing Android build arg.
A certain config was hiding ANativeActivity_onCreate from the loader
which in turn was preventing the tests from running on Android.

Bug: angleproject:3162
Change-Id: Ia9f7b1042764b4ae5d347f603b7fec962ffce89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246305
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-16 01:48:17 +00:00
Jamie Madill 86a45a1aba Remove missing script from angle.gni test config.
Was from a subsequent CL. For some reason this was only picked up
on the ANGLE roll into Chrome.

Bug: angleproject:3162
Change-Id: I6c9d4ab3843bd5a58a6695b79648b57343689c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2236759
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-06-09 16:44:39 +00:00
Jamie Madill 8e2b4fefb6 Build both standalone and Chromium gTest targets.
This will let us pick the standalone test version when trying out
the new test runner.

GN-only change.

Bug: angleproject:3162
Change-Id: I08c75c7a38aaf63c5a25cc8623eb05615cc29abb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229068
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-06-08 19:40:06 +00:00
Jonah Ryan-Davis 3cb9c4bee9 Statically link vulkan-loader on Mac
Disable angle_shared_libvulkan on Mac since we are the only client.
Re-add codepaths to support this.

Bug: angleproject:4477
Change-Id: Ie128c83adaae741636541bbfd6105d160d874a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102954
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
2020-04-24 19:52:39 +00:00
Tobin Ehlis 12c0e765ee Add GN arg to extract native libs in APK
Added GN bool arg "angle_extract_native_libs."
When "false," which is the default, the native libs are zipped in the ANGLE
apk. When true, the libs will be extracted which is useful when capturing
flame graphs in order to see the ANGLE function names in your flamegraph.

Bug: angleproject:4304
Change-Id: I86c91e5028688142b1137b859c800f2243c124d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028524
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-01-29 23:40:07 +00:00
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
Jamie Madill 5407aaa089 Re-land "Add new test runner harness." (#2)
Re-land #2 changes:

 * export labels are fixed for the CFI build
 * crash test disabled because of flakiness and issues with asan

Re-land changes:

 * Unit test is suppressed in ASAN
 * --deqp-case is fixed
 * Debug layer errors should correctly work with failure expectations

Original message:

The ANGLE test harness is a harness around GoogleTest that provides
functionality similar to the Chromium test harness. It supports:

 * splitting a test set into shards
 * catching and reporting crashes and timeouts
 * outputting to the Chromium JSON test results format
 * multi-process execution

Unit tests are added in test_utils_unittest.cpp.

Bug: angleproject:3162
Bug: chromium:1030192
Change-Id: I71d66a407ea0e53d73cbe75b5b4bfb9e73791534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965091
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2019-12-16 23:52:35 +00:00
Jamie Madill 9190f49cff GN: Make new angle_test_utils target.
This source set target lets other targets import the test utils without
needing to export them. They get built into angle_util. They also get
compiled into the various tests and samples. The change also fixes
export issues.

Moves some of the GN logic into the util/ subfolder.

Bug: angleproject:3162
Bug: chromium:1030192
Change-Id: If99d201092ad8541c0de60b3bd893ac9b5875270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968259
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-12-16 22:35:05 +00:00
Tobin Ehlis 5fd73782c5 Vulkan: Use volk to load vk* func ptrs
Thanks to Jamie Madill for some fixes to get all CI test passing w/ volk.

This change updates all ANGLE targets that use Vulkan to dyanmically
link all of the VK entrypoints using the volk OSS library from
https://github.com/zeux/volk.

It's only two source files so baking them directly into ANGLE repo.
Also it's used in both the tests and libANGLE trees so added to
src/common/third_party/volk dir.

Updated volk and the renderer to track latest instance and device
that were loaded and renderer will refresh vk* function pointers if
the current and previous device and/or instance don't match. This
prevents errors in the test framework as we transition between
backends, especially between VK HW & SwiftShader ICDs.

This change rolls the Vulkan Loader forward to use the latest loader
version which no longer allows static linking but requires dynamic
linking.

Bug: angleproject:3740
Bug: angleproject:4092
Bug: angleproject:4162
Bug: angleproject:4210
Bug: angleproject:4225
Change-Id: I8a0b7d24c9545bbfdfaa4b9357a9bfe6793e0140
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965640
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-12-16 20:08:39 +00:00
Jamie Madill b92ec2443f Revert "Re-land "Add new test runner harness.""
This reverts commit e20560faf1.

Reason for revert: Now fails on Linux CFI and also is a bit flaky.

Original change's description:
> Re-land "Add new test runner harness."
> 
> Re-land changes:
> 
>  * Unit test is suppressed in ASAN
>  * --deqp-case is fixed
>  * Debug layer errors should correctly work with failure expectations
> 
> Original message:
> 
> The ANGLE test harness is a harness around GoogleTest that provides
> functionality similar to the Chromium test harness. It supports:
> 
>  * splitting a test set into shards
>  * catching and reporting crashes and timeouts
>  * outputting to the Chromium JSON test results format
>  * multi-process execution
> 
> Unit tests are added in test_utils_unittest.cpp.
> 
> Bug: angleproject:3162
> Change-Id: I841f2b5dfe51f7f44dac68324bdf6afd418b8bfb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948240
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

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

Change-Id: Ibfd65b8b18ead3a232abb6cb75fd6489b0ff5f38
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954570
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-12-06 15:09:04 +00:00
Jamie Madill e20560faf1 Re-land "Add new test runner harness."
Re-land changes:

 * Unit test is suppressed in ASAN
 * --deqp-case is fixed
 * Debug layer errors should correctly work with failure expectations

Original message:

The ANGLE test harness is a harness around GoogleTest that provides
functionality similar to the Chromium test harness. It supports:

 * splitting a test set into shards
 * catching and reporting crashes and timeouts
 * outputting to the Chromium JSON test results format
 * multi-process execution

Unit tests are added in test_utils_unittest.cpp.

Bug: angleproject:3162
Change-Id: I841f2b5dfe51f7f44dac68324bdf6afd418b8bfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948240
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-12-05 20:08:07 +00:00
Jamie Madill 8f31872c85 Revert "Add new test runner harness."
This reverts commit fb40d231c3.

Reason for revert: Has a bug with the ASan build and also has a few
bugs with ANGLE standalone test expectations an filter.

Bug: chromium:1030192
Bug: angleproject:4193

Original change's description:
> Add new test runner harness.
> 
> The ANGLE test harness is a harness around GoogleTest that provides
> functionality similar to the Chromium test harness. It supports:
> 
>  * splitting a test set into shards
>  * catching and reporting crashes and timeouts
>  * outputting to the Chromium JSON test results format
>  * multi-process execution
> 
> Unit tests are added in test_utils_unittest.cpp.
> 
> Bug: angleproject:3162
> Change-Id: Idb15f113de8eb32db12bc93542de93b08d7c1447
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1478016
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

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

Change-Id: I647e747571784b1ca7c1d0687193c70a63eb08d1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947456
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-12-03 18:35:07 +00:00
Jamie Madill fb40d231c3 Add new test runner harness.
The ANGLE test harness is a harness around GoogleTest that provides
functionality similar to the Chromium test harness. It supports:

 * splitting a test set into shards
 * catching and reporting crashes and timeouts
 * outputting to the Chromium JSON test results format
 * multi-process execution

Unit tests are added in test_utils_unittest.cpp.

Bug: angleproject:3162
Change-Id: Idb15f113de8eb32db12bc93542de93b08d7c1447
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1478016
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2019-12-02 23:01:53 +00:00
Jonah Ryan-Davis 5afd5ec6ad Vulkan support for MacOS (using SwiftShader)
Created a new WindowSurface/Display for MacOS/Vulkan, along with some
GN changes to get it working.

Bug: 1015454
Change-Id: I3f7a12f173795efe598856c702ce53b1e50831eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880163
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-11-28 17:41:50 +00:00
Shahbaz Youssefi b0a9de9512 Fix assert in angle_deqp_khr_gles* executables
The //build/config/gcc:symbol_visibility_hidden config was removed in an
attempt to improve stack traces on Linux. However, this resulted in the
in-class-inline-functions in glslang to be weak symbols.  The KHR dEQP
tests link against glslang as well as libGLESv2.so, resulting in
angle_deqp_khr_gles*_tests to link those weak symbols.  Due to glslang's
usage of a global variable in InitializeDll.cpp, a bug is created where
ANGLE sometimes calls into its own copy of glslang and sometimes the KHR
dEQP's version, with the two copies of the global variable being
inconsistent.

Bug: angleproject:4123
Change-Id: I0cfe3236117b1219db4fea4495e1583334c04fbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926887
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-11-21 16:29:30 +00:00
Ethan Lee d22b8be4b4 GN: Make X11 optional, based on a user-defined variable.
Not all Linux platforms will have X11 available (Wayland, GGP), so we have to
declare a variable that checks use_x11 separately.

Bug: angleproject:4116
Change-Id: I7e33956da6344b8db4d4e32dbbd1b42f58f7019c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919632
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-11-19 13:02:24 +00:00
Geoff Lang 6e687af264 Support standalone Android builds in ANGLE.
By disabling apk generation, we can build all of our targets in a
standalone ANGLE checkout on Linux.

This allows tools like gn desc to give us useful information about
Android builds.

BUG=angleproject:4026,angleproject:2344

Change-Id: Ic46348fd06c5174ce5e5a4d89ceb391246c6ac6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866080
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-11-14 14:54:36 +00:00