|
51937ab3
|
2021-06-25T09:10:42
|
|
Re-land "Add SearchType to OpenSharedLibraryWithExtension."
This fixes a bug in SystemInfo_vulkan where we were using the
System search path for the Vulkan loader when we prefer using the
custom ANGLE loader.
Re-land fixes a bug where we would try to load the custom
libVulkan on Android and other platforms where we should be using
the system version.
Bug: chromium:1219969
Change-Id: I34b592fb87cbddfd02c837a17942cac54c85d9d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007265
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f8d5d5ed
|
2021-07-05T21:11:23
|
|
Revert "Add SearchType to OpenSharedLibraryWithExtension."
This reverts commit 18e99f4a2b37468b103da4a56c5b0fff25458062.
Reason for revert: breaks Mac, e.g.
https://ci.chromium.org/ui/p/chromium/builders/ci/mac-arm64-rel-tests/2197/overview
Original change's description:
> Add SearchType to OpenSharedLibraryWithExtension.
>
> This fixes a bug in SystemInfo_vulkan where we were using the
> System search path for the Vulkan loader when we prefer using the
> custom ANGLE loader.
>
> Bug: chromium:1219969
> Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: chromium:1219969, chromium:1225040, chromium:1226675
Change-Id: I7a7e329181b69b0fb546e5245d8842723077126f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3006320
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5f869b74
|
2021-06-28T18:02:42
|
|
Revert "Vulkan: Load custom Vk Loader."
This reverts commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4.
Reason for revert: Seems to be flaking on linux-clang-rel:
https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/22602/overview
Original change's description:
> Vulkan: Load custom Vk Loader.
>
> Uses a GN copy rule to duplicate the loader. Also updates volk to
> load using the new custom loader. Once both are in place we can
> go back and remove the copy.
>
> Bug: chromium:1219969
> Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: chromium:1219969
Change-Id: Ib29014e728c1ce63c5e5bf7136ce19de7692964d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987874
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e6e99c54
|
2021-06-23T08:25:58
|
|
Vulkan: Load custom Vk Loader.
Uses a GN copy rule to duplicate the loader. Also updates volk to
load using the new custom loader. Once both are in place we can
go back and remove the copy.
Bug: chromium:1219969
Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
18e99f4a
|
2021-06-25T09:10:42
|
|
Add SearchType to OpenSharedLibraryWithExtension.
This fixes a bug in SystemInfo_vulkan where we were using the
System search path for the Vulkan loader when we prefer using the
custom ANGLE loader.
Bug: chromium:1219969
Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
814dc299
|
2021-05-25T12:38:47
|
|
Add nullptr check for pfnGetPhysicalDeviceProperties
This function may be called without checking the pointer.
Speculative fix for a crash in GetSystemInfoVulkan.
Bug: chromium:1211839
Change-Id: Ia7fa55fc328d02bdcd6d48e9b93f552aaea2b284
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917353
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
ed4f7cb6
|
2021-03-03T17:56:07
|
|
Reland "Reland "Add support for Linux GPU info with Vulkan backend""
This is a reland of 9a8397327f9aac278f4bd1f5ab9094eec7e7798b
Chrome Linux crash issue could be fixed in
0615bbde39ca42e27eb764b2b4986b21ab602ce9, let's reland this now.
Original change's description:
> Reland "Add support for Linux GPU info with Vulkan backend"
>
> This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4
>
> Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile
> variable for GetSystemInfoVulkan() in linux platform.
>
> Original change's description:
> > Add support for Linux GPU info with Vulkan backend
> >
> > 1. Add support for Linux GPU info with vulkan backend: for
> > dev board without PCI support, try vulkan backend to get
> > GPU info.
> > 2. Fix getVulkanInstance() issue when loading non-exist lib:
> > return NULL instance if open lib failed.
> >
> > Bug: angleproject:5717
> > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Jamie Madill <jmadill@chromium.org>
>
> Bug: angleproject:5717
> Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5717
Change-Id: Iad6736f9137b7e9640c97fa2b9eded3fd37ac88f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821410
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0615bbde
|
2021-04-12T15:29:26
|
|
Ignore subclass when finding GPU PCI devices
When enumerating PCI devices to find GPUs, only filter on the base
class. This allows devices with class PCI_CLASS_DISPLAY_OTHER to be
found.
Bug: b/178748337
Change-Id: Ia0cd29dddc49a16428da16c1ef1b94040c1221f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2817973
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e981675a
|
2021-03-31T21:03:24
|
|
Revert "Reland "Add support for Linux GPU info with Vulkan backend""
This reverts commit 9a8397327f9aac278f4bd1f5ab9094eec7e7798b.
Reason for revert: Crashes when libpci path fails on some desktop
platforms and the fallback path to Vulkan is taken.
Original change's description:
> Reland "Add support for Linux GPU info with Vulkan backend"
>
> This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4
>
> Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile
> variable for GetSystemInfoVulkan() in linux platform.
>
> Original change's description:
> > Add support for Linux GPU info with Vulkan backend
> >
> > 1. Add support for Linux GPU info with vulkan backend: for
> > dev board without PCI support, try vulkan backend to get
> > GPU info.
> > 2. Fix getVulkanInstance() issue when loading non-exist lib:
> > return NULL instance if open lib failed.
> >
> > Bug: angleproject:5717
> > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Jamie Madill <jmadill@chromium.org>
>
> Bug: angleproject:5717
> Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5717
Bug: chromium:1192586
Change-Id: I04f13fd4bf1d57a3ed510cd3bdf743066de96523
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798394
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9a839732
|
2021-03-03T17:56:07
|
|
Reland "Add support for Linux GPU info with Vulkan backend"
This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4
Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile
variable for GetSystemInfoVulkan() in linux platform.
Original change's description:
> Add support for Linux GPU info with Vulkan backend
>
> 1. Add support for Linux GPU info with vulkan backend: for
> dev board without PCI support, try vulkan backend to get
> GPU info.
> 2. Fix getVulkanInstance() issue when loading non-exist lib:
> return NULL instance if open lib failed.
>
> Bug: angleproject:5717
> Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5717
Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8092ed72
|
2021-03-04T21:29:55
|
|
Revert "Add support for Linux GPU info with Vulkan backend"
This reverts commit 5c09c1f882f15e1a77577f1a62d861355aac90a4.
Reason for revert: Breaks the Chrome OS build.
Original change's description:
> Add support for Linux GPU info with Vulkan backend
>
> 1. Add support for Linux GPU info with vulkan backend: for
> dev board without PCI support, try vulkan backend to get
> GPU info.
> 2. Fix getVulkanInstance() issue when loading non-exist lib:
> return NULL instance if open lib failed.
>
> Bug: angleproject:5717
> Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5717
Change-Id: I97a27295818371556fd09837485a9132f74748c6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737557
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
5c09c1f8
|
2021-03-03T17:56:07
|
|
Add support for Linux GPU info with Vulkan backend
1. Add support for Linux GPU info with vulkan backend: for
dev board without PCI support, try vulkan backend to get
GPU info.
2. Fix getVulkanInstance() issue when loading non-exist lib:
return NULL instance if open lib failed.
Bug: angleproject:5717
Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
868a41e9
|
2021-02-17T11:34:22
|
|
Query revision id for GPU devices
Add revisionID to GpuDeviceInfo and populate it through libpci.
Bug: b/170372516
Change-Id: I0953ba5dfc7d973c7b7216d942952a3ffd908bcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2703734
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5ab7974
|
2021-01-28T12:32:10
|
|
Turn on vulkan backend for android ndk level < 26
Fixes two issue for build Vulkan backend for android ndk level < 26,
* Disable Vulkan validation layers for android ndk level < 26
* Share vulkan memory allocator implementation with chrome to avoid
duplicated symbols link errors.
* Only run vulkan backend test with Android P or newer
Note: This change will break android-binary-size try bot, we need to
update expected_static_initializer_count to 4 at [1] while rolling this
change into chromium.
[1] https://source.chromium.org/chromium/chromium/src/+/master:chrome/android/static_initializers.gni;l=19?q=expected_static_initializer_count&ss=chromium%2Fchromium%2Fsrc
Bug: chromium:1170339
Change-Id: Idb9238d8f339724c4d8f9ac136305b95ff06fae4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656980
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dea86294
|
2020-12-02T16:26:03
|
|
iOS build support
libGLESv2 builds with these changes on iOS, iOS Simulator, and
Mac Catalyst, using CGL or EAGL as appropriate. Tests will
require more work. Fixed several errors in the EAGL code which
hadn't been detected because the code wasn't built.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I29072d82607ef2500732c5cc00318fdab4a46b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570211
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
f845a387
|
2020-11-19T16:16:01
|
|
Misc. iOS fixes
These fixes are necessary for ANGLE to work on iOS. I made these while
updating ANGLE in WebKit. Unless we make an iOS bot, there will likely
be small fixes like this every time we roll ANGLE in WebKit.
Bug: angleproject:4613
Change-Id: Ia0ed432c82d0a43b9514c26ddb65c168c393d50d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551537
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
1070802c
|
2020-10-29T17:02:45
|
|
Skip Instanced MultiDrawTest.MultiDrawArrays on Mac Mini 8.1
Bug: angleproject:5265
Change-Id: I1d3f1802398472c0da2d00526bd7eb52f6596bea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508532
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
068617d6
|
2020-10-05T20:42:57
|
|
Fix debug message formatting.
Also includes a refactor of GLenum utils.
Bug: angleproject:5131
Change-Id: Ic2d974ef5612b3609ae66bcca087cc0442f43888
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447042
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e1d1b8b3
|
2020-09-29T19:59:54
|
|
Fix info collection on Android without Vulkan.
Allows Vulkan info collection even if Vk is not enabled in ANGLE.
Also removes the system_utils error message so that the Android
test runner can parse the standard output without conflicts.
Bug: chromium:1133459
Bug: angleproject:5109
Change-Id: I7d7bff0f1c3e456342f27538812b33ee6cd1054b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2436657
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5173a8e1
|
2020-09-23T23:01:21
|
|
Enable Vulkan SystemInfo on more platforms.
Can be used in the gold tests to produce device info.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: I60d3ddc7d17cd00aa816dd266a54f6d6a62770d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
cf49403e
|
2020-07-21T11:40:56
|
|
Vulkan: Increase default uniform buffer size to 64K
Since these are per context, we can increase it (and subject to the
driver maxUniformBufferRange limit) to reduce the amount of descriptor
set allocated.
Bug: b/161391337
Change-Id: I89e5cf16ee377735c412e9a9a22c651e1c677ded
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2310910
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
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>
|
|
b1b6a171
|
2020-03-10T14:20:36
|
|
Vulkan: Disable robustness support
Swiftshader does not currently have the ability to behave in a way
for ANGLE to support KHR_robustness. Disable for now until that
functionality is available.
Bug: angleproject:3058
Bug: swiftshader:145
Change-Id: I1c1b8147f6b9cf6f8d0da633dfe0f61ebfab5175
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2097053
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
b630bf9e
|
2020-01-24T17:27:01
|
|
Fuchsia: Implement SystemInfo on Fuchsia
The Android vulkan code is reusable, so move that to a new file
SystemInfo_vulkan.cpp and call it in the Android & Fuchsia
implementations. This is necessary to skip tests based on GPU.
Bug: angleproject:4349, angleproject:4352
Change-Id: I8330cfcdbd41f4d51391bd5ed7f0820c55e02801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023909
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5aed7c74
|
2020-01-08T17:42:21
|
|
Narrow point size range clamping to affected versions
Bug: angleproject:2970
Change-Id: Ie14725b0cf30738d394320c24a72bc947135f5cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993204
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
7b55aac3
|
2019-12-12T10:14:10
|
|
Add Broadcom as a known vendor
Broadcom's vendor ID wasn't listed anywhere.
Fixed the sort order of vendor names in a number
of places also.
Bug: angleproject:4218
Change-Id: Iddc504fa35833ac14375cb77e7a2b1cc405f0e80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972714
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f60da874
|
2019-11-19T18:45:45
|
|
Fix out-of-bounds access bug in ANGLE tests
When not filled in, as in Android, activeGPUIndex is -1. This is fine
for Android because it doesn't use vendorID, but the function computed
vendorID unconditionally without checking for -1.
Default activeGPUIndex to 0 instead of -1. Note code still needs to
check for systemInfo.gpus.empty().
This caused crashes when _LIBCPP_DEBUG=0 was enabled.
Bug: chromium:923166
Change-Id: If4d1dff9553a580fd92bc0497fc092789d07ed93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925031
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
c1776c61
|
2019-11-13T11:36:35
|
|
Vulkan:Add Swiftshader configs
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
012d1519
|
2019-10-31T16:50:23
|
|
Stop using __has_include<Cocoa/Cocoa.h>
__has_include seems to cause problems with goma builds.
Instead, detect iOS vs MacOS using TargetConditionals.h. Also use
plain C++ instead of Objective-C++ when possible.
Bug: angleproject:3439
Bug: 1015591
Change-Id: I816624e0cdc54ad3a18d3891b4efecf6fe640574
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894243
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
155947fc
|
2019-10-24T12:55:11
|
|
Enable "-Wconditional-uninitialized".
This is a final warning used by Skia.
Bug: angleproject:4046
Change-Id: I3970e30e4bd2aef07cddadd7322ef120ac857493
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877481
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
11dc1635
|
2019-09-18T14:46:23
|
|
Add support for generating UWP (Windows Store) projects again
Until late 2017, ANGLE supported Windows Store apps on Windows 8.1,
Windows Phone 8.1, and Windows 10 (via the Universal Windows
Platform, aka UWP).
Unfortunately ANGLE deprecated support for Windows Store when it
switched from GYP to GN in 2017. Since then, users have been able
to use Microsoft\angle for their UWP apps but this isn't ideal since
it's based on a 2017 copy of Google\angle.
This PR bring back support for UWPs, so that UWP users can use
Google\angle again. Specifically it:
- Adds support for generating UWP projects via GN
- Adds helper/util functions specific to UWP (they're mostly
similar to the desktop Windows helpers)
- Fixes some existing Windows Store code that's rotted since 2017
- Disables async shader compilation for UWPs, since its
implementation calls wait on the UI thread (which is forbidden
in UWPs)
- Renames 'ANGLE_ENABLE_WINDOWS_STORE' to
'ANGLE_ENABLE_WINDOWS_UWP', since ANGLE only support UWPs now
- Fixes misc other related issues (such as dependencies on D3D9
headers in API-agnostic code)
Note that this doesn't bring back support for Windows/Phone 8.1.
BUG=angleproject:3922
Change-Id: Ia79ae05a5e0e0a0625eb633bf1928722dfd3e85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1811871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a0686e1
|
2019-09-19T15:17:31
|
|
SystemInfo: Fix Windows driver version masking.
Should be applying a 16-bit mask instead of 8-bit.
Bug: angleproject:3926
Change-Id: I2b0a28a5de42437890a9c0d1bbc57b48a5d64451
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1814980
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eb4f2d50
|
2019-09-04T16:56:25
|
|
Fix WebKit iOS build
WebKit's iOS and Mac builds do conditional compilation with preprocessor
directives rather than relying on the build system. Cocoa.h is not available on
iOS, so these Objective-C files must be conditionally compiled.
Bug: angleproject:3439
Change-Id: I8a1228f5b14ca6441c7d9a7f1c3f45d060003135
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785653
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5ec04880
|
2019-08-22T21:12:08
|
|
Reland "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 58940f67acd5b89f1c338b134a596864595fcdca.
Reason for revert: pixel test failures have been triaged in Gold. Relanding.
Original change's description:
> Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
>
> This reverts commit 720a8bab0eca86e5b9b8c07c200a217fb2c65755.
>
> Reason for revert: pixel test failures per http://crbug.com/984780#c13
>
> Original change's description:
> > Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
> >
> > Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> > on dual GPU Macs always updates the active GPU field of the SystemInfo
> > instance to the first non-Intel GPU it finds. This change overrides the
> > activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> > instead of the non-intel GPU.
> >
> > Bug: 985486, 984780, angleproject:3701
> > Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> > Commit-Queue: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
>
> TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com
>
> Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 985486, 984780, angleproject:3701
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: 985486, 984780, angleproject:3701
Change-Id: I8f2f26f68329a2826a92742c46471b8c092b36ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765963
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
58940f67
|
2019-08-22T15:40:58
|
|
Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 720a8bab0eca86e5b9b8c07c200a217fb2c65755.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
>
> Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> on dual GPU Macs always updates the active GPU field of the SystemInfo
> instance to the first non-Intel GPU it finds. This change overrides the
> activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> instead of the non-intel GPU.
>
> Bug: 985486, 984780, angleproject:3701
> Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com
Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 985486, 984780, angleproject:3701
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
720a8bab
|
2019-08-12T16:56:45
|
|
Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
on dual GPU Macs always updates the active GPU field of the SystemInfo
instance to the first non-Intel GPU it finds. This change overrides the
activeGPUIndex field of the SystemInfo instance to reflect the current GPU
instead of the non-intel GPU.
Bug: 985486, 984780, angleproject:3701
Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e48c9eb
|
2019-08-06T17:17:19
|
|
Add explicit integer casts
WebKit uses the -Wshorten-64-to-32 flag which warns on these cases.
Bug: 3439
Change-Id: I8c1de60da0f173ca2036e2120e79b857f5f2775f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740866
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
0412d9e1
|
2019-05-01T12:56:40
|
|
Remove SystemInfo::primaryGPUIndex
primaryGPUIndex is being deprecated in favor of activeGPUIndex, which
represends the expected index of the GPU used for graphics.
Bug: angleproject:3383
Change-Id: I37f992adaf3716fc11e7f34b897c51c0148719cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592055
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
66e4850d
|
2019-04-25T10:49:05
|
|
Use EnumAdapters to properly detect primary GPU on Win
EnumDisplayDevicesA returns the card that's connected to the display,
but EnumAdapters return the adapter which the desktop primary is
displayed at index 0. We can use this to determine the device used for
graphics.
Also cleans up the discrepancy between platforms on finding "primary" vs
"active" GPU. Asserts that the GPU expected to run ANGLE commands is the
active GPU, and deprecates the primary GPU to be equal to the active
GPU.
Bug: angleproject:3383
Change-Id: I422fba1bbe47d85b7c09e378d559eaebf89e2625
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584360
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
51386f4a
|
2019-04-11T21:55:20
|
|
Reland "Define and expose EGL_ANGLE_power_preference extension."
This is a reland of ac58e63295f093b7518535bdd060ff832025b0c5
The original CL was reverted in a rush because I thought there was an
uninitialized variable bug, but upon later re-review this turned out to
not be the case.
Original change's description:
> Define and expose EGL_ANGLE_power_preference extension.
>
> Allows application to select the integrated or discrete GPU on
> dual-GPU macOS systems.
>
> Tested by modifying the example program at:
> https://github.com/grorg/ANGLEIOSurfaceTest
>
> and verifying that both integrated and discrete GPUs can be selected.
> (The changes to that program will be upstreamed once some build issues
> are resolved.)
>
> Bug: 2813
> Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: 2813
Tbr: geofflang@chromium.org
Tbr: cwallez@chromium.org
Change-Id: Iea000dd718f4f4b4f57237adb1dc44381b10106b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575419
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
145ec7fa
|
2019-04-19T01:50:34
|
|
Revert "Define and expose EGL_ANGLE_power_preference extension."
This reverts commit ac58e63295f093b7518535bdd060ff832025b0c5.
Reason for revert: Revert on kbr's request: "has an uninitialized variable bug"
Original change's description:
> Define and expose EGL_ANGLE_power_preference extension.
>
> Allows application to select the integrated or discrete GPU on
> dual-GPU macOS systems.
>
> Tested by modifying the example program at:
> https://github.com/grorg/ANGLEIOSurfaceTest
>
> and verifying that both integrated and discrete GPUs can be selected.
> (The changes to that program will be upstreamed once some build issues
> are resolved.)
>
> Bug: 2813
> Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,kbr@chromium.org,cwallez@chromium.org
Change-Id: Icb936d91eec70deb825585da3ff8835ca2794736
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 2813
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575134
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
ac58e632
|
2019-04-11T21:55:20
|
|
Define and expose EGL_ANGLE_power_preference extension.
Allows application to select the integrated or discrete GPU on
dual-GPU macOS systems.
Tested by modifying the example program at:
https://github.com/grorg/ANGLEIOSurfaceTest
and verifying that both integrated and discrete GPUs can be selected.
(The changes to that program will be upstreamed once some build issues
are resolved.)
Bug: 2813
Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
34cbc544
|
2019-04-05T11:30:10
|
|
Use ANGLE's gpu_info_util libraries for test expectations
3. Remove gpu_info.h and gpu_info.cc and use ANGLE's own gpu_info_util to to
gather device info instead.
- Support collecting info for and parsing expectations of specific Android
devices such as Nexus 5X and Pixel 2.
- Change parser behavior to more closely follow:
bit.ly/chromium-test-list-format
Bug: angleproject:2677
Change-Id: I4c0b9342142b718e884484a6bcaac2dff3ac575a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1553822
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d7e9662a
|
2019-03-24T13:04:43
|
|
Print SystemInfo after collection in ANGLE tests.
Disabled on Android because of issues with test parsing.
Bug: angleproject:2677
Change-Id: I75197e423f35bd8b84e27bb9b14d8c91779ad9c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1537696
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
a683628b
|
2019-03-20T11:23:12
|
|
Use common SystemInfo in tests.
We were using a static SystemInfo in two places. Consolidate the
SystemInfo collection to a single location. Also renames Nvidia to
NVIDIA to be consistent with the company naming. And adds a few helpers
to SystemInfo for GPU detection.
Will lead to test changes to reduce flakiness on Intel Windows.
Bug: angleproject:3261
Change-Id: I4e0addf19d6fe26b4d31a1289efce72092a0a1dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1531533
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
4bcba62a
|
2019-03-18T14:31:12
|
|
Add Android device name, version, manufacturer to gpu_info_util
The model name, model version, and model manufacturer are easy to expose for
Android via <sys/system_properties.h>. This should be exposed and added to the
angle test framework for easy management of test expectations on different
devices.
Bug: angleproject:3274
Change-Id: I8ee6b8fa66ff7f4d6ee4688b335f2e6ef03baed6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1529207
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
57041007
|
2019-03-14T13:33:24
|
|
Revert "Fix several WGL test failures."
This reverts commit 13a8c4d84e16137c47cb2f958b24c08797527cfc.
Reason for revert: Seems to have led to a flakier situation:
https://ci.chromium.org/p/chromium/builders/ci/Win10%20FYI%20Debug%20%28NVIDIA%29/3006
https://ci.chromium.org/p/chromium/builders/try/win-angle-rel/1231
Original change's description:
> Fix several WGL test failures.
>
> SimpleOperationTest.ClearAndSwap/ES2_WGL failed when run in isolation,
> since getGLWindow()->hasError() would report a previous error,
> instead of result of swapBuffers().
> When running after an OPENGL test, swapBuffers() would clear
> the previous error, but that doesn't happen in isolation.
>
> The previous error is from loading WGL functions, some of which are
> expected not to be present. Clear the error in GetProcAddressWithFallback,
> but verify that there is no error entering it.
>
> This uncovers more errors in angle_perftests:
> DrawCallPerfBenchmark.Run/wgl
> DrawCallPerfBenchmark.Run/wgl_tex_change
> DrawCallPerfBenchmark.Run/wgl_vbo_change
> DrawElementsPerfBenchmark.Run/wgl_ushort
> They come from redundant calls when destroying a window. Fix this as well.
>
> Several more errors where uncovered by debug prints, fix those, too.
>
> Bug: angleproject:3153
> Change-Id: I559c098be9dcdfd3add83f045f745d190250b986
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1515602
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I095fadc0dd3a2c998c1dc86f3760184ae6fd7309
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3153
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1523527
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
13a8c4d8
|
2019-03-11T15:54:47
|
|
Fix several WGL test failures.
SimpleOperationTest.ClearAndSwap/ES2_WGL failed when run in isolation,
since getGLWindow()->hasError() would report a previous error,
instead of result of swapBuffers().
When running after an OPENGL test, swapBuffers() would clear
the previous error, but that doesn't happen in isolation.
The previous error is from loading WGL functions, some of which are
expected not to be present. Clear the error in GetProcAddressWithFallback,
but verify that there is no error entering it.
This uncovers more errors in angle_perftests:
DrawCallPerfBenchmark.Run/wgl
DrawCallPerfBenchmark.Run/wgl_tex_change
DrawCallPerfBenchmark.Run/wgl_vbo_change
DrawElementsPerfBenchmark.Run/wgl_ushort
They come from redundant calls when destroying a window. Fix this as well.
Several more errors where uncovered by debug prints, fix those, too.
Bug: angleproject:3153
Change-Id: I559c098be9dcdfd3add83f045f745d190250b986
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1515602
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6344d8ea
|
2019-01-02T13:23:21
|
|
Fix a crash on checking NVIDIA driver version with incorrect X11 DISPLAY
Check if the display was valid (non-null Display pointer) before
querying NVCTRL X11 extension.
Bug: 840249
Change-Id: I299f87e2eb150d56649dd71c7becbe8f8abf7841
Reviewed-on: https://chromium-review.googlesource.com/c/1392906
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a9d579e8
|
2018-11-28T11:44:48
|
|
Version-2 API of the A4A opt-in/out (a.k.a. feature-support utilities)
This version-2 API splits up and renames parts of the version-1 API.
Some initial unit tests were added.
The code is now built and tested on Linux, Windows, and Mac (in
addition to Android, which is where it's being used).
Memory leaks were fixed and some memory/list-management TODOs were
also dealt with (associated with an Android bug).
Some review items deferred. See: angleproject:2993
Bug: angleproject:2794
Bug: b/113346561
Change-Id: Iff307f9347fb05a733fe96b6774fb32d36e25590
Reviewed-on: https://chromium-review.googlesource.com/c/1291837
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a390ebd9
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
Relands 27a472c60 with reinterpret_cast changed to C-style cast to
support types that are pointers on some platforms and integers on
others.
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined
behavior with p. Additionally, %p already prints 0x with both gcc and
clang. This results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", (uintptr_t)x);
printf("|%016" PRIxPTR "|\n", (uintptr_t)y);
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: Idf9f705c3d00f69e41e7603453016276a2e13a64
Reviewed-on: https://chromium-review.googlesource.com/c/1300913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9503ae9
|
2018-10-25T17:55:04
|
|
Revert "Add compiler printf attribute to relevant functions"
This reverts commit 27a472c601aa542f48ca5944fb769e2971a0594f.
Reason for revert: Causing failures on 32-bit Linux configs:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8931673733828416640/+/steps/compile/0/stdout
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:257:11: error: reinterpret_cast from 'EGLNativeWindowType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(win), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/angle/src/common/debug.h:230:112: note: expanded from macro 'EVENT'
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper("%s" message "\n", __FUNCTION__, ##__VA_ARGS__);
^~~~~~~~~~~
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:314:11: error: reinterpret_cast from 'EGLNativePixmapType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(pixmap), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Original change's description:
> Add compiler printf attribute to relevant functions
>
> This commit includes fixes to undefined behavior caught by this
> attribute. The following changes have been made:
>
> - 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
> p. Additionally, %p already prints 0x with both gcc and clang. This
> results in a small output change:
>
> void *x = (void *)0x1234;
> void *y = (void *)0x1234567890abcdef;
>
> printf("|%0.8p|\n", x);
> printf("|%0.8p|\n", y);
>
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
>
> prints:
>
> |0x00001234|
> |0x1234567890abcdef|
> |0x0000000000001234|
> |0x1234567890abcdef|
>
> - %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
> changed to %llu and the relevant argument is cast to unsigned long
> long. This is due to these types being typedefs to unknown types (on
> Linux for example, these are unsigned long, and my guess would be
> unsigned long long on Windows where long is 32 bits).
> - %llu is used for GLuint64, which could be unsigned long (as is on
> Linux). Those arguments are cast to unsigned long long.
> - %p is used for some EGLNative types, but those types may not be a
> pointer. Those arguments are cast to uintptr_t and printed as above.
>
> Bug: angleproject:2928
> Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
> Reviewed-on: https://chromium-review.googlesource.com/c/1289232
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I4f3cea64977bee9f889db6c995371bd2bbc6d81b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2928
Reviewed-on: https://chromium-review.googlesource.com/c/1299480
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
27a472c6
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
p. Additionally, %p already prints 0x with both gcc and clang. This
results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
Reviewed-on: https://chromium-review.googlesource.com/c/1289232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ae6c2b88
|
2018-08-29T13:05:23
|
|
Fixes found while turning on A4A opt-in/out code.
Bug: angleproject:2789
Change-Id: If9d83dd94d392103ed5200ba471d47dc907cf3ca
Reviewed-on: https://chromium-review.googlesource.com/1194612
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
97f45b7b
|
2018-07-27T21:03:10
|
|
Add Android-specific version struct to GetSystemInfo results.
Bug: angleproject:2749
Change-Id: Ie8fdb67918ea1c1054527fe1e0c1be4054fe9cb3
Reviewed-on: https://chromium-review.googlesource.com/1154189
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
d07c52e2
|
2018-06-22T15:42:09
|
|
Initial Android implementation of GetSystemInfo
Change-Id: Ia44413aa94906b89d4981063600cd3de0edacee8
Reviewed-on: https://chromium-review.googlesource.com/1108454
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d8ffd756
|
2018-05-01T13:17:17
|
|
SystemInfo.h: add some documentation
BUG=angleproject:1874
Change-Id: I8898c1a467c1fec25963f45a31376a6b02e1b6c4
Reviewed-on: https://chromium-review.googlesource.com/1037584
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
acf2f3ad
|
2017-11-21T19:22:44
|
|
Apply Chromium style fixes.
This addresses several minor code quality issues that are validated
in Chromium, but not yet applied to ANGLE:
* constructors and destructors must be defined out-of-line
* auto is not allowed for simple pointer types
* use override everywhere instead of virtual
* virtual functions must also be defined out-of-line
Slightly reduces binary size for me (~2k on Win, 150k on Linux).
Bug: angleproject:1569
Change-Id: I073ca3365188caf5f29fb28d9eb207903c1843e6
Reviewed-on: https://chromium-review.googlesource.com/779959
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1a1ae0f8
|
2017-09-05T15:11:06
|
|
SystemInfo: Find primary with EnumDisplayDevices
Without DXGI, EnumDisplayDevices is the only way to get the
primary device. Previously the code would work on most configs
with a combination of AMD, Intel and NVIDIA GPUs but would fail
on more esoteric system. Like our try bots that have Matrox GPUs.
BUG=angleproject:1874
BUG=angleproject:2137
Change-Id: Ie2dfbb559001ccad2fd5b8a8fd6436e0fba9d003
Reviewed-on: https://chromium-review.googlesource.com/651629
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
aa7203ef
|
2017-05-03T23:32:29
|
|
Inherit privately from angle::NonCopyable.
Make all inheritance from angle::NonCopyable private so the compiler
complains about this (admittedly unlikely) code:
class Foo: angle::NonCopyable {
virtual ~Foo() { ... }
};
angle::NonCopyable *p = new Foo;
delete p;
In the above code ~Foo() is not called, only ~NonCopyable(), because the
latter is not virtual. Making it virtual would add overhead to all derived
classes which don't already have a virtual method.
Also tighten access in NonCopyable, because we can.
BUG=angleproject:2026
Change-Id: Id0dc4d959cfb7bb82cf49382118129abb1d3a4f0
Reviewed-on: https://chromium-review.googlesource.com/495352
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
f81ce4a3
|
2017-04-24T10:49:17
|
|
Refactoring: replace NULL by nullptr for pointers (3rd CL).
This CL mainly handles passing/returning NULL to/from a function.
BUG=angleproject:2001
Change-Id: I34802f792e710e3d7ff697cbe4701dc1bf5ab009
Reviewed-on: https://chromium-review.googlesource.com/485060
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6f1c3de9
|
2017-04-05T16:40:15
|
|
gpu_info_util: fix a DeviceInfo leak on Windows
BUG=angleproject:1874
Change-Id: I382e306ce0c27a81e0d746fb9922fa12988927d4
Reviewed-on: https://chromium-review.googlesource.com/469230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
8f77e5d3
|
2017-03-24T11:58:59
|
|
gpu_info_util: Implement GetSystemInfo on Windows
BUG=angleproject:1874
Change-Id: I97a02d2c8b1f7ecb530684464fc02f528d34de7c
Reviewed-on: https://chromium-review.googlesource.com/458965
Reviewed-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d83f64f5
|
2017-02-16T10:58:46
|
|
gpu_info_util: Implement GetSystemInfo on OSX
Also adds a test that prints the gathered information for manual
checking and to help know what the system is when looking at the logs.
BUG=angleproject:1874
Change-Id: Icb0cc390c9808fd8db0f966d667b94dde4b94e62
Reviewed-on: https://chromium-review.googlesource.com/443845
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
878baf90
|
2017-02-15T13:57:16
|
|
gpu_info_util: address comments for CL 438940
BUG=angleproject:1874
Change-Id: I6397d9141a7c25f818ce970212a4a8e8afbd5a27
Reviewed-on: https://chromium-review.googlesource.com/442676
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7b4e00d2
|
2017-02-08T10:43:47
|
|
gpu_info_util: Implement GetSystemInfo on Linux
BUG=angleproject:1874
Change-Id: Id39c26b806e6a7937517235afe0ca60f5087df5b
Reviewed-on: https://chromium-review.googlesource.com/438940
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|