The backend was removed but the references were not.
Update ShaderBinaryTest to properly skip tests if shader binaries are
unsupported in the current ANGLE backend.
Forcibly re-enable building of the Vulkan backend on macOS to keep
ANGLE's SwiftShader backend working.
Fixed: angleproject:6081
Change-Id: I5e6e47d5fe05b0dd6ec150b6db9fe5d75e580173
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594582
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Move trace-related code from gni/angle.gni to
src/tests/angle_traces.gni
Rename template angle_trace_library to angle_trace_libs as the idea is
for it to build multiple libs.
Name outside-of-apk lib group ${target_name}__unpacked_libs which is
more consistent with how targets are usually named in gn, and makes the
dependency explicitly tied to template instantiation.
Bug: b/276474703
Change-Id: I316f2a549063b8ebae177f4ffc0d4a8de1942384
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508387
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Our trace list has gotten too large for a single APK (2GB).
To continue supporting compiled traces, we can now place the
libraries in the test application's home directory, which
is discoverable and executable without root.
To build and run with all traces, use `angle_trace_perf_tests`
as your build target, then use the local Android helper script:
$ autoninja -C out/<config> angle_trace_perf_tests
$ (cd out/<config>; ../../src/tests/run_angle_android_test.py \
angle_trace_tests --filter='*among_us' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10)
To continue using bundled libraries, specify your trace list in
GN args using `angle_restricted_traces` and use steps that
match other platforms:
$ autoninja -C out/<config> angle_trace_tests
$ out/Android/angle_trace_tests --gtest_filter='*among_us*' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10
Bug: b/276474703
Change-Id: I3829cf7016e21894eee8890e2b0d527e8214f04e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4420279
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Makes EAGL and CGL compilation exclusive to each other. Catalyst would
compile with both on ARM64, but only use EAGL.
Remove use of GLSL generation in MSL. Generating GLSL for MSL
compute and geometry shaders do not make sense.
Remove compilation of RewriteRowMajorMatrices for Metal.
It was removed from Metal in:
b23bf47c9e
Reland "Metal: rewrite default uniforms and uniform blocks"
Remove use of ANGLE_ENABLE_APPLE_WORKAROUNDS and gn variable
angle_enable_apple_translator_workarounds. The workarounds are just
unconditional business-as-usual implementation of ANGLE when ANGLE is
compile for PLATFORM_APPLE.
Fixed: angleproject:8129
Change-Id: I3af249708803fba816e2a7c92c35dddb84ce6946
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428875
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
New test step:
angle_restricted_trace_gold_interpreted_tests
similar to existing
angle_restricted_trace_gold_tests
but runs a subset of newest traces that have the right format.
Currently there are 8 of them and the filter is hard-coded in
test_suites.pyl. rise_of_empires can also be run interpreted but
happened to flake during testing so it's not included for now.
Trace cpp files are concatenated and gzipped
as a build step producing gen/tracegz_{trace}.gz
and these gz files are then distributed as part of the build
--trace-interpreter flag changes from boolean to string to support:
--trace-interpreter=gz:
* this uses the gz file above
* gold tests added in this CL use this option
--trace-interpreter=c:
* using uncompressed c/cpp file
* existing angle_trace_interpreter_tests runs a retrace
saving .c files and uses this option
Bug: b/276742336
Change-Id: I69544f25bda873af191978195d02ffbdd34363c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4424690
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
X11 was disabled on CastOS back when 'use_x11' was copied over from
Chrome. There have been changes in ozone and CastOS is now available on
ozone x11, so ANGLE should support it too. The GL backend was also left
out when is_castos is true.
This CL should be followed up by a cleanup CL for ANGLE's gni file so we
can avoid these mistakes. The follow-up CL should be verified as a
no-op.
Bug: chromium:1409689
Change-Id: I6111af41f2e46b8451f19653a6b77c12d277dbe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219253
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Use is_apple instead of is_mac to enable metal on iOS.
Some iOS simulator Metal tests needed to be added to the test
expectations as they fail on the Intel buildbot. These will to be
progressively fixed out of band.
Bug: chromium:1411704, angleproject:7994
Change-Id: I4df036d76f48d165da444f769607194dbe7d4957
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210649
Auto-Submit: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
* Added a memory tracker to the renderer object to keep track of the
memory allocations and deallocations in more detail.
* This feature is used for debugging only.
* To enable it, set angle_enable_memory_alloc_logging=true in GN args
(added in renderer/vulkan/BUILD).
* It is related to ANGLE_ENABLE_MEMORY_ALLOC_LOGGING in the code.
* The tracker are updated in the memory allocation tracking functions
if the feature is enabled. (The counter is always updated, even if
the feature is disabled.)
* At the end of a RendererVk object, it checks for and logs any
remaining allocated memory from MemoryAllocationType members.
* The data is stored in the map object "mMemoryAllocationTracker".
The key used for it is currently of type angle::BacktraceInfo.
* If angle_enable_unwind_backtrace_support is disabled, or not on
Android, the key is an empty object.
* MemoryAllocInfoMapKey is used as a key to access the allocation
information.
Bug: b/242641395
Change-Id: If701a4bdea2f8738a830ee47e0c7c5cdacf95b87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4050103
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
* Added getBacktraceInfo(), which returns the backtrace information
from the ANGLE code, including the addresses and the symbols if
possible
* Returns the data in an instance of the new class BacktraceInfo.
* In order to access this function, backtrace_utils.h has been
included in vk_utils.h
* New GN flag to make use of this feature:
* angle_enable_unwind_backtrace_support
* Current only available on Android (debug mode)
* If the flag is disabled, getBacktraceInfo() returns an empty
object.
* Added functions in util/ (per platform) to print the BacktraceInfo
data.
* Example of usage:
angle::printBacktraceInfo(angle::getBacktraceInfo());
* Minor edit: Moved cstdint from android_util.cpp to its header.
Bug: b/258475923
Change-Id: I6115462a1a2845d40c7cafc14ce52df09ecdcf34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3995843
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Uses a conditional gclient variable "angle_mesa". You must set
this to True in your .gclient to download and configure Mesa.
After that you must also set angle_build_mesa=true in your GN
args. We call through to meson in order to setup and build.
Mesa sources and targets are written into an auto-generated GNI
file. We must update this file on the same cadence as Mesa rolls.
Because the version of libdrm we use in our sysroot is older than
Mesa requires, this CL also includes a custom libdrm build. Also
in order to run bison and flex on the old sysroot that Chrome
infra runs with, this CL includes a new version of flex and bison
that run without newer versions of GLIBC.
Bug: angleproject:7689
Change-Id: I1aeeda1e6f3cf1d5f878aeab5209afa7e1fb5324
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933062
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This makes angle_perftests strictly for microbenchmarks.
The trace tests are a better separated target because they
are for both gold correctness tests and performance.
You can now use the GN arg "build_angle_trace_tests" to control
building the trace tests. "build_angle_trace_perf_tests" is
still supported for compatibility.
Updates the infra scripts to use this new trace tests target.
Also updates the build so by default we'll build the trace
tests if you check them out, without needing a custom arg.
Also updates docs.
Bug: angleproject:7755
Change-Id: I2b1ae67799234cc1aefe7cda5f3af945c3f867fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
This change disables the WGL frontend by default on
Windows when building ANGLE for desktop GL. This
is because the WGL frontend is not yet fully
implemented and it causes some of the trace tests to
fail. The WGL frontend should be enabled by default on
windows when more of its functionality gets implemented.
Test: angle_deqp_gl46_tests --use-angle=swiftshader
Bug: angleproject:7566
Bug: angleproject:7628
Change-Id: I69c695eb56d3858f715eeb86d28cc805e25c60eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858142
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
While the typical deployment of ChromeOS on physical hardware does
not use X11, the linux-chromeos-rel and linux-lacros-rel builders on
the Chromium CQ do. These builders compile a special version of
Chrome with all of the ChromeOS features (e.g. the system UI) that
runs on top of a generic Linux bot as a windowed application.
As a result, this special build of CrOS needs to interface with the
windowing system of the host Linux machine, which is X on the CQ
bots. These builds still have target_os=chromeos, so we need to
include is_chromeos to angle_use_x11 to get the right defines.
Unfortunately, this CL breaks the linux-chromeos bots as the X11
define makes ANGLE use VulkanXcbDisplay which in turn fails init as
SwANGLE does not support VK_KHR_xcb_surface. There's a Chromium CL
that fixes this by explicitly requesting the headless display. Thus,
we need to wait for that to land or else the Chromium CQ will break
on roll.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/3686625
Bug: b/233238923
Change-Id: Ifec50f68826aef2c3d732ae9dedabcd6d61f45a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3689809
Commit-Queue: Brian Ho <hob@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Add support for GBM platform by implementing a Display with no WSI
extension.
Re-land fixes build script, including GBM Vulkan backend whenever ozone
platform GBM is enabled.
Bug: angleproject:7217
Change-Id: Icbf2d034b700e22ab4c351e479f472d65d832ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3637562
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This allows clients (ie Skia) to build ANGLE without needing
all of the additional Vulkan dependencies. Developer builds
will continue to include both the direct and SPIRV paths, for
debugging purposes.
Bug: angleproject:7155
Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Macro ANGLE_TEST_ENABLE_RENDERDOC_CAPTURE was defined
only for files under src/libANGLE, however, we need to
use this Macro in filed under src/tests/. Move the Macro
config from BUILD.gn to src/tests/BUILD.gn.
Also add a new gn arg angle_enable_renderdoc
to control enable/disable the Macro.
Bug: angleproject:6072
Change-Id: I3879015e9bdfe2530012ea39729a31c47129ce4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Currently no timestamp is logged:
[I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd}
INFO:root:adb --version ...
Before switching to android_helper relative timestamps in seconds
were printed, set up by catapult. Timestamps proposed in this CL are
more consistent with outer logging but keep prefix short. Example:
[I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd}
I18:45:14.999999Z adb --version ...
Bug: angleproject:6854
Change-Id: I8ef7c9ae44eb5dba564a41456ce9417e3fe0f06c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Detect if angle or chromium checkout when adding deps paths,
so that random paths from above angle_root don't get added to
sys.path when imported from an angle checkout.
Bug: angleproject:6854
Change-Id: I4cd3334a2313d921f8651de7056f4f3798b8e072
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582978
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add the possibility to test both integrated and discrete GPU
with ANGLE tests. Previously it was using only discrete.
The binaries need the NSSupportsAutomaticGraphicsSwitching bundle
property.
This is needed to test ANGLE_power_preference.
Changes the behavior of test apps:
Previously,
./angle_end2end_tests
would use discrete GPU.
After,
./angle_end2end_tests
or
ANGLE_PREFERRED_DEVICE=intel ./angle_end2end_tests
will use integrated GPU.
ANGLE_PREFERRED_DEVICE=amd ./angle_end2end_tests
will use discrete GPU.
Bug: angleproject:7093
Change-Id: Ia64f6024e3215e69c2a1bde3ba4f67c3ca595476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516114
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>