src/libGLESv2/egl_ext_stubs.cpp


Log

Author Commit Date CI Message
Antonio Caggiano 2fb58a95 2022-02-15T15:40:23 Re-land: "Vulkan: GBM platform" Add support for GBM platform by implementing a Display with no WSI extension. Re-land fixes build script, including GBM Vulkan backend whenever ozone platform GBM is enabled. Bug: angleproject:7217 Change-Id: Icbf2d034b700e22ab4c351e479f472d65d832ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3637562 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 0db4c39b 2022-05-09T20:02:58 Revert "Vulkan: GBM platform" This reverts commit 825d5b2c59b463253c82262a0c50f75d28860db4. Reason for revert: Fails link rolling into Chrome crrev.com/c/3635013 https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel/1149608/overview https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-compile-dbg/1013047/overview https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/1189185/overview Original change's description: > Vulkan: GBM platform > > Add support for GBM platform by implementing a Display with no WSI > extension. > > Bug: angleproject:7217 > Change-Id: Ia9089131c5984dfdd926d2f85f1c218df1e84d9a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596042 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7217 Change-Id: Ia8a4ca753a8f18d6a2c607010b5afabf6a78fe9a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636059 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Antonio Caggiano 825d5b2c 2022-02-15T15:40:23 Vulkan: GBM platform Add support for GBM platform by implementing a Display with no WSI extension. Bug: angleproject:7217 Change-Id: Ia9089131c5984dfdd926d2f85f1c218df1e84d9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596042 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 1c4c9fe9 2022-04-28T15:38:22 Capture/Replay: Fix formatting These unrelated changes were created by running "git cl format" Bug: None Change-Id: I5a263818c3a94c40993312716d5782c5b9beb595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613909 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 01811839 2022-03-17T15:08:38 Refactor platform code Use switch constructs instead of if-else to allow reuse of code and simplify addition of other platforms as new cases. Bug: angleproject:6902 Change-Id: Ia941d0d7bc03538bbc8d96ebece60224994a6c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3532260 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Commit-Queue: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 0f3710d9 2022-03-16T14:30:17 Generalize GetDisplayFromNativeDisplay Add a platform parameter to this function to possibly accept other platforms besides EGL_PLATFORM_ANGLE_ANGLE. Bug: angleproject:6902 Change-Id: I90bd9cf2e8142ca0e656dee4bf687953515b71a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3528757 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kimmo Kinnunen 9637185c 2022-03-10T15:38:13 Add ForceGPUSwitch to EGL_ANGLE_power_preference eglHandleGPUSwitch() does not work with WebKit sandbox profile. The root cause is that we do not know the primary display, and as such we do not know which GPU drives this. Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow). This lets the caller figure out the GPU in another process. Then the caller can just set the GPU in the sandboxed process. Add tests that are disabled by default until the runner and the infrastructure supports running the tests with automatic switching enabled. Bug: angleproject:7092 Change-Id: I316ee431156596effbdb89659a5e24291719a204 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Constantine Shablya e74d0e81 2022-02-11T18:05:12 Vulkan: Implement EGL_KHR_partial_update This change provides a trivial implementation of partial update that does nothing, making apps that want this extension happy. A possible efficient Vulkan implementation would use the damage set to narrow down render area, but it appears to only be useful for only some TBDR hardware. Bug: angleproject:6960 Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Change-Id: Ic553ac9590c336093f1bf25a6521574622599bf6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427640 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 47977b0e 2022-03-01T15:24:51 EGL: Validate and implement dmabuf extensions Add validation and default implementation of dmabuf extensions. Actual implementation should be defined by concrete Display subclasses. Bug: angleproject:7065 Change-Id: Ie8d7081f7bcb065c809a52a42abdb7af0e75c816 Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com> Signed-off-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497840 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 2a9c4b01 2022-02-10T11:33:32 dEQP: Enable CreateSurfacePlatformEXT tests Add the corresponding capability to NativeWindow and implement getPlatformExtension virtual method to return a native pointer that can be used with eglCreatePlatformWindowSurfaceEXT(). Bug: angleproject:6961 Change-Id: Ieb1a1fd8b3cae4e6f199c269f3922cbd0307aa35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452102 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano b92ebdb7 2022-02-24T12:23:09 EGL: Add code-gen for dmabuf extensions Add code-gen for EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers. Bug: angleproject:7065 Change-Id: Ib1bd2a881f11e96b1e7e5128975bdba3bdc41e0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495122 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano f762cb1b 2022-01-05T20:33:06 EGL: CreatePlatformWindowSurfaceEXT Implement CreatePlatformWindowSurfaceEXT just like CreatePlatformWindowSurface in egl_stubs.cpp taking into account that native window for X11 should be Window* instead of Window. Bug: angleproject:6961 Change-Id: Ic129bd3e9dd264fdee12b062b5b422a9a6012dd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427425 Reviewed-by: Jeff Vigil <jvigilsamsung@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Constantine Shablya 3f0a28ba 2022-02-11T16:18:37 Add entry points for EGL_KHR_partial_update Bug: angleproject:6960 Change-Id: If248b7ef5ebacd7dfb8c612e5a9106ba0060282e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3455787 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang 926b43e7 2022-01-06T13:31:54 Reland: Frontend: separate lock in swap prep Swapchain-based backends like Vulkan might block a lot in vkAcquireNextImageKHR, which is bad for overall fast progress if we also hold the global EGL lock there. This CL starts to split the global EGL lock. We release the EGL lock when performing vkAcquireNextImageKHR, and only maintain a lock for surfaces. This is done via a new custom entry point, EGL_PrepareSwapBuffers, so that we can control how the global lock is used throughout the entire call. Bug: angleproject:6851 Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jamie Madill 9d668d6c 2022-01-07T18:18:23 Revert "Frontend: separate lock in swap prep" This reverts commit 40c5cb255c0a07bdab574aa076ee603e7d791ab3. Reason for revert: Regression in TSAN caused by this CL: https://ci.chromium.org/ui/p/angle/builders/ci/linux-tsan-test/352/overview Original change's description: > Frontend: separate lock in swap prep > > Swapchain-based backends like Vulkan might block a lot in > vkAcquireNextImageKHR, which is bad for overall fast progress if we also > hold the global EGL lock there. > > This CL starts to split the global EGL lock. We release the EGL lock > when performing vkAcquireNextImageKHR, and only maintain a lock for > surfaces. > > Bug: angleproject:6851 > Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Lingfeng Yang <lfy@google.com> Bug: angleproject:6851 Change-Id: Ie03b784021f7b8b5c1ef95a911ef7da4029abd46 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373165 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang 40c5cb25 2022-01-06T13:31:54 Frontend: separate lock in swap prep Swapchain-based backends like Vulkan might block a lot in vkAcquireNextImageKHR, which is bad for overall fast progress if we also hold the global EGL lock there. This CL starts to split the global EGL lock. We release the EGL lock when performing vkAcquireNextImageKHR, and only maintain a lock for surfaces. Bug: angleproject:6851 Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Peng Huang e00ad443 2021-11-15T20:16:16 Add EGL_ANGLE_vulkan_image extension This extension is for exporting VkImage from EGLImage. The VkImage must be used with the same VkDevice used by ANGLE Vulkan backend. Bug: chromium:1264439 Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi 41a8981e 2021-11-21T21:52:37 Use AttributeMap in eglLockSurfaceKHR's validation Bug: angleproject:6062 Change-Id: I0eea431313700b11184265a9ff895417ce4b1d4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295164 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: (use @chromium please) Shahbaz Youssefi <syoussefi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 5eb86d4a 2021-09-21T15:17:04 EGL: EGL_KHR_lock_surface3 frontend Add queries to get locked buffer attributes Add validation for LockSurface, QuerySurface Bug: angleproject:6062 Change-Id: I4919bef2a17d3505cccad08f7c4f8a3ca5d7e4e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174322 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil d3e67716 2021-09-21T15:03:15 EGL: EGL_KHR_lock_surface3 Add new extension KHR__lock_surface3 Add new interfaces for locking and unlocking a surface. Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test Bug: angleproject:6062 Change-Id: Ic40708db4db552107025635540a0c62f956d741e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu 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>
Jamie Madill 3f564fc7 2020-11-23T13:59:17 EGL: Generate entry points. This adds two final auto-generated files for the EGL and EXT extension entry points. It adds a new data file that stores a mapping between object types and entry points for associating labeled objects with certain methods. When we generate errors we record the associated object in the debug message output. This places the remainder of the hand-written code in "stub" files. Going forward the work for implementing new extension entry points for EGL will be to update the registry XML files and then implement the corresponding stub methods. Event logging, parameter packing, and validation are all handled by the auto-generated code. Bug: angleproject:2621 Change-Id: I28153432802c37b929ff2ea1e1a3e3ce9de91605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562680 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>