src/libANGLE/renderer/gl/egl/SyncEGL.cpp


Log

Author Commit Date CI Message
Geoff Lang 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>
Peng Huang 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>
Peng Huang 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>
Geoff Lang 69e46a18 2019-07-03T14:43:32 GL: Implement EGL_ANDROID_native_fence_sync This extension allows Chrome to use ANGLE on newer Android devices. BUG=angleproject:3643 Change-Id: I5456d61749399ca2bbc11cc5e98b9120f8702406 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687121 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 9049d321 2019-03-27T14:08:44 Vulkan: Pass the current context to egl Sync operations. The EGL_KHR_fence_sync spec says that if a flush is needed before waiting on the sync, it's done on the current context for the current thread. This helps simplify the multithreading design, we don't need to worry about flusing on a context that may no longer exist or is executing on a different thread. It does allow infinite waits because the context with the fence is never flushed but the spec allows this. BUG=angleproject:2464 Change-Id: I8bf2f93c408fee2dae95caa5bb9c76ba67687931 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1542256 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 5313c8a8 2019-01-14T17:02:52 Implement EGL_KHR_fence_sync and EGL_KHR_wait_sync EGL_KHR_fence_sync introduces the EGLSync object and associated create/destroy/clientWait functions. EGL_KHR_wait_sync adds the serverWait function on top of that. Bug: angleproject:2466 Change-Id: Iebb239a85c4471ea18b3c3a8a83b793af555e31d Reviewed-on: https://chromium-review.googlesource.com/c/1412261 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>