src/libANGLE/renderer/vulkan/linux


Log

Author Commit Date CI Message
Shahbaz Youssefi 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>
Charlie Lao 1a9a703b 2024-05-21T11:14:40 Vulkan: Add DeviceQueueIndex to Context/BufferHelper/ImageHelper This CL adds a utility class DeviceQueueIndex, which encapsulates queueFamilyIndex and the queueIndex into one integer value so that we can pass around to barrier function. vk::Context and BufferHelper and ImageHelper class now keeps mCurrentDeviceQueueIndex instead of mCurrentQueueFamilyIndex. For All contexts by default it gets the default queue from renderer (which is always the one corresponding to Medium priority). For ContextVk, when priority changes it update mCurrentDeviceQueueIndex to match new context priority. Bug: b/337135577 Change-Id: I62cc483cfdb3e974d38db074e671c57299300074 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5555903 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 914fe61b 2024-03-15T13:20:49 Vulkan: Rename RendererVk.* to vk_renderer.* Done in a separate CL from the move to namespace vk to avoid possible rebase-time confusion with the file name change. Bug: angleproject:8564 Change-Id: Ibab79029834b88514d4466a7a4c076b1352bc450 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370107 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 60aaf4a0 2024-03-14T12:58:56 Vulkan: Move renderer to namespace vk This class is agnostic of EGL. This change moves it to namespace vk for use with the OpenCL implementation Bug: angleproject:8564 Change-Id: I57f7807d6af8b3d5d7f8efbaf8b5d537a930f881 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5371324 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chia-I Wu aea2abc1 2024-03-11T14:59:16 Vulkan: Input attachment requires both texturable and renderable VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT requires VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT. Set VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT only when the external image is both texturable and renderable. Bug: b/280353184 Change-Id: If80712bf3f6074f6c4ade3223a93d803a02d6000 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5362899 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f044aaf8 2024-03-02T00:51:33 Vulkan: Create instance/device without access to Display The feature overrides are now encapsulated in a struct, a reference to which is passed around until features are initialized. Additionally, some window system information needed to decide which extensions to use or workarounds to apply are passed around. This is a step towards decoupling RendererVk from egl::Display for direct use with OpenCL. Bug: angleproject:8564 Change-Id: Id6c5d1c3b38aafcd4397e54cc6cad32bf849eeda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335823 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi aa244358 2024-02-06T14:44:39 Reland "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp" This is a reland of commit 8abbe2836bb49faba8a97e2df59058290e1c385a In the reland, the xcb-util dependency is removed. Original change's description: > Vulkan: Get rid of X11 include in DisplayVkXcb.cpp > > Bug: angleproject:8520 > Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:8520 Change-Id: I238e0a6c3b94398c10fa1bc39c5a0b4261797311 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5292774 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti Ho f431641a 2024-02-07T17:27:51 Revert "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp" This reverts commit 8abbe2836bb49faba8a97e2df59058290e1c385a. Reason for revert: https://chromium-review.googlesource.com/c/chromium/src/+/5274193 Original change's description: > Vulkan: Get rid of X11 include in DisplayVkXcb.cpp > > Bug: angleproject:8520 > Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:8520 Change-Id: I91bdd48d8893cbe3a6eed8058c0034a4ef1aed0a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5276987 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Solti Ho <solti@google.com>
Shahbaz Youssefi 8abbe283 2024-02-06T14:44:39 Vulkan: Get rid of X11 include in DisplayVkXcb.cpp Bug: angleproject:8520 Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Chris Forbes f5f3304a 2024-02-02T16:27:38 Vulkan: Simplify handling of YUV filtering support When the requested filtering mode changes, we need to consider whether it is actually supported by the Vulkan driver. Now that we support renderable YUV textures, there are now three interesting cases: 1) The texture has a VkFormat, and so filtering support can be queried from GPDFP, as was already done. 2) The texture is imported from an opaque AHB using an external format, that format is renderable, and so we have assigned one of the EXTERNALn angle formats. This was *not* covered properly, and would lead to VVL errors or UB. 3) The texture is imported from an opaque AHB using an external format, and we have not assigned an EXTERNALn angle format to it, because the format is not renderable, or the Vulkan driver is missing the external format resolve functionality; In this case the angle format is NONE. This was similarly *not* covered properly, although the code did attempt to protect itself from querying the capabilities of format NONE. VVL errors and UB were still possible. To most simply cover all of these cases, capture whether the image has the VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER feature upfront, and forget about format lookups in the internals of the YcbcrConversionDesc. Bug: b/315387961 Change-Id: Ie140293d52c2b88bf06ef19bc54bb1c95927b8ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259719 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Forbes 6367f541 2024-01-25T10:16:04 Vulkan: supply YcbcrConversionDesc earlier Previously, the AHB import path would allow ImageHelper to build a bogus YcbcrConversionDesc (in initExternal) and then later overwrite it with what it wanted. The intermediate state was not necessarily valid, and could cause assertion failures and VVL errors. Instead, have ImageHelper clients provide the conversion they want upfront. In the non-external case, build an appropriate conversion for formats which need them, before delegating to initExternal. Bug: b/315387961 Change-Id: Icc8f561bb2de0289ceec56d41978b8c4651a47a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5232769 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 929ace8d 2023-09-22T09:59:43 Vulkan: Get queueFamilyIndex from renderer In WindowSurfaceVkWayland::createSurfaceVk, use context->getRenderer()->getQueueFamilyIndex() to get index Bug: angleproject:8353 Change-Id: Ia209c1c8a16ef12e260b0a9d584b50b1a4c95181 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4885341 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Brian Ho d2a6b2a0 2023-08-04T14:15:11 Use offscreen DisplayVk on ChromeOS Currently, we always use DisplayVkHeadless on ChromeOS which can fail if the drivers do not support VK_EXT_headless_surface (like on Intel). At the end of the day, CrOS never really uses Vulkan WSI, so it shouldn't need a WSI extension anyways. This CL introduces a simple DisplayVkOffscreen that requires no WSI. We then configure CrOS to use this new DisplayVk. Bug: b/292249282 Change-Id: I1fcbb48d187eb656c6e03bc7ac7b15ac8ad0a4ae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4752416 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brian Ho <hob@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 86e21fa2 2023-06-12T13:36:21 Vulkan: Refactor angle::Format depth/stencil checks Bug: b/246008627 Change-Id: If0a2992c5bd66adf27c6866aea04e54ba465a522 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608489 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yiwei Zhang e005fbc0 2023-06-08T23:27:27 Vulkan: make GetFormatModifierProperties non-fatal for fallback check DmaBufImageSiblingVkLinux::initWithFormat is used to fallback like: - mutable format + srgb - mutable format + unorm - non-mutable srgb - non-mutable unorm However, it never fallbacks since GetFormatModifierProperties bails.So this change has made it non-fatal to allow fallback behavior. Meanwhile, this change updates the fallback order to use unorm as actual format first to favor most common scenarios. Bug: b/277798516 Change-Id: I60283590d85b27d55010cb2f5a2cc13d4df1ac9c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603208 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Romaric Jodin <rjodin@chromium.org>
Shahbaz Youssefi 5c04f18a 2023-04-24T16:18:24 Vulkan: Remove DisplayVk param from ToEGL It's no longer used Bug: angleproject:3041 Change-Id: I5063152d1598aa5d40d94bbf5c643a1288589037 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470387 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Choi Sungyong 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>
Sungyong Choi 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>
Stephan Hartmann e64c4493 2022-11-07T15:34:38 IWYU: add unistd.h for access in rx::DeviceVkLinux Bug: chromium:957519 Change-Id: Ie23c3ceb6757ac48f2aca97c8c212103c81d4fda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4009019 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Robert Mader dd560015 2022-09-28T14:40:01 Reland "Vulkan: Implement EGL_EXT_device_drm[_render_node]" This is a reland of commit 8900cbf96a3127880b1667d2242dc13a98cfe029 Original change's description: > Vulkan: Implement EGL_EXT_device_drm[_render_node] > > These extensions are needed by Exo for zwp_linux_dmabuf v4 support. > > Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the > information about the filesystem layout, needed by the EGL version. > As ChromeOS is currently the only user, implement the extension only for > Linux where we can reasonably assume `/dev/dri/...` file paths. > > We do not, however, limit us to the GBM backend - having the extension > working in e.g. a nested X11 or Wayland environment is quite helpful. > > Bug: angleproject:7686 > Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7686 Change-Id: I66dfd7aa51f76cb9668dbfbd0f3e1f32123bff7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003941 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 319f8228 2022-11-03T16:58:07 Revert "Vulkan: Implement EGL_EXT_device_drm[_render_node]" This reverts commit 8900cbf96a3127880b1667d2242dc13a98cfe029. Reason for revert: anglebug.com/7811 Original change's description: > Vulkan: Implement EGL_EXT_device_drm[_render_node] > > These extensions are needed by Exo for zwp_linux_dmabuf v4 support. > > Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the > information about the filesystem layout, needed by the EGL version. > As ChromeOS is currently the only user, implement the extension only for > Linux where we can reasonably assume `/dev/dri/...` file paths. > > We do not, however, limit us to the GBM backend - having the extension > working in e.g. a nested X11 or Wayland environment is quite helpful. > > Bug: angleproject:7686 > Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7686 Change-Id: I703351e93c4befbd3415b9ba04730066ee9c6afd No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003857 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Robert Mader 8900cbf9 2022-09-28T14:40:01 Vulkan: Implement EGL_EXT_device_drm[_render_node] These extensions are needed by Exo for zwp_linux_dmabuf v4 support. Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the information about the filesystem layout, needed by the EGL version. As ChromeOS is currently the only user, implement the extension only for Linux where we can reasonably assume `/dev/dri/...` file paths. We do not, however, limit us to the GBM backend - having the extension working in e.g. a nested X11 or Wayland environment is quite helpful. Bug: angleproject:7686 Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil a6edb43f 2022-09-19T07:39:38 Vulkan: Fix native ID for GBM configs Remove default value. EGL_NATIVE_VISUAL_ID for GBM configs is handled in GetNativeVisualID as of commit f54e7ee69c331f0. Bug: angleproject:7667 Change-Id: I4168cdc9b406b7d2383bdc611cb04f3494cdbf59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905525 Commit-Queue: mohan maiya <m.maiya@samsung.com> Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 0c7bf627 2022-09-20T10:45:39 Vulkan: Remove static variable from DisplayVkLinux::queryDmaBufFormats + fix the numFormat/Modifier output not set Bug: angleproject:7664 Change-Id: I300710e3ba12f3fb134af4460ef6235eae3e98fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905327 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Antonio Caggiano a8a04ce1 2022-08-16T17:59:20 Vulkan: Add supportsPresentation feature Some platforms do not support presentation through any Vulkan queue. In this case we should not transition the color image layout to present. Bug: angleproject:7217 Change-Id: I71cad0e52bc1fdb531de5a34e917a1862a4cf070 Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com> Suggested-by: Sungyong Choi <sywow.choi@samsung.com> Suggested-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853598 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi 313884ce 2022-06-30T08:49:08 Vulkan: Move dmabuf extensions support Moves dmabuf support functions from DisplayVkWayland to DisplayVkLinux to support other linux winsys. Bug: angleproject:7480 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Change-Id: I2a36557815b8e5c4bab7ec1d9248989345e536c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735863 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Antonio Caggiano 007a4f06 2022-04-22T11:07:05 Vulkan: Wayland resize callback Handle client resize requests and resize the swapchain accordingly after next buffer swap. Bug: angleproject:6902 Change-Id: I8bd6b0d4efac041606f15eccb6befa28594905b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608089 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 0c46c2d9 2022-05-19T16:16:54 Vulkan: Support DRM_FORMAT_MOD_LINEAR Fix a bug while checking for dmabuf image image format support. The value 0 is used for DRM_FORMAT_MOD_LINEAR, which is perfectly valid. DRM_FORMAT_MOD_INVALID could be used instead for bail out. Bug: angleproject:7065 Change-Id: If8eb366873b8f0fe2fd84de745a55171036093d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645124 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 35839293 2022-05-19T16:18:10 Vulkan: Fix mutable format check Check directly with enum instead of using boolean logical operator. Bug: angleproject:7065 Change-Id: I98b077c9ab18690d915ed3387a4f19404925daaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645123 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 28c59d63 2022-05-24T17:32:33 Vulkan: Fix Wayland Display DRM formats Check whether relevant renderer feature is enabled before querying supported DRM formats. Bug: angleproject:6902 Change-Id: Ib6fa28c75f2b7e4c8a750babe97bdeddd2fa1059 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664477 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 4aa0975e 2022-05-24T17:34:31 Vulkan: Support Wayland EGL_DEFAULT_DISPLAY If native display is EGL_DEFAULT_DISPLAY, then DisplayVkWayland will create a new wl_display structure by connecting to the default Wayland socket. Bug: angleproject:6902 Change-Id: I0765d126f8e809426deaed5d0fb1eb0f7439164b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664478 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano a277f1bc 2022-04-13T15:47:10 Vulkan: Fix Wayland surface size queries On Wayland, VkSurfaceCapabilitiesKHR currentExtent is the special value (0xFFFFFFFF, 0xFFFFFFFF), so we can not use it to query its size. Bug: angleproject:6902 Change-Id: Icf350bfc41577f2b95da08a8dbb7773318a3e568 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583986 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 4ece3b08 2022-02-24T15:07:25 Vulkan: Multiple DRM formats A DRM format may be converted into more than one Vulkan format, therefore we try to create a dmabuf image with all candidate Vulkan formats until we succeed. Bug: angleproject:7065 Change-Id: I376d10a596ce81347c8ae21464c2c2db048f01d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516018 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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>
Antonio Caggiano 9053a641 2022-01-17T11:32:41 Vulkan: Wayland dmabuf extensions Implement EGL extensions image dmabuf import and import modifiers in Vulkan Wayland Display. Bug: angleproject:7065 Change-Id: I91535db3581cbe51f0eddc429e2752641c568148 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/+/3525093 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 9ad43bdd 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes: - link failure in systems with no libwayland installed. - XCB display availability check. Bug: angleproject:6902 Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 4bbc55f4 2022-05-03T08:19:55 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit e0dd196a0e0aace17dfaa204163d798f504ea94e. Reason for revert: blocks ANGLE roll into Chromium Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902, angleproject:7260 Change-Id: I7e92bf811b191eee6679d577006cddc0e1286fad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621057 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Antonio Caggiano e0dd196a 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes link failure in systems with no libwayland installed. Bug: angleproject:6902 Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 768c7d47 2022-04-21T16:55:05 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit f6cdd02fb4bceb4072430e3dbcb1e945809471e0. Reason for revert: Still warns about extra dependency on wayland. https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/990820/overview Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I706af14620d6298275009f5caf93b0e60339219b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765 > Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902 Change-Id: I11b1fe473fceb2fddb85bd562b769d18426ce07b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600378 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano f6cdd02f 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes link failure in systems with no libwayland installed. Bug: angleproject:6902 Change-Id: I706af14620d6298275009f5caf93b0e60339219b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 01c0bc21 2022-04-13T17:56:13 Revert "Vulkan: Support Wayland" This reverts commit 510351f2006e32ffc6da722f1fc9ea5666e9c0da. Reason for revert: Breaking ANGLE roll: https://bugs.chromium.org/p/angleproject/issues/detail?id=7202 Original change's description: > Vulkan: Support Wayland > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. > > Then add an EGL wayland test for testing rendering and buffers swapping. > > Bug: angleproject:6902 > Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 > Reviewed-by: mohan maiya <m.maiya@samsung.com> > 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> Bug: angleproject:6902 Change-Id: Idd0cb78c84baeb1b2ab6910173160206901799f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584921 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Antonio Caggiano 510351f2 2021-12-09T16:52:35 Vulkan: Support Wayland Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. Then add an EGL wayland test for testing rendering and buffers swapping. Bug: angleproject:6902 Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 Reviewed-by: mohan maiya <m.maiya@samsung.com> 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 ab786b21 2022-02-24T15:06:59 Vulkan: Non-mutable DmaBuf images When creating Vulkan images, certain DRM format modifiers can only be used without the mutable format flag. Bug: angleproject:7027 Change-Id: I6d57a4be1c21d30a963b17794aad6806b22acac8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488048 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano e67027c2 2022-02-15T17:21:44 Vulkan: Fix DRM format support verification Include VkImageFormatListCreateInfo structure in pNext chains to both support verification and creation functions. Bug: angleproject:7027 Change-Id: I04ba396252c159f4d28dde002b7e07b7194623ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464856 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Craig Stout <cstout@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@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>
Antonio Caggiano 613ec1c8 2022-02-15T17:01:01 Vulkan: Duplicate dmabuf FD on import When importing a dmabuf FD, Vulkan takes the ownership and attempts to close on vkFreeMemory. This means we need to duplicate it. Bug: angleproject:7027 Change-Id: Ife3dce30bd0c88c6b6fd622b93a44528b6a9ea68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464855 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 2944e265 2022-02-15T16:57:53 Vulkan: Fix dmabuf memory importable check Bug: angleproject:7027 Change-Id: I64522d2629c153b8456c975a06fd4293f89aa19a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464854 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao caf6433a 2022-01-04T14:37:29 Vulkan: Rename releaseStagingBuffer to releaseStagedUpdate There is no more per ImageHelper dynamic buffer for staging, and this function is not just removing staging buffer, but removing all staged updates. Rename it to reflect what it actually does. Bug: b/208323792 Change-Id: I5a2182291848a9e137ed29b888f31215664b46fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3367078 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Mohan Maiya e70a81b9 2021-12-14T13:41:28 Vulkan: Rectify typo introduced in 36fcf80b1f2a99 The method should have been updateYcbcrConversionDesc Bug: angleproject:6732 Test: Texture2DTestES3.*Yuv*Vulkan Change-Id: I67ab35ac07a6d751cbe3c3c29bdde21a5a7f5834 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3339605 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya 36fcf80b 2021-12-11T20:55:53 Vulkan: Consolidate SamplerYcbcrConversionCache Now that SamplerDesc and ImageHelper have the fully qualified description of a VkSamplerYcbcrConversion, we can lazy allocate the conversion handle along with streamlining the interface to the SamplerYcbcrConversionCache class. Bug: angleproject:6732 Test: Texture2DTestES3.*Yuv*Vulkan Change-Id: I7deaa0220031bc4c500d88021459017bf937218c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3333629 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 6fe13477 2021-11-11T00:47:14 Vulkan: Add external's pNext to ANGLE_external_objects_flags ANGLE was chaining VkImageFormatListCreateInfoKHR to VkImageCreateInfo::pNext to support sRGB extensions. For external images, it was unknown whether that was valid because there was no way to know if external used an identical chain of pNexts. This was causing a discrepancy between images created by Chrome and those created by ANGLE as part of an import. This change updates ANGLE_external_objects_flags to take in the pNext chain external has used to create the image so ANGLE could create the image identically. Bug: chromium:1266094 Change-Id: I479b9e7ff39d437425dc91c79834880749766f99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274177 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 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>