|
b5ad5035
|
2025-03-05T18:01:42
|
|
Manual roll vulkan-deps from 898a2304cea9 to 4b720a347d47 (1 revision)
Manual roll requested by solti@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/898a2304cea9..4b720a347d47
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/8496ed5028cee8c5e5f18cc791766f6b454609fb..5f8c82f68a9e1a63f3b9effceb928d7068873813
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,solti@google.com on the revert to ensure
that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399867824
Bug: b/400986108
Tbr: solti@google.com
Change-Id: I205de362c25692700f8bf092003b2882028b6740
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6325931
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Solti Ho <solti@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1a0c9db3
|
2025-02-27T10:43:00
|
|
Vulkan: Disable monolithic pipeline creation with GPL
As it violates OpenGL ES rules. This change also removes Vulkan perf
counter tests that attempt to verify that warmed up programs hit the
cache... this fails in non-trivial ways especially with graphics
pipeline library due to:
- Warm up tasks being async, they may finish after the test reads the
perf counters to set expectations
- Some drivers report a cache miss when fast-linking libraries... but
likely they don't even look at the cache (so both hit and miss would
have been inaccurate)
- There is no 100% guarantee that the warmup really leads to a draw-time
cache hit.
Things are made worse by
https://chromium-review.googlesource.com/c/angle/angle/+/5421594 because
we don't necessarily even wait for the warm up tasks if ANGLE's view of
the pipeline description doesn't match what was used for warm up (even
if internally to the driver some of the state does not affect the binary
blobs).
Bug: angleproject:42265839
Change-Id: Iaf96e4f64e2187abc666ff07fe1304d7474a0e86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309696
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6b10ae33
|
2025-03-03T14:41:21
|
|
Remove the unused SkippedSyncvalMessage
Below tests from the two bugs
angleproject:42264934:
FramebufferFetchES31.BasicInout_NonCoherent/ES3_1_Vulkan
angleproject:42264929:
MultisampledRenderToTextureES3Test.RenderbufferDrawThenBlitDepthStencilOnly/ES3_Vulkan
No longer fails due to VVL errors. Tested on Pixel 8.
Remove them from the kSkippedSyncvalMessages list.
Bug: angleproject:42264929
Bug: angleproject:42264934
Bug: angleproject:391284743
Change-Id: I4369eba5ef2a056b4085fced6419e7add7a5c279
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6317223
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae567733
|
2025-02-26T19:09:14
|
|
Vulkan: Make use of VK_EXT_device_fault if exists
This Vulkan extension, if available, can provide further details
about the device in case of VK_ERROR_DEVICE_LOST.
* Added the following ANGLE feature: supportsDeviceFault
* It shows whether the extension VK_EXT_device_fault is supported
and that the deviceFault bit is enabled on the physical device.
* Added the Vulkan entry point for the following function:
* vkGetDeviceFaultInfoEXT
* Added the following to the renderer:
* mFaultFeatures (device feature)
* retrieveDeviceLostDetails(); to log information regarding the
following if the appropriate support is available:
* Address faults
* Vendor-specific faults
* Vendor binary dump (logged in hex format)
* Added RetrieveDeviceLostInfoFromDevice() to vk_renderer.cpp
to be used in Renderer::retrieveDeviceLostDetails().
* Updated ContextVk::handleError() to try to retrieve more info in
case of DEVICE_LOST.
Bug: b/399478440
Change-Id: If8d8e04001dabbe775c023f9922c44ef2205317e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305888
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b6301fb1
|
2025-03-04T22:04:53
|
|
Manual roll vulkan-deps from 1f5d4f5673a3 to 898a2304cea9 (1 revision)
Manual roll requested by solti@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/1f5d4f5673a3..898a2304cea9
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/cc4bfd761e025ff14ae329c1b1dbbf24e4f0922b..8496ed5028cee8c5e5f18cc791766f6b454609fb
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,solti@google.com on the revert to ensure
that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/400789178
Bug: b/399867824
Tbr: solti@google.com
Change-Id: I375095773761362f98e6679c4297d3a58c4e5f11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6320900
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Solti Ho <solti@google.com>
|
|
bd8bc105
|
2025-02-19T18:08:32
|
|
vulkan: disable pipeline cache data serialization for nvidia device.
we still see the big cache data issue after driver version 520.
rename hasEffectivePipelineCacheSerialization to
skipPipelineCacheSerialization.
Bug: b/358380399
Change-Id: Idd8354f95c3eb4c2e58678a4cf50c8b6af20f371
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284126
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
aa697ed0
|
2025-02-28T11:05:55
|
|
Manual Roll vulkan-deps from c1c31f to 040c47 (9 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/c1c31f4d17a9..040c4735c51c
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/8b822ee8ac2c3e52926820f46ad858532a895951..0b7c079b32f676b57e92a8ded374976842985116
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/e1fcaef1e8f2e4f4ccbfb58ad8f20e807368de76..f82d29981c0b0136adfaa7863df485a705c80c84
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/f289d047f49fb60488301ec62bafab85573668cc..d3bfa4b9b639c47ffaee7c1c1b76044c92fa66cc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/4e7b0c905b1a0401e24333800937cc8792efa037..7d5cab3ff7ea5a8b62dc94df72141606539344fc
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Bug: b/399969262
Tbr: yuxinhu@google.com
Change-Id: I150f1cb9c56f014628c1a2aa06c1981b71d2d605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312337
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Solti Ho <solti@google.com>
|
|
3c08ed1e
|
2025-02-28T10:31:53
|
|
Cleanup: clarify ShouldReportDebugMessage logic
Bug: angleproject:391284743
Change-Id: I0900bc834d2bfa177f98ddb75747ae4bc1578297
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312881
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65343c4c
|
2025-02-27T11:23:04
|
|
Vulkan: Improve ConvertImageLayoutToVkImageLayout()
This CL removes supportsMixedReadWriteDepthStencilLayouts feature flag.
This feature flag was introduced when ANGLE only requires vulkan 1.0.
But now we require vulkan 1.1 and this is part of vulkan 1.1 core spec.
So it is no longer needed and wasting CPU cycles to check this every
time ConvertImageLayoutToVkImageLayout() is called.
With supportsMixedReadWriteDepthStencilLayouts removed, convert from
ImageLayout to VkImageLayout no longer needs renderer parameter. The
layout information in kImageMemoryBarrierData is never modified by
renderer at run time. So the renerer arguments has been removed in a lot
of places, avoids another pointer de-reference.
Bug: b/384839847
Change-Id: I5a89a890c0c0a1f99d2fdc1b2a85baf7de5c28bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310839
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fb03f3c5
|
2025-02-27T15:05:16
|
|
Vulkan: Enable the use of syncval extra properties
Adjusted a couple of cases that weren't working on bots due to a
difference in write barriers (which are probably safe to ignore
altogether in this case)
Bug: angleproject:391284743
Change-Id: I1da2d05aff8b2c9ac7497903d85754054f861495
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309578
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73fc6666
|
2025-02-27T11:51:29
|
|
Revert "Add VVL Suppression to allow ANGLE rolls into Chromium"
This reverts commit 1ab3889c1263f31954c21396d18a19d0b4ac0f1c.
Reason for revert: latest VVL code rolls in chromium https://chromium-review.googlesource.com/c/chromium/src/+/6307665. We can remove the suppression that is dependent on the old VVL code.
Original change's description:
> Add VVL Suppression to allow ANGLE rolls into Chromium
>
> Bug: b/399191283
> Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: b/399191283
Change-Id: Id373b85b5afbff73d1ce9920c73644e9245cd4e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309746
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
1ab3889c
|
2025-02-26T20:13:56
|
|
Add VVL Suppression to allow ANGLE rolls into Chromium
Bug: b/399191283
Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
96a1bda4
|
2025-02-26T18:13:01
|
|
Manual roll vulkan-deps from 1138e3898873 to d0470d9cf4eb (15 revisions)
Manual roll requested by yuxinhu@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/1138e3898873..d0470d9cf4eb
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/18f581a8a2c112074815e613776b928362ec324b..8b822ee8ac2c3e52926820f46ad858532a895951
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/1af97f05fe184de16139b2dc31842334007f95e7..27732e6ed99afa91b3493bc5e5412f4914482828
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/d5b6f2de791deb73357a797d5db7aa24ce45194c..f289d047f49fb60488301ec62bafab85573668cc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/176fef0bccaba8bdf51de54ab4eed8d5d9aaac77..fb8f5a5d69f4590ff1f5ecacb5e3957b6d11daee
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/6be00ca9f51c714780cc1d6f537f8bc5650b6204..2d8f273ebd4b843c402d9ee881616895b854e42f
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e0158a966a288dbbaca9609a76f34f91facce4a8..48c93ad7cc9e0da74ed21c8bf7d56324d995644d
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Tbr: yuxinhu@google.com
Change-Id: Ib298161513c2d2ffded0a1b785f9c2322f553707
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305262
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8dbd2fe6
|
2025-02-19T14:07:21
|
|
Reland "Vulkan: Take stride into account for max buf size"
This is a reland of commit 91fe334eadd279746e06367142de6e8d9f8d00ed
In the original change, mMaxBufferMemorySizeLimit was cast to a
32-bit value for cap initialization. However, if the reported value
was larger than 4GB, it could result in incorrect cap values, leading
to shader compilation errors (e.g., exceeding maximum uniform location
size).
* Updated LimitToIntAnd() to always take a 64-bit value for the cap.
* The other arg (physicalDeviceValue) would be cast to the same
type for std::min().
* Removed the 32-bit casting from mMaxBufferMemorySizeLimit during
cap initialization.
Original change's description:
> Vulkan: Take stride into account for max buf size
>
> * Added LimitToIntAnd() to limit the input value to a certain
> threshold in addition to the int limit.
>
> * Cached the max buffer size limit in the renderer.
> * mMaxBufferMemorySizeLimit
>
> * In vk_caps_utils: Capped the following buffer size-related limits
> to the maximum memory allocation size:
>
> * maxStorageBufferRange
> * maxTexelBufferElements
> * maxUniformBufferRange
>
> Bug: angleproject:391002353
> Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
> KHR-GLES32.core.texture_buffer.texture_buffer_max_size
> Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:391002353
Change-Id: Ieb06a1dcf3096b4d6f3643f96d0e05b2be6b2093
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6303408
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9a9b75c
|
2025-02-25T22:21:03
|
|
Manual roll vulkan-deps from 02cb40cbb578 to 1138e3898873 (13 revisions)
Manual roll requested by yuxinhu@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/02cb40cbb578..1138e3898873
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/104bd85d990155f04f050972374a3502b4631830..18f581a8a2c112074815e613776b928362ec324b
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c98e976b567735776a4dc692bc744231dae4b13a..1af97f05fe184de16139b2dc31842334007f95e7
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/aafd524577cc90fcdd13a6f0bcbfb929a30ee90f..d5b6f2de791deb73357a797d5db7aa24ce45194c
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/fc5788170fbe2e29162862bc817357c7fb9a04e4..e0158a966a288dbbaca9609a76f34f91facce4a8
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/399191283
Tbr: yuxinhu@google.com
Change-Id: Ic2bdc48ba5d69b80186306eda6753a0ab54ef98f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302919
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0151051b
|
2025-02-25T11:20:15
|
|
Revert "Vulkan: Take stride into account for max buf size"
This reverts commit 91fe334eadd279746e06367142de6e8d9f8d00ed.
Reason for revert: breaks Android presubmit tests: https://android-review.git.corp.google.com/c/platform/external/angle/+/3506755
Original change's description:
> Vulkan: Take stride into account for max buf size
>
> * Added LimitToIntAnd() to limit the input value to a certain
> threshold in addition to the int limit.
>
> * Cached the max buffer size limit in the renderer.
> * mMaxBufferMemorySizeLimit
>
> * In vk_caps_utils: Capped the following buffer size-related limits
> to the maximum memory allocation size:
>
> * maxStorageBufferRange
> * maxTexelBufferElements
> * maxUniformBufferRange
>
> Bug: angleproject:391002353
> Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
> KHR-GLES32.core.texture_buffer.texture_buffer_max_size
> Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:391002353
Change-Id: I20f68f98dcf43fd8cd42f7dce2465332fdb3ab51
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302249
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
91fe334e
|
2025-02-19T14:07:21
|
|
Vulkan: Take stride into account for max buf size
* Added LimitToIntAnd() to limit the input value to a certain
threshold in addition to the int limit.
* Cached the max buffer size limit in the renderer.
* mMaxBufferMemorySizeLimit
* In vk_caps_utils: Capped the following buffer size-related limits
to the maximum memory allocation size:
* maxStorageBufferRange
* maxTexelBufferElements
* maxUniformBufferRange
Bug: angleproject:391002353
Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
KHR-GLES32.core.texture_buffer.texture_buffer_max_size
Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
db8c86bd
|
2025-02-22T20:33:31
|
|
Vulkan: Disable imageless framebuffers on buggy ARM drivers
Bug: chromium:371512561
Change-Id: Ibf8c4ed84a29139afd6d234690d240785656cc06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293786
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Solti Ho <solti@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bd643a1a
|
2025-02-19T12:16:50
|
|
Roll vulkan-deps from 2a09ac22553e to 126c9b378eb7 (19 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/2a09ac22553e..126c9b378eb7
Manual suppression for new VVL error:
SYNC-HAZARD-READ-AFTER-WRITE for vkCmdDrawIndexed
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/ef5207f9f8cce5097568efb15d3297d8b5d13014..e66176c3f685b14dfa83882329e5d02f4e027c9b
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/0ed717a810d28e7533d935a7c0017f6d267a8671..c98e976b567735776a4dc692bc744231dae4b13a
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/fde0f9718bd60b49cf8efc80d3fb7a093c309ac0..24e67179e2b0c7f9a2945927362c5ab0728e1fa8
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a9f88a232a4cd6634e47f0f93c8fac5789387a7a..dbe142e8f3a7f11478c2e4741c0d4c4b748fce4b
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e3b763ef7c17f7fd6d21a7ffe4069b0e1b45469b..087c22a441e5fb8563516b6b515483898c843242
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/397775556
Tbr: cnorthrop@google.com
Change-Id: I8a22df0dd3b8238abc1c9c6998604d9f20a3a6c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6280153
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f974ffa8
|
2025-01-27T11:06:30
|
|
Vulkan: Add stubs for expose VK_KHR_swapchain_mutable_format
Bug: angleproject:386688871
Change-Id: I77a45e342ee46f65c4f2947071c713f914a937a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6196939
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91d0c56b
|
2025-02-18T20:00:00
|
|
Vulkan: Disable support for GL_EXT_YUV_target
... on vendors that don't have support for
nullColorAttachmentWithExternalFormatResolve
Bug: angleproject:386749841
Change-Id: I3437bf189bdfb40cba760143a442df13d6ebf8dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277811
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
0f969b98
|
2025-02-18T07:48:03
|
|
Vulkan: Disable dynamic rendering for Samsung
Enable VK_KHR_maintenance5 iff VK_KHR_dynamic_rendering is enabled
Bug: angleproject:386749841
Change-Id: I60f949b2454dd43599516f051fa51f7378513cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6267100
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
8c0ac979
|
2024-06-20T16:39:26
|
|
Vulkan: Setup compute only queue for OpenCL
Select compute only for OpenCL vulkan backend if
`angle_enable_cl_compute_only_pipe` is set to true in gn args.
And setting it as default for OpenCL.
Bug: angleproject:395045928
Change-Id: Ie1a53e629646dbd5ba332dd297a4c8b737070e95
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244610
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
51d2561b
|
2025-01-29T11:11:50
|
|
Vulkan: Enable a few features for Samsung
Enable the following features for Samsung -
1. enableAdditionalBlendFactorsForDithering
2. forceSampleUsageForAhbBackedImages
Bug: angleproject:386749841
Change-Id: I9e822b884ea4e44af38c2d2dd95c67b020b94f98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207669
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7263989e
|
2025-02-06T13:20:14
|
|
Vulkan: Fix VUID-vkBindBufferMemory-buffer-01444
Some platforms issue a VVL error regarding memory allocation for an
external buffer. It seems to be due to the fact that the memory is not
allocated as a dedicated memory for the buffer, whereas the buffer
requirements (as reported in vkGetBufferMemoryRequirements2()) show
that it requires a dedicated memory. This causes an issue when binding
the buffer to the memory.
This change explicitly sets the dedicated memory information for the
external buffer, so the memory is regarded as dedicated and be able
to be bound to the buffer without errors.
* Added VkMemoryDedicatedAllocateInfo when calling to allocate memory
for the external buffer (InitAndroidExternalMemory()).
* Appended this structure to the extra allocation info via pNext.
* Unsuppressed VUID-vkBindBufferMemory-buffer-01444.
Bug: angleproject:394598758
Change-Id: I0d952cea204e528c23859c74909dbbb0751d0b65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239029
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
38aa0780
|
2025-02-05T10:01:12
|
|
Roll vulkan-deps from 430dae9cea66 to 4d67b5012a2f (34 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/430dae9cea66..4d67b5012a2f
Manual suppression for new VVL errors:
VUID-vkBindBufferMemory-size-01037
SYNC-HAZARD-WRITE-AFTER-READ for vkCmdCopyBuffer
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/0549c7127c2fbab2904892c9d6ff491fa1e93751..39766a06679bf5e4bc1e0339136f1b6a519fcec5
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c1c4712c75bc123dac21daea5dfffd416e103e59..5728a66537b23986135f50c465fcb282b0434da4
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/04b4a204aa501992ae85a207be1e200e195c98e1..9d07794bc955101c79cbd260233fcc65b9951cfc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/39f924b810e561fd86b2558b6711ca68d4363f68..234c4b7370a8ea3239a214c9e871e4b17c89f4ab
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/0508dee4ff864f5034ae6b7f68d34cb2822b827d..fde0f9718bd60b49cf8efc80d3fb7a093c309ac0
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/c3dc948b0b960b3a01506b57a15ecee2a9e31bf2..e9d5ff418fd29381205b7617170a6d556bc6a10e
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: b/394598758
Bug: b/394598470
Tbr: cnorthrop@google.com
Change-Id: Id968b54695b441eb4d21a63c23885eda0f567b9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6233954
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
fb118e41
|
2025-01-22T13:26:31
|
|
Vulkan: Always defer acquireNextSwapchainImage() call
This change is a preparation before the follow up EGL_WIDTH/EGL_HEIGH
eglQuerySurface rework.
There is no need to acquire initial swapchain image after surface
initialization. Skipping ANI may speed-up apps startup in some cases.
The operation is also removed from swap (in case of out-of-date
swapchain) for consistency and as a preparation for the follow up
change.
Change also enables "perFrameWindowSizeQuery" for NVIDIA on Windows
because of the "SurfaceDimensionsChangeAndFragCoord" test failure.
Test fails because `vkQueuePresentKHR()` does not return
`VK_ERROR_OUT_OF_DATE_KHR` when presenting old image size after the
window resize, even despite that surface caps currentExtent has already
new size. Issue is not permanent, and may "fix" itself if add few
empty swap buffers before starting the test or do ANI in the initialize
(which one will work depends on GPU).
Above issue is observed on the driver 546.01 (currently used by bots).
Old 531.68 and new 566.36 does not have this issue (tested on
RTX 3060 Laptop). The 546.01 driver, however, fails on that same
system even on the base CL (without this change).
Bug: angleproject:153329980
Bug: angleproject:42264593
Change-Id: I261e1f573a6b892f1ba4282dd17f17289c2f4184
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182599
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65c07386
|
2024-12-04T16:17:49
|
|
Vulkan: Limit dyn vertex input state WA on QCOM
* Limited the workaround for dynamic vertex input state so it is
enabled on the later version in which it has been fixed.
Bug: angleproject:381384988
Change-Id: I71db843e4ce247691dae2c7d0db32678d12492be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072407
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1df10f8a
|
2025-01-29T14:50:21
|
|
Unsuppress VUID-VkImageViewCreateInfo-pNext-01585
* Updated ImageHelper::DeriveCreateInfoPNext() to check the usage flags
as well.
* If the image uses the storage bit, the format list should not be
added to it as pNext. Otherwise, if the count is not zero, it
expects the format used in its image view to be one of the stated
formats and will result in a VVL if this is not the case.
Bug: angleproject:42264452
Change-Id: I789ec5a9751366029929c4c25a942056df13b9ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216381
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d934912
|
2025-01-09T11:31:42
|
|
Vulkan: Use VkEvent to track transform feedback buffer write
This CL adds event tracking into BufferHelper class: mCurrentWriteEvent
is used to track the write event and mCurrentReadEvents is used to track
all different reads from the buffer. Since you can have multiple
different reads accumulate over time, read events are an array of
EventStage and the actual VkAccessFlags per event is tracked in
mCurrentReadEventsAccessFlags. Note that this is specifically designed
to allow pipelineBarrier and eventBarrier to co-exist. If
mCurrentReadStages contains more bits than mCurrentReadEvents, the
remaining bits will be using pipelineBarrier. Similarly if
mCurrentWriteStages contains more bits than mCurrentWriteEvent, the
remaining bits will be using pipelineBarrier. A heuristic tracking is
also added to track the buffer writes over a period of time. Right now
we will opt buffer into VkEvent if the buffer ever written by transform
feedback in the heuristic tracking window. This could be expanded in
future if we found more usage pattern that would be benefit from using
VkEvent.
Also note that DrawIndirect and VertexInput will be using the same
VkEvent to track. It still will be using different VkAccessFlags since
the access flags comes from buffer instead of event.
Bug: angleproject:360274928
Change-Id: I027ffed8a0fbff7f280f42cf70564b8a3f243d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085490
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e330d959
|
2024-04-09T15:13:48
|
|
CL/Vulkan: Add native builtins to clspv compiler
Add a set of native builtins that are known to perform better for
Samsung devices.
A feature condition `uses_native_builtin_cl_kernel` is setup in
`vk_featurs.json` for control of the selection. The following files are
autogenerated
- FeaturesVk_autogen.h
- angle_features_autogen.cpp
- angle_features_autogen.h
Bug: angleproject:361717757
Change-Id: I10ffad0cbf1d4c2e9bfeea768311d90b0f65af2d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092036
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f231d94b
|
2025-01-13T14:58:16
|
|
Vulkan: Add kBufferMemoryBarrierData to mirror image
Right now we only maintain a mapping from EventStage (which is a value
of VkPipelineStageFlags) to VkPipelineStageFlags for images. For next CL
we need to indicate if use VkEvent is preferred or not for a given
PipelineStage access. This CL expands kPipelineStageFlagBitMap (and
renamed to kBufferMemoryBarrierData) to contain both the
VkPipelineStages and EventStage to indicate if VkEvent should be used or
not, similar to kImageMemoryBarrierData but a lot simpler. Right now it
all set to EventStage::InvalidEnum which means will use pipelineBarrier.
This will change in next CL.
This CL also does some clean up:
A few BufferHelper related functions changed argument from ErrorContext*
to Context*, mainly because of BufferHelper::release() now takes
Context* as argument so that we can recycle events within context's
share group without lock.
ImageLayoutToMemoryBarrierDataMap is added to replace
angle::PackedEnumMap<ImageLayout, ImageMemoryBarrierData>
kEventStageAndPipelineStageFlagsMap is removed.
InitializeEventAndPipelineStagesMap is now using kImageMemoryBarrierData
directly to construct mEventStageToPipelineStageFlagsMap. As result of
this, EventAndPipelineBarrierHaveMatchingStageFlags is also removed
since InitializeEventStageToVkPipelineStageFlagsMap already ensures
this.
Bug: angleproject:360274928
Change-Id: Idb74f3e4120ca9a04b8eccb7ed034aa769024bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172763
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
0878d854
|
2024-10-29T12:24:22
|
|
CL/Vulkan: Query spv version from renderer
Query the SPV version to be used by the clspv from the Vulkan renderer
and set it up accordingly.
Bug: angleproject:361717757
Change-Id: I6b1497120c21402386cb52a751970830e5cd7f3e
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5973716
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fe2a36c
|
2025-01-24T19:47:01
|
|
Vulkan: Parse Samsung Vulkan driver version
Use driver version instead of API version to disable
imageless framebuffer feature
Bug: angleproject:386749841
Change-Id: Ia7bf06210224d399d60d6c1000c4fb8179f1239c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6199891
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
0f75fc3d
|
2025-01-20T14:10:41
|
|
Vulkan: Transition foreign images to the FOREIGN queue on submit
Vulkan's interaction with AHB and dmabuf images is through the FOREIGN
queue family. When ANGLE uses these images, it must take ownership of
the images by doing a queue family ownership transfer (QFOT) away from
the FOREIGN queue family and into the graphics queue family used by the
Vulkan backend.
Prior to this change, ANGLE would do the QFOT away from FOREIGN once
such a foreign image is imported into an EGL image. Afterwards, usage
in ANGLE works correctly. What ANGLE did not handle is when a foreign
entity wants to use these images _after_ ANGLE has used them.
For the above to work correctly, ANGLE must do a QFOT back into FOREIGN
before the image can be used by the foreign entity. Unfortunately,
EGL does not provide a clear point for this hand-off to happen. ANGLE
has no choice then to proactively transition the images back into
FOREIGN at some point "just in case".
For some native drivers, this hand-off to FOREIGN can be quite frequent.
For example, on Android for most vendors there is no actual layout
transition between graphics and FOREIGN queue families (the actual data
layout is the same), so a cache flush/invalidate at strategic points
(such as the end of the command buffer) is sufficient as equivalent to
transition to FOREIGN (and another at the beginning of the command
buffer as equivalent to transition from FOREIGN).
As a layer over Vulkan's formalism, ANGLE is less lucky; it has to
enumerate exactly which image is being transitioned to and away from
FOREIGN. Transitions away from FOREIGN are in principle easy. As long
as the image is marked as being in the FOREIGN queue family, it will
automatically transition to the graphics queue family on first use.
In this change, when a foreign image is transitioned out of the FOREIGN
queue, it's added to a list of images to be transitioned back to FOREIGN
at submit time. Once submission is done, the image may or may not
actually be used by a foreign entity, but ANGLE cannot know that. The
next time the image is used in ANGLE, it is transitioned out of FOREIGN.
Verifying correctness with multi-threading is tricky, and relies on GL's
requirement that access in one context is followed by a synchronization
and rebind in another context before it can be used there. This means
that the image's transition to FOREIGN (at the end of one submission)
naturally happens before the transition back from FOREIGN (at the
beginning of the next submission). Because the set of images to
transition is tracked in the context, submissions in other contexts
don't interfere with the above logic.
The situation can be more complicated with one-off submissions, but
fortunately, no such usage of foreign images is present.
Another wrinkle is simultaneous usage of the image as read-only in two
contexts. According to GL, this is not a hazard and requires no
synchronization. However this is broken in ANGLE even for non-foreign
images (see http://anglebug.com/42266349), because as what _seems_ like
read-only usage of the image from GL's point of view (like sampling from
the image), there are associated write operations from Vulkan's point of
view (image layout transitions and QFOT). This change does not attempt
to address this corner case.
Bug: angleproject:42263241
Bug: angleproject:42262454
Bug: angleproject:390443243
Bug: chromium:382527242
Change-Id: Idd4ef1fecfa3fccf1a4063f1bddb08d28b85386b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6184604
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
47c64ce2
|
2025-01-24T16:15:26
|
|
Vulkan: Fix driver version parsing
Bug: chromium:371512561
Change-Id: I469c4ae71613fdfdfd7e58602b5a7262342acba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6199184
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
d7ea4b2c
|
2025-01-06T20:40:48
|
|
Vulkan: Use syncval extra properties for error suppression
Bug: angleproject:391284743
Change-Id: I594a70e7d06f1d73647407dbac1afece666a7c5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180310
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
54b69688
|
2025-01-21T11:28:59
|
|
Vulkan: Add max memory allocation size limit check
During memory allocation, we should make sure that the attempted
allocation size does not exceed the maximum allowed size. Failure to
do so may result in validation errors.
* Added the following object to the renderer: mMaintenance3Properties
* It holds the following device property: maxMemoryAllocationSize
* Inline renderer function: getMaxMemoryAllocationSize()
* Buffer and image allocation sizes will now be checked with the
function above.
* In case of exceeding the maximum allocation size, a device OOM
error is returned after issuing a warning:
* MemoryAllocationTracker::onExceedingMaxMemoryAllocationSize()
* Removed the suppression for the test failing due to this issue.
* Removed the maxMemoryAllocationSize VVL skip targeted for MockICD.
* Suppressed tests on S22 that now fail due to exceeding this limit:
* KHR-GLES[31/32].core.texture_buffer.texture_buffer_max_size
Bug: angleproject:391002353
Change-Id: Id271066bd872c80344ef8531653afda3e6b40a93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187981
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
fbd230f5
|
2025-01-23T12:59:06
|
|
Vulkan: Split ErrorContext into ErrorContext and Context
ErrorContext continue to be context for error handling. vk::Context is
added to serve as common base class for ContextVk and CLContextVk.
Bug: angleproject:390443243
Change-Id: Ifac0b1d2d714ce610693ce60a35459c6c9cddf1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191438
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c1214ec2
|
2025-01-22T14:22:56
|
|
Vulkan: Rename Context to ErrorContext
In preparation for adding another Context (derived by GL and CL
contexts), which includes logic that pertains to command recording (such
as barrier tracking).
Bug: angleproject:390443243
Change-Id: Idf495b62e63fb9aa901a2f16447fdaf3c2acd90b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191248
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d8a95bf7
|
2024-12-19T17:35:05
|
|
Vulkan: Protect OneOff commands recording with pool mutex
Bug: angleproject:384940864
Change-Id: I518c54ae4b0fc5da0e58d330f8c531bc8d65529e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108843
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
a5016e31
|
2025-01-17T17:50:27
|
|
Vulkan: Fix typos found by gerrit spellchecker
Bug: angleproject:360274928
Change-Id: Idbffd7a4609f28d161bd0a11ace817856dcd750c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182930
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8bf7d458
|
2025-01-20T09:37:25
|
|
Manual roll vulkan-deps from 476cafde9e9d to e8b712767b9e (8 revisions)
Manual roll requested by syoussefi@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/476cafde9e9d..e8b712767b9e
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/321692686b64873ccf4972754e36185697993e21..b9d5ced92ac454caf526c3b80d5105a1f38878ce
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/35a851d182cdebef408493b9a82ba212d1a2629c..1586f33d6d79eb9ffa5963ce4f70423986b95d8a
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/2fe3a7791dc9c34a581dc45522ab9b4363b4f321..7b23ba7a5f86936a8d783baf64a77c38977d6890
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/a80bafccd11d2b4e44dee21c530da49b41083682..1ce4b30307301d20d58040e088eb57c5ea8bb6ad
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC
angle-team@google.com,geofflang@google.com,syoussefi@google.com on the
revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I297016b55854913ceda6cc4afb80f67eafe65e26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183654
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
efe31ab8
|
2024-11-29T14:49:29
|
|
Revert "Vulkan: Keep old VVL suppression until roll into Chromium"
This reverts commit b31f367a9ab885c0cd3b176b8bbcab05b380cc8a.
Reason for revert: No longer needed after vulkan-deps rolled into
chromium.
Original change's description:
> Vulkan: Keep old VVL suppression until roll into Chromium
>
> Bug: angleproject:336652255
> Change-Id: Id12e86862cde613cbf3c87557532b2bf23da1838
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056751
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:336652255
Change-Id: I5287fb70ecbf53124b240a4f9e71cbcba66093c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6058732
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
73e226cb
|
2024-10-17T16:37:52
|
|
Vulkan: Add check for uniform buffer standard layout feature
Add to check uniform buffer standard layout is supported.
Bug: angleproject:387306731
Change-Id: I543c46a6b504a4df7e9937365c9b28e6328f0619
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137319
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
38b3f123
|
2025-01-16T06:55:15
|
|
Vulkan: Enable preferDriverUniformOverSpecConst for Samsung
Bug: angleproject:386749841
Change-Id: I8e99efe01e1e9152371384d1bf5645b444438c62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6179075
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3226a3df
|
2024-12-13T14:06:55
|
|
Reland: vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid
Implement the ability to select a specific device and driver combination
through a few new selection criteria:
VkPhysicalDeviceIDProperties::deviceUUID
VkPhysicalDeviceIDProperties::driverUUID
VkPhysicalDeviceDriverProperties::driverID
Earlier version had problems due to a test build issue. Per syoussefi@,
going to rework the test into a separate CL so that we get the core
change merged.
Bug: angleproject:351866412
Change-Id: I0a3f4f1a2154a06bf6286a037c9ad4834ef4dda2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165286
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
|
|
3b092269
|
2025-01-09T08:54:00
|
|
Revert "vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid"
This reverts commit 96abb2c3d9e296ae12e50e0026bf5d3a7b925e7e.
Reason for revert: breaks rolling into Chromium
https://chromium-review.googlesource.com/c/chromium/src/+/6158098
Original change's description:
> vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid
>
> Implement the ability to select a specific device and driver combination
> through a few new selection criteria:
>
> VkPhysicalDeviceIDProperties::deviceUUID
> VkPhysicalDeviceIDProperties::driverUUID
> VkPhysicalDeviceDriverProperties::driverID
>
> Bug: angleproject:351866412
> Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:351866412
Change-Id: Ic7cf9dcf6a950556cc44f5920498db429c866340
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164164
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
96abb2c3
|
2024-12-13T14:06:55
|
|
vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid
Implement the ability to select a specific device and driver combination
through a few new selection criteria:
VkPhysicalDeviceIDProperties::deviceUUID
VkPhysicalDeviceIDProperties::driverUUID
VkPhysicalDeviceDriverProperties::driverID
Bug: angleproject:351866412
Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e9b1115
|
2025-01-06T15:24:56
|
|
Vulkan: Disable protected memory on Intel GPUs
Due to Intel PXP termination, any active contexts held by userspace for
PXP will be marked as banned. Re-establishing the session without
affecting the use case is complex. Thereforce, it is preferable to
disable protected memory by default unless explicitly needed.
Test: Ensure powerd_dbus_suspend doesn't cause GPU process exit
Bug: b/381285096
Change-Id: I057825a36d39b193f84cbdf90323fd95ed96fded
Signed-off-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149057
Reviewed-by: Juston Li <justonli@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59162e2e
|
2024-12-30T12:22:10
|
|
Vulkan: Update a few features and extensions for Samsung
Enable
disableProgramCaching
Disable
rgbxInternalFormatANGLE
clipDistanceAPPLE
cacheCompiledShader
preferMonolithicPipelinesOverLibraries
Bug: angleproject:386749841
Change-Id: Iea8033e2999c65b8715c6069d2096a709f78f438
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133540
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
c75bd915
|
2024-12-10T23:01:44
|
|
Vulkan: Remove asyncCommandQueue
It's been years and it never showed an advantage. In the meantime,
performance without this feature seems close to native drivers (i.e. the
feature has lost its appeal) and it's frequently a source of
complication and bugs.
Bug: angleproject:42262955
Bug: angleproject:42265241
Bug: angleproject:42265934
Bug: angleproject:42265368
Bug: angleproject:42265738
Bug: angleproject:42266015
Bug: angleproject:377503738
Bug: angleproject:42265678
Bug: angleproject:173004081
Change-Id: Id8d7588fdbc397c28c1dd18aafa1f64cbe77806f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084760
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e34135cc
|
2024-12-09T18:20:00
|
|
Manual roll vulkan-deps from 86f73c27b3fc to 0057c6fd95c9 (28 revisions)
Manual roll requested by ynovikov@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/86f73c27b3fc..0057c6fd95c9
Manual edits to VVL skip list in vk_renderer.cpp for bugs:
https://anglebug.com/42266639, https://anglebug.com/383311444
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/4e9bb6f426cf776910848441da65cc14f1146e77..bfc0ffa353cb2b7bfda65c6b65f15c5c4d0564d0
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/36d5e2ddaa54c70d2f29081510c66f4fc98e5e53..3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/3fb52548bc8a68d349d31e21bd4e80e3d953e87c..4d2f0b40bfe290dea6c6904dafdf7fd8328ba346
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/49af1bfe467dd5a9efc22f7867d95fdde50e2b00..6a74a7d65cafa19e38ec116651436cce6efd5b2e
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a2224abf350f61211462a33e5b540201fa17de0d..2744de9936755fea6912d47e7a0a8857d8a4fdee
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/b538fb5b08513aa78346cd414ad5e576a2a3e920..160e946f5d4b3a657f47b7fc4b0bd3cc8d0d6afd
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/902f3cf8d51e76be0c0deb4be39c6223abebbae2..3d71b8748ca519be54daacdabed9dcb6fa4367bf
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com,ynovikov@google.com
on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:42266639
Bug: angleproject:383311444
Tbr: cnorthrop@google.com,ynovikov@google.com
Change-Id: I90615e11c3dd2d737d5f87e3fabd5b984c807111
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6079809
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
95756ae2
|
2024-12-04T15:47:19
|
|
Expose VK_EXT_image_compression_control_swapchain
To implement EGL_EXT_surface_compression,
VK_EXT_image_compression_control_swapchain should be exposed.
With this extension, we can put VkImageCompressionControlEXT
to the pNext of VkSwapchainCreateInfoKHR
Bug: angleproject:375496226
Change-Id: I3f62040be3ba3e5cc051164cb9ace1934e61dead
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073353
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e42047f0
|
2024-10-25T13:50:28
|
|
Vulkan: Disable DescriptorSet cache for SwiftShader
Performance with swiftShader is not critical and cache code path not
making much difference for SwiftShader renderer anyway. This CL disables
descriptor set cache for SwiftShader mainly to ensure the code path gets
test coverage on CI bots. This code path also ensures that we are
tagging ResourceUse on DescriptorSetHelper properly after every use.
Otherwise, it is very hard to test with cache enabled code path since
object usually won't get destroyed due to cache and any bug associated
with this is going to be very hard to debug. This CL has catch such bugs
during the descriptor set cache work.
Bug: angleproject:372268711
Change-Id: Iee1028f9378cf4f537d897e08746d5cf958f225a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6047805
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
739bcef0
|
2024-12-03T17:58:34
|
|
Vulkan: Rework finishOneCommandBatchAndCleanup
This is a follow up for:
Vulkan: Fix finishOneCommandBatchAndCleanupImplLocked
crrev.com/c/angle/angle/+/6055419
The original `finishOneCommandBatchAndCleanup()` was not optimal in a
sense that it is always finish a batch, when cleaning existing garbage
may be sufficient. Also, because there was no feedback from the
`cleanupGarbage()`, this method may just end up finishing one batch
without cleaning any garbage, causing clients to "think" that there is
no more garbage to clean. Additionally, `cleanupGarbage()` was called
under the `CommendQueue::mMutex` lock, causing uncessary blocking.
This change replaces this method with new `cleanupSomeGarbage()`. It
solves all problems of the original method described above. It no longer
has the `retireFinishedCommandsLocked()` call, because it is not
necessary in scenarios where `cleanupSomeGarbage()` is used.
In order to implement the new method, output feedback parameter was
added to the `cleanupGarbage()` as well as to all methods that it uses.
Bug: b/280304441
Change-Id: I7078899838609a0c3e5edbc4f507c2fe4364380a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063126
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
104d4e4a
|
2024-11-15T20:44:39
|
|
Vulkan: Improve usage of ErasePipelineCacheVkChunks method
`ErasePipelineCacheVkChunks()` is now also used to erase any possibly
trailing chunks from the current slot. This is done to free blob cache
memory and to avoid parsing these chunks in the future and generating
false-positive "chunk header corrupted" errors.
Normally, new pipeline data is always larger than already saved, but in
case of Vulkan driver update existing data may be ignored, so the cache
data will be generated from scratch. This change will help erase old
data from the blob cache.
Bug: angleproject:42263322
Change-Id: I021abce40c4255b443babed87ed82b273d526ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854708
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7adbb3e8
|
2024-11-26T17:06:07
|
|
Vulkan: Remove explicit destroy calls
Since now SharedPtr will automatically call destroy(device) when last
reference goes away, there is no need for explicitly calling
destroy(device) any more.
Bug: angleproject:372268711
Change-Id: I208b17cf7e090babd51d6f337c20fdfd74c75b6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6052886
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d81834b6
|
2024-11-26T15:25:35
|
|
Vulkan: Store VkDevice in vk::SharedPtr
So that we don't need to have two versions of destroy() APIs. In
previous CLs I had to add another version of destroy() that does not
take device argument due to SharedPtr may calls destroy when last
reference count goes away. Because we do not have device information at
that time, destroy() API was added but mostly just doing assertion that
Vulkan object has been explicitly destroyed. With this CL, we now stores
device in the SharedPtr so that we no longer need two destroy() APIs.
The explicit destroy(device) call will be removed in the next CL.
Bug: angleproject:372268711
Change-Id: Idcacbc3a922e17ac3d0f6056466b8f3aa084b02e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6052096
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f51170b3
|
2024-11-21T16:30:40
|
|
Enable GL_KHR_texture_compression_astc_hdr
Vulkan supports GL_KHR_texture_compression_astc_hdr,
so this extension can be enabled in Angle.
Bug: angleproject:379186304
Change-Id: I438a120c3f884a7eefcd883ad71abf68f81cb473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b31f367a
|
2024-11-28T16:11:33
|
|
Vulkan: Keep old VVL suppression until roll into Chromium
Bug: angleproject:336652255
Change-Id: Id12e86862cde613cbf3c87557532b2bf23da1838
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056751
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e10220f8
|
2024-11-28T18:24:35
|
|
Manual roll vulkan-deps from 3c7156644de7 to 0e28d467e76d (59 revisions)
Manual roll requested by syoussefi@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/3c7156644de7..0e28d467e76d
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/1f1ef7560399322558793d91a53b34cdd34f4fe1..0099ed6ad09a78b083c93be9369791dd72cf8a33
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/45b314049d6262c850cc873c8f9a30f41a1e0c13..36d5e2ddaa54c70d2f29081510c66f4fc98e5e53
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/ea1d8cd9814852428d25d3ea113683a6c9686afb..7d5bc35197be75e10000f14ea9eb3954ca2b0aab
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/f864bc6dfe6229a399566e979c16795386d0f308..9dff1f571ce25b92639854b89b28539602b6b97b
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/4cd2a86fa6a88abfcf44a7630212fc375fbe0fe5..2534c1e2327990e55f51b8a1f8328085e8e3ff31
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/df2ac1bb61f09a80db979d7108adf07b6fe55913..a2224abf350f61211462a33e5b540201fa17de0d
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/c31e717dcd817279e9e90516612f9dbfc84b0e51..b538fb5b08513aa78346cd414ad5e576a2a3e920
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/fdbdd359fb2bbb50352e84b259171813957d1ee3..b61aa3f59711c9a45e6bac13f70c61dc9e4650c8
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Tbr: syoussefi@google.com
Change-Id: Ieecaf46ecf017defffaca78bb003b0b7dcf094f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6058269
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
8b7bb82c
|
2024-11-28T13:20:52
|
|
Vulkan: Disable dynamic vertex input state on Qualcomm
Observed bugs on S23.
Bug: angleproject:381384988
Change-Id: I9a8cd754de23f31c4bd1078f0c52f66111a8fc45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055889
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6c1021ec
|
2024-11-22T16:48:45
|
|
Vulkan: Switch DescriptorSetLayout to use AtomicSharedPtr
SharedPtr has better semantics and safer to use. This CL removes direct
exposure of RefCounted object and also allows me to delete
BindingPointer class in later CL.
Bug: angleproject:372268711
Change-Id: I08a0dff3efcf794be843a4a548b9f2609bb9a5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044328
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9eab301c
|
2024-11-12T17:24:57
|
|
Enable GL_KHR_texture_compression_astc_sliced_3d
ARM supports GL_KHR_texture_compression_astc_sliced_3d,
so this extension can be enabled in Angle.
Bug: angleproject:378507964
Change-Id: I545ac57b4d6065a9ef99a7884555da47a1d50261
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6014004
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d2e543c7
|
2024-11-18T14:21:28
|
|
Vulkan: Consider PowerVR hardware coherent for framebuffer fetch
Bug: angleproject:377923479
Change-Id: I5a51b0d82e55c6153dfcaa240aa08456560f2c7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6032832
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
15492c9b
|
2024-11-15T15:59:54
|
|
Vulkan: A few workarounds for older ARM drivers
Bug: angleproject:379269831
Change-Id: I16d2eb6074bf595f19561316b2c6b7854119b4b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022180
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
9dd69aae
|
2024-11-15T15:05:09
|
|
Vulkan: Disable dynamic rendering on PowerVR
Use of dynamic rendering is proving to be too slow
on PowerVR devices, so we need to disable it.
We can re-enable in the future if ANGLE or driver
fixes improve it.
Test: restricted_trace_perf
Bug: b/372273294
Change-Id: I3b643dbc5ddcb8217275f624cfc5f5128f6b061c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6026793
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29855942
|
2024-11-06T16:01:28
|
|
Vulkan: Add stubs for expose VK_EXT_image_compression_control
Bug: angleproject:352364583
Change-Id: Ia8292eee6620db6d0c4b0c6162de95583c1e416d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5998011
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ba81145f
|
2024-11-08T15:45:44
|
|
Vulkan: Emulate coherent framebuffer fetch everywhere
Many apps expect coherent framebuffer fetch to be available, and
multiple downstream emulators end up forcing coherent framebuffer fetch
enabled despite the hardware not being coherent.
This change attempts to do a best-effort emulation of coherent
framebuffer fetch by automatically inserting barriers before framebuffer
fetch draws. While this doesn't correctly handle self-overlapping
geometry, it works well enough in practice for the applications.
As a result, framebuffer fetch is practically enabled everywhere after
this change.
Bug: angleproject:377923479
Change-Id: I3900a1de0f4db755b7e70871f57df3ea112073f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004336
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fea539c
|
2024-10-23T11:40:51
|
|
Vulkan: Remove extra non-conformant flag checks
It may be possible to remove the flag check and simply rely on the
checks performed in CanSupportGLES32() to determine support for ES 3.2.
The non-conformant flag can remain utilized for certain features until
the relevant issues are resolved and this flag is no longer needed.
* Removed the checks from getMaxConformantESVersion().
* Removed the flag check in Renderer::getMaxSupportedESVersion().
* Added exception to the blend extension when using the non-conformant
flag for Win/Intel.
* Skipped the related tests on this platform that now fail.
* Added a new feature flag to force-enable ES 3.2 on certain platforms
for testing.
* exposeES32ForTesting
* If the bots are updated to support ES 3.2, it can be removed from
using this flag.
* Skipped some VVL errors when the flag is enabled.
* Skipped end2end ES 3.2 tests on SwS.
* Skipped some dEQP tests on P4 and SwS that would use ES 3.2 features
that are not available on those platforms.
Bug: b/374841339
Bug: b/376899587
Change-Id: Ifd405457ab8bf2076eb8fb5c92c5316f4d520595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5958147
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
1a3fadbf
|
2024-11-01T13:19:43
|
|
Vulkan: Enable imagelessFB for recent QualComm drivers
Qualcomm recent drivers has the fix for imageless framebuffer bug.
Re-enable supportsImagelessFramebuffer for drivers 512.802.0 or newer.
Bug: b/369693310
Change-Id: I33a69b8abfefed572880636ff7af2c788cee5688
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5984959
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
66701c98
|
2024-10-31T11:37:44
|
|
Vulkan: Remove extra non-conformant flag check
In Vulkan, getMaxConformantESVersion() calls another function which
already checks which ES version to use (getMaxSupportedESVersion()).
It also uses the non-conformance flag to check if it should bypass
the ES 3.2 check if the flag is enabled. However, the former uses the
flag to cap the version to ES 3.1 if the flag is disabled. This check
seems unnecessary, and can cap the version for a device that does have
the ability to use ES 3.2.
* Removed the non-conformant flag check from getMaxConformant*().
Bug: b/374841339
Change-Id: I377e6ba2fe174aae7e2e1b19407b2acd89749157
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5979643
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4a9fa51
|
2024-10-31T09:37:28
|
|
Vulkan: Re-enable dynamic rendering on newer ARM drivers
Bug: b/356051947
Change-Id: I03fbed2dbdb8f454ee1c429db4669d13e719b9bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5980610
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
08c1724f
|
2024-10-11T14:29:00
|
|
Vulkan: Support GL_ARM_shader_framebuffer_fetch_depth_stencil
Bug: angleproject:352364582
Change-Id: I63fd78314fa7ebccbf366c252e309a9c0f09c8c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938150
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65fcf9c4
|
2024-10-26T10:53:18
|
|
Vulkan: Remove redundant dependent feature checks
Since [1], when a feature is overriden, the dependent features
automatically take the override into account. Tests no longer need to
account for dependent features, neither does the logic in the code.
[1]:https://chromium-review.googlesource.com/c/angle/angle/+/4749524
Bug: angleproject:42266725
Change-Id: I5440aba4a89cffbe710e26ad7de4cfee783e9bdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5967414
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f2315dbe
|
2024-10-23T13:34:39
|
|
Reland: Vulkan: Update checks for promoted extensions
This relands commit c2219ef9ec03277b6f8ad18d6d1ade41ddf88ba6.
Features that depend on promoted extensions are now enabled when
the extensions are present, OR the version of Vulkan that they were
promoted to is present. This commit checks for Vulkan 1.1 because
that is the version currently supported.
In the reland, the promoted extensions are not added to the list of
extensions to be enabled, because the underlying driver may not have
exposed them as extensions at all.
Bug: angleproject:374483183
Change-Id: I98e004d3fb4ed673984859ab63d40702f877b535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5955635
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a05fc2bc
|
2024-10-23T13:36:54
|
|
Revert "Vulkan: Update checks for promoted extensions"
This reverts commit 9c1f96b8606a564b565d37208268b9b06efff03e.
Reason for revert: Still fails on Cuttlefish (which uses SwiftShader)
Bug: angleproject:374975259
Original change's description:
> Vulkan: Update checks for promoted extensions
>
> Features that depend on promoted extensions are now enabled when
> the extensions are present, OR the version of Vulkan that they were
> promoted to is present. This commit checks for Vulkan 1.1 because
> that is the version currently supported.
>
> Bug: angleproject:374483183
> Change-Id: I17d7956ac8a604f531e020e77c6f532e616b9dd5
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954316
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:374483183
Change-Id: I1bef03f99b044bca91950a62e4015630a7c91530
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5956483
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
|
|
9a4c7495
|
2024-10-15T13:05:28
|
|
Vulkan: Add feature flag to enable descriptorSet cache
So that we can disable it to compare the performance difference.
Bug: angleproject:372268711
Change-Id: I02da254e5d58815741080634a2dd005617aa7432
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5936135
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
9c1f96b8
|
2024-10-22T12:58:27
|
|
Vulkan: Update checks for promoted extensions
Features that depend on promoted extensions are now enabled when
the extensions are present, OR the version of Vulkan that they were
promoted to is present. This commit checks for Vulkan 1.1 because
that is the version currently supported.
Bug: angleproject:374483183
Change-Id: I17d7956ac8a604f531e020e77c6f532e616b9dd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954316
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
47c66901
|
2024-10-21T12:47:22
|
|
Vulkan: Set gl_Layer to 0 if the framebuffer is not layered
Bug: angleproject:372390039
Change-Id: I29067c9488e06f6dd2e90f207fecb843267fb77c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5949263
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e869b426
|
2024-10-22T10:04:06
|
|
Revert "Removed checks for promoted extensions"
This reverts commit c2219ef9ec03277b6f8ad18d6d1ade41ddf88ba6.
Reason for revert: Possible cause of boot failures on cuttlefish
Bug: angleproject:374975259
Original change's description:
> Removed checks for promoted extensions
>
> Removed checks for Vulkan extensions that have been promoted into Vulkan
> 1.1, which is already the minimum required version for ANGLE. The
> dependent features now work when the extensions are missing because the
> extensions are no longer necessary.
>
> Bug: angleproject:374483183
> Change-Id: Iad92b33a8e724eaa8f4bfcbe406f5b6b8536d6d8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5944678
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: angleproject:374483183
Change-Id: I92eb6681c6d1b8f7e2d0832bb4e1cbf4597bd1c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5952279
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c2219ef9
|
2024-10-20T04:49:44
|
|
Removed checks for promoted extensions
Removed checks for Vulkan extensions that have been promoted into Vulkan
1.1, which is already the minimum required version for ANGLE. The
dependent features now work when the extensions are missing because the
extensions are no longer necessary.
Bug: angleproject:374483183
Change-Id: Iad92b33a8e724eaa8f4bfcbe406f5b6b8536d6d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5944678
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
323187d9
|
2024-10-11T13:48:51
|
|
Vulkan: Fix color attachment limit with framebuffer fetch
ANGLE incorreclty assumed that the input descriptor limit is at least as
big as the color attachment limit. This is not true on Intel/windows
where 8 color attachments are available but only 7 input descriptors.
With this change, the color attachment limit is dropped to 7 in such a
case so that framebuffer fetch can continue to be supported.
Bug: angleproject:372873263
Change-Id: If836563b47399a23b293b74815f6bccb21aaf47c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5919759
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3fa74223
|
2024-03-26T17:13:52
|
|
Vulkan: Add check for VK_EXT_external_memory_host extension
Tests-Passing: GN Build
Bug: angleproject:42266936
Change-Id: Ie30f1cee939bc8a4b98d37f718e4526156916f05
Signed-off-by: Rafay Khurram <r.khurram@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796524
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7beb008d
|
2024-10-16T10:04:43
|
|
Vulkan: Disable dynamic rendering on Nvidia
Bug: angleproject:372883691
Change-Id: I71b45ea67a725a5a55d69b17329866000a1f37e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938740
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a1584f49
|
2024-10-11T21:17:32
|
|
Vulkan: Qualify framebuffer fetch with "Color"
In preparation for depth/stencil framebuffer fetch, many framebuffer
fetch symbols are affixed with Color to indicate that they pertain to
color framebuffer fetch logic.
Bug: angleproject:352364582
Change-Id: I86000ada5e6ef47387dec0b6a3fca589d816cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926593
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
1608d0be
|
2024-10-10T16:53:15
|
|
Vulkan: Isolate framebuffer fetch no-RP-break optim from DR
Prior to [1], changes to framebuffer fetch usage by shaders caused a
render pass break. This was due to a limitation of render pass
compatibility rules. It also caused other headache, such as needing to
clear the render pass cache, recreating pipelines etc.
[1]:https://chromium-review.googlesource.com/c/angle/angle/+/3697308
In [1] an important optimization was implemented for tiling GPUs where
ANGLE permanently switched to framebuffer fetch mode on first
encountering framebuffer fetch use. From that point on, ANGLE would
always make every render pass framebuffer fetch compatible.
In reality, the render pass break was unnecessary, which became apparent
with dynamic rendering (for example that whether the render pass
includes input attachments has no bearing on a pipeline that doesn't use
input attachments at all). In [2], dynamic rendering kept the render
pass break + permanent switch behavior for simplicity.
[2]:https://chromium-review.googlesource.com/c/angle/angle/+/5637155
This change untangles the optimization done for legacy render passes
from dynamic rendering, allowing dynamic rendering to start every render
pass without framebuffer fetch and enable it later if a framebuffer
fetch program is used.
This is in preparation for supporting depth/stencil framebuffer fetch,
where a perma-switch is troublesome (for example in combination with
read-only depth/stencil feedback loops).
Bug: angleproject:352364582
Change-Id: I31221cf22a28d58b9b2bf188e9c0b786cd0fe3d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5923120
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ba292370
|
2024-10-08T19:58:29
|
|
Vulkan: Disable imageless framebuffers on Qualcomm and PowerVR
* Qualcomm with imageless framebuffers, vkCreateFramebuffer
loops forever
* PowerVR with imageless framebuffer spends enormous amounts of time
in framebuffer destruction and creation. ANGLE doesn't cache
imageless framebuffers, instead adding them to garbage collection,
expecting them to be lightweight.
Tests: dead_cells, chrono_trigger, batman_telltale
Bug: b/369693310, b/372273294
Change-Id: I43714154661c4415ec10511ed096da7c23a9a8ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2af09236
|
2024-09-24T13:55:04
|
|
Vulkan: Enable monolithic pipelines on Intel Windows
The hang issue is fixed and not reproduced on Intel
Windows drivers 101.5379 and later.
Bug: angleproject:369043994
Change-Id: Ic395ca47e65fa6467baf09e54b7e24c0d7d71ad3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5885989
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f5f419ec
|
2024-09-04T20:22:20
|
|
Vulkan: Add verify-restore in CompressAndStorePipelineCacheVk()
Change fixes following problem:
When blob cache is full, but still allows to store the current
pipeline cache data, storing next chunk may trigger eviction of
already stored items. Depending on the blob cache implementation,
eviction process may choose to evict chunks from the current pipeline
cache data. As the result: blob cache will not contain all chunks.
Solution:
The `StorePipelineCacheVkChunks()` function now check what chunks
exist in the blob cache (if `lastNumStoredChunks` parameter is positive)
and restores any missing chunks if their number is less than
`lastNumStoredChunks`.
First call to `StorePipelineCacheVkChunks()` passes zero (0) to the
`lastNumStoredChunks`, which will skip the check and store all chunks
unconditionally.
If "verifyPipelineCacheInBlobCache" feature is enabled, the
`StorePipelineCacheVkChunks()` will be called again to restore possibly
missing chunks.
If "hasBlobCacheThatEvictsOldItemsFirst" feature is disabled,
the function will be called repeatedly in a loop (opposed to only once),
until all chunks are present or until number of missing chunk stops
decreasing.
Bug: angleproject:4722
Change-Id: Ibbbdb2f878d6aafd7ab5586fc654e2b9be900a9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5837042
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
a6ec0bb9
|
2024-09-23T10:50:28
|
|
Vulkan: Fix recursion in ensurePipelineCacheInitialized()
If the initial data was loaded from the blob cache, this function called
getPipelineCacheSize() to initialize mPipelineCacheSizeAtLastSync.
However, that function itself lead back to
ensurePipelineCacheInitialized(), causing a recursion. This was
previously undiscovered as the conditions that would lead to the global
pipeline cache needing a lock were yet to materialize in the wild.
Since the preferMonolithicPipelinesOverLibraries feature was made more
widely enabled in [1] and consequently a race condition was fixed in
[2], this recursion was discovered as a deadlock due to the mutex use.
While this change avoids the recursion, it simultaneously optimizes the
syncPipelineCacheVk() function by making sure the lock is taken once
intstead of twice when retrieving the pipeline cache size and
subsequently data. This also avoids a previously encountered race
condition where the pipeline cache was modified in between the two
queries and VK_INCOMPLETE was returned from the second call.
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/5870466
[2]: https://chromium-review.googlesource.com/c/angle/angle/+/5872715
Bug: angleproject:42265839
Change-Id: Ic682b3d20ec4411ba180b3bafb807fdde8166d5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5883153
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
1e74ce33
|
2024-09-17T14:44:36
|
|
Reland "Vulkan: Prefer monolithic pipelines everywhere"
This reverts commit 1503a10737e28ac9d1bb98c2f3e369880c63ca43.
Reason for revert: Fixed threading + undo for buggy drivers
Original change's description:
> Revert "Vulkan: Prefer monolithic pipelines everywhere"
>
> This reverts commit e9ab557c744c29088174b6c7bc93692fe7f32dbd.
>
> Reason for revert: kills Windows Intel UHD 770 machines
> http://anglebug.com/42265839#comment34
>
> Original change's description:
> > Vulkan: Prefer monolithic pipelines everywhere
> >
> > Apparently, every vendor prefers this, and
> > graphicsPipelineLibraryFastLinking has no bearing on the driver's
> > preference.
> >
> > Bug: angleproject:42265839
> > Change-Id: Ied8d82e0a9e08fe5efe3f625e2612764f67f9768
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861024
> > Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> > Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: angleproject:42265839
> Change-Id: I95fa61b2242684b63adc2841b777bde923e34d41
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5868055
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:42265839
Change-Id: I007a3efc69e0edc040b0feddcd84e191f68ded9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870466
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
167b9e8d
|
2024-09-18T21:51:38
|
|
Vulkan: Fix pipeline cache store vs monolithic pipeline race
The thread that creates monolithic pipelines needs to hold the pipeline
cache lock, as well as the thread that stores the pipeline cache
contents to the blob cache.
Bug: angleproject:42265839
Change-Id: I17cf9d2bb3f27d531f368003cb4ee00007a464fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872715
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cb9d52f8
|
2024-09-11T15:26:49
|
|
Vulkan: Add Pipeline blob cache per chunk CRC check
Each chunk now have it's own CRC value, that is calculated starting
from beginning of the data up to the end of the chunk. This way last
chunk will have CRC of the entire data, avoiding calculating it
separately.
The `GenerateCRC32()` was splint into `InitCRC32()` and `UpdateCRC32()`
function, which supports calculating running CRC32.
Calculating CRC this way has some performance hit, when using many
small chunks. Increasing chunk size to at least 1 MB almost negates any
overhead from running `UpdateCRC32()` multiple times.
On S921B with locked frequencies, calculating CRC for 89 MB of data
using single call took 7.13 ms and 13.34 ms, when using multiple calls.
However even this difference is negligible, because compressing 291 MB
of data to 89 MB took 9.22 seconds.
Bug: angleproject:4722
Change-Id: Ic6f3245b3aa7319ac13502d2c43e1a084a9bc8b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8469debb
|
2024-09-04T20:04:10
|
|
Vulkan: Add dual slots in CompressAndStorePipelineCacheVk()
Change fixes following problem:
Currently, each call to `CompressAndStorePipelineCacheVk()` stores
chunks in order, starting from 0. This overrides previously stored
chunks. In case of app termination (kill) in the middle of this
process, the entire cache data will be corrupted, since it will
partially contain chunks from the new and old caches.
Solution:
In order to fix this problem, this change introduces `slotIndex` into
the `chunkCacheHash` calculation. Slot index is managed by
`vk::Renderer::getNextPipelineCacheBlobCacheSlotIndex()` method, which
will alternate between 0 and 1 when "useDualPipelineBlobCacheSlots"
feature is enabled, and always 0 otherwise.
Additionally, chunk storing order is reversed: last chunk is stored
first and the first (0 chunk) - last. This is done because 0 chunk is
the first that is loaded in `GetAndDecompressPipelineCacheVk()` and used
as indication that there is data in the cache. Writing it last, ensures
that other chunks will be also available.
When "useDualPipelineBlobCacheSlots" is enabled, each call to
`CompressAndStorePipelineCacheVk()` will use slot index opposed to the
slot that is stored in the cache, avoiding damaging existing data. After
writing all chunks for a brief moment there may be 2 instances of the
data. However, data for the previous slot will be immediately erased
(by writing 1/0-sized blobs) starting from the 0 chunk.
To control if erasing of old pipeline cache data will be erased by using
0-sized or 1-sized blobs blobs, added
`useEmptyBlobsToEraseOldPipelineCacheFromBlobCache` feature.
The `GetAndDecompressPipelineCacheVk()` function will iterate over each
available slot index checking only 0 chunk until data is found.
In case of the OpenCL API, features will always have following values:
- "useDualPipelineBlobCacheSlots" -> false
- "useEmptyBlobsToEraseOldPipelineCacheFromBlobCache" -> true
Note: this solution requires 2X pipeline cache size space in the blob
cache to work as expected, otherwise it will exacerbate other problem:
When blob cache is full, but still allows to store the current
pipeline cache data, storing next chunk may trigger eviction of
already stored items. Depending on the blob cache implementation,
eviction process may choose to evict chunks from the current pipeline
cache data. As the result: blob cache will not contain all chunks.
The above problem will be addressed in the follow up CL.
Bug: angleproject:4722
Change-Id: I2920bc3d89263280cdfe0466446fca26415e2b25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756576
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
44b6203c
|
2024-09-02T16:23:44
|
|
Add new functions defined in VK_KHR_Synchronization2 extension
Add vkCmdPipelineBarrier2 and vkCmdWriteTimeStamp2.
The other functions introduced in VK_KHR_Synchronization2
are not being used at the moment.
Bug: b/356985874
Change-Id: I4f8b432aee9b11debcb8abe8b3089f88ad7a069b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5832709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
7bdd5f77
|
2024-09-18T12:51:25
|
|
Vulkan: Remove syncval suppressions for fixed bugs
Bug: angleproject:42265220
Change-Id: I282f77330867682eee121f67d5357658bf375844
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873529
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
dfa516ce
|
2024-09-12T15:25:08
|
|
Vulkan: Fix chunkIndex is not 16 bits when computing key
Replace `uint8_t` with `size_t` in `ComputePipelineCacheVkChunkKey()`.
This fixes the bug and also makes type consistent with the rest of the
code.
Also `CacheDataHeader::setData()` made consistent with `getData()`.
Bug: b/246683126
Change-Id: Ib1f8b680622c3d4f912d8a21ed8b740c3d17483e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854707
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|