|
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>
|
|
6e0ae899
|
2024-09-17T12:12:03
|
|
Vulkan: Suppress more rasterizer-discard VUs due to VVL bugs
Bug: angleproject:42266678
Change-Id: I7321c28362d1a2be529b9d173c8429c757c26fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5869444
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
dbdc9551
|
2024-09-16T10:19:47
|
|
Vulkan: Let asyncCommandBufferReset control garbage cleanup
So that people can toggle the flag to compare perf/power difference with
async thread doing garbage clean up AND command buffer reset. This also
renames feature flag asyncCommandBufferReset to
asyncCommandBufferResetAndGarbageCleanup to reflect the implementation.
Bug: b/255411748
Change-Id: Id459e6f4dc81ec76b6c0c2dba0db46041ea6ae8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867389
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f8031fbe
|
2024-09-17T11:35:58
|
|
Vulkan: Unsuppress fixed VU errors
Bug: chromium:359904720
Bug: angleproject:362545033
Change-Id: I2721344843ffbddd6c56261359360473ad896a39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870469
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
f2eb8781
|
2024-09-14T16:16:53
|
|
Vulkan: Selectively enable emulateR32fImageAtomicExchange
Only emulate R32F imageAtomicExchange if shaderImageFloat32Atomics
feature is not supported
Bug: angleproject:42264071
Change-Id: I305ab88bf3ac918eff5d8c399f0ed02ec8c60c2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860814
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1503a107
|
2024-09-17T10:46:29
|
|
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>
|
|
e9ab557c
|
2024-09-14T22:11:18
|
|
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>
|
|
6ee07959
|
2024-09-13T17:12:26
|
|
Remove the suppressed VVL error
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/8523
is fixed. Remove the VVL error from the suppressed list.
Bug: b/365580001
Change-Id: Ib7a3819e740393306995df1eabec14e1b9878d7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860811
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
7dcfc32b
|
2024-09-12T16:25:28
|
|
Remove renamed VUID
VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870
was renamed to
VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870
in
https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/6adb436617e6c66fbc8b2a24996659f5c5bbb63f
Bug: angleproject:42266877, angleproject:42266639
Change-Id: I382625d33ef6728835d8e9db307d32b7910ac9b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5855187
Commit-Queue: Solti Ho <solti@google.com>
Reviewed-by: Solti Ho <solti@google.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
958b657f
|
2024-09-10T20:34:57
|
|
Manual roll vulkan-deps from 725499142cb6 to 3b92cef97feb (32 revisions)
Manual roll requested by yuxinhu@google.com
Manual roll changes: suppress VUID-vkCmdDrawIndexed-Input-08734
until VVL issue angleproject:365580001 is addressed.
https://chromium.googlesource.com/vulkan-deps.git/+log/725499142cb6..3b92cef97feb
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/a496a34b439022750d41d2ba04fbbe416ef81c9a..12a17b7ce41436427e358608183100b1103274da
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/efb6b4099ddb8fa60f62956dee592c4b94ec6a49..2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/e1782d6675b88225225e331a6318554d473c54db..d160e170d74ff45cb2a88dfb365bdfd896016f7c
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/c758bac8bf1580b5018adafd3a2ec709237b0134..1108bba6c97174d172d45470a7470a3d6a564647
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/fbb4db92c6b2ac09003b2b8e5ceb978f4f2dda71..ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/af7b0a35d009b5ad6e0b280a5b81388608ebfe39..99de3c17fbc2db6b6da0347916c9e01a383c2758
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: angleproject:365580001
Tbr: yuxinhu@google.com
Change-Id: Iac9c8b6310d3ebb955dd09fd26b71d373e13b479
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5849280
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
6afcbd3e
|
2024-09-10T10:31:42
|
|
Vulkan: Disable dynamic rendering on ARM
Due to driver bugs.
Bug: b/356051947
Change-Id: Ic345496010b051ad054811a8c34bb3f816bbf258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851632
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
941b3df3
|
2024-08-21T17:23:16
|
|
Vulkan: Add new threshold for CPU buffer subdata
Currently, with preferCPUForBufferSubData enabled, when the GPU is
busy, we use the CPU to copy subdata, which includes duplicating the
buffer. If the buffer is large, this can cause performance regression.
To avoid this, we should avoid using the CPU in cases that can lead to
such regressions.
* Enabled preferCPUForBufferSubData for all ARM devices.
* This feature is only used in the following cases:
* If the buffer is smaller than than 32K; or
* If the copy size is greater than 1/8 of the total buffer size.
* Significant performance improvement observed in several traces.
Bug: b/360118138
Change-Id: Ibc8e3de9b4e081c69457c85facba893283c8fb38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5824347
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
621bba6c
|
2024-09-04T09:58:09
|
|
Vulkan: Fix device entry points loaded as instance
Bug: angleproject:359420106
Change-Id: I970ac7b924013a3c8ea5dd73f90bbe1649969753
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5836783
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
8b6b1113
|
2024-08-30T16:06:17
|
|
Vulkan: Fallback to host unCached if no cached memory available
Android studio may not have any host cached memory. This CL will make it
use unCached memory in this case. User of this memory will still treat
it like cached and try to flush/invalidate cache, but these
flush/invalidate call will early out, so they should still work.
Performance wont be good, but that is the best we can do to make it work
instead of crash.
Bug: b/363347052
Change-Id: I68ac917585f6f5672a75085c397858bdc28687e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5828132
Reviewed-by: Lars Harrison <slumpwuffle@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
20e0b83a
|
2024-08-30T11:05:09
|
|
Vulkan: Expand preferSubmitAtFBOBoundary from ARM to all tiler GPUs
On S24, enable preferSubmitAtFBOBoundary flag boost black_clover_m frame
time significantly. The app uses occlusion query which was blocking the
CPU to encode next frame until one of the previous frame's render pass
is completed. Enable preferSubmitAtFBOBoundary makes the render pass
being submitted early which reduces the query wait time, which in turn
boost GPU utilization and bumps GPU clock. This reduces frame time of
black_clover_m from 23.8ms to 6.4ms, even much better than native's
16ms. It could impact power usage as well, a little bit harder to tell
without data that it will be better or worse. For now, I am enabling
this for all tiler based GPUs and we can re-evaluate if any problems
comes up. This would potentially also benefit other desktop GPU as well,
but I am not touching these until we have data showing the benefit
before enabling it.
Bug: b/362555815
Change-Id: Ie7a5231350389c49091bb2771c542b4439c9c227
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5829781
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8d6f6c23
|
2024-08-29T14:56:31
|
|
Vulkan: Unsuppress fixed VVL errors
Bug: angleproject:361600662
Change-Id: Ic4585f4b38261f69700a9703bdb10b60e18f638a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5826762
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b43f8889
|
2024-08-29T12:34:46
|
|
Vulkan: Fix varyings reserved for xfb
At some point in the past, the ANGLEXfbPosition varying was generated
unconditionally when the xfb extension is available. The logic that
reserved one varying for this was not updated and fails to account for
it in recent drivers.
Bug: angleproject:362545033
Change-Id: I65fb58cd912b96b2774a7dfbffa4aa656f694e81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5826761
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
79729f7c
|
2024-08-27T17:13:57
|
|
Reapply "Vulkan: Expose float control properties as angle features"
This reverts commit 5a8eab96c6b7b99b8568feb902b8b85e2df7e19a.
This relands the commit 027cbe1a071f41a09d596c4baa243a0abc3d1a86
with the below changes
- add back needed suppressions that were removed erroneously
```
// https://anglebug.com/361600662
"VUID-RuntimeSpirv-OpEntryPoint-08743",
"VUID-RuntimeSpirv-OpEntryPoint-07754",
"VUID-RuntimeSpirv-maintenance4-06817",
```
Bug: angleproject:360031000
Change-Id: I74ed80b459466bdd8ae638ff875677b089aaa360
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5818733
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c094d4bc
|
2024-08-26T18:00:50
|
|
Enable tests on linux-exp-nvidia
Enables tests on the new linux-exp-nvidia builder.
Bug: chromium:357573052, chromium:362545033, chromium:362486580
Bug: chromium:362728695
Change-Id: Ib2f1c2edb139be1b3b2225dd9a9ec88df2bf1a84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5814931
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
|
|
5a8eab96
|
2024-08-27T10:07:26
|
|
Revert "Vulkan: Expose float control properties as angle features"
This reverts commit 027cbe1a071f41a09d596c4baa243a0abc3d1a86.
Reason for revert: removes needed suppressions, breaking bots:
https://ci.chromium.org/ui/p/angle/builders/ci/win-exp-test/569/overview
https://ci.chromium.org/ui/p/angle/builders/ci/linux-exp-test/810/overview
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-s22-test/1060/overview
Original change's description:
> Vulkan: Expose float control properties as angle features
>
> The different fp configuration that a vulkan backend supports are
> exposed through `VkPhysicalDeviceFloatControlsProperties`. Expose these
> as angle features that api's implementations can query.
>
> The autogen files are changes as reported by running `python3
> scripts/run_code_generation.py` script.
>
> Bug: angleproject:360031000
> Change-Id: I038cbf2c9e2b10916697994782ef73b35a1caf12
> Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798053
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:360031000
Change-Id: I88c0a083725320b5e1a8302a50f67d41cbf5c089
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816829
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
027cbe1a
|
2024-08-13T17:27:27
|
|
Vulkan: Expose float control properties as angle features
The different fp configuration that a vulkan backend supports are
exposed through `VkPhysicalDeviceFloatControlsProperties`. Expose these
as angle features that api's implementations can query.
The autogen files are changes as reported by running `python3
scripts/run_code_generation.py` script.
Bug: angleproject:360031000
Change-Id: I038cbf2c9e2b10916697994782ef73b35a1caf12
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798053
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
95c30276
|
2024-08-26T18:14:30
|
|
Don't use VK_GOOGLE_surfaceless_query on Samsung S24 Xclipse
Apply S22 workaround on S24 as well,
tentative fix for bad traces.
Bug: b/362253922
Change-Id: I5a04741d7465139f86de5baadbf774eed172b4e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5812323
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3f1c47bf
|
2024-08-13T15:06:40
|
|
Vulkan: Add VK_KHR_variable_pointers ext if available
Add VK_KHR_variable_pointers exetensions to enabled extension if it is
supported. This is needed when SPIR-V 1.4 is supported.
Bug: angleproject:360031000
Change-Id: Ia93604ae308c9f304acb3bc39457811401a0ca7b
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789897
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e35835b
|
2024-08-23T11:28:54
|
|
Suppress new VUIDs
VUID-RuntimeSpirv-OpEntryPoint-08743
VUID-RuntimeSpirv-OpEntryPoint-07754
VUID-RuntimeSpirv-maintenance4-06817
Started reporting after VVL roll
https://chromium-review.googlesource.com/c/angle/angle/+/5807076
Bug: angleproject:361600662
Change-Id: Ibdf30bd2506366460009f18a4e1f63559d23eb97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803266
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
579a5855
|
2024-08-13T11:39:54
|
|
Vulkan: Add query for 64bit fp support feature check
Add a feature check for shaderFloat64 support. If present expose the
corresponding feature check.
The following files are updated by running the autogen script -
`run_auto_code_generation.py`
- include/platform/autogen/FeaturesVk_autogen.h
- util/autogen/angle_features_autogen.cpp
- util/autogen/angle_features_autogen.h
Bug: angleproject:360031000
Change-Id: If2a11190729550ad5b84714e0a3aa3b81956c66a
signed-off-by: gowtham tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789896
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e90cd0c4
|
2024-08-12T17:07:47
|
|
Vulkan: Add check for int8 extension support
Vulkan backend currently has a check for float16 part in
VK_KHR_shader_float16_int8 extension. Add the int8 support as well.
The changes in below files are generated through
`scripts/run_code_generation.py` script
- include/platform/autogen/FeaturesVk_autogen.h
- util/autogen/angle_features_autogen.cpp
- util/autogen/angle_features_autogen.h
Bug: angleproject:360031000
Change-Id: I8811779299e3d24b4536d1871e1eadcbb87432c2
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792021
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
319907d2
|
2024-04-05T16:05:33
|
|
Vulkan: Propagate the support of shaderInt16/64 feature
Progate the support of shaderInt16/64 features in to enabled feature
list.
Bug: angleproject:360031000
Change-Id: I38915a764fb2f1dd31348c01bc2fcfa4913ebdec
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792019
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6b46eae
|
2024-08-15T10:01:05
|
|
Roll vulkan-deps from f084a55f96da to 91058f2297c9 (4 revisions)
Suppress new VUIDs:
VUID-vkCmdDraw-Input-07939
VUID-vkCmdDrawIndexed-Input-07939
VUID-vkCmdDrawIndexedIndirect-Input-07939
VUID-vkCmdDrawIndirect-Input-07939
https://chromium.googlesource.com/vulkan-deps.git/+log/f084a55f96da..91058f2297c9
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/3a08cd8de1f88d114c18670366f29226db453a9e..0dc6711e5a178e4d5643437af688c6b48f829f5c
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/f013f08e4455bcc1f0eed8e3dd5e2009682656d9..1b75a4ae0b4289014b4c369301dc925c366f78a6
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/8d902c7f67edd9e54b0fa5f7d2c34f9abfeacba8..4eb3585f32ec194efe2d9cd88a2b2943ff41f922
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,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: chromium:359904720
Change-Id: Idf82bf9a210b953785fc2387e5c64ef157ec36e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5791052
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2003e062
|
2024-08-09T17:52:38
|
|
Vulkan: Set queue family index for oneoff command buffer
Use the queue family index that the Renderer has chosen for creation of
oneoff command buffers.
Bug: angleproject:359623670
Change-Id: I0a36edf79a751133d477d433c9cfd8dbddaad221
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785864
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b15c795
|
2024-08-09T17:13:17
|
|
Make explicit that GenerateCrc() return correct CRC32 hash
According to the documentation of `crc32_z()`, to get required
initial value need to call `crc32_z()` with nullptr "buf" parameter.
Using this initial value will produce correct CRC32 hash.
On practice, `crc32_z()` with nullptr "buf" produces "0", so the current
code actually calculates correct CRC32 hash. However, this is still
against the documentation, and in different versions of zlib or
architectures may produce incorrect results.
Technically, `GenerateCrc()` does not require to produce correct CRC32
hash - the main purpose is to calculate some hash value.
But because updating this function to produce correct CRC32 hash is very
easy, this change updates the implementation and renames it to
`GenerateCRC32()` to explicitly state that it generates correct CRC32
hash. After this, function may be used in scenarios where CRC32 hash
is really required.
Bug: angleproject:4722
Change-Id: Ib159f2d3ad1a8388f505abb09a6d0b19a51b7eec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5777145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bacd3a7d
|
2024-08-07T19:01:18
|
|
Vulkan: Fix CompressAndStorePipelineCacheVk() crashing
`ContextVk` may be destroyed while
`CompressAndStorePipelineCacheTask()` is still running. Context is only
used to output a performance warning. So in case of such performance
warning, `gl::State::mDebug` object may be already destroyed, causing
undefined behavior.
Change removes `ContextVk` from the function and uses `WARN()` instead.
The `CompressAndStorePipelineCacheTask` stores pointer to the
`vk::Renderer` instead of `ContextVk`.
Bug: angleproject:4722
Change-Id: Iba9cad78ce5c6ea29cc2143f7bd2340cf0484855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5768881
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc0c6c5b
|
2024-08-07T09:48:25
|
|
VVL: sync_queue_submit -> syncval_submit_time_validation
Avoids this warning printed to stdout:
Validation Setting Warning - sync_queue_submit was set, this is deprecated, please use syncval_submit_time_validation
Bug: b/316013423
Change-Id: I9a8be1a49be72e8ec2fed74ace36989d8e37163a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5769522
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7a81e79d
|
2024-08-02T19:39:57
|
|
Vulkan: Fix mPipelineCache not populated from blob cache
Fixes regression introduced in change:
Vulkan: Remove support for pipeline cache control
https://chromium-review.googlesource.com/c/angle/angle/+/5375102
Returns logic implemented in:
Vulkan: pipeline cache not populated as blob cache is not set
https://chromium-review.googlesource.com/c/angle/angle/+/1683807
In the current state, call to `ensurePipelineCacheInitialized()` from
`getPipelineCache()` is essentially a dead code, since
`mPipelineCacheInitialized` will always be `true` after call from
`createDeviceAndQueue()`. So if blob functions are not set before
`createDeviceAndQueue()` then blob cache data will never be loaded.
This change simply removes `ensurePipelineCacheInitialized()` from the
`createDeviceAndQueue()`, since cache can only be accessed after the
initialization (`mPipelineCacheInitialized` is true).
Bug: angleproject:8601
Change-Id: I3db1cd69346ec1aa2c36e4134c77680526b22cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756574
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
721becf2
|
2024-08-06T17:49:56
|
|
Vulkan: Update Renderer::syncPipelineCacheVk() method
Add check for `mPipelineCacheInitialized` to avoid overwriting existing
pipeline cache data in the blob cache by empty cache data if sync is
called before pipeline cache is loaded from the blob cache.
Move checking of `mCompressEvent` before getting pipeline size and
updating `mPipelineCacheSizeAtLastSync`. This will avoid unnecessary
(potentially heavy) vulkan call and fix bug when next sync is skipped,
because `mPipelineCacheSizeAtLastSync` is already updated.
Bug: angleproject:4722
Change-Id: I7390c4bc53ba57732b659d79c65ed4da8d7a6ba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756575
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
22ed9877
|
2024-03-07T15:52:13
|
|
Vulkan: Generate fragment shading rates with compute
Generating fragment shading rates on the CPU could cause avoidable
stalls or increased latencies due to host<->device synchronization.
Instead generate the rates using a compute shader.
Optimize foveated rendering by treating a foveated draw with focal
points whose gainX or gainY is 0 as if it were an un-foveated draw
Bug: angleproject:42266906
Change-Id: If8c5504087997666c7d0c1cae8dcc5fab847187e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754322
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
ea63e372
|
2024-08-01T21:10:02
|
|
Enable VK_KHR_synchronization2 if it is available
If the device supports VK_KHR_synchronization2 and
VkPhysicalDeviceSynchronization2Features.synchronization2
queried from the device is VK_TRUE,
Enabled the extension VK_KHR_synchronization2
and feature VkPhysicalDeviceSynchronization2Features
when calling vkCreateDevice.
Bug: b/356985874
Bug: b/336844257
Change-Id: Iac95f373a283f5a97e126770321769e0f760e5f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759319
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
65f08d08
|
2024-07-26T22:14:49
|
|
Vulkan: Work around driver bug with nested switch
Bug: chromium:350528343
Change-Id: Ie7bd58934ccb2b8f06f6ad6a8c3bf38e81b84969
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5744620
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7b0dc666
|
2024-07-19T15:39:42
|
|
Vulkan: Enable explicitlyEnablePerSampleShading for most vendors
Bug: b/267953710
Bug: angleproject:40096890
Tests: SampleMultisampleInterpolationTest.SampleMaskInPerSample*
Change-Id: I51cc393934e7fd24146ab5c94893bb3014c5c044
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5726628
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
85edb907
|
2024-07-17T19:09:09
|
|
Vulkan: Remove the adjustClearColorPrecision feature for new driver
The vulkan driver issue that this feature tries to workaround
is resolved in the new driver. Remove the feature workaround.
Bug: b/292282210
Change-Id: I541526e71d5312f1a23b5a415e96d5b966e77f2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5719652
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Solti Ho <solti@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
86b22745
|
2024-07-17T19:05:51
|
|
Vulkan: Fix mPipelineCache is not initialized after terminate
Very old regression:
https://chromium-review.googlesource.com/c/angle/angle/+/1683807
Problem happens only if call `eglInitialize()` again on terminated
display without also calling `eglGetDisplay()`.
Note: calling `eglGetDisplay()` on terminated display will call
`setupDisplayPlatform()`, which will destroy old `mImplementation`.
Test: angle_end2end_tests --gtest_filter=EGLDisplayTest.InitializeDrawSwapTerminateLoop*
Bug: angleproject:3318
Change-Id: I94bc7eba97be2d9b194c1a22a37662a2836f60b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5717753
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1db80b88
|
2024-07-10T12:47:42
|
|
Reland "Vulkan: Use VK_KHR_dynamic_rendering[_local_read]"
This is a reland of commit c379ff48043a47e444c388c45270db40d3172d50
Original change's description:
> Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
>
> Bug: angleproject:42267038
> Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:42267038
Change-Id: I083e6963b5421386695e49a9872edbb2016c9763
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691342
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
58a56ca4
|
2024-07-16T11:26:44
|
|
Vulkan: Restrict VkEvent to TBRs
VkEvent has much bigger overhead. Until we know that it helps desktop
GPUs, we restrict it to TBRs. Also enabled for SwiftShader so that we
get more test coverage in bots.
Bug: b/336844257
Change-Id: Ie1859a515c9969ca37f07eae0ff729dd934eb26e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5714391
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06921c61
|
2024-07-08T12:13:40
|
|
vulkan: filter out devices with insufficient API version
We weren't taking the version into consideration inside
ChoosePhysicalDevice, but RendererVk really cares about that and will
error out if the selected device doesn't meet the minimum API version
requirements.
Frontload some of that API version check work in ChoosePhysicalDevice,
giving it the opportunity to find a device that matches the
requirements.
Bug: angleproject:351866412
Change-Id: I471e93b03eca5e18e98202f9848ba0fd1b55d5a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686556
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a5161f01
|
2024-06-04T15:46:04
|
|
Vulkan: Enable event based image barrier
This CL enables VkEvent based image barrier for all GPUs. The testing
result on HK3 shows manhattan31_off score impoves ~5%. We can exclude
certain barrier insensitive GPUs if needed.
Bug: b/336844257
Change-Id: Iebc4957dbb683637c9314e706be31d3376ee15aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634089
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
24322b7d
|
2024-06-28T20:10:34
|
|
Vulkan: feature for cached non-coherent for dyn/stream buffers
On platforms lacking cached coherent memory, ANGLE falls back to
non-cached coherent memory for dynamic/stream buffers. This impacts
CPU readback performance.
Add VK feature preferCachedNoncoherentForDynamicStreamBufferUsage. When
enabled, ANGLE prioritizes cached non-coherent memory for these
buffers.
Enable this feature for Intel Meteorlake SOCs.
Bug: b/347601787
Change-Id: If62af9f3df57c0bcebf18af747cac56e45f93ea7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eda67d7e
|
2024-07-11T11:16:08
|
|
Avoid including fstream from angleutils.h
SaveFileHelper is mostly useful for / specific to FrameCapture,
so move it there.
The other couple of uses just write a string.
Bug: angleproject:42266508
Change-Id: Ia1dcd4531f9d5671f40611a1887dcfe7c5dbc1ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5696025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
f7620039
|
2024-07-10T10:21:11
|
|
Vulkan: Prepare syncval suppressions for dynamic rendering
Removing mentions of vkCmdBeginRenderPass and such.
Bug: angleproject:42267038
Change-Id: Ibba2c15249b154fb11b116ef75ee6f20e08e4d00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691343
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7d461b21
|
2024-07-10T14:11:53
|
|
Revert "Vulkan: Use VK_KHR_dynamic_rendering[_local_read]"
This reverts commit c379ff48043a47e444c388c45270db40d3172d50.
Reason for revert: Regresses CPU perf and memory when _not_ using DR
Original change's description:
> Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
>
> Bug: angleproject:42267038
> Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:42267038
Change-Id: I3865f0d86813f0eeb9085a92875a33bd449b907f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691337
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0679b3eb
|
2024-07-09T18:55:35
|
|
Manual roll vulkan-deps from 17d345a0f23d to 1d4b1061b004 (24 revisions)
Suppressing a new sync hazard warning
Manual roll requested by romanl@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/17d345a0f23d..1d4b1061b004
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/5939e32b87487fa9c72ab336ebfcc5ae26d9ab6d..42d9adf50b4ad7db2a7212318068ec614b36414f
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/00c49e3b56cc9748228d2e5b0d1e8e9c4409a02f..88194ef2d87683f963e735793f20ad1ebce70bc5
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/216574bedb80d439c2533d161e7ea7897504bbb6..9f2ccaef5f70c32bcd6c911a2b09dbb26106b437
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/190d2cb24e90e5bf2bec0a75604a9b3586485b6d..6c539b2ed2dba2997cdedeac0b376ff2fe382595
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/df78ee39d2ff6c10b4f7f2ae06c7ca64524f9e25..d13c1ee715c4674237aca1c775479e1edde87d3c
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/96fb5396040477fbbffdc1b4439dea9447f59d80..d03e2bca31b298fc911f7c89cfaf24d28904492d
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,romanl@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:352094384
Tbr: romanl@google.com
Change-Id: If9da3b32eb405aba8472a020be0c3fd732656f27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5689521
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c379ff48
|
2024-06-10T22:01:57
|
|
Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
Bug: angleproject:42267038
Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3813e805
|
2024-06-21T14:29:55
|
|
Add env var/property control of API dump layer
Layer is now included with all debug/assert builds or when
specified through GN arg.
VK_VULKAN_API_DUMP_LAYER on desktop, or for android set
debug.angle.enable_vulkan_api_dump_layer to 1.
Also included some renaming since layers other than
validation are supported.
Bug: angleproject:8623
Change-Id: I2bb976dede53712f781a531d0c4f3ce4d33f052c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5649937
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
df7bda5c
|
2024-06-21T13:27:08
|
|
Disable MSRTSS if not supported for RGBA
* Support for MSRTSS is checked for RGBA8 and RGBA8_SRGB during
renderer initialization.
* In the case of lack of support, this feature is disabled.
* preferMSRTSSFlagByDefault is disabled if MSRTSS is not supported
at all.
Bug: angleproject:348181798
Change-Id: If1bf27f53a61f4fd67576c426ab07f4e2304fbe9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5647495
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|