|
25390156
|
2025-08-21T00:13:19
|
|
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
trailing //-only lines when a filename comment adjoins license
boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fd368aa
|
2025-07-30T14:45:55
|
|
Replace Surface::getWidth/Height() with getSize()
Most places in the code use both `getWidth/Height()` methods at the same
time. On some back-ends it is more optimal to have single method.
For example, `WindowSurfaceWGL` first uses `GetClientRect()` Win32 API
inside each method to then calculate width and hight in each method,
causing repeated `GetClientRect()` call.
The only place where only one of the methods may be used is from
`SurfaceImpl::getUserSize()` when one of the parameters is `nullptr`,
which is only possible from `QuerySurfaceAttrib()` function. This
method is rewritten to use new `getSize()` method and then use whatever
dimensions is requested by the caller. This may cause
`QuerySurfaceAttrib()` inefficiency on some back-ends that get width and
height of the surface differently (`SurfaceEGL` for example). In such
cases `getUserSize()` is overridden to avoid returning a dimension
which is not required.
After this change all places in the code that previously used both
`getWidth/Height()` methods (like `Surface::getAttachmentSize()`) will
be more efficient. The `QuerySurfaceAttrib()`, on the other hand, will
have slightly more overhead on back-ends where base
`SurfaceImpl::getUserSize()` method is used, which only happens on
back-ends with trivial `getSize()` implementation.
Bug: angleproject:397848903
Change-Id: I4a22701a1e62ee4e7d07e77cac5b388050d98e4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6802440
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
dcc715ee
|
2025-06-19T15:35:53
|
|
Enable EGL_PLATFORM_GBM_KHR platform with device selection
FunctionsEGL.cpp:
- Allow EGL_PLATFORM_GBM_KHR platform and explicit device selection.
- Skip getPreferredDisplay if an explicit device is specified.
Display.cpp:
- Use DisplayEGL impl with EGL_PLATFORM_GBM_KHR.
- Wayland can use GBM platform, and OPENGLES.
angle.gni:
- Rename ozone_platform_gbm to ozone_platform_drm since its deprecated.
Bug: angleproject:425569857, b/396434686
Change-Id: I9493118f9dc95f78ebe46277bb4fcfeb7a29d465
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6663699
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
|
|
a7877665
|
2025-06-02T08:13:30
|
|
Fix drm format and modifier handling
Move functions to private
Change case on methods to lowercase per style guide
Change related methods to use set instead of vector,
this saves a copy from set to vector.
Initialize formats before supportsDmaBufFormat because
queryDmaBufModifiers can be called before queryDmaBufFormats
and need to initialize at supportsDmaBufFormats.
Bug: angleproject:412730346
Change-Id: I8575bee6e7a6a09d9065ed81acff899e73004764
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6610088
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
408f5853
|
2025-04-04T00:00:00
|
|
Make gl::Version data members private
* Further simplified gl::Version implementation by
making data members private and merging them.
* Used proper version struct comparisons instead
of accessing individual version components.
* Moved known version constants to Version.h
for broader availability.
* Removed no longer used helpers:
* PrivateState::getClientMinorVersion()
* State::getClientMinorVersion()
* Context::getClientMinorVersion()
Bug: angleproject:408843436
Change-Id: I3ae8f495269d649253fa2381ecbfc018a184fa20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460787
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
33e035f9
|
2025-04-04T00:00:00
|
|
Enforce correct usage of gl::Version
In preparation for the implementation update,
ensured that gl::Version struct is always
initialized with 8-bit values.
Bug: angleproject:408843436
Change-Id: Idcc925b49cadc7fdc4f05ff2acaed8020e72a32e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458758
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ecc378cc
|
2025-03-03T16:43:33
|
|
Reland "Dont use Subject/Observer for SwapchainImageChanged"
This is reland of the following CL
https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Because we do deferred ANI (VkAcquireNextImage) call until image is
needed, we need a way to force Context to go through
FramebufferVk::syncState call (FramebufferVk::syncState calls
WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
Right now we uses subject/observer mechanism, by sending
angle::SubjectMessage::SwapchainImageChanged to all observers of
WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
redirects this message to its observers, which are all gl::Framebuffer's
attachments: color, depth, stencil. Even though only color attachment
needs to be notified, but because we don't have a separate list of
observers, depth/stencil attachment also receive the notification and
they early out. Then gl::Framebuffer sets
DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
and ReadFBO and dirty cached state. Note that this is specific for swap
image changed case, there is no surface property change (surface
property change will still trigger the subject/observer message with
SubjectMessage::SubjectChanged message, but this occurs rarely). This
gets worse for apps that uses multiple contexts, for the example
pokemon_masters_ex has three contexts, each context has its own default
frame buffer that attach to the same surface, and we never remove
non-current context from the observer list. This end up with
egl::Surface has 12 observers and for every frame, it loop over the list
of 12 observers and send message (virtual function call) to each of
them. Color attachment also ends up sending two messages to Context, one
for Read FBO and another for Draw FBO. There are total 21 virtual
function calls. Even for single context usage, you have 6 virtual
function calls, for every frame.
EGL spec says "an EGLSurface must be current on only one thread at a
time", any other context must call EGLMakeCurrent in order to use this
surface, which will add all necessary dirty bits at that time. So we
really only need to notify current context. In this CL,
SwapchainImageChanged no longer uses subject/observer mechanism, so this
message is removed.
This CL still uses subject/observer mechanism to send DirtyBitsFlagged
from Framebuffer back to context. We could call setDrawFramebufferDirty
and setReadFramebufferDirty directly, but that will require to remove
the "const" decoration out of gl::Context which generates too much code
diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
used.
Bug: angleproject:400711938
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Change-Id: I017b0e8934b5194a520828fa5c4af1d6e3ef9aac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6404621
|
|
3cfc0ce2
|
2025-03-24T07:41:33
|
|
Revert "Vulkan:Dont use Subject/Observer for SwapchainImageChanged"
This reverts commit 48103cb2f2b292cb50cc5a29546b358b2e47fd29.
Reason for revert: assert fails
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/7085/overview
I 22:27:33.697 77.533s _RunTestsOnDevice(17221FDF6000A4) [ RUN ] EGLAndroidAutoRefreshTest.SwapCPUThrottling/ES3_Vulkan_NoFixture
INFO:root:ERR: SurfaceVk.cpp:3165 (getCurrentFramebuffer): ! Assert failed in getCurrentFramebuffer (../../src/libANGLE/renderer/vulkan/SurfaceVk.cpp:3165): mAcquireOperation.state == ImageAcquireState::Ready
Original change's description:
> Vulkan:Dont use Subject/Observer for SwapchainImageChanged
>
> Because we do deferred ANI (VkAcquireNextImage) call until image is
> needed, we need a way to force Context to go through
> FramebufferVk::syncState call (FramebufferVk::syncState calls
> WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
> Right now we uses subject/observer mechanism, by sending
> angle::SubjectMessage::SwapchainImageChanged to all observers of
> WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
> redirects this message to its observers, which are all gl::Framebuffer's
> attachments: color, depth, stencil. Even though only color attachment
> needs to be notified, but because we don't have a separate list of
> observers, depth/stencil attachment also receive the notification and
> they early out. Then gl::Framebuffer sets
> DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
> angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
> and ReadFBO and dirty cached state. Note that this is specific for swap
> image changed case, there is no surface property change (surface
> property change will still trigger the subject/observer message with
> SubjectMessage::SubjectChanged message, but this occurs rarely). This
> gets worse for apps that uses multiple contexts, for the example
> pokemon_masters_ex has three contexts, each context has its own default
> frame buffer that attach to the same surface, and we never remove
> non-current context from the observer list. This end up with
> egl::Surface has 12 observers and for every frame, it loop over the list
> of 12 observers and send message (virtual function call) to each of
> them. Color attachment also ends up sending two messages to Context, one
> for Read FBO and another for Draw FBO. There are total 21 virtual
> function calls. Even for single context usage, you have 6 virtual
> function calls, for every frame.
>
> EGL spec says "an EGLSurface must be current on only one thread at a
> time", any other context must call EGLMakeCurrent in order to use this
> surface, which will add all necessary dirty bits at that time. So we
> really only need to notify current context. In this CL,
> SwapchainImageChanged no longer uses subject/observer mechanism, so this
> message is removed.
>
> This CL still uses subject/observer mechanism to send DirtyBitsFlagged
> from Framebuffer back to context. We could call setDrawFramebufferDirty
> and setReadFramebufferDirty directly, but that will require to remove
> the "const" decoration out of gl::Context which generates too much code
> diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
> used.
>
> Bug: angleproject:400711938
> Change-Id: I61354516fd0aa307714b7abd30c6b6e45ff7b496
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:400711938
Change-Id: Ib7899d1ac63a1f86af0953a1d25922578c470fc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6387755
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
48103cb2
|
2025-03-03T16:43:33
|
|
Vulkan:Dont use Subject/Observer for SwapchainImageChanged
Because we do deferred ANI (VkAcquireNextImage) call until image is
needed, we need a way to force Context to go through
FramebufferVk::syncState call (FramebufferVk::syncState calls
WindowSurfaceVk::getAttachmentRenderTarget, which end up calling ANI.
Right now we uses subject/observer mechanism, by sending
angle::SubjectMessage::SwapchainImageChanged to all observers of
WindowSurfaceVk. In this case it is egl::Surface. Then eglSurface
redirects this message to its observers, which are all gl::Framebuffer's
attachments: color, depth, stencil. Even though only color attachment
needs to be notified, but because we don't have a separate list of
observers, depth/stencil attachment also receive the notification and
they early out. Then gl::Framebuffer sets
DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit and send the
angle::SubjectMessage::DirtyBitsFlagged to Context, which dirty DrawFBO
and ReadFBO and dirty cached state. Note that this is specific for swap
image changed case, there is no surface property change (surface
property change will still trigger the subject/observer message with
SubjectMessage::SubjectChanged message, but this occurs rarely). This
gets worse for apps that uses multiple contexts, for the example
pokemon_masters_ex has three contexts, each context has its own default
frame buffer that attach to the same surface, and we never remove
non-current context from the observer list. This end up with
egl::Surface has 12 observers and for every frame, it loop over the list
of 12 observers and send message (virtual function call) to each of
them. Color attachment also ends up sending two messages to Context, one
for Read FBO and another for Draw FBO. There are total 21 virtual
function calls. Even for single context usage, you have 6 virtual
function calls, for every frame.
EGL spec says "an EGLSurface must be current on only one thread at a
time", any other context must call EGLMakeCurrent in order to use this
surface, which will add all necessary dirty bits at that time. So we
really only need to notify current context. In this CL,
SwapchainImageChanged no longer uses subject/observer mechanism, so this
message is removed.
This CL still uses subject/observer mechanism to send DirtyBitsFlagged
from Framebuffer back to context. We could call setDrawFramebufferDirty
and setReadFramebufferDirty directly, but that will require to remove
the "const" decoration out of gl::Context which generates too much code
diff, so onStateChange(angle::SubjectMessage::DirtyBitsFlagged) is still
used.
Bug: angleproject:400711938
Change-Id: I61354516fd0aa307714b7abd30c6b6e45ff7b496
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6319893
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
cfb430c8
|
2025-02-10T13:19:05
|
|
Remove angle::ErrorStream helper
Most uses of the helper either use just the code or a fixed string,
which compiles to a few instructions. Using this helper adds 200+ bytes
of assembly to each use, due to the unneeded instantiation of
ostringstream which allocates a buffer etc. The combined effect of this
CL on an Android perf build is ~12KB (0.2%) reduction in size.
The cases where the message is actually formatted are converted to an
explicit use of ostringstream. Removing the helper so that the new code
is explicit about the intent to use ostringstream, or an alternative way
to format the message.
Discovered accidentally while looking into size reduction due to
__builtin_unreachable()
Semi-automated code change, risk of copy-paste mistakes should be
minimal.
Bug: angleproject:394129077
Change-Id: I47c2642d750d31416b08a1cfa435d5463c294e35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6250078
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.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>
|
|
8c12874c
|
2024-09-12T11:26:29
|
|
vulkan: add double buffer swapchain for fifo mode.
Double buffer swapchain usually drop the performance.
But at B* the default fps cap for silver device still at 30fps.
This change is for reduce latency.
Bug: b/311022968
Change-Id: Ida4044f439bbe3f235d53f5d1d2f945533cbb094
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5858255
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
0e892a02
|
2024-05-30T14:07:47
|
|
EGL: Move egl surface timing calls into tail calls.
eglGetCompositorTimingANDROID and eglGetFrameTimestampsANDROID can both
take a lot of driver time to execute proportional to ANGLE's
overhead.
Bug: angleproject:42266858
Change-Id: I9b991f74a261b45aeb2aaf133fca7d22cabc41f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5580877
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ccd9a43b
|
2024-05-22T11:15:39
|
|
Split EGL_ANGLE_device_d3d into D3D9 and D3D11 versions.
Add EGL_ANGLE_device_d3d9 and EGL_ANGLE_device_d3d11 which make it
possible to know what type of device can be queried ahead of time
without generating EGL errors.
Refactor the DeviceD3D class into Device9 and Device11. Remove the
getType method now that it's not needed for internal validation.
Keep EGL_ANGLE_device_d3d for backwards compatibility.
Bug: angleproject:342096132
Change-Id: Ib950abad58e46a5be269891ea7afd0cb8534cbe8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5559163
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d0bdec30
|
2024-05-13T18:11:17
|
|
EGL: Handle null resultOut for sync tail call destruction
Syncs can be destroyed during eglDestroySync or as part of display
destruction. During display distruction there is no result so
swallow any errors.
Bug: angleproject:8434
Change-Id: I172d268c91fd0d6ba534eceff8914f9c719bdf39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5533777
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
038ad6c7
|
2024-04-23T13:23:04
|
|
EGL: Use unlocked tail calls for surface, sync and img calls
EGL surface and sync calls can be expensive to do while holding the
global lock on EGL. They are safe because the parameters are captured
by value and the underlying EGL driver is also thread safe.
EGL image creation also tends to be expensive and is called freqently
by Chrome.
Bug: angleproject:8434
Change-Id: I7e554fe2e3700d98469de267f7bbff1e96358c78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5478229
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2ad7b23b
|
2024-03-05T10:04:47
|
|
Add a missing #include.
Bug: angleproject:8580
Change-Id: I9dadaf9afa6d3335b2a621aece19bcd315be319a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5344351
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ec6d6288
|
2024-02-23T10:20:01
|
|
egl: Add logic to select preferred display
ChromeOS Flex devices can have multiple GPUs, and some of these will
have persistent issues. Chrome worked around this by preferring
well-supported GPU vendors over others. Add this logic and refactor
inintialization to minimize code duplication.
Bug: b/298460913
Change-Id: Ibac394988b7385fca35b98f0e3834b056484ba82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5320107
Commit-Queue: Allen Ballway <ballway@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
80e4bcd6
|
2024-01-05T13:58:13
|
|
Fix crash in eglQueryDeviceStringEXT for EGL backend
Underlying eglQueryDeviceStringEXT can return NULL if there is no DRM
node associated with EGL device.
https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_device_drm_render_node.txt
Bug: angleproject:7686
Change-Id: Iec6acc43ac8c9d277df064161e718155d5c03c95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5170889
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
1ff6a6f2
|
2023-11-27T13:08:29
|
|
Pass the attribute map to egl::Sync::initialize.
The attribute map was typically passed to the impl objects in the
constructors. Instead, pass it to the initialize function. This removes
the need for many member variables in different backends and opens up
the future optimization of re-using sync objects by calling
initialize on them with new attributes.
Bug: angleproject:8430
Change-Id: If69970462cfed39d9a205034adb5ddd937c5ea31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063335
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
384a29a8
|
2023-07-27T10:51:07
|
|
Reland: GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE
Now that Chromium no longer uses it.
This is a reland of:
https://chromium-review.googlesource.com/c/angle/angle/+/4724768
Bug: angleproject:5509
Change-Id: I650e598580539fbe404f2ec4b56b20b56b948f6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903079
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c8fe53ab
|
2023-08-09T06:25:38
|
|
egl: Fix device fallback if native display eglInitialize fails
Mesa's EGL implementation may return an EGLDisplay that fails to
initialize (e.g. an X11-backed EGLDisplay for `EGL_DEFAULT_DISPLAY` that
fails to eglInitialize if the X server is inaccessible). Handle this
case properly to ensure that ANGLE will properly fall back to using EGL
devices.
Bug: angleproject:8331
Change-Id: I629e95fc22f5618d10be082a3897857bcc79f890
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4749335
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d8f088e0
|
2023-08-14T11:07:24
|
|
GL: Remove parallel compile/link without driver support
This feature was practically disabled everywhere due to various bugs,
and is complicating the code. In effect, the code was always spawning a
thread for the compilation and link jobs, immediately fail it (due to a
workaround), then do the job when compile/link is resolved (much closer
to draw time). This leads to bad user experience, but also is racy
because the shaders may get recompiled in the meantime and there is
little the GL backend could do to stop that (efficiently).
After this change, parallel compile/link
is either done by the driver (if supported), or it isn't done.
This is a partial revert of a100d8f471f79b9f88d387164992cc5bd9c6ee9f.
Bug: angleproject:3031
Bug: chromium:922936
Bug: chromium:1184692
Bug: chromium:1202928
Change-Id: I6348bee3249ccb3828bb98ac2a69dc7d305f821c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4774785
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
084643d9
|
2023-08-22T11:04:32
|
|
EGL: Make sure unitialize values don't leak into configs
Old Android emulators did not implement many of the eglGetConfigAttrib
parameters, including EGL_COLOR_BUFFER_TYPE. They return EGL_SUCCESS
without writing the attribute value and DisplayEGL::getConfigAttrib
would write an uninitialized temporary value to the config in this
case.
Make sure the default config value is stored when eglGetConfigAttrib
behaves this way.
Add more logging about unexpected color buffer types to diagnose issues
like this from logcat more easily.
Bug: chromium:1442132
Change-Id: Ifbbbbfba43658bcd59c73cbb6586b76f636479e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4791066
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
ae8a5cfd
|
2023-08-09T12:00:53
|
|
GL: Accept more config options when creating the EGL context
Some drivers fail to find any configs in ANGLE but succeed with
Chrome's config searching. Widen ANGLE's config searching to include
565 configs and configs without depth stencil.
Refactor the config search logic to be used for both backend
context and mock pbuffers instead of hard-coded pbuffer config.
Bug: chromium:1442132
Change-Id: I52378ec66542ec7aa56849ec8470f8eadb4abf58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4764230
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
01ee134b
|
2023-08-02T13:43:36
|
|
Revert "GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE"
This reverts commit 4e0250f1926d25e39023c4ad7862ed358a0ec4b6.
Reason for revert: Chromium change was reverted. crbug.com/1468956
Original change's description:
> GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE
>
> Now that Chromium no longer uses it.
>
> Bug: angleproject:5509
> Change-Id: Ibb8d9cdc4d67dad77ca50437423b18d81e838203
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4724768
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:5509
Change-Id: Id8143b1715ec8162be9351437fbd34a2aa4c2e00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4742521
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4e0250f1
|
2023-07-27T10:51:07
|
|
GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE
Now that Chromium no longer uses it.
Bug: angleproject:5509
Change-Id: Ibb8d9cdc4d67dad77ca50437423b18d81e838203
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4724768
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ea61cb3
|
2023-07-23T21:53:50
|
|
GL: Complete EGL_ANGLE_external_context_and_surface
This change implements two new entry points added for
EGL_ANGLE_external_context_and_surface: glAcquireExternalContextANGLE
and glReleaseExternalContextANGLE.
These functions remove the need to overload eglMakeCurrent for the
purposes of syncing to and from the external context.
Bug: angleproject:5509
Change-Id: I5d46299ee0c8addaef7066914a8a8aacb0ea2c17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706027
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
42bd78b2
|
2023-05-23T14:21:14
|
|
Remove assertion in SyncEGL::onDestroy that the sync is valid
When a egl::Sync objecct is created in egl::Display, it's wrapped in
the RAII object angle::UniqueObjectPointer which calls onDestroy and
the destructor on the sync when leaving scope due to an error. If the
SyncEGL fails to initialize, it will still have onDestroy called. This
patch makes sure that we don't assert in that case.
Bug: chromium:1434602
Change-Id: I501a0173328e4d9d01474d1084c64ef178896f17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4556167
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3625b749
|
2023-04-27T08:19:05
|
|
[ContextEGL] Synchronize state only when first making current
ContextEGL::onMakeCurrent() can be called when this context is already
current, which introduces complexities for the case where this context
is wrapping an external context. This CL ensures that in this case we
save state from the native context only when first transitioning this
context to be current.
To test: Exercise the repro steps in crbug.com/1434657: No assert
should go off.
Bug: chromium:1434657
Change-Id: I9690a76917fcb6d0fa31361bfbd3766bb6074d41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4483695
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Colin Blundell <blundell@chromium.org>
|
|
d6d7e551
|
2023-04-24T14:42:06
|
|
[ContextEGL] Check for default FBO being null in onUnmakeCurrent
https://chromium-review.googlesource.com/c/angle/angle/+/4451908
added restoring of the default FBO ID when making external contexts
un-current. However, it turns out that onUnmakeCurrent() will be called
during destruction even if it was previously called without an
intervening makeCurrent() call [1], with the first call having un-set
the default FBO [2]. Hence, we need to check for whether the default
FBO exists in this flow to avoid crashes [3].
[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/Context.cpp;l=766-787?q=Context.cpp&ss=chromium
[2] https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/angle/src/libANGLE/Context.cpp;l=931;drc=a61b95c63b0b75c1cfe872d9c8cdf927c226046e;bpv=1;bpt=1
[3] https://crash.corp.google.com/browse?q=product_name%3D%22AndroidWebView%22+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28expanded_custom_data.ChromeCrashProto.experiments.ids%29+expanded_custom_data_ChromeCrashProto_experiments_ids+WHERE+expanded_custom_data_ChromeCrashProto_experiments_ids%3D%2741e765a5-991da97%27%29+AND+product.Version%3D%27114.0.5730.0%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%27+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28CrashedStackTrace.StackFrame%29+WHERE+FunctionName%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%28gl%3A%3AContext+const*%29%27%29+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28CrashedStackTrace.StackFrame%29+WHERE+FunctionName%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%28gl%3A%3AContext+const*%29%27%29&stbtiq=&reportid=&index=0
Bug: chromium:1434315, chromium:1436354
Change-Id: I676dad65dc249e87ee0cae169ba93f605f776341
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4467147
Auto-Submit: Colin Blundell <blundell@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cf91a5e6
|
2023-04-20T09:07:41
|
|
[ContextEGL] Restore default FBO ID in onUnmakeCurrent()
When making an external context current, ContextEGL sets the default FBO
ID to that bound by the external context. However, we don't currently
restore it to its previous value (expected to be 0) in
onUnmakeCurrent(). Aside from being generally problematic, this
specifically causes an assert to go off when later destroying this
framebuffer (see the linked bug).
This CL adds this restoration. This should be sufficient to resolve the
linked bug, as we don't expect ANGLE to process destruction of an
external context while it is current due to the GL spec [1].
[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1434315#c6
Bug: chromium:1434315
Change-Id: I6da1880aea4c5245f1506ccc22f92370babd1917
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4451908
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Colin Blundell <blundell@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
abbbe970
|
2023-03-24T08:10:40
|
|
[GL backend] Get texture bindings size from frontend caps
EGLContext currently sets the texture bindings size to be
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS. StateManagerGL later copies
these bindings into its own textures array [1]. However, the latter
texture array is clamped to a size of max 96 [2], and thus this copy
can overflow (see crash in crbug.com/1418842).
This CL changes the texture bindings size to be set from the frontend
caps rather than the native caps. The former have the same clamping
as for StateManagerGL's textures.
[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp;drc=c85c710dec58dfdcf2f35af647a0a5155639edd5;l=3274
[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/angletypes.h;drc=4a77b0f5237515960673b9bd1bc5a229f0eeaa95;l=952
[3] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/Context.cpp;l=4050-4059;drc=b4bc946c63b2b95e1f05dec4e84adcadd10499c6
Bug: chromium:1418842
Change-Id: I66c10b640f70d9dc6c7d41925f12ffb7a3ba78e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369699
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8d23f34e
|
2023-01-18T16:20:05
|
|
Reland: DisplayEGL should support targeting specific EGL platforms
This is a reland of 01c641d58c7b4e4809163e48f570145af89c4acc
Updated changes:
The value is used only if non-zero
and marked as one of the supported platforms. For the moment the only
platform listed as supported is EGL_PLATFORM_SURFACELESS_MESA since
it's the only relevant platform value that the EGL_ANGLE_platform_angle
extension is listing as acceptable value for the
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE attribute.
When validated, and with relevant EGL extensions listed in the client
EGL extensions list, a display object for the desired EGL platform is
retrieved through the eglGetPlatformDisplayEXT entrypoint.
Original change's description:
> DisplayEGL should support targeting specific EGL platforms
>
> DisplayEGL should use the
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
> value, if provided, to target specific platforms when constructing the
> native EGL display.
>
> The value is retrieved from the display attributes map and propagated
> to FunctionsEGL::initialize(). If non-zero, and if the
> eglGetPlatformDisplayEXT entrypoint is successfully loaded, then a
> display object for the desired EGL platform is retrieved.
>
> Bug: angleproject:7942
> Change-Id: I3d8dd70c4c5c80259ae647dce039cfe741b0cf7d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152531
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:7942
Change-Id: I75212b48e0e0edceef92e38bf68791017fb30a56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178310
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ca14a9f
|
2023-02-10T13:58:19
|
|
EGL: No-op dma_buf import modifiers on some Mali devices.
Some of the vendor checks in the EGL_EXT_image_dma_buf_import_modifiers
enablement logic disable the extension on older Mali devices while
Chrome depends on the presence of this extension, even if the
implementation is no-op'ed.
Refactor the logic into DisplayEGL with a tri-state:
* Extension exposed and forwarded to the driver
* Extension exposed and no-op'ed (Mali)
* Extension not exposed (ARM)
Bug: angleproject:7664
Change-Id: Idca7bb609423366779a65cd65093c9d5a65f0c19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241483
Reviewed-by: Brian Ho <hob@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
734cf7ce
|
2023-01-16T20:32:35
|
|
Revert "DisplayEGL should support targeting specific EGL platforms"
This reverts commit 01c641d58c7b4e4809163e48f570145af89c4acc.
Reason for revert: Failing initialization on ChromeOS Kevin and possibly others.
Bug: b/265600434
Original change's description:
> DisplayEGL should support targeting specific EGL platforms
>
> DisplayEGL should use the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
> value, if provided, to target specific platforms when constructing the
> native EGL display.
>
> The value is retrieved from the display attributes map and propagated
> to FunctionsEGL::initialize(). If non-zero, and if the
> eglGetPlatformDisplayEXT entrypoint is successfully loaded, then a
> display object for the desired EGL platform is retrieved.
>
> Bug: angleproject:7942
> Change-Id: I3d8dd70c4c5c80259ae647dce039cfe741b0cf7d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152531
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:7942
Change-Id: Ic9466f8ab7354fd14cbee74dcc454df07b568664
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4168456
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
01c641d5
|
2023-01-10T14:54:45
|
|
DisplayEGL should support targeting specific EGL platforms
DisplayEGL should use the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
value, if provided, to target specific platforms when constructing the
native EGL display.
The value is retrieved from the display attributes map and propagated
to FunctionsEGL::initialize(). If non-zero, and if the
eglGetPlatformDisplayEXT entrypoint is successfully loaded, then a
display object for the desired EGL platform is retrieved.
Bug: angleproject:7942
Change-Id: I3d8dd70c4c5c80259ae647dce039cfe741b0cf7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152531
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.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>
|
|
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>
|
|
f37a32f0
|
2022-11-14T14:11:06
|
|
Remove DisplayGbm and SurfaceGbm.
The Gbm classes were used to emulate WindowSurfaces on ChromeOS for
testing. These emulated features are not used in any shipping
configuration and cause issues because ANGLE opens drm devices
uneccessarily.
Bug: chromium:1344962
Change-Id: If564e40744f7825035bbbd63c141b154c534ed72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023096
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Brian Ho <hob@chromium.org>
|
|
5b7113b6
|
2022-09-21T10:05:42
|
|
EGL: Implement EGL_EXT_device_drm and EXT_device_drm_render_node
These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
Add the needed infrastructure to the EGL backend to support device
queries and expose the extensions there.
In the future we will want to support the extensions on Vulkan as well,
however unfortunately this is not trivial, so leave it out for now.
Bug: angleproject:7686
Change-Id: I0a54bf58dbaa9e87c8baac760cb9ac9027fea4c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964272
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
67915fb4
|
2022-09-19T15:08:54
|
|
Reland "Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers""
This is a reland of commit f53eac299fb2e0083fa386af1f04038b32faebe4
New changes:
- Disable the extension on old proprietary Mali drivers
Original change's description:
> Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"
>
> This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64
>
> New changes:
> - fail softly on buggy drivers (which are part of the CI)
>
> Original change's description:
> > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
> >
> > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
> > the previously missing bits. Inspired by the corresponding Vulkan
> > implementation.
> >
> > The extension is used by an upcoming Exo feature which was successfully
> > tested with this patch, see
> > https://chromium-review.googlesource.com/c/chromium/src/+/3857556
> >
> > Bug: angleproject:7664
> > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: angleproject:7664
> Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664
Change-Id: I1f4cf04eb725d789d3dadb35fb6e59b0d3e470a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949029
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
219af5de
|
2022-10-11T18:05:47
|
|
Revert "Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers""
This reverts commit f53eac299fb2e0083fa386af1f04038b32faebe4.
Reason for revert: Suspected of causing problems on kevin
devices again.
Original change's description:
> Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"
>
> This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64
>
> New changes:
> - fail softly on buggy drivers (which are part of the CI)
>
> Original change's description:
> > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
> >
> > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
> > the previously missing bits. Inspired by the corresponding Vulkan
> > implementation.
> >
> > The extension is used by an upcoming Exo feature which was successfully
> > tested with this patch, see
> > https://chromium-review.googlesource.com/c/chromium/src/+/3857556
> >
> > Bug: angleproject:7664
> > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: angleproject:7664
> Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664
Change-Id: I2ffc508ea4cc9e95055084fed4f63a52d9afdbd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3946903
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f53eac29
|
2022-09-19T15:08:54
|
|
Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"
This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64
New changes:
- fail softly on buggy drivers (which are part of the CI)
Original change's description:
> EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
>
> This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
> the previously missing bits. Inspired by the corresponding Vulkan
> implementation.
>
> The extension is used by an upcoming Exo feature which was successfully
> tested with this patch, see
> https://chromium-review.googlesource.com/c/chromium/src/+/3857556
>
> Bug: angleproject:7664
> Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664
Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0a288f29
|
2022-09-30T18:25:04
|
|
Revert "EGL: Stop announcing EGL_EXT_image_dma_buf_import_modifiers"
This reverts commit 11ac69d0a4942a0bbbf71193c10a39eb054d1448.
Reason for revert: Breaks ChromeOS tests crbug.com/1368287
Original change's description:
> EGL: Stop announcing EGL_EXT_image_dma_buf_import_modifiers
>
> The extension was enabled in
> https://chromium-review.googlesource.com/c/angle/angle/+/2128190 without
> implementing the required functions, `DisplayImpl::queryDmaBufFormats`
> and `DisplayImpl::queryDmaBufModifiers`, resulting in crashes.
>
> Bug: angleproject:7664
> Change-Id: Ifbb0a182171646df8161f6f42eafe2a476fea6b2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3902321
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664
Change-Id: Idfeecffc18bebfbda5256ad510ee0c60aeb1338f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3930547
Reviewed-by: Roman Lavrov <romanl@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Roger Tawa <rogerta@chromium.org>
|
|
5c995ef3
|
2022-09-28T08:06:13
|
|
Revert "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"
This reverts commit 1d8dce2587a23b59f911c801856372996bdb2f64.
Reason for revert: causes test failures on chromeos kevin bot b/248404756
Original change's description:
> EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
>
> This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
> the previously missing bits. Inspired by the corresponding Vulkan
> implementation.
>
> The extension is used by an upcoming Exo feature which was successfully
> tested with this patch, see
> https://chromium-review.googlesource.com/c/chromium/src/+/3857556
>
> Bug: angleproject:7664
> Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664,b/248404756
Change-Id: Ib46d3ca76ce575be593dfa5322315621fb006158
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924955
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
3cfea56c
|
2022-09-21T13:55:02
|
|
Avoid ANGLE formats on dmabuf-backed EGL images
DrmFourCCFormatToGLInternalFormat can return ANGLE-internal formats
that are only used on the Vulkan backend. This CL adds special logic
to dmabuf-backed EGL images to convert those formats back to GL_RGB8.
Bug: chromium:1353374
Change-Id: Id270d3d47d289620730c522d2e29d7fc67dc8321
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3911355
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
|
|
1d8dce25
|
2022-09-19T15:08:54
|
|
EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
the previously missing bits. Inspired by the corresponding Vulkan
implementation.
The extension is used by an upcoming Exo feature which was successfully
tested with this patch, see
https://chromium-review.googlesource.com/c/chromium/src/+/3857556
Bug: angleproject:7664
Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
11ac69d0
|
2022-09-16T15:40:17
|
|
EGL: Stop announcing EGL_EXT_image_dma_buf_import_modifiers
The extension was enabled in
https://chromium-review.googlesource.com/c/angle/angle/+/2128190 without
implementing the required functions, `DisplayImpl::queryDmaBufFormats`
and `DisplayImpl::queryDmaBufModifiers`, resulting in crashes.
Bug: angleproject:7664
Change-Id: Ifbb0a182171646df8161f6f42eafe2a476fea6b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3902321
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
79aa846e
|
2022-08-17T13:40:33
|
|
Reland "Not recreate Framebuffer for eglMakeCurrent() call"
This is a reland of commit bf9c815263455403e587a9d2b0fdb9fb8e964208
Original change's description:
> Not recreate Framebuffer for eglMakeCurrent() call
>
> Right now, in eglMakeCurrent() call, ANGLE always release the
> default framebuffer object associated to the current context,
> and create a new default framebuffer object for the new current
> context. It impacts chrome performance, since chrome call
> eglMakeCurrent() a lot. With this CL, the default framebuffer
> will be created with gl::Context. When the surface is changed
> by eglMakeCurrent() call, ANGLE will detach the previous surface
> from the associated framebuffer, and attach the new surface to
> the next current context's default framebuffer.
>
> Bug: chromium:1336126
> Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1336126
Change-Id: Iade19004a4335ac7bc6ca176a3c14d34afff8c9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877405
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
02e8497f
|
2022-09-07T01:12:31
|
|
Revert "Not recreate Framebuffer for eglMakeCurrent() call"
This reverts commit bf9c815263455403e587a9d2b0fdb9fb8e964208.
Reason for revert: compile errors
https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/1303510/overview
Original change's description:
> Not recreate Framebuffer for eglMakeCurrent() call
>
> Right now, in eglMakeCurrent() call, ANGLE always release the
> default framebuffer object associated to the current context,
> and create a new default framebuffer object for the new current
> context. It impacts chrome performance, since chrome call
> eglMakeCurrent() a lot. With this CL, the default framebuffer
> will be created with gl::Context. When the surface is changed
> by eglMakeCurrent() call, ANGLE will detach the previous surface
> from the associated framebuffer, and attach the new surface to
> the next current context's default framebuffer.
>
> Bug: chromium:1336126
> Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1336126
Change-Id: I7c07f62236f57523b29c536c04f9a9de79da2f4b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877404
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
bf9c8152
|
2022-08-17T13:40:33
|
|
Not recreate Framebuffer for eglMakeCurrent() call
Right now, in eglMakeCurrent() call, ANGLE always release the
default framebuffer object associated to the current context,
and create a new default framebuffer object for the new current
context. It impacts chrome performance, since chrome call
eglMakeCurrent() a lot. With this CL, the default framebuffer
will be created with gl::Context. When the surface is changed
by eglMakeCurrent() call, ANGLE will detach the previous surface
from the associated framebuffer, and attach the new surface to
the next current context's default framebuffer.
Bug: chromium:1336126
Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ba87b195
|
2022-09-01T13:38:17
|
|
OpenGL: Pass EGL_GL_COLORSPACE_KHR to OGL backend
When we create NativeBufferImageSiblingAndroid, the attributes is lost,
which caused a few AHB tests failed. This CL ensures we pass the
EGL_GL_COLORSPACE_KHR attribute to NativeBufferImageSiblingAndroid and
OpenGLES backend now passes.
Bug: b/205995945
Change-Id: I5a0a9dc1d34dbc0167890791b397c3c83b0adef4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3869368
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
f18b6335
|
2022-08-29T11:53:01
|
|
Replace std::this_thread::get_id() use with a unique thread id.
std::this_thread::get_id() gets recycled. It's pthread_self()
under the hood on Linux and Android which gets recycled, for
example when one thread terminates and another one starts
it is likely to return the same value.
Bug: angleproject:7602
Change-Id: I83d818bc17ead5cce8bce7f7d88fc1c7c0fa860c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855041
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44791792
|
2022-08-12T00:13:45
|
|
Use angle::FlatUnorderedSet for ImageSibling::mSourcesOf
As my test with Chromium on Android, ImageSibling::mSourcesOf only
contains one item, so change it to angle::FlatUnorderedSet with
default size 2.
Bug: chromium:1336126
Change-Id: Ie1ba3ebb195170ad5c9f4713b599a91de5052702
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828444
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6b248a68
|
2022-08-06T10:20:41
|
|
Use angle::FastVector in ImageEGL::initialize to avoid heap allocation
Bug: chromium:1336126
Change-Id: I40349c618b648f3a96c19b2f2b032275af90086b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812564
Auto-Submit: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0d5ba4dc
|
2022-08-05T19:43:54
|
|
Minor performance improvement
Use angle::FixedVector to replace std::vector in SyncEGL::initialize()
Use std::move() to avoid copy in Display::destroyInvalidEglObjects
Bug: chromium:1336126
Change-Id: If4c13babb14ed9995caf3c3dd3cfc362124b24cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812561
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc6b747d
|
2022-01-10T17:01:30
|
|
EGL: Fallback to native device if no display available
On some Google-internal platforms, eglGetDisplay() fails. The
EXT_device_enumeration extension is the recommended way to initialize
an EGL display on these platforms.
Bug: chromium:1276086
Change-Id: I68969c19d643a46e8362ae265b1115b18ca3bbc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3378824
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b6e2e8a0
|
2021-11-16T13:13:14
|
|
GL: Fix share groups for display texture sharing.
Chrome uses display-level texture share groups for WebGL contexts. When
this extension is in use, make sure all internal contexts are created in
the same share group.
Bug: chromium:1268830, chromium:1268389, chromium:1268218
Change-Id: I3925dffb9bb23fbbc7adcd3bee8cd62323b993e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285213
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d2c01d2c
|
2021-09-17T12:57:14
|
|
GL: Allow selecting virtualization groups at context creation
Rewrite EGL_ANGLE_platform_angle_context_virtualization to
EGL_ANGLE_context_virtualization, changing the context virtualization
parameter to an identifier for what virtualization group the frontend
context should be added to.
This allows ANGLE's GL backend to be used by multiple threads if the
user creates contexts with different virtualization groups.
Bug: angleproject:6406
Change-Id: I7414d4705ce10bdf63a9b824043d5dd040dad875
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169193
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4e22c2c3
|
2021-01-19T12:42:38
|
|
EGL: Merge DisplayAndroid/Gmb into DisplayEGL.
These classes classes have a lot of duplicated code for no reason.
DisplayGmb still needs more work.
Bug: angleproject:5563
Change-Id: Ia3d3d7f0bd7c03b4ac1aece4369c49118426b9de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140498
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
458389f2
|
2021-09-02T22:41:40
|
|
Vulkan: Support Linux dma-bufs
This change adds support for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers on top of Vulkan's
VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier.
Bug: angleproject:6248
Change-Id: I581987f88e9ddcf351dc721f499f63912dca05f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e1bc8de3
|
2021-09-08T07:59:37
|
|
Change links from 'master' to 'main' branch.
Bug: chromium:1226949
Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8bb3c827
|
2021-07-22T19:06:40
|
|
Fix Multithreaded eglDestroyContext()/eglTerminate()
The following EGL calls can lead to a crash in eglMakeCurrent():
Thread A: eglMakeCurrent(context A)
Thread B: eglDestroyContext(context A)
B: eglTerminate() <<--- this release context A
Thread A: eglMakeCurrent(context B)
The eglMakeCurrent(context B) call will assert when attempting to
unMakeCurrent(), since thread A doesn't know that context A was already
destroyed by thread B.
To fix this:
1.) A Context will only be released once there are no Threads that
currently have a reference to it (no longer have the Context current).
- Context::mIsCurrent is being removed, since it was inaccurate and not
thread-safe. For example, when eglTerminate() was called, the
eglTerminate()'ing-Thread would "steal" the Context that was current on
another Thread to destroy it.
2.) A Display will only be fully terminated and its resources released
once all Contexts have been destroyed and are no longer current.
Otherwise, Display::terminate() will return if any Contexts are still in
use by a Thread.
EGL 1.5 Specification
3.2 Initialization
If contexts or surfaces, created with respect to dpy are current (see
section 3.7.3) to any thread, then they are not actually destroyed
while they remain current. If other resources created with respect to
dpy are in use by any current context or surface, then they are also
not destroyed until the corresponding context or surface is no longer
current.
With this fix, the app com.netmarble.sknightsmmo can start.
This also exposed an issue with GlslangFinalize(), since glslang can
only be initialized/finalized once per process. Otherwise, the
following EGL commands will call GlslangFinalize() without ever being
able to GlslangInitialize() again, leading to crashes since
GlslangFinalize() cleans up glslang for the entire process.
dpy1 = eglGetPlatformDisplay() |
eglInitialize(dpy1) | GlslangInitialize()
dpy2 = eglGetPlatformDisplay() |
eglInitialize(dpy2) | GlslangInitialize()
eglTerminate(dpy2) | GlslangFinalize()
eglInitialize(dpy1) | isInitialized() == true
Since Display::isInitialized() == true, the rest of
Display::initialize() is skipped and GlslangInitialize() is not called.
Later, the next test that attempts to compile a program will crash due
to glslang no longer being initialized.
Finally, this exposed the following tests leaking EGLContext handles:
- EGLSurfaceTest::initializeContext()
- EGLContextSharingTest.DisplayShareGroupContextCreation
- EGLCreateContextAttribsTest.IMGContextPriorityExtension
- EGLMultiContextTest.TestContextDestroySimple
Other tests were failing to reset the context, preventing the Display
from being terminated since there were still references to Contexts
owned by the display:
eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
Bug: angleproject:6208
Bug: angleproject:6304
Bug: angleproject:6322
Test: EGLContextSharingTest.EglTerminateMultiThreaded
Test: EGLContextSharingTestNoFixture.EglDestoryContextManyTimesSameContext
Test: Load com.netmarble.sknightsmmo
Change-Id: I160922af93db6cabe0ed396be77762fa8dfc7656
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046961
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
de09f8db
|
2021-09-02T18:21:37
|
|
Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY"
This reverts commit 4b5a774e855af2493d64b0635f56053bd795c5c5.
Reason for revert: broken on iOS and Skia
Original change's description:
> GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
>
> Bug: angleproject:3020
> Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:3020
Change-Id: I54d81a7b734d007f65ff97990008f5e6eb8536f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140453
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4b5a774e
|
2020-04-03T14:56:36
|
|
GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
Bug: angleproject:3020
Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f3bccd9d
|
2021-08-26T18:04:13
|
|
Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY"
This reverts commit 8d7f4cc986778bfff0b242dbea6083346da6c54d.
Reason for revert: Broke CrOS build.
Original change's description:
> GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
>
> Bug: angleproject:3020
> Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:3020
Change-Id: I0930c1bdb5356d533fae563428893aa8a9f91a52
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123266
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
8d7f4cc9
|
2020-04-03T14:56:36
|
|
GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
Bug: angleproject:3020
Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6136620b
|
2021-03-25T15:43:06
|
|
Reland "EGL: GLES: Implement GL_EXT_protected_textures"
This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa
This removes changes in gl backend.
Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c408926f
|
2021-07-22T12:00:59
|
|
Revert "EGL: GLES: Implement GL_EXT_protected_textures"
This reverts commit 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa.
Reason for revert: Suspected for breaking ANGLE->Chrome roller.
Bug: angleproject:6204
Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3965
Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
6210a9b3
|
2021-03-25T15:43:06
|
|
EGL: GLES: Implement GL_EXT_protected_textures
Implement EGL_EXT_protected_content Images
Add protected member to Images and Textures
Add error when creating objects if not supported or
does't match native buffer
When creating siblings pass protected state
Add extension caps
Add Validation
Add GetTexParameter and SetTextparameter
Add protected to Texture and state
Expand tests for images and textures
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
22fc9523
|
2021-02-03T15:32:48
|
|
EGL: implement EGL_EXT_buffer_age
Add extension flag.
Add Validation check to surface query.
Enable extension for vulkan.
Modify AcquireNextImage to ++frame count and tag images
with frame number.
Buffer age is the difference between current frame count
and the tagged frame number on the buffer.
getBuffeAge may need to trigger AcquireNextImage to be current.
Pass through egl extension and query.
Add EGLBufferAgeTest
Test: angle_end2end_test --gtest_filter=EGLBufferAgeTest
Test: angle_deqp_egl_tests
--deqp-case=dEQP-EGL.functional.buffer_age.*
Bug: angleproject:3529
Change-Id: I0cb94be1c3e85d6f33e82a6a1ccdc9731b6a7f23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2684724
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
73afaf1e
|
2021-02-26T18:08:08
|
|
Add EGL_WINDOW_BIT to all Ozone configs' EGL_SURFACE_TYPE
Ozone's EGL windows are emulated, so we can always create one,
thus setting EGL_WINDOW_BIT in all configs is safe.
This is now required because in http://crrev.com/c/2378922
EGL_WINDOW_BIT becomes a requirement to be able to run tests.
Previously Ozone's configs copied native EGL_SURFACE_TYPE,
which was either 0 or having just EGL_PBUFFER_BIT.
Bug: chromium:1181952, chromium:1034840
Change-Id: Ic2b14b43b3c32b47ea05d9d8da9fba7439f14d19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2725273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2d3402eb
|
2021-02-18T09:05:02
|
|
Revert "EGL: Merge DisplayAndroid into DisplayEGL."
This reverts commit 2cb6671534ddc6efe9664a2fb30be2b2fb13c8ef.
Reason for revert: Make DisplayGbm fail to compile. See: https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-compile-dbg/636833/overview
Original change's description:
> EGL: Merge DisplayAndroid into DisplayEGL.
>
> These two classes have a lot of duplicated code for no reason.
>
> Bug: angleproject:5563
> Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:5563
Change-Id: Ic39071130727b37cc2a168d4b8e3c50f3e7184a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704051
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
2cb66715
|
2021-01-19T12:42:38
|
|
EGL: Merge DisplayAndroid into DisplayEGL.
These two classes have a lot of duplicated code for no reason.
Bug: angleproject:5563
Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
393c44f1
|
2021-02-01T15:45:24
|
|
EGL: Trim requested config parameters to EGL.
ANGLE requests a config with several uneccessary parameters.
I suspect these parameters are causing issues in the wild
where eglChooseConfig fails.
Try requesting ES3 then fall back to ES2 configs.
Skip config caveats, floating point configs and multisample
configs, we provided the default parameters.
The resulting config is very similiar to the one Chrome
requests in gl_surface_egl.cc
Bug: chromium:1173161
Change-Id: Ifa78ff8081e3d86e823036981e1e2b5f8f751fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665888
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
4968f6f2
|
2021-02-04T16:40:36
|
|
Move getRendererDescription from ContextImpl to DisplayImpl
The other backend description strings are in DisplayImpl. This will
help with caching the result of glGetString in the GL backend. Also
Update the getters to not be const in order to allow caching.
Bug: chromium:1173672
Change-Id: I43df35688762b23429f47f169c04482cf4cd089a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676881
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e174c358
|
2021-02-04T15:14:10
|
|
GL: Consolidate glGetString calls
First step for cacheing the result of glGetString calls is mostly
cleanup.
Bug: chromium:1173672
Change-Id: I47281a09b9bd5859655d16376977a6eabcfbb3c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676203
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0be050a4
|
2020-09-23T15:12:56
|
|
Pass GL_VERSION info through ANGLE's GL_RENDERER string
Chrome needs ANGLE to pass through the underlying driver vendor and
version, which cannot always be determined by the SystemInfo library.
This is done by construction GL_RENDERER in the frontend through
combining GL_VENDOR, GL_RENDERER, and GL_VERSION from the backends.
Example changes are in the doc:
https://docs.google.com/document/d/1p0dvrLlu8NKhO-RCU5gqlQ_LvcQj-ZqhvfwSk1n3Sz8/edit?usp=sharing
Bug: chromium:1126526
Bug: chromium:1131248
Bug: chromium:1134669
Bug: chromium:1169861
Change-Id: Ia618ebcd7f3caaeb376b4b6a03446732efdaeecb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427383
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
df33d561
|
2021-01-19T11:42:35
|
|
EGL: Respect eglMakeCurrent with a null context.
Our context virtualization code would try to optimize this case
and leave the current context bound when possible. This has the
side effect of leaving the current surface bound too, even if
it was deleted.
During Chrome's window resizing, it deletes the window, calls
eglMakeCurrent with null and then recreates the window. This
causes an error because the window still exists because it was
left current in ANGLE.
Bug: chromium:1167718
Change-Id: I857be88be48dfa9c0dd9173f235e155e727e3014
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2637717
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2ebff7f2
|
2021-01-20T08:39:40
|
|
Support switch surfaces for external context.
WebView may change surfaces due to resizing. So we need to support
switching surfaces with the external context.
Bug: angleproject:5509
Change-Id: Id91eed092a63b3740fd796e0a3cb819ae18baaa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2639077
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
043fcf18
|
2021-01-07T13:23:57
|
|
Support create ANGLE EGLContext from an external EGLContext
For Android WebView, Android creates an EGLContext, EGLSurface
and FBO, and makeCurrent on them, and then calls WebView draw
function to draw the WebView content on the current EGLSurface or
binded FBO. So to use ANGLE in WebView, this CL adds a way to
create ANGLE EGLContext from an external EGLContext, and save
and restore GL state in eglMakeCurrent().
Bug: angleproject:5509
Change-Id: I874986813117f125e23e975ea1adc51ac5b3a631
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615239
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
6e9018bd
|
2020-06-25T12:58:14
|
|
GL: Clean up Display code related to multithreading
Rename mCurrentData to mCurrentNativeContexts, and clean up some logic
to be easier to read.
Bug: angleproject:4724
Change-Id: I6fd6d99d4f9a3af808d0baa665edfbdde7fb0500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
108b759e
|
2020-12-04T15:15:49
|
|
EGL: Update EGL headers/xml
The new EGL headers introduced 'EGL_NO_X11' which we could use
for ANGLE vulkan display/headless backend.
Changes in CL:
1. Updated include/EGL/egl*.h and scripts/egl.xml based on latest
EGL repo: https://github.com/KhronosGroup/EGL-Registry
Note: local modifications to the file were preserved in
eglext.h, search keyword 'eglext_angle.h' for detail
2. run scripts to update entry_points/loader
scripts/generate_entry_points.py
scripts/generate_loader.py
scripts/run_code_generation.py
3. Update ANGLE code on API 'eglSwapBuffersWithDamage'
4. Format with 'git cl format'
Bug: angleproject:5260
Change-Id: I70ed0dccecf0426929ef8b4775605554d66c5724
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576314
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c859c0ac
|
2020-11-24T17:21:38
|
|
Batch replace std::unordered_map with angle::HashMap in src/
There are a few places that will remain std::unordered_map due to build
or run-time errors, which will need to be evaluated more closely to
determine if they should remain std::unordered_map or if there is
another Abseil data structure that would be more efficient while still
working correctly.
Bug: angleproject:4873
Change-Id: Ib04253e3ad6398e63f4cc2bfe12c0f9e57cb112b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558873
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
56663dbf
|
2020-11-19T21:21:19
|
|
EGL: Expose device query as a client extension.
This matches the extension spec. Previously we were exposing the ext
as a normal display extension. The extension should work without
needing a display.
Because the extension requires a non-null device for every display we
also add a MockDevice class to handle back-ends which don't implement
any attribute query extensions. By default the device query ext does
not expose any way to use devices so this works fine.
Bug: angleproject:5372
Change-Id: I474310a86aff6a83bd6f9a6b21c8a07c649f306d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551543
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b419533
|
2020-11-03T13:33:44
|
|
GL: Implement EXT_YUV_target
Add test coverage of YUV format sampling as RGB or directly as YUV and
rendering as YUV using layout(yuv).
Initializing YUV AHardwareBuffers requires Android API 29 so ANGLE must
be compiled with:
android32_ndk_api_level = 29
android64_ndk_api_level = 29
The following tests can still run with Android API 26 because they don't
need to initialize the buffer:
ImageTestES3.ClearYUVAHB
ImageTestES3.YUVValidation
Bug: angleproject:4852
Bug: b/172649538
Change-Id: I4fe9afb2a68fb827dc5a5732b213b5eb60d585ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2517562
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
96a49a48
|
2020-10-06T13:34:09
|
|
GLX, EGL: Support NV_robustness_video_memory_purge
Chrome is showing rendering issues on Linux/Nvidia after returning from
the lock screen. This could be related to the fact that Nvidia drivers
are not able to guarantee conformance after certain events.
By exposing this extension, we can instruct Chrome to reinitialize
contexts after they are purged by the driver. If this is not explicitly
requested, we can still generate an UnknownContextReset to tell apps
to discard the invalid context anyway.
Bug: chromium:1113040
Change-Id: Ie99b6356cc27fea33643d61b1d74f4f68a271d70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453689
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
08142700
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: If08626a5310f9b4e3210e1a897a6886248e4d8ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451423
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
da61c40e
|
2020-10-06T01:57:55
|
|
Revert "Work-around test runner & DebugAnnotator"
This reverts commit e44c94d96a9b65615fe8f5038e124763ac8c45e5.
Reason for revert: Breaks build of DisplayGbm on ChromeOS:
src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.{h,cpp}
First failing builds:
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28amd64-generic%29/1608
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28kevin%29/2212
Original change's description:
> Work-around test runner & DebugAnnotator
>
> Note: This precedes another CL that needs this change.
>
> DebugAnnotator uses a global variable. The test runner doesn't change
> state between testing different back-ends. This works-around the
> problem by setting the global variable when the context is switched.
>
> Because the GL back-end doesn't have its own DebugAnnotator sub-class,
> add a Display* to DisplayImpl::makeCurrent(), so that
> DisplayGL::makeCurrent() can install the front-end-Display's
> DebugAnnotator.
>
> Note: the Vulkan back-end gets this fix even though the new
> DebugAnnotatorVk class will be added in a follow-on CL.
>
> Bug: b/162068318
> Bug: b/169243237
> Bug: angleproject:5121
> Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
TBR=courtneygo@google.com,ianelliott@google.com,jmadill@chromium.org
Change-Id: I99df2716951726ead24961dc3d27a7ec63aeda80
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451420
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
e44c94d9
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
e815afbf
|
2020-09-07T22:09:22
|
|
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
|
|
c99c22bb
|
2020-09-15T16:53:26
|
|
EGL: Add support for EGL_ANDROID_create_native_client_buffer
This EGL extension will add support for creating EGLClientBuffer
backed by an Android window buffer (struct ANativeWindowBuffer)
which can be later used to create an EGLImage.
Bug: angleproject:5018
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceNativeClientBufferTarget*
Change-Id: If78ed7b80ad09629b8c5f5b5a0eb07a548e82e6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404320
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
b328e044
|
2020-09-16T10:30:05
|
|
EGL: Add another config for Mali
Test: angle_end2end_tests
Bug: angleproject:5053
Change-Id: I7aef6b5babe8f582e7500464f53e65721eaf0520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2414733
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4cf2501c
|
2020-07-27T13:19:27
|
|
Add extension EGL_ANGLE_display_semaphore_share_group
For sharing semaphores globally.
Bug: angleproject:4877
Change-Id: I472e0902fd04ca8350d74e6c0ae6925ee930ccf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2319370
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f359cb66
|
2020-07-02T15:15:54
|
|
Reland: Refactor DisplayGbm::generateConfigs
We should explicitly set EGL_SURFACE_TYPE to EGL_DONT_CARE.
Otherwise, it's default value is EGL_WINDOW_BIT. However,
on some platforms, only EGL_PBUFFER_BIT is supported.
In this case, no matching config is found. So mWindowSurface
and mPbufferSurface will be nullptr. That's why we see
the bot failed.
Bug: chromium:1105208
Change-Id: I8ee2487fd24bab86a5ec22fbe7b8ff68081bc15c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2304429
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
074bc23f
|
2020-07-21T18:11:57
|
|
Implement DRM_FORMAT to GL format conversion
Bug: chromium:1096442
Change-Id: I79722073bd1f2674b40e7eaa8d5311a09bc36416
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2309636
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
66d85686
|
2020-07-13T21:25:40
|
|
Revert "Refactor DisplayGbm::generateConfigs"
This reverts commit 7d82d29398cc9106af5204f9df3525660ffe2866.
Reason for revert: Suspect CL failing on Linux FYI Ozone
Original change's description:
> Refactor DisplayGbm::generateConfigs
>
> Bug: angleproject:4809
> Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
TBR=geofflang@chromium.org,jiajia.qin@intel.com,jmadill@chromium.org
Change-Id: I62c8a6a78d1ccfe8aa63bea7a9409229cd0059ab
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4809, chromium:1105208
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2296041
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
|
|
7d82d293
|
2020-07-02T15:15:54
|
|
Refactor DisplayGbm::generateConfigs
Bug: angleproject:4809
Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|