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

190 Коммитов

Автор SHA1 Сообщение Дата
Maksim Sisov fa2e374974 Reland "rename use_x11 to ozone_platform_x11"
This is a reland of 86f2854579

X11 shouldn't be enable for is_chromecast cases as
the original use_x11 gn arg is only enabled on linux && !chromecast.

Original change's description:
> rename use_x11 to ozone_platform_x11
>
> Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is
> deprecated. During the transition period use_x11 == ozone_platform_x11.
>
> Bug: chromium:1096425
> Change-Id: Ia691ce249bc49040956bed033891799127a57bbc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

Bug: chromium:1096425
Change-Id: I6f8dbacb756ce57ca7379bbd991ca1ff470c244d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3263987
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
2021-11-09 06:35:56 +00:00
Sylvain Defresne 30afc25e1f [ios] Remove support for building with Xcode clang
Chromium //build will soon remove the `use_xcode_clang` variable.
Remove it from Angle to avoid breakage when the variable is gone.

Bug: chromium:1266466
Change-Id: I3f95ffe611cc38c9de76e9744186efff3332d539
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259713
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-04 19:57:28 +00:00
Sergey Ulanov 290d21eb96 Enable SwiftShader on Fuchsia
SwiftShader is currently used on Fuchsia test bots. Enable SwiftShader
in Angle on Fuchsia.

Bug: chromium:1225002
Change-Id: I42beac94692d16987ce3bdf80abd629540a1b31f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-21 19:07:12 +00:00
Jamie Madill 58b47b1908 GN: Disable SwiftShader by default with MSVC.
This was broken as fallout from http://crrev.com/c/3189512 and is
currently breaking the Chromium -> ANGLE roll. Instead of trying
to fix the warnings, disable compiling SwiftShader with MSVC.

Bug: angleproject:6572
Change-Id: I041a4366b348b77f8213802495dd88c4050a714c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226720
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-10-15 15:36:14 +00:00
Shahbaz Youssefi f3d5dac3ba Vulkan: SPIR-V Gen: Drop dependency to glslang
The SPIR-V gen path is now made default.  Compilation through glslang is
still supported for debugging, and is enabled on the GLSL* end2end tests
for smoke testing.  On release builds, glslang is not supported.

To test with glslang, add the following gn arg (only necessary if dcheck
is disabled):

    angle_enable_spirv_gen_through_glslang = true

Then enable the generateSPIRVThroughGlslang feature.  This can be done
by setting an environment variable:

    ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests

Binary size saving:

- 1.3MB on Linux (SPIR-V gen itself: 240KB)
- 730KB on Android (SPIR-V gen itself: 140KB)

Perf tests:

- LinkProgramBenchmark.Run/vulkan_compile_single_thread
  * Through glslang:
      truncated mean: 1287033.36
  * Direct SPIR-V Gen:
      truncated mean: 244495.91  (~80% reduction)

- LinkProgramBenchmark.Run/vulkan_compile_multi_thread
  * Through glslang:
      truncated mean: 4565894.83
  * Direct SPIR-V Gen:
      truncated mean: 1158164.10  (~75% reduction)

Bug: angleproject:4889
Bug: angleproject:6210
Change-Id: I486342702977c8114e90073b97183aba115a8b2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-10-14 04:43:32 +00:00
Jamie Madill b930b9d32e Capture/Replay: Remove redundant "capture" from label
old: trex_200_capture_context1_frame001.cpp
new: trex_200_context1_frame001.cpp

The 'capture' word wasn't really adding any useful information.
Take it out so the filenames are a bit shorter.

Bug: angleproject:5133
Change-Id: Ibd7d47df2aa1f24a641c5d5b2a6dd14d6ce240e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149370
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-09-30 14:27:14 +00:00
Jamie Madill afe0dd9edf Revert "rename use_x11 to ozone_platform_x11"
This reverts commit 86f2854579.

Reason for revert: Suspected for breaking the ANGLE roll:
https://crrev.com/c/3171455

Original change's description:
> rename use_x11 to ozone_platform_x11
>
> Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is
> deprecated. During the transition period use_x11 == ozone_platform_x11.
>
> Bug: chromium:1096425
> Change-Id: Ia691ce249bc49040956bed033891799127a57bbc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

Bug: chromium:1096425
Change-Id: Ifa0a2f5f1323704d7e9d308210efb26c9987b5cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181561
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-09-24 13:15:30 +00:00
Maksim Sisov 86f2854579 rename use_x11 to ozone_platform_x11
Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is
deprecated. During the transition period use_x11 == ozone_platform_x11.

Bug: chromium:1096425
Change-Id: Ia691ce249bc49040956bed033891799127a57bbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2021-09-20 17:44:38 +00:00
Jamie Madill 1a3b17dacd Capture/Replay: Fix GN build when JSON not available.
This change makes it so we no longer build frame capture when JSON
is not available. In Skia's build this is the case. Also updates
the GN scripts to use a new variable 'angle_has_frame_capture'.

Bug: angleproject:5133
Bug: angleproject:6374
Change-Id: I30290a160f6ebe6419f371e36d304a61bf0a85ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152557
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-09-10 00:19:23 +00:00
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