|
cd4b8adb
|
2024-08-20T00:00:00
|
|
Remove obsolete macOS availability macros
MTLDevice.registryID
* macOS 10.13 (min deploy 10.15)
kCGLRPRegistryIDLow, kCGLRPRegistryIDHigh
* macOS 10.13 (min deploy 10.15)
Bug: angleproject:360147119
Change-Id: Ife691a844b73abf0fb877578ad2c29e77cc70397
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5814951
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
b512e42d
|
2024-08-20T15:12:19
|
|
Reland: Metal: Fix availability for kIOMainPortDefault
Remove ad hoc deprecation disables for
kIOMasterPortDefault.
macCatalyst kIOMainPortDefault available 15.0,
less than minimum 15.6. Remove the ifdefs.
Reland: Guard macOS specific unittests with compile guards.
The patch changes the tested function to be macOS only.
Bug: angleproject:360147118
Change-Id: Icbcc811a066995e742825a364fc5f0b5a27a59bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816832
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
36f7e03a
|
2024-08-21T13:49:10
|
|
Revert "Metal: Fix availability for kIOMainPortDefault"
This reverts commit a712626e940cbd3ff6f279a6e838362392a3fd1d.
Reason for revert: breaks iOS
https://chromium-review.googlesource.com/c/chromium/src/+/5802272
https://ci.chromium.org/ui/p/chromium/builders/try/ios-simulator/2048194/overview
Original change's description:
> Metal: Fix availability for kIOMainPortDefault
>
> Remove ad hoc deprecation disables for
> kIOMasterPortDefault.
> macCatalyst kIOMainPortDefault available 15.0,
> less than minimum 15.6. Remove the ifdefs.
>
> Bug: angleproject:360147118
> Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:360147118
Change-Id: Iab3e8d1dece4866732ecbebab4c83f274b99e034
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803985
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
a712626e
|
2024-08-20T15:12:19
|
|
Metal: Fix availability for kIOMainPortDefault
Remove ad hoc deprecation disables for
kIOMasterPortDefault.
macCatalyst kIOMainPortDefault available 15.0,
less than minimum 15.6. Remove the ifdefs.
Bug: angleproject:360147118
Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
78dd9a8e
|
2024-08-16T15:44:49
|
|
Metal: Support compiling without OpenGL on macOS
Avoid OpenGL framework use unless CGL is enabled. It was used in active
GPU resolution for older macOSes.
Bug: angleproject:360159407
Change-Id: I6d820ea37290d5e75151db0b42dc266910bcba6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5793512
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
e62bd70a
|
2024-01-29T14:18:07
|
|
Metal: Disable Metal on older Mac models with GPU family 1.
Skip the creation of the default Metal device entirely on macs that
would not pass the GPU family checks.
Bug: chromium:1322521
Change-Id: I7bdc3631125a0535370328b0e1bcba347cbbd5d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5245647
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a2fceac2
|
2023-04-17T12:55:34
|
|
Prefer Metal over CGL for querying device registry IDs.
This avoids loading the OpenGL framework when it will not be used.
The Metal framework is already loaded unconditionally.
Bug: chromium:1433697
Change-Id: I171f842f2245d974eb6798880a7fbaf336edecfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4434709
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
be9fcaa9
|
2023-04-17T11:28:53
|
|
Avoid calling GetGpuIDFromDisplayID in Mac GPU info collection.
To detect the currently active GPU, CGLQueryRendererInfo is used.
Calling any CGL function loads the system's OpenGL driver even
when we don't intend on using OpenGL for rendering.
Confirmed that the OpenGL framework is not loaded when Chrome is run
with Metal on a single-GPU system.
Bug: chromium:1433697
Change-Id: I824e7663948169123ad8c87d6b3867616233c329
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428302
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c19b66f6
|
2023-04-06T11:30:03
|
|
EAGL: Define ANGLE_ENABLE_EAGL in build system
ANGLE_ENABLE_EAGL is a "build system" decision.
Set this and new variable ANGLE_ENABLE_CGL in BUILD.gn file. This is
consistent with the other backends.
Remove ANGLE_CPU_ARM64. This was used to do ANGLE_ENABLE_EAGL=TRUE
when on Catalyst. Instead, let the build system set this.
For ANGLE/Chrome buildsystem, this is not set, as Catalyst is not
implemented. For WebKit, this should be set at WebKit build settings.
Replace
`defined(ANGLE_PLATFORM_MACCATALYST) && defined(ANGLE_CPU_ARM64)`
with simpler expression: `defined(ANGLE_ENABLE_EAGL)`.
Replace `defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_IOS)`
with simpler expression: `defined(ANGLE_PLATFORM_APPLE)`.
Bug: angleproject:8121
Change-Id: I3a0bbabb4347ad11f693e3f7c336ff12f66203d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404160
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a4341e04
|
2023-04-06T11:05:07
|
|
CGL: Remove the impl preprocessor guards
Adhere to the project formatting:
- Remove #if preprocessor guards from the CGL implementation.
- Order the includes as in style guide
- Use include / import consistently
- Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL
- Remove or add platform.h include based on whether the file
itself actually the platform.h defined macros
Simplifies the nested preprocessor macros. Makes it simpler
to further fix the preprocessor use.
WebKit should instead have a non-ANGLE .mm file #importing
the implementations with the proper include guards.
Moves macOS specific APIs from SystemInfo.h to SystemInfo_internal.h,
since common/platform.h is not available for Chrome clients of
SystemInfo.h
Bug: angleproject:8121
Change-Id: Iaef0d6948fbcef6d1c2e7877477d25ccc259cc2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404159
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
6c469cdf
|
2022-09-09T12:12:09
|
|
Properly Create C++ string objects
"" is an empty C string in Objective-C++.
We need to use the proper constructors to
convert a C string into std::string.
Bug: angleproject:7646
Change-Id: Ided31dcbd9434cbae3ea828e29767bb3899e0f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3887639
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9637185c
|
2022-03-10T15:38:13
|
|
Add ForceGPUSwitch to EGL_ANGLE_power_preference
eglHandleGPUSwitch() does not work with WebKit sandbox profile.
The root cause is that we do not know the
primary display, and as such we do not know which GPU drives this.
Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow).
This lets the caller figure out the GPU in another process. Then
the caller can just set the GPU in the sandboxed process.
Add tests that are disabled by default until the runner and the
infrastructure supports running the tests with automatic switching
enabled.
Bug: angleproject:7092
Change-Id: I316ee431156596effbdb89659a5e24291719a204
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
9f3c306e
|
2022-01-13T13:34:36
|
|
Fix collection of systemDeviceId on Mac/M1
Use the AGXAccelerator registry Id to match to the MTLDevice registry
Id.
Bug: angleproject:6143
Change-Id: I6fc868cbc9d5f442e042b5afeade6f71dbb2915b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3387081
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
74e03b9a
|
2022-01-06T11:23:12
|
|
Expose the registryID of GPUs on Mac via SystemInfo
As part of a new extension, ANGLE_platform_angle_device_id,
GPU selection on Mac will depend on the registry ID of each GPU.
These Ids must be listed in SystemInfo for Chrome to select from.
Bug: angleproject:6143
Change-Id: I7ee4a796d2cb26138893dc068a60cac355fe7ba9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3370661
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
da3db87e
|
2021-07-06T14:00:58
|
|
Upstream latest changes to Metal backend from Apple to 7/1/2021
This CL merges in the ANGLE changes between these two WebKit commits:
https://git.webkit.org/?p=WebKit.git;a=commit;h=8648b353ab1d7730438c2e08319e1a4d64982c31
https://git.webkit.org/?p=WebKit.git;a=commit;h=166e4924a52971d6a32ad48247a439b16c00e062
Include provoking vertex buffer out of bounds fix
from https://bugs.webkit.org/show_bug.cgi?id=230107
Fix bad merge of resetting of dirty bits, breaking
DepthStencilFormatsTest.DepthTextureRender test and perhaps others.
Disable GL_APPLE_clip_distance when the direct-to-Metal compiler is
active. It can not yet handle the gl_ClipDistance array.
Disable use of rectangular textures for IOSurfaces. Metal can bind
IOSurfaces to 2D textures, and this was passing all tests in the
SPIR-V Metal backend. Introducing rectangular textures breaks the
SPIR-V Metal backend, and the tests currently fail on the
direct-to-Metal backend.
Fix several bugs with ProvokingVertex, which was causing
both the SpirV and Direct backends to incorrectly draw
indices.
(https://bugs.webkit.org/show_bug.cgi?id=230107)
Skip the following tests on the Metal backend which is still failing
RobustResourceInitTestES3.BlitDepthStencilAfterClearBuffer
GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_Metal
With these changes, angle_end2end_tests again runs to completion.
Bug: angleproject:6395
Change-Id: I3cc58f531426a95fc8f177a4ad87f56c1855a546
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167010
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
b47f6868
|
2020-11-18T16:50:09
|
|
Don't use CGL in Mac Catalyst on Apple Silicon
This change was made downstream in WebKit:
https://bugs.webkit.org/show_bug.cgi?id=218303
It turns out we must use EAGL in macCatalyst on Apple Silicon in all
cases, not just in-process in iOS apps (the problem is not just about
coexistence of the two GLs, but actually about our ability to load
the accelerated renderer /at all/ in macCatalyst processes).
I left the runtime switching in place, because there is a future in
which we /can/ use CGL in non-iOS-app processes, but that future is
not now.
Bug: angleproject:5369
Change-Id: I9a523d038eeeeef81efa3b97771443db857e97c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2548316
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
e53efb18
|
2020-11-03T16:22:19
|
|
Allow choosing EAGL or CGL at runtime
Dean Jackson made this change downstream in WebKit:
https://bugs.webkit.org/show_bug.cgi?id=216722
Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL)
depending on both compile and runtime configurations.
Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL
The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must
compile both the CGL and EAGL interfaces and then pick one to use after
launch.
Bug: angleproject:5253
Change-Id: Iba167b3cc3105e457dcfc9bc14147d0fc3e70bac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2500185
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
4f247baf
|
2020-08-23T22:58:56
|
|
Metal: Implement EXT_draw_buffers & ANGLE_framebuffer_blit
Bug: angleproject:2634
Change-Id: I769ca7e113e660870e9b31dafb706c313db8ac24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332146
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
66665af2
|
2020-07-28T15:26:42
|
|
macOS/ARM: Allow populating GPU based on AGXAccelerator
The existing scheme for populating GPU vendor and device IDs fails
on macOS/ARM. If we find no PCI registry entries, look for a
AGXAccelerator entry, and (partially) populate that.
This is sufficient for Chrome to initialize hardware acceleration.
It is unknown how this will interact with multiple GPUs, and this
will likely need to be revisited.
Bug: chromium:1110421
Change-Id: I08069d7aecf45c83a1d2827cfccc4733c1835994
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2324939
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: ccameron <ccameron@chromium.org>
|
|
af727792
|
2020-06-10T21:55:43
|
|
Improve EGL_ANGLE_power_preference on dual-GPU MacBook Pros.
Add the ability to release and reacquire the high-power GPU, and to
respond to changes in the active GPU. In Chromium, the GPU process can
not access the WindowServer. An external process must inform ANGLE
that the active GPU has changed, and that ANGLE should switch its
internal context to the new GPU.
Incorporates a couple of functions from WebKit, used with permission,
to effect this GPU switch.
A follow-on change in Chromium which uses these new APIs will make the
existing dual-GPU tests pass with ANGLE and the passthrough command
decoder.
Carry forward Chromium's workaround of disabling GPU switching on
older MacBook Pros to ensure stability.
Document the process of adding new EGL extensions to ANGLE.
Bug: chromium:1091824
Change-Id: I499739156e851b493555d4d6e4aef87d8b97fa31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240638
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
12ce8f68
|
2020-01-03T16:40:06
|
|
Upstream WebKit's iOS port of ANGLE.
Added the EAGL backend authored by Dean Jackson from Apple, and the
refactoring changes needed to support it side-by-side with the macOS
backend. Ran "git cl format" against these diffs.
Defined the EGL_ANGLE_device_eagl extension and allocated an enum out
of ANGLE's reserved range.
The iOS backend is not yet included in any of the GN files.
Bug: angleproject:4263
Change-Id: I631c32930433c03bb16a242955ffedf55174bb29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|