|
01dee1cb
|
2024-10-14T15:04:28
|
|
Add implementation for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I3dab4c68d5d0206d681e165e991217bd3de8eeb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011055
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|