|
8403e4c5
|
2022-10-10T20:59:29
|
|
EGL: Resource IDs for Surface, Context and EGL Image.
This will make these classes play nicely with resource maps. As these
objects are used in a lot of places, and simplified C can't handle
unordered_map, it's necessary to index the maps by simple packed IDs
in capture/replay code. This indirection will also have increased
safety as we validate EGL resource ID handle values before accessing
the memory directly.
Also hides some of the other EGL capture methods behind helper methods
to simplify the C code and hide assignments and other complex maps.
Bug: angleproject:7758
Change-Id: Ibc7bb56430d3068bd38877c9dfb011979d4ea234
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957164
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
2265e37b
|
2022-10-12T09:27:16
|
|
Capture/Replay: Auto-generate EGL capture code.
Replaces the custom code in the EGL stubs. Skips a few "Get"
entry points because this CL doesn't implement pointer capture
like we do for all the GL entry points.
Includes a new state in the AttributeMap that indicates which
type of attribute values we used when initializing the map.
Bug: angleproject:4035
Change-Id: I272eac5e4068602ce710ef66c9a1dce5387943a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949911
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
7c4dc253
|
2022-10-12T08:38:46
|
|
Capture/Replay: Clean up EGL capture.
This switches the EGL capture types to ANGLE-casted pointers since
that's what we receive in the capture layer. Note that even if the
capture layer were used as a pure layer, not an EGL implementation,
we'd still have these types for state tracking.
This also prefixes each EGL class in the entry points with the egl
namespace for consistency and for simplifying the ParamType code.
Required changing to non-const gl::Context * in a few places. Also
changes the gSurfaceMap to be indexed by the raw pointer value,
which cleans up the code somewhat.
Bug: angleproject:4035
Change-Id: Id800c1ba25e5819ac7ea1df8aab806bc393fe192
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949910
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
926b43e7
|
2022-01-06T13:31:54
|
|
Reland: Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
This is done via a new custom entry point, EGL_PrepareSwapBuffers, so
that we can control how the global lock is used throughout the entire
call.
Bug: angleproject:6851
Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
9d668d6c
|
2022-01-07T18:18:23
|
|
Revert "Frontend: separate lock in swap prep"
This reverts commit 40c5cb255c0a07bdab574aa076ee603e7d791ab3.
Reason for revert: Regression in TSAN caused by this CL:
https://ci.chromium.org/ui/p/angle/builders/ci/linux-tsan-test/352/overview
Original change's description:
> Frontend: separate lock in swap prep
>
> Swapchain-based backends like Vulkan might block a lot in
> vkAcquireNextImageKHR, which is bad for overall fast progress if we also
> hold the global EGL lock there.
>
> This CL starts to split the global EGL lock. We release the EGL lock
> when performing vkAcquireNextImageKHR, and only maintain a lock for
> surfaces.
>
> Bug: angleproject:6851
> Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Lingfeng Yang <lfy@google.com>
Bug: angleproject:6851
Change-Id: Ie03b784021f7b8b5c1ef95a911ef7da4029abd46
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373165
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
40c5cb25
|
2022-01-06T13:31:54
|
|
Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
Bug: angleproject:6851
Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
b5424bb4
|
2021-01-14T15:09:41
|
|
Generate internal gl entry point functions as C functions.
Some internal GL functions are exported to our libGLESv1_CM library
and to properly export them, they must be C functions.
Bug: angleproject:5534
Change-Id: I37280312f73fd5e55166e4fa36659267d657a50b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628139
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
234fccfb
|
2020-12-01T10:59:16
|
|
Entry Points: Add egl:: namespace to Display.
This will prevent symbol collision with X11. This fixes the
build integration with Skia.
Bug: angleproject:2621
Bug: angleproject:5416
Change-Id: I6949a375cf9fcdd790b4c40ffb82c7c25bc15315
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567644
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
3f564fc7
|
2020-11-23T13:59:17
|
|
EGL: Generate entry points.
This adds two final auto-generated files for the EGL and EXT extension
entry points. It adds a new data file that stores a mapping between
object types and entry points for associating labeled objects with
certain methods. When we generate errors we record the associated
object in the debug message output.
This places the remainder of the hand-written code in "stub" files.
Going forward the work for implementing new extension entry points
for EGL will be to update the registry XML files and then implement
the corresponding stub methods. Event logging, parameter packing,
and validation are all handled by the auto-generated code.
Bug: angleproject:2621
Change-Id: I28153432802c37b929ff2ea1e1a3e3ce9de91605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562680
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|