|
ca959767
|
2025-04-15T22:28:04
|
|
Include IOKit.framework with `is_mac || angle_enable_cgl`
This includes IOKit.framework with `is_mac || angle_enable_cgl`
since it’s needed from SystemInfo_macos.mm which includes IOKit
and the file is included with `is_mac || angle_enable_cgl`.
It fixes the compilation error on tvOS.
Bug: b/391914246
Change-Id: I6fb8372d50ea16301f20f985cfa0d4835caec9e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6459200
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
23c1e11e
|
2025-04-01T11:27:02
|
|
Disable platform trace events by default, except Chromium build
Observed overhead in perf builds is too significant,
some workloads generate thousands of events per second.
There does not seem to be a simple way to get around the overhead - it
could be somewhat reduced but the event rate is just too high.
ANGLE_TRACE_EVENT*(...) etc become a no-op by default.
Can be re-enabled with angle_enable_platform_trace_events=true gn arg
Bug: angleproject:404542398
Change-Id: I8d7363ee28d22226f1860e24f2399bb4129cfb84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6419308
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Feels: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
19e45680
|
2025-03-18T12:50:52
|
|
Disable timestamp call from AddTraceEvent for Android platform
Android platform's addTraceEvent ignores the timestamp arg, so there is
no reason to make this call (and it shows as the hotspot).
Behind a new define to avoid breaking this in Chromium Android builds
where the timestamp is actually used.
Bug: angleproject:404542398
Change-Id: I0f5eea31feb6838c3e62949fcd2947145be4ebf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6368277
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
6c26ea15
|
2025-03-17T09:48:51
|
|
Roll Chromium from 561dfad17c04 to 995d777c7731 (623 revisions)
https://chromium.googlesource.com/chromium/src.git/+log/561dfad17c04..995d777c7731
Disables global constructor/destructor warnings when using GlobalMutex,
which started triggering after this Clang roll here:
https://chromium-review.googlesource.com/c/chromium/src/+/6354907
src/libANGLE/GlobalMutex.cpp:124:24:
error: declaration requires a global constructor
124 | void ANGLE_CONSTRUCTOR AllocateGlobalMutex()
src/libANGLE/GlobalMutex.cpp:132:23:
error: declaration requires a global destructor
132 | void ANGLE_DESTRUCTOR DeallocateGlobalMutex()
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 angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/aafbb3185f..1dc5fbff43
* buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/8550f0913b..7f1053216c
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/51cf51a3cd..35bdf40ed0
* third_party/android_build_tools/error_prone/cipd: PUFyo5eTRLBVraTti00zSIPJ9JJazDE9OU5e-mc6sicC..TKp0LDZjoG40SrElfQevGD9zDvVypBnRPWTzv8bnTw4C
* third_party/android_build_tools/lint/cipd: tsOuC8RTor7xvEQGKjf4UUWbOZ6CXLUAWTapMfyjtSIC..vhjMonh9XYLLHAk7HJJI88WCaEq0Wye3mcXRgZto0hgC
* third_party/android_build_tools/manifest_merger/cipd: XsYjBCg98jVV1y2tdwYTvXS_V_53hDdGBdsLsI_Cd-AC..pUhXoFF33hA0Ld7PAOJp2fl0HLa6foRELt7yy1i_L9oC
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/4d2793429f..828df14a60
* third_party/fuchsia-sdk/sdk: version:27.20250308.2.1..version:27.20250315.3.1
* third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/f752139824..14489e08b2
* third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/38d40010d1..dbe04005a2
* third_party/r8/cipd: FiKym6sa--ha6Yuxe-KJYyUo-CPERJJ5FYurwPkrvyoC..OB23bnkEllPjA4Mmlh2kdHOMJGV19SMZobx2U4KGuPIC
* third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/97cf54e65e..c980724668
* third_party/siso/cipd: git_revision:6b0b080aea4fa142b573795daa977e8751947452..git_revision:3a38836e06344016dce6092148a07a114807f9f0
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/d4d0079e13..c82c0e7bb5
* tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/168fff5a3e..b441f42f7e
* tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/d4b64d95f4..f26c92c0db
Clang version changed llvmorg-21-init-1655-g7b473dfe:llvmorg-21-init-5118-g52cd27e6
Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/d4d0079e135e52df927a2828f0085e4e90f0de2b..c82c0e7bb5b235463a52234216507466a49c1ba8/scripts/update.py
Bug: angleproject:42266550
Change-Id: I96c1952485944e119798eb0f3be4206c7ed321d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6360302
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5b343e8f
|
2025-03-11T11:35:08
|
|
Vulkan: Remove support for Stadia
Bug: angleproject:42262714
Change-Id: Icae5fe828fe4e0bcd287d297df1bc586708ef86e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6344390
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
cf9949b3
|
2025-01-06T22:15:51
|
|
Reland "build: Generate gn_logs.txt"
This reverts commit d75f4b83c50e1840305fc23f4e300b2f18e33f7c.
Reason for revert:
original CL broke ANGLE to Skipa auto roller:
https://chromium-swarm.appspot.com/task?id=6e1b4e2c7d2a2a10
ERROR at //third_party/externals/angle2/BUILD.gn:1852:3: Unable to load "/mnt/pd0/s/w/ir/skia/build/gn_logs.gni".
import("//build/gn_logs.gni")
^---------------------------
See //third_party/angle2/BUILD.gn:12:5: which caused the file to be included.
"//third_party/externals/angle2:libEGL",
^--------------------------------------
Fixed by adding guard '!build_with_chromium && angle_has_build'
Original change's description:
> Revert "build: Generate gn_logs.txt"
>
> This reverts commit 4abc704df420b7f3fb6dbe35c39c7f60cfdaac3a.
>
> Reason for revert: breaks ANGLE to Skia auto roller: https://skia-review.googlesource.com/c/skia/+/930206
>
> Original change's description:
> > build: Generate gn_logs.txt
> >
> > This is necessary to make Siso builds work for angle.
> > See https://crrev.com/c/6083212
> >
> > Bug: b/385244283
> > Fixed: b/385244283
> > Change-Id: I6bc6d82744106cce1c358f415e53ad842241b567
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108522
> > Commit-Queue: Roman Lavrov <romanl@google.com>
> > Auto-Submit: Junji Watanabe <jwata@google.com>
> > Reviewed-by: Roman Lavrov <romanl@google.com>
>
> Bug: b/385244283
> Change-Id: I4106d696c8f7b5db9fba1814b04c2c5c404e9413
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6125598
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: b/385244283
Change-Id: I28d47d176f48418a971e0460c0508dd28ae9fccf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6151225
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
|
|
d75f4b83
|
2024-12-26T11:21:04
|
|
Revert "build: Generate gn_logs.txt"
This reverts commit 4abc704df420b7f3fb6dbe35c39c7f60cfdaac3a.
Reason for revert: breaks ANGLE to Skia auto roller: https://skia-review.googlesource.com/c/skia/+/930206
Original change's description:
> build: Generate gn_logs.txt
>
> This is necessary to make Siso builds work for angle.
> See https://crrev.com/c/6083212
>
> Bug: b/385244283
> Fixed: b/385244283
> Change-Id: I6bc6d82744106cce1c358f415e53ad842241b567
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108522
> Commit-Queue: Roman Lavrov <romanl@google.com>
> Auto-Submit: Junji Watanabe <jwata@google.com>
> Reviewed-by: Roman Lavrov <romanl@google.com>
Bug: b/385244283
Change-Id: I4106d696c8f7b5db9fba1814b04c2c5c404e9413
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6125598
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
4abc704d
|
2024-12-20T13:23:33
|
|
build: Generate gn_logs.txt
This is necessary to make Siso builds work for angle.
See https://crrev.com/c/6083212
Bug: b/385244283
Fixed: b/385244283
Change-Id: I6bc6d82744106cce1c358f415e53ad842241b567
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108522
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
924ee1ba
|
2024-08-28T02:16:55
|
|
CL: Enable CTS over GTest interface
* Enables all CTS test suites excluding test_subgroups
* Creates one gtest-based executable per OpenCL CTS executable
Bug: angleproject:372722560
Change-Id: Iae96c2f12716b3c21d5035fbf6c9d838cb812025
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938948
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c0c541da
|
2024-10-28T11:54:26
|
|
Remove the gl+d3d-only build of the translator
This was done at a time where the spir-v generator used glslang and
added significant binary size.
Bug: chromium:371512561
Change-Id: I6cc733e51f8af555d20181a328b4fbeba6c053c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5971194
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
78f146e3
|
2024-10-14T00:00:00
|
|
Remove EAGL support
Fixed: angleproject:362530620
Change-Id: I6157655a7ad5b1e30c5d0a155d3ae3e8a81997e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938872
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2f644ed8
|
2024-10-16T00:00:00
|
|
Implement NULL translator output
Fixed: angleproject:373818287
Change-Id: If862e8e66a043ef968daea91d95717af97e3a0de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937827
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ee914a4
|
2024-03-04T06:54:29
|
|
CL: Add cl_image_format map autogeneration
* Added map JSON files containing CL image formats
* Updated ANGLE format table generator to include CL foramts
Tests-Passing: GN Build
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Bug: angleproject:42266936
Change-Id: I2967ea6d26f69223ffa3ca12d469c05a3844200f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798054
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
|
|
b16d105f
|
2024-10-03T10:25:32
|
|
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
45ea2094
|
2024-09-06T10:36:07
|
|
Don't build api_dump for secondary abi on Android
32-bit builds of VK_LAYER_LUNARG_api_dump are extremely slow so skip
them when building for arm64.
Bug: b/42267058
Change-Id: I8c2d959d86a58537dafa518fb58267b38cda21f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5842279
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
49a8d05c
|
2024-09-05T17:41:07
|
|
Tests: Add end2end test .so library to AOSP build
m[mm] external/angle:libangle_end2end_tests__library
produces libangle_end2end_tests__library.so
I tested that integration with Chromium wrappers works with some manual
patches; no integration is included in this CL.
googlest/gtest dependencies replaced with platform libgtest, libgmock
TestSuite heavily depends on rapidjson so it is currently excluded, only
the standard gtest implementation is included
(--gtest_list_tests, --gtest_filter, --gtest_output etc)
This also disables support for expectation files as it is piped through
TestSuite instance.
Bug: b/279980674
Change-Id: I35cb2328d74a3ac778e1d93bb4fe4ac044920b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5838526
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
9e8d632a
|
2024-08-27T11:26:42
|
|
Guard against find_bad_constructs on nacl (again)
ANGLE's BUILD.gn also referenced find_bad_constructs on nacl builds
without a guard. Confirmed locally that gn gen now works on nacl.
Bug: chromium:1410835
Change-Id: I1258b2841d5afa4421776ea0c412ff0e9bed135e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5815990
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
791970d4
|
2024-07-30T13:06:13
|
|
Fix Dawn Android standalone build.
The "compressed_symbols" target depends on "libfeature_support", which
is only built if (angle_standalone || build_with_chromium). Apply
those same constraints to "compressed_symbols".
Bug: b/356360483
Change-Id: I32be647b9594f52d1cc378a67276c7d32977653c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5750002
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
4c883359
|
2024-07-03T13:50:58
|
|
Add dma_buf build support to generate_android_bp
Minimized version of go/anglecl/5729843 that limits introduced changes.
Make generate_android_bp.py emit a `angle_android_dma_buf` Soong
config variable that, when enabled, creates a "Linux-like" build
using Android toolchain.
The build does not assume the presence of regular Android graphics
stack. eglGetDisplay defaults to creating DisplayVkOffscreen. This
enables EGL rendering context setup based on an externally allocated
DMA-BUF, using EGL_EXT_image_dma_buf_import and
GL_OES_EGL_image_external extensions.
See ag/28533701 to view the generated code.
Also, revert changes from "Add build flag for a "dma_buf" Android build"
(commit 4d2b365582669a04224d1e1fa3c92447c359a4ba).
The flag added there was submitted a bit prematurely, and as
go/anglecl/5729843 was deemed too complex a different approach was
necessary.
Test: CQ
Test: Build the entire CL chain with the new Soong config flag enabled
Test: run the system, attach debugger to eglGetDisplay(), see
Test: DisplayVkOffscreen getting instantiated
Bug: b/353262025
Change-Id: I974d91cff79a0bd8b5059a145f0ae6114b2bcbe5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746214
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Marcin Radomski <dextero@google.com>
|
|
b20cd34d
|
2024-07-18T10:03:17
|
|
Add build flag for a "dma_buf" Android build
Add angle_android_dma_buf gn flag, defaulting to false. When
enabled:
- Enables a "linux-like" build of ANGLE while using the Android
toolchain, by making the OS detection logic define PLATFORM_OS_POSIX
but not PLATFORM_OS_ANDROID.
- Makes ANGLE default to using Vulkan backend, and
- Enables DMA-BUF based external image support.
This allows setting up GL framebuffers backed by DMA-BUFs, enabling
rendering without full Android graphics stack. See the bug for details.
Bug: b/353262025
Test: treehugger
Test: Build the entire CL chain with the new Soong config flag enabled
Test: run the system, attach debugger to eglGetDisplay(), see
Test: DisplayVkOffscreen getting instantiated
Change-Id: I584f9491b188f730f4ee9630173cc486ae7e8908
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5729841
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
37b2487b
|
2024-05-03T09:55:04
|
|
Add LunarG api dump layer to ANGLE vulkan back-end
Bug: angleproject:8623
Change-Id: Ia4dbd5915c5fe918cd65e09b468e0b8d094522f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5601070
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e3cba40e
|
2024-04-30T17:47:36
|
|
gn: Add install target
Define an install_target GN template which installs include directories
and a predefined list of libraries to a given prefix. The template is
taking advantage of an install_target.py script which generates package
config files for every named target.
Bug: angleproject:8110
Change-Id: I6deb40fe9c54f11da7caf4fb5df59d3ce522df29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5553797
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Antonio Caggiano <quic_acaggian@quicinc.com>
|
|
d3d96a37
|
2024-05-24T14:43:12
|
|
Add 'angle_always_log_info' option
This allows outputting `INFO`-level logs and up, without having to
trudge through the mountain of output that gets enabled by
`angle_enable_trace`.
Bug: angleproject:343190307
Change-Id: I88d4f0b48951f1c7cbdda4fce8ce309a25f43e3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5569092
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
53cb3f48
|
2024-05-11T16:18:22
|
|
Fix non-WebGPU component build
Need to build abseil as a component, like it was before
https://chromium-review.googlesource.com/c/angle/angle/+/5371323
otherwise same symbols are defined in multiple ANGLE libs.
Bug: angleproject:8555
Change-Id: Ie7eacb682064e61bf3d5b24953c60e30d33814b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5527302
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c96435ed
|
2024-05-10T16:06:19
|
|
Use Chromium's abseil build files with Dawn.
Roll Dawn and set build_with_angle so that it uses chromium's abseil
buildfiles when building in an ANGLE checkout.
Bug: angleproject:8555
Change-Id: I8fc40fdefad734ef62bce374aa948367a42c03c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5531113
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c3a1cae4
|
2024-04-15T14:58:55
|
|
Use angle::SimpleMutex everywhere in libGLESv2
Only cases left that use std::mutex are:
- Share group and the context ErrorSet mutexes as they need try_lock()
- Anywhere mutexes are used in conjunction with std::condition_variables
(as they explicitly require std::mutex)
Bug: angleproject:8667
Change-Id: Ib6d68938b0886f9e7c43e023162557990ecfb300
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453294
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9d583bf
|
2024-04-15T00:24:47
|
|
Implement a lock/unlock-only mutex based on futex
Pthread mutexes are expensive due to their numerous features. When a
mutex only needs to support lock and unlock, its implementation can be
much simpler. The implementation in this change is "inspired" by a
similar mutex in mesa.
Expected uses of this mutex are:
- Allowing some OpenGL calls to avoid the share group lock and instead
lock the specific shared object they operate on.
- Replacing SpinLock in the OpenCL implementation (spin-lock in user
space is a bad idea [1])
- Generally anywhere we use std::mutex just to do lock/unlock
Tests based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
[1]:https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
Bug: angleproject:8667
Change-Id: I52278c9d19616338c499bbcef6684746caead6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446558
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
67fc293a
|
2024-04-05T13:25:12
|
|
WebGPU: Add shader translation and program linking stubs.
Add a TranslatorWGSL which outputs the same translated shaders every
time.
Implement the compile and link tasks.
Bug: angleproject:8662
Change-Id: I62bbd6c528e1d671d0f4becc38f15f1eceb0336c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5428807
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
f4ecbe6f
|
2024-03-14T13:31:20
|
|
Use Dawn's abseil build files when wgpu is enabled.
To avoid building abseil with multiple different build files, use
dawn's build files when it is available.
Also use dawn's build files for out-of-chromium component builds to
match dawn's conditions.
Bug: angleproject:8555
Change-Id: I10c1578630dafa14fdd118feb66790eb0bf27792
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5371323
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
afed1224
|
2024-03-04T16:17:37
|
|
CL: Add CTS build to ANGLE
* CTS Build is done automatically if angle_enable_vulkan and
angle_enable_cl flags are set along with angle_enable_cl_testing flag
* Updates ICD Loader source set to include ICD dispatch files
Bug: angleproject:8540
Change-Id: I6ccebb3279e0d2798703b3ec783ff54eabe57452
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5350744
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
21c0d31c
|
2024-01-25T15:33:48
|
|
OpenCL: Only build clspv for Vk backend
Helps reduce build overhead for only
building LLVM/clspv when needed.
Mainly for users just wanting CL passthrough
mode only.
Bug: angleproject:8548
Change-Id: I470f56a6282ccb5f5a54df5f61719301205c7e18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5237742
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
298abbc1
|
2024-02-16T08:50:43
|
|
Roll Chromium from 29bec8631d2f to 9d4a35b46e1e (1220 revisions)
Amend the roll with http://crrev.com/c/5301614 courtesy agrieve@.
https://chromium.googlesource.com/chromium/src.git/+log/29bec8631d2f..9d4a35b46e1e
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 angle-team@google.com,geofflang@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/2cece96e17..a11ae4664a
* buildtools/linux64: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* buildtools/mac: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* buildtools/win: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/c37870b5fd..5e8f58ef80
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d353dfb095..984707e65c
* third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f39e9d8c1a..ad0b8e7a0e
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/51589f432d..3d6c15240b
* third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a5a09d23fa..b1b1a43f07
* third_party/fuchsia-sdk/sdk: version:18.20240207.3.1..version:18.20240215.1.1
* third_party/r8: tp4vVuXzmyHJxDFlwxDb7RYZLLEufc3EnGTyOTCTNkgC..f7pPpoVTaC3WoBY5dURVrI-N1_4YZpSYipdiDUeWDAEC
* third_party/siso: git_revision:3cd0e6e55246b8eca6646e33b124e54e67fc5660..git_revision:4bede4f49669d3a8bdaa8dbd01620c3a07ae0c4e
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/894ad691c6..47756615f5
No update to Clang.
Bug: angleproject:6081, chromium:324916799
Change-Id: Ib097e6dca9374111632838beab4f0224ff6196fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5302166
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e8a3493f
|
2024-02-14T21:51:00
|
|
Initialize DisplayWgpu
This change adds basic initialize to DisplayWgpu as well as adding
APIs for DisplayGLX and DisplayWgpu. These APIs are necessary to ensure
DisplayWgpu doesn't pull in necessary X11 headers that break builds.
Bug: angleproject:8477
Change-Id: Icc6d9e7246a741def7a0337a296f9c1f9cec1415
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259979
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
d9665098
|
2024-02-12T13:53:32
|
|
Do not use hardcoded ".cr.so" extension for android component builds
This will enable me to remove the extension for component builds
Bug: chromium:324916799
Change-Id: I20bd8f93706d182fe6ebb3022240f81fec9de449
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5287577
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f431641a
|
2024-02-07T17:27:51
|
|
Revert "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp"
This reverts commit 8abbe2836bb49faba8a97e2df59058290e1c385a.
Reason for revert: https://chromium-review.googlesource.com/c/chromium/src/+/5274193
Original change's description:
> Vulkan: Get rid of X11 include in DisplayVkXcb.cpp
>
> Bug: angleproject:8520
> Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:8520
Change-Id: I91bdd48d8893cbe3a6eed8058c0034a4ef1aed0a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5276987
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Solti Ho <solti@google.com>
|
|
8abbe283
|
2024-02-06T14:44:39
|
|
Vulkan: Get rid of X11 include in DisplayVkXcb.cpp
Bug: angleproject:8520
Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a70b6f56
|
2024-01-26T20:37:07
|
|
Add support for WinUI3/Windows App SDK
Adds the necessary build args and code changes to
support building ANGLE for WinUI 3 (aka Windows
App SDK).
To reduce the set of changes, and because it is
functionally the same, a Windows App SDK build is
basically a UWP build, but with an extra define so
that the code can make a few changes to the
namespaces and includes used.
The main changes to the code are:
- ICoreWindow is no longer used
- Dispatcher has a few changes in naming and args
- ISwapChainPanel is now in a different namespace
Bug: angleproject:8490
Change-Id: Ibb298e3e86e8298dac12c2019eac7996a8185c51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230637
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c6d827e4
|
2024-01-25T13:00:46
|
|
Disable the Context shared lock on Android for Chrome.
Bug: angleproject:7537
Change-Id: I2409185058edfefb4b9a4160a0bf6475b77606b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5236723
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8e267846
|
2023-12-08T14:10:25
|
|
gn: Enable clspv build on angle_enable_cl
Bug: angleproject:8369
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Change-Id: I3cdea8508a38462981988f6954524c77aa2c97ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230325
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ac71a592
|
2024-01-23T11:56:42
|
|
Vulkan: updates to pipeline cache graph dumping logic
1. To dump pipeline cache graph you need to -
1. add "angle_dump_pipeline_cache_graph" compile time flag to
args.gn
2. set Android property "angle.dump_pipeline_cache_graph" or envvar
ANGLE_DUMP_PIPELINE_CACHE_GRAPH on non-Android platforms before
app start
2. Default path for dump on Android is "/data/local/tmp/angle_dumps/"
3. "angle.pipeline_cache_graph_dump_path" Android property or
envvar ANGLE_PIPELINE_CACHE_GRAPH_DUMP_PATH on non-Android
platforms can be used to configure the dump path
Bug: angleproject:6565
Change-Id: I38848aff58f413dd7bdffc9083116bd4b95e4960
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5226054
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
f2c00e8c
|
2024-01-18T18:36:33
|
|
Adding Dawn stub backend to ANGLE
Bug: angleproject:8473
Change-Id: I81ea83986e4e566169aa82250b5cfb727985ed01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5201413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b356c39
|
2023-08-17T10:49:19
|
|
Vulkan: Drop support for VMA 2.0
Since ANGLE and Chromium were last updated to use VMA 3.0, there have
been no breaking issues so far.
* ANGLE update: https://crrev.com/c/4777337
* Chromium update: https://crrev.com/c/4911597
Therefore, the support for the old VMA (2.3) can now be removed.
* Removed ANGLE_VMA_VERSION from the build files, since they are
no longer required.
* Removed the VMA-related guards in the code as well.
* Removed the flags and thresholds for the buddy algorithm, which were
used in VMA 2.3.
* Share group buffer pools is no longer a map.
Bug: b/303290680
Change-Id: Ic2b29e8f95ca5c941b297b20442c5bad4b8f52e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4791667
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3de9237e
|
2023-11-27T08:55:26
|
|
Disable recursive global lock with Chromium
Bug: chromium:983167
Change-Id: I7eb1c993a2ffa4127ec207f160c12e4c94c6b2e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5061830
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
db38707a
|
2023-10-19T18:08:51
|
|
Metal: Compile mtllib at build time.
Reworks gen_mtl_internal_shaders.py to only generate the combined metal
source file, mtl_internal_shaders_autogen.metal.
metallibs are now compiled at build time using gn actions.
This allows the Chrome and WebKit build process to use the same code
for loading the builtin shaders even though they compile them in
different ways.
We now only build the mtllib for the OS we're currently building for.
Bug: chromium:1385510
Change-Id: Ie3b4f66c48a7e0eccd5fe664f988e407f452795c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4583134
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4b724130
|
2023-06-27T18:08:27
|
|
Rename SharedContexMutex into ContexMutex
Follow up after:
Replace (Single/Shared)ContextMutex classed with ContextMutex
Renamed build option:
angle_enable_shared_context_mutex -> angle_enable_context_mutex
Renamed because there is no more SharedContexMutex class and
ContextMutex is now used for both Shared and not Shared Contexts.
Bug: angleproject:8226
Change-Id: I68eea84aa59441d9c5b19870910b2bb499311e08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4650350
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
d2a6b2a0
|
2023-08-04T14:15:11
|
|
Use offscreen DisplayVk on ChromeOS
Currently, we always use DisplayVkHeadless on ChromeOS which can
fail if the drivers do not support VK_EXT_headless_surface (like on
Intel). At the end of the day, CrOS never really uses Vulkan WSI, so
it shouldn't need a WSI extension anyways.
This CL introduces a simple DisplayVkOffscreen that requires no WSI.
We then configure CrOS to use this new DisplayVk.
Bug: b/292249282
Change-Id: I1fcbb48d187eb656c6e03bc7ac7b15ac8ad0a4ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4752416
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d61a50c1
|
2023-07-31T15:09:08
|
|
Add "angle_enable_context_mutex_recursion" build option
Option is for Android Vulkan.
Fixes the recursion problem:
#00 pc 000000000004d69c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
#01 pc 0000000000051e84 /apex/com.android.runtime/lib64/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+144) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
#02 pc 00000000000b41b4 /apex/com.android.runtime/lib64/bionic/libc.so (NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*)+236) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
#03 pc 00000000003d8274 /vendor/lib64/egl/libGLESv2_angle.so (std::__Cr::mutex::lock()+12) (BuildId: 203fee8f1cfe9c18)
#04 pc 0000000000336494 /vendor/lib64/egl/libGLESv2_angle.so (egl::SharedContextMutex<std::__Cr::mutex>::doLock()+132) (BuildId: 203fee8f1cfe9c18)
#05 pc 000000000033668c /vendor/lib64/egl/libGLESv2_angle.so (egl::SharedContextMutex<std::__Cr::mutex>::lock()+124) (BuildId: 203fee8f1cfe9c18)
#06 pc 00000000001d6e08 /vendor/lib64/egl/libGLESv2_angle.so (EGL_ClientWaitSyncKHR+100) (BuildId: 203fee8f1cfe9c18)
#07 pc 00000000000674f0 /system/lib64/libEGL.so (android::eglClientWaitSyncKHRImpl(void*, void*, int, unsigned long)+112) (BuildId: c4698b8b366f6519dbd7bd3a5f6239f2)
#08 pc 0000000000086648 /system/lib64/libgui.so (android::BufferQueueProducer::dequeueBuffer(int*, android::sp<android::Fence>*, unsigned int, unsigned int, int, unsigned long, unsigned long*, android::FrameEventHistoryDelta*)+3240) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
#09 pc 00000000000e24fc /system/lib64/libgui.so (android::Surface::dequeueBuffer(ANativeWindowBuffer**, int*)+392) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
#10 pc 0000000000755770 /system/lib64/libhwui.so (android::uirenderer::renderthread::ReliableSurface::hook_dequeueBuffer(ANativeWindow*, int (*)(ANativeWindow*, ANativeWindowBuffer**, int*), void*, ANativeWindowBuffer**, int*)+80) (BuildId: 0ab7d7584ac800860c4d180557441d1b)
#11 pc 00000000000e0b48 /system/lib64/libgui.so (android::Surface::hook_dequeueBuffer(ANativeWindow*, ANativeWindowBuffer**, int*)+92) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
#12 pc 000000000002cc8c /system/lib64/libvulkan.so (vulkan::driver::AcquireNextImageKHR(VkDevice_T*, VkSwapchainKHR_T*, unsigned long, VkSemaphore_T*, VkFence_T*, unsigned int*)+280) (BuildId: 0c72f8685858f73fbb13fd68d401bba5)
#13 pc 0000000000266f08 /vendor/lib64/egl/libGLESv2_angle.so (rx::(anonymous namespace)::TryAcquireNextImageUnlocked(VkDevice_T*, VkSwapchainKHR_T*, rx::impl::ImageAcquireOperation*)+128) (BuildId: 203fee8f1cfe9c18)
#14 pc 000000000026495c /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::acquireNextSwapchainImage(rx::vk::Context*)+140) (BuildId: 203fee8f1cfe9c18)
#15 pc 0000000000265800 /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::doDeferredAcquireNextImageWithUsableSwapchain(gl::Context const*)+148) (BuildId: 203fee8f1cfe9c18)
#16 pc 0000000000267bb4 /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::getBufferAge(gl::Context const*, int*)+196) (BuildId: 203fee8f1cfe9c18)
#17 pc 000000000034143c /vendor/lib64/egl/libGLESv2_angle.so (egl::Surface::getBufferAge(gl::Context const*, int*)+36) (BuildId: 203fee8f1cfe9c18)
#18 pc 000000000036c354 /vendor/lib64/egl/libGLESv2_angle.so (egl::QuerySurfaceAttrib(egl::Display const*, gl::Context const*, egl::Surface*, int, int*)+812) (BuildId: 203fee8f1cfe9c18)
#19 pc 00000000001d1674 /vendor/lib64/egl/libGLESv2_angle.so (egl::QuerySurface(egl::Thread*, egl::Display*, egl::SurfaceID, int, int*)+176) (BuildId: 203fee8f1cfe9c18)
#20 pc 00000000001d3658 /vendor/lib64/egl/libGLESv2_angle.so (EGL_QuerySurface+200) (BuildId: 203fee8f1cfe9c18)
Happens only on platforms that use "EGL_KHR_fence_sync" instead of
"EGL_ANDROID_native_fence_sync" for synchronization. Happens only on
specific Surface types, that using `EGLConsumer`/`GLConsumer`, such as
`SurfaceTexture`.
The Android's "testDrawingHardwareBitmapNotLeaking" test may be used for
testing the issue. Note: in order to reproduce, `SingleContextMutex`
must not be used by context. The "Fix ExternalImageTarget EGLImage race"
CL will achieve that.
To check what extension is used, call:
adb shell "dumpsys SurfaceFlinger | grep 'Sync configuration'"
Possible results:
Sync configuration: [using: EGL_KHR_fence_sync EGL_KHR_wait_sync]
Sync configuration: [using: EGL_ANDROID_native_fence_sync EGL_KHR_wait_sync]
Bug: angleproject:4354
Change-Id: I915a2c026b59af0a2098ae6b3300f773b29cbfbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4733831
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fe08eee8
|
2023-07-12T18:03:30
|
|
Fix Angle creating its own worker pool.
The WorkerPool was created on the first postTask and could create
a number of threads. We were seeing this on blink for iOS where
we would have expected using the delegate's worker pool. However
ANGLE_ENABLED was undefined because it wasn't included. This
caused the comparison of ANGLE_DELEGATE_WORKERS to not work.
Instead of including the header for ANGLE_ENABLED since that would
cause a dependency on libAngle, just use #if X instead, while
this also isn't the best because X can be undefined its a solution
for now.
Bug: angleproject:8256
Change-Id: I5aeb686dcc117feaba884cdea5c89e4b146cb57f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4679894
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9b63700b
|
2023-07-11T10:25:40
|
|
Translator: Reorganize files
This change makes the translator files more organized by:
- Grouping files that are specific to a certain output under their own
directory,
- Moving transformations under tree_ops
- Removing Direct from metal translation now that that SPIR-V Cross path
is removed
Bug: angleproject:6394
Change-Id: Iaf5bb8d5604b84748dece029821b1f77b2813967
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678780
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5869fb3b
|
2023-07-06T22:13:36
|
|
Remove big-GL files from normal builds of ANGLE
Bug: angleproject:7533
Change-Id: I3616296d9923310200830a921190813e3ecfe80b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4672146
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
36c3e0f5
|
2023-01-17T17:42:59
|
|
Implement "Shared Context Mutex" functionality.
Existing implementation uses single `GlobalMutex` for
- EGL calls
- GL calls for Contexts with concurrent access.
This CL introduces abstract `egl::ContextMutex` with two
implementations:
- SingleContextMutex;
- SharedContextMutex<Mutex>;
Note:
`std::mutex` is used in this commit. It is very easy to change mutex
type either at compile-time or at run-time (single type per Display).
When Context:
- is not Shared;
- does not use `EGLImage`s;
- does not use EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE
- does not use EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE
then it will be using `SingleContextMutex` with minimal overhead.
Before such Context is used as `shareContext` or uses `EGLImage`
its mutex replaced by `SharedContextMutex<Mutex>`.
The `GlobalMutex` is only used for EGL calls, while `egl::ContextMutex`
implementations for GL calls. Because some EGL calls use Context,
explicit `egl::ContextMutex` lock is required. This is implemented by
generating "egl_context_mutex_autogen.h" header, and insertion of
`ANGLE_EGL_SCOPED_CONTEXT_LOCK()` macro before `ANGLE_EGL_VALIDATE()`
in each EGL entry point. Implementation in "egl_context_lock_impl.h"
returns lock for required APIs. Special cases of `egl::ContextMutex`
lock handled separately. `std::unique_lock<>` is not used for
performance reasons.
`egl::ContextMutex` explicitly locked when capturing EGL calls.
Fixes EGLImage problem:
https://chromium.googlesource.com/angle/angle/+/e18240d136d15e5cdfa4fa4a6355ca21c8d807b6
Mark contexts as shared when importing EGL images.
Details:
- EGLImage inherits Context's mutex when created.
Mutex is used when the EGLImage accessed or destroyed.
- When EGLImage is used in Context with other `egl::ContextMutex`,
two mutexes are merged into one.
- After the mutex merge, Context Groups will remain separate,
but will not be able to run in parallel.
Fixes race when checking `context->isShared()` in the
`SCOPED_SHARE_CONTEXT_LOCK()` macro. One Context may start executing GL
call while not "Shared", but become "Shared" inside the call. New
(second) "Shared" Context may immediately start using GL and potentially
corrupt some "Shared" state.
Possible performance benefit: allows parallel execution in some cases,
when single `GlobalMutex` would block.
Important note:
Process of replacing the `SingleContextMutex` by
`SharedContextMutex<Mutex>` is not 100% safe. This mean that
original Context may still be using `SingleContextMutex` after
activating `SharedContextMutex<Mutex>`. However, this was always
the case before introduction of this CL. Old `Context::mShared`
member update was not synchronized in any way at all. In other
words, this solution does not 100% fix the original problem.
For 100% safe solution `SingleContextMutex` should not be used
(always pass `SharedContextMutex<Mutex>` to the `gl::Context`
constructor). See `lockAndActivateSharedContextMutex()` for more
details.
CL adds new build option:
angle_enable_shared_context_mutex = true
Behavior with other build options:
- When:
`angle_enable_shared_context_mutex` is disabled or
`angle_enable_share_context_lock` is disabled or
`angle_force_context_check_every_call` is enabled,
Contexts will always have `SingleContextMutex`, however it will be
only used in special cases. `SCOPED_SHARE_CONTEXT_LOCK()` will use
`GlobalMutex` when applicable.
- Otherwise, `SCOPED_SHARE_CONTEXT_LOCK()` will use `egl::ContextMutex`.
Some GFXBench "1080p Driver Overhead 2 Offscreen" performance numbers.
Tested on S906B (Samsung Galaxy S22+) on old ANGLE base:
https://chromium.googlesource.com/angle/angle/+/807c94ea85e046c6f279d081d99f0fb1bcf1191a
Capture/Replay: Adjust tests do adhere to capture limits
Each test result is an average frame number from 6 runs.
SingleContextMutex 6579 ( +0.13%)
(old) GetContextLock() (mShared is false) 6570
Forced `mShared = true` or NOT using `SingleContextMutex`.
SharedContextMutex<std::mutex> FORCE 5061 (-22.97%)
(old) GetContextLock() FORCE 4766 (-27.46%)
Bug: angleproject:6957
Bug: chromium:1336126
Change-Id: Idcd919f9d4bf482b9ae489bd8b4415ec96048e32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374545
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
16841d62
|
2023-01-31T11:51:41
|
|
Reland "Remove SPIRV_METAL references from .gn and tests"
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>
|
|
c37d74a5
|
2023-06-06T17:07:15
|
|
Revert "Remove SPIRV_METAL references from .gn and tests"
This reverts commit f7badd3faa8b1b04538ac7b6db833e1398b13498.
Reason for revert: disables SwiftShader fallback on Mac
Original change's description:
> Remove SPIRV_METAL references from .gn and tests
>
> 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.
>
> Fixed: angleproject:6081
> Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Change-Id: Id41035017830d8b36b29bc4497919c6b01fc3f35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595018
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
f7badd3f
|
2023-01-31T11:51:41
|
|
Remove SPIRV_METAL references from .gn and tests
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.
Fixed: angleproject:6081
Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
46c92a0a
|
2023-05-16T11:14:44
|
|
Reland: Don't export ANGLE platform methods.
These functions are loaded through eglGetProcAddress. We don't need
to export these extra symbols and increase our binary size.
Temporarily still export them on Android. The Android platform loads
them using dlsym [0] to detect if a driver is ANGLE or not.
[0]
https://cs.android.com/android/platform/superproject/+/master:frameworks/native/opengl/libs/EGL/egl_angle_platform.cpp;l=143;drc=3d0d3e99c0335b94fa41fafce6d0fb3fedb07f75
Bug: chromium:1445969, b/283233503
Change-Id: I3ddf02f3c881f94b3ee4779776479e41465f036d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4576544
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c6cd91e4
|
2023-05-26T13:23:33
|
|
Disable global share context lock for non-Android build
Bug: chromium:1446878
Change-Id: I32d77053f5f41c947ed841d1b738245c626ea1f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4570963
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
|
|
a764d079
|
2023-05-17T10:38:57
|
|
Enable global share context lock for chrome
Chrome only uses share contexts in GPU main thread, however chrome
use EGLImage to share texture cross share group between threads.
ANGLE will hold the global lock for EGL Image related APIs,
however some gl calls will need to access EGLImage as well. for
example: glDeleteTextures() glDeleteFramebuffers() will release
resources which are associated with EGLImage.
Bug: chromium:1444690,chromium:1444167,chromium:1394379
Change-Id: Icff5d13fb94f3576b59085ead90f72de4a2482a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4542990
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8b97c8d3
|
2023-03-31T15:54:40
|
|
Implement build option for load-time GlobalMutex allocation.
Performance difference on S906B for 1000'000 `eglGetError()` calls.
Before: 26.5 ms
After: 23.8 ms
(Assuming `angle::FastMutex2` is used).
Potentially can be enabled for other platforms.
Bug: angleproject:8101
Change-Id: Ic2037edaae6da82dbded71288bae250d7981e7d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386408
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b22124bd
|
2023-01-17T17:44:06
|
|
Implement new "Global Mutex" functionality.
This CL improves performance compared to the existing code as well as
allows using non-std mutex implementations. Also acts as a base for
future changes.
CL adds new build option:
angle_enable_global_mutex_recursion = is_android && angle_enable_vulkan
"mutex_recursion" work same way as `std::recursive_mutex` before. It
will help in situations when Vulkan API may return back to the ANGLE.
For example: RenderDoc layer EGL deadlock.
Automatic loading of "libVkLayer_GLES_RenderDoc.so" layer causes
deadlock in EGL.
Recursion stack:
#01 pc 000000000029ea80 /vendor/lib64/egl/libGLESv2_angle.so (egl::GlobalMutexHelper::lock(int)+596)
#02 pc 000000000029c59c /vendor/lib64/egl/libGLESv2_angle.so (EGL_GetError+32)
#04 pc 0000000000062368 /system/lib64/libEGL.so (eglQueryString+20)
#05 pc 0000000000508fec /data/local/debug/vulkan/libVkLayer_GLES_RenderDoc.so
#20 pc 0000000000016690 /system/lib64/libvulkan.so (vulkan::api::EnumerateInstanceLayerProperties(unsigned int*, VkLayerProperties*)+40)
#21 pc 00000000005aa030 /vendor/lib64/egl/libGLESv2_angle.so (rx::RendererVk::initialize(rx::DisplayVk*, egl::Display*, char const*, char const*)+292)
#26 pc 000000000029c7e8 /vendor/lib64/egl/libGLESv2_angle.so (EGL_Initialize+192)
Additionally, recursive mutex will partially solve Android
SurfaceTexture deadlock (angleproject:4354).
Some performance numbers for 1000'000 `eglGetError()` calls.
Mutex Time (ms.)
Android S906B
egl::GetGlobalMutex()(std::recursive_mutex) 41.4
(Default) GlobalMutex (std::recursive_mutex) 39.1
(Recursive) GlobalMutex (std::mutex) 34.9
(Debug) GlobalMutex (std::mutex) 34.7
(Default) GlobalMutex (std::mutex) 34.4
Windows
egl::GetGlobalMutex()(std::recursive_mutex) 20.5
(Default) GlobalMutex (std::recursive_mutex) 20.0
(Recursive) GlobalMutex (std::mutex) 21.9
(Debug) GlobalMutex (std::mutex) 20.5
(Default) GlobalMutex (std::mutex) 19.9
Note: Recursive GlobalMutex enabled only for Android Vulkan by default.
Original fix:
https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Bug: angleproject:8101
Bug: angleproject:4354
Test: angle_unittests --gtest_filter=GlobalMutexTest.*
Change-Id: I9e9d9b5c598ad1177ffa147ea690bd955946a712
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401940
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
20b6624a
|
2023-04-17T13:55:09
|
|
Metal: Support compiling on iOS without EAGL
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:
b23bf47c9e999532a684beab9ac901552420b0b8
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>
|
|
aa97369f
|
2023-02-23T18:40:16
|
|
Use C++20 for MSVC builds as well
Build only ANGLE libraries on MSVC,
as there are many failures in tests,
which are beyond our scope to fix.
Bug: chromium:1380553
Change-Id: I7142730bfa1fc847630ff8115709e435aecf487a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4286569
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8875ba4e
|
2023-02-24T22:40:22
|
|
Rename WebSwapCGLLayer to ANGLESwapCGLLayer outside WebKit.
WebKit doesn't use gn or ninja, so these changes will not affect it.
Verified locally that this silences the warning in the bug.
Fixed: angleproject:7123
Change-Id: Iff28c0f5b9274543ee7724e023461d31c8ad4aa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4292705
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a3af3645
|
2023-02-22T14:18:24
|
|
Copy d3dcompiler_47.dll on ARM64 Windows builds
Previously d3dcompiler_47.dll was not copied because this DLL is an
inbox component on ARM64 Windows. However the inbox is not necessarily
updated frequently enough, so we should copy (and ship) this DLL
on ARM64 Windows as well as on other Windows architectures.
Bug: chromium:1416385, chromium:1406077
Change-Id: I463f215012c2b48f11c8f40e104c22622afa6b2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4285717
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
79b0d80b
|
2023-02-14T14:29:59
|
|
Remove d3dcompiler_old.dll references
d3dcompiler_old.dll was retained for compatibility with Windows 7 but
can now be removed. It will be missing from future toolchain packages
and we no longer need code to handle it.
This also updates a doc page to change python to python3.
Bug: chromium:1416385, chromium:1385856
Change-Id: I80c9b6dec887bc403f6fe3dac4007acb1f164ea6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251620
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
|
|
dd8021d9
|
2023-01-17T16:16:17
|
|
Added "git worktree" support into "commit_id.py".
Bug: angleproject:7984
Change-Id: I097f2c0c310680ceaa7797916fd9a4cbbb1d17d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194176
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1d9b8d80
|
2023-01-24T16:50:32
|
|
Reland "Add support for glShaderBinary"
This is a reland of commit 228973e73135924ddf6116e0b63eff5a1ccbf232
with the following fixes -
1. Apply patch from Yuly to fix chromium build errors
2. Fix ShaderBinaryTest instantiation call
3. Add ShaderBinaryTest to expectations file for IOS
Original change's description:
> Add support for glShaderBinary
>
> This patch adds the following -
> 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
> 2. Compiler support to generate shader binaries.
> 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
> Vulkan translator.
> 4. Support to load GL_SHADER_BINARY_ANGLE binaries.
> 5. end2end tests for glShaderBinary.
>
> Tests: ShaderBinaryTest*
> Bug: angleproject:7833
> Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:7833
Change-Id: I21135c52e2bae955342a99aff5631ba0e687eff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195852
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0c9cbf39
|
2023-01-26T12:07:51
|
|
Revert "Add support for glShaderBinary"
This reverts commit 228973e73135924ddf6116e0b63eff5a1ccbf232.
Reason for revert: breaks compile on ANGLE into Chromium roll
https://cr-buildbucket.appspot.com/build/8790942326644064097
https://cr-buildbucket.appspot.com/build/8790942759045412865
https://cr-buildbucket.appspot.com/build/8790942417069789217
Leaks detected on ASAN
https://cr-buildbucket.appspot.com/build/8790946657703508337
Original change's description:
> Add support for glShaderBinary
>
> This patch adds the following -
> 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
> 2. Compiler support to generate shader binaries.
> 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
> Vulkan translator.
> 4. Support to load GL_SHADER_BINARY_ANGLE binaries.
> 5. end2end tests for glShaderBinary.
>
> Tests: ShaderBinaryTest*
> Bug: angleproject:7833
> Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:7833
Change-Id: Ice19576acbc1351810ff0cd769ac17ad6c0abdf3
No-Try: true
No-Presubmit: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4197375
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
228973e7
|
2023-01-24T16:50:32
|
|
Add support for glShaderBinary
This patch adds the following -
1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
2. Compiler support to generate shader binaries.
3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
Vulkan translator.
4. Support to load GL_SHADER_BINARY_ANGLE binaries.
5. end2end tests for glShaderBinary.
Tests: ShaderBinaryTest*
Bug: angleproject:7833
Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3d95483f
|
2023-01-17T12:18:50
|
|
Remove deprecated use_system_libwayland
Instead, check if wayland gn shall be used by checking whether
wayland_gn_dir is set or not.
Bug: chromium:1385736
Change-Id: Ie589e55e02a66cb06bd115d65ce96c84de9e9ad8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169946
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
82826be0
|
2023-01-06T11:20:14
|
|
Reland "Make ANGLE program version only dependent on data that matters"
This is a reland of commit 61728827d2e5ecce685578bc54bb2c744b65fc9a
Changes made on top of previous commit
1. In src/program_serialize_data_version.py,
fix the script error on Windows: anglebug.com/7918.
2. In BUILD.gn, replace the 'write_file' with
'response_file_content'. See
https://gn.googlesource.com/gn/+/main/docs/reference.md#var_response_file_contents
3. In scripts/generate_android.bp.py, add code to
handle the special GN build flag {{response_file_name}}.
The code writes the list defined in srcs
(identified by $(in) in Android blueprint) into a
temp file named 'gn_response_file', and replaces the
{{response_file_name}} with 'gn_response_file'.
Original change's description
> Changes made on top of original commit
> 1. Enable execution permission on python script
> program_serialize_data_version.py
> 2. Remove unused list in libGLESv2.gni
> 3. In angle/BUILD.gn, change file path from
> "relative to angle_root", to "relative to root_build_dir",
> so that inside the script program_serialize_data_version.py,
> we don't have to find the absolute path of the code files for
> hashing.
> Original change's description
> > This change introduces a new variable ANGLE_PROGRAM_VERSION
> > to track the version of ANGLE source files that affect shader
> > program serialization/deserialization. This change include more
> > source files than necessary, to serve the purpose of a conservative
> > jumping off point. We will narrow down the list of files for
> > ANGLE_PROGRAM_VERSION hash generation in the future.
> > Add a new script program_serialize_data_version.py that will
> > be triggered during the build when the related source files changed.
> > The script will generate a hash and the hash size from the related
> > source files. In program serialization/deserialization and cache
> > key generation, we will use this hash value instead of the entire
> > ANGLE git hash. When the hash value changed, we know that the
> > related source files changed, and we should invalidate the program
> > cache and re-generate the blob cache / program binary.
> > Bug: angleproject:4981
> > Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Cody Northrop <cnorthrop@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> Bug: angleproject:4981
> Change-Id: Iaa9eb0ab33439197bc30d03064fc245ea7ef1ea8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113445
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:4981
Change-Id: Ib5bba199be6d08a1e19807026df0e7b747dbc8a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4144078
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b073570c
|
2023-01-10T15:11:50
|
|
Fix iOS build
Libraries were missing from app bundle after crrev.com/c/4067806,
because iOS build bundles only "deps" but not "data_deps".
Bug: angleproject:7885, b/263888630
Change-Id: I88ec5c6a6449c560efc626d6390e032666c58a50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152530
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4b95929
|
2023-01-05T19:59:07
|
|
Revert "Reland "Make ANGLE program version only dependent on data that matters""
This reverts commit 61728827d2e5ecce685578bc54bb2c744b65fc9a.
Reason for revert: it breaks aosp build: https://android-review.git.corp.google.com/c/platform/external/angle/+/2374971. Build error: `FileNotFoundError: [Errno 2] No such file or directory: 'angle_code_affecting_program_serialize'`
Original change's description:
> Reland "Make ANGLE program version only dependent on data that matters"
>
> This is a reland of commit c303758fbc8d23266be578fae246e5687656b4c6
>
> Changes made on top of original commit
> 1. Enable execution permission on python script
> program_serialize_data_version.py
> 2. Remove unused list in libGLESv2.gni
> 3. In angle/BUILD.gn, change file path from
> "relative to angle_root", to "relative to root_build_dir",
> so that inside the script program_serialize_data_version.py,
> we don't have to find the absolute path of the code files for
> hashing.
>
> Original change's description
>
> > This change introduces a new variable ANGLE_PROGRAM_VERSION
> > to track the version of ANGLE source files that affect shader
> > program serialization/deserialization. This change include more
> > source files than necessary, to serve the purpose of a conservative
> > jumping off point. We will narrow down the list of files for
> > ANGLE_PROGRAM_VERSION hash generation in the future.
>
> > Add a new script program_serialize_data_version.py that will
> > be triggered during the build when the related source files changed.
> > The script will generate a hash and the hash size from the related
> > source files. In program serialization/deserialization and cache
> > key generation, we will use this hash value instead of the entire
> > ANGLE git hash. When the hash value changed, we know that the
> > related source files changed, and we should invalidate the program
> > cache and re-generate the blob cache / program binary.
>
> > Bug: angleproject:4981
> > Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Cody Northrop <cnorthrop@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Yuxin Hu <yuxinhu@google.com>
>
> Bug: angleproject:4981
> Change-Id: Iaa9eb0ab33439197bc30d03064fc245ea7ef1ea8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113445
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:4981
Change-Id: If7d3779c8f40dafa9a9c057f669ab53d0494526e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4140138
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
61728827
|
2022-12-14T15:29:15
|
|
Reland "Make ANGLE program version only dependent on data that matters"
This is a reland of commit c303758fbc8d23266be578fae246e5687656b4c6
Changes made on top of original commit
1. Enable execution permission on python script
program_serialize_data_version.py
2. Remove unused list in libGLESv2.gni
3. In angle/BUILD.gn, change file path from
"relative to angle_root", to "relative to root_build_dir",
so that inside the script program_serialize_data_version.py,
we don't have to find the absolute path of the code files for
hashing.
Original change's description
> This change introduces a new variable ANGLE_PROGRAM_VERSION
> to track the version of ANGLE source files that affect shader
> program serialization/deserialization. This change include more
> source files than necessary, to serve the purpose of a conservative
> jumping off point. We will narrow down the list of files for
> ANGLE_PROGRAM_VERSION hash generation in the future.
> Add a new script program_serialize_data_version.py that will
> be triggered during the build when the related source files changed.
> The script will generate a hash and the hash size from the related
> source files. In program serialization/deserialization and cache
> key generation, we will use this hash value instead of the entire
> ANGLE git hash. When the hash value changed, we know that the
> related source files changed, and we should invalidate the program
> cache and re-generate the blob cache / program binary.
> Bug: angleproject:4981
> Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:4981
Change-Id: Iaa9eb0ab33439197bc30d03064fc245ea7ef1ea8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113445
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
cc34aa73
|
2022-12-19T14:03:27
|
|
Move BinaryStream to common and expose ShaderState to compiler
This is a refactor change in preparation for adding support for
glShaderBinary.
Move BinaryStream to common so that it is accessible by both libANGLE
and the Compiler.
Extract members that hold the result of compilation from ShaderState
and move into new CompiledShaderState struct.
Move helper functions & classes relevant to ShaderVar serialization to
the CompiledShaderState header.
Tests: EGLBlobCacheTest*
Bug: angleproject:7833
Change-Id: I7ec575247eccb3afbc6ab6bfa24d36e69d4576f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4080998
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
9ded03b4
|
2022-12-20T07:09:36
|
|
Revert "Vulkan: Make available GLInternalFormatToGbmFourCCFormat"
This reverts commit 402e7f7a634b1170d0feae52a44168731a7489f9.
Reason for revert: Chromium android-binary-size build failed.
Original change's description:
> Vulkan: Make available GLInternalFormatToGbmFourCCFormat
>
> GLInternalFormatToGbmFourCCFormat() is not available on Linux
> because of the guard with the wrong definition, ANGLE_USES_GBM.
> This also fixes build errors that were occurred after enabling.
>
> Bug: angleproject:7829
> Change-Id: If7c7543270cc127945149927be0fc3ffdd49163b
> Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4022963
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7901
Bug: angleproject:7829
Change-Id: I256d51f78ff0d3ced9920c3ea1d2bfceba43a1ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113577
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b20abb57
|
2022-12-20T07:09:12
|
|
Revert "Fix defines redifintion in angle_common."
This reverts commit 9fb8ff63e1593dc5553d8f3015ff2d7420c8140d.
Reason for revert: Chromium android-binary-size build failed.
Original change's description:
> Fix defines redifintion in angle_common.
>
> Breaks in android rolls where we have both
> angle_expose_non_conformant_extensions_and_versions
> and
> angle_enable_vulkan
>
> Bug: angleproject:7829
> Change-Id: Iaa163b34e01a31a6872f1158064f685ca6fec958
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4111968
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Commit-Queue: Roman Lavrov <romanl@google.com>
Bug: angleproject:7901
Bug: angleproject:7829
Change-Id: Ic431a61403b57d195ace3cc07df756a277f6efdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113576
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
7466be3c
|
2022-12-20T07:07:58
|
|
Revert "Fix link error with dma_buf_util_sources"
This reverts commit e265b318d9fb987b81ca6d3c7cbaf50049f133a1.
Reason for revert: Chromium android-binary-size build failed.
Original change's description:
> Fix link error with dma_buf_util_sources
>
> Currently, dma_buf_util_sources is only accessible
> from the vulkan backend. Fixed this because gl backend
> also uses this.
>
> Bug: angleproject:7829
> Change-Id: I1bd71c191d1a8ae633083d1626d41c58fb6d269b
> Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113745
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:7901
Bug: angleproject:7829
Change-Id: Ib48ffb0be876c5fe342d578fde1ee63d90e3b132
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113575
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e265b318
|
2022-12-19T00:19:59
|
|
Fix link error with dma_buf_util_sources
Currently, dma_buf_util_sources is only accessible
from the vulkan backend. Fixed this because gl backend
also uses this.
Bug: angleproject:7829
Change-Id: I1bd71c191d1a8ae633083d1626d41c58fb6d269b
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113745
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
9fb8ff63
|
2022-12-16T16:25:05
|
|
Fix defines redifintion in angle_common.
Breaks in android rolls where we have both
angle_expose_non_conformant_extensions_and_versions
and
angle_enable_vulkan
Bug: angleproject:7829
Change-Id: Iaa163b34e01a31a6872f1158064f685ca6fec958
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4111968
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
25ce2e23
|
2022-12-16T18:16:32
|
|
Revert "Make ANGLE program version only dependent on data that matters"
This reverts commit c303758fbc8d23266be578fae246e5687656b4c6.
Reason for revert: This is causing the Android roller fail: https://crrev.com/c/4072215/comments/6918d7f6_8100d66b?tab=comments
Original change's description:
> Make ANGLE program version only dependent on data that matters
>
> This change introduces a new variable ANGLE_PROGRAM_VERSION
> to track the version of ANGLE source files that affect shader
> program serialization/deserialization. This change include more
> source files than necessary, to serve the purpose of a conservative
> jumping off point. We will narrow down the list of files for
> ANGLE_PROGRAM_VERSION hash generation in the future.
>
> Add a new script program_serialize_data_version.py that will
> be triggered during the build when the related source files changed.
> The script will generate a hash and the hash size from the related
> source files. In program serialization/deserialization and cache
> key generation, we will use this hash value instead of the entire
> ANGLE git hash. When the hash value changed, we know that the
> related source files changed, and we should invalidate the program
> cache and re-generate the blob cache / program binary.
>
> Bug: angleproject:4981
> Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:4981
Change-Id: Ib235d85c79ed54110696ac5413571934890fdc98
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4114274
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
402e7f7a
|
2022-11-11T15:51:55
|
|
Vulkan: Make available GLInternalFormatToGbmFourCCFormat
GLInternalFormatToGbmFourCCFormat() is not available on Linux
because of the guard with the wrong definition, ANGLE_USES_GBM.
This also fixes build errors that were occurred after enabling.
Bug: angleproject:7829
Change-Id: If7c7543270cc127945149927be0fc3ffdd49163b
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4022963
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c303758f
|
2022-12-14T15:29:15
|
|
Make ANGLE program version only dependent on data that matters
This change introduces a new variable ANGLE_PROGRAM_VERSION
to track the version of ANGLE source files that affect shader
program serialization/deserialization. This change include more
source files than necessary, to serve the purpose of a conservative
jumping off point. We will narrow down the list of files for
ANGLE_PROGRAM_VERSION hash generation in the future.
Add a new script program_serialize_data_version.py that will
be triggered during the build when the related source files changed.
The script will generate a hash and the hash size from the related
source files. In program serialization/deserialization and cache
key generation, we will use this hash value instead of the entire
ANGLE git hash. When the hash value changed, we know that the
related source files changed, and we should invalidate the program
cache and re-generate the blob cache / program binary.
Bug: angleproject:4981
Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
40c17b58
|
2022-12-13T15:35:23
|
|
Vulkan: Move SPIR-V transform to vulkan/
No longer used by metal/.
Bug: angleproject:7220
Change-Id: Idb3a6369fefbcf87e7993daa652c8702ec53c20f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4104002
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
69d9f077
|
2022-12-13T15:10:36
|
|
Metal: Remove references to ShaderInterfaceVariableInfoMap
Bug: angleproject:7220
Change-Id: Ib78daa77779258aa450067d891c6af4ee4877446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4104000
Reviewed-by: Gregg Tavares <gman@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2031e215
|
2022-12-02T15:30:54
|
|
Fixes for Vulkan secondaries build.
Includes the defined name of the alternate library in every
build, so that platforms without Vulkan still have access to
the library name define.
Also fixes checks for the ANGLE driver in the tests to work
with the new secondaries enum. This will let developers run
trace tests with the vulkan secondaries library.
Bug: angleproject:6811
Change-Id: If3846d68e532238f0b1c1c506638867a23fb4357
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4076513
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aaee3c23
|
2022-11-30T14:24:13
|
|
Build and test ANGLE with Vulkan secondary CBs.
This will allow us to run tests with both permutations of
ANGLE (custom secondaries & Vulkan secondaries) in the same
build directory. It will also allow us to run these configs
as tests on our infra. This CL adds a few simple test to CI.
Bug: angleproject:6811
Change-Id: I053f8cc5bafc2a7ab7d0665da9301f0ba7f8417f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4067806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c991eb22
|
2022-12-01T14:05:07
|
|
Move the anglebase folder up a level
This code originates from Chromium's base/ directory so it doesn't have
to be under a third-party folder.
Bug: b/260093525
Change-Id: I0bf6950095c685f36c5c237093980a64cf6e74f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068339
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
022b52f5
|
2022-11-30T14:58:01
|
|
Include xxhash.h from a relative location
Previously it was always included from src/common/third_party/xxhash/
This change makes it easier to use an externally provided copy of
xxhash.
Bug: b/260093525
Change-Id: I27c375c58ac3776a15d5d68483c235ece235b059
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4066278
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f62405c5
|
2022-10-31T18:47:52
|
|
Add utilities to get the Android backtrace
* 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>
|
|
78e28cb8
|
2022-11-03T11:05:48
|
|
Vulkan: Remove glslang fallback
ANGLE's SPIR-V generator is battle tested by now.
Bug: angleproject:6210
Change-Id: I2ed88642e3ede435e3f906fbd701133be6873fb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4002868
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a9868110
|
2022-09-15T17:29:04
|
|
Add support for testing with Mesa + Zink.
To run a trace test with zink, use --use-gl=zink.
Bug: angleproject:7689
Change-Id: I70073756f903db1c224fe6175d55be4cad637aca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899382
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
41184c21
|
2022-09-29T10:50:39
|
|
Add support for building Mesa + Zink.
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>
|
|
81a244de
|
2022-10-10T15:32:25
|
|
Adding a class to perform ASTC texture decompression on the CPU
This significantly improves performance by caching and re-using the ASTC
decoder context, and using multi-threaded decompression.
This code was originally written for gfxstream.
Bug: b/250688943
Change-Id: I1727447907f2e25cf9b854ffcc9ccfc04db2fb91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929008
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d25911de
|
2022-10-10T20:59:53
|
|
Capture/Replay: Move trace fixture into util/
This will allow us to cleanly import the fixture headers
outside of libANGLE. We'll need to call into the trace fixture
in the trace interpreter, which will be in util/.
Bug: angleproject:7752
Change-Id: I3438989db8482924272c69e78d7ac5702e510648
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963363
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4bfb749f
|
2022-10-10T20:59:48
|
|
Capture/Replay: Move shared trace code into src/common.
This will let them be accessible to the test harnesses. The
trace tests interpreter will need direct access to the classes
that we move in this CL.
This CL also moves the GLenum utils into the common folder,
where they were already used by some other tests.
Bug: angleproject:7752
Change-Id: I97ad607938ef29bc316f6d40098478e002ea8128
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963362
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fbd7d5fa
|
2022-10-17T17:20:09
|
|
Move thread pool classes to common/
In preparation for access by image_util files.
Bug: b/250688943
Change-Id: I24777269a5071eae9a60f939635d01ed7246461f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e495e7fd
|
2022-10-14T13:52:47
|
|
Redo perf and trace test parameters.
- Moves common argument parsing code into test_util.
- Changes the perf test arg parsing to use the common functions.
- Adds new --use-angle and --use-gl parameters to the trace tests.
- Also adds new --offscreen and --vsync parameters to the traces.
- Removes the now unneeded --enable-all-trace-tests argument.
- Both --arg=value and --arg value work in test suites now.
Now, instead of using --enable-all-trace-tests you can specify the
backend with --use-angle=swiftshader, --offscreen, or combinations
of those parameters. The test names are the same as they were
before, but only the configured tests will run in a session. We
could opt to simplify the test names in later CLs if we want to
simplify the test running. Ideally we'd keep the perf reporting
the same because then we'd keep the time series the same on the
test infra.
This also allows us to split up the trace tests into separate
targets on the bots, which will better allow us to control the
workloads and sampling of the tests. For example:
- angle_perftests becomes
- angle_perftests (microbenchmarks)
- angle_trace_perf_vulkan_tests (traces with vulkan back-end)
- angle_trace_perf_native_tests (traces with system GL)
Bug: angleproject:7755
Change-Id: I537168f3a6de96425dfda05ed98220eff9b19b76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956937
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
36424efd
|
2022-09-27T12:02:54
|
|
Don't set configs empty in angle_gpu_info_util
Added in https://crrev.com/c/3915081, seemingly unintentionally:
angle_static_library defaults to angle_common_configs, not empty list
Spotted accidentally due to diffs in an Android roll:
https://screenshot.googleplex.com/8WrA4wu3NZeTyYZ
Bug: chromium:1340081
Change-Id: If379e5ce449dd6bb43f778a3b0a963ed20d67eff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922776
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
28aadf46
|
2022-09-26T09:20:49
|
|
Fix CFI problem in SystemInfo_vulkan.cpp
SystemInfo_vulkan.cpp gets and call vulkan functions
with pointers. It cause test failures with Linux CFI
bot. Fix the problem, by disabling cfi checking for
it.
Bug: chromium:1340081
Change-Id: Ife04cd2002d77324a665393b6a05cdd5193284bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|